How to make Total Commander works with Everything and QuickLook

让Windows操作系统更好用

大多数时间我的工作是在自己的Macbook Pro里完成的,但是因为主要用于游戏的Windows配置了较大的屏幕,有时候也还是会顺手在Windows上进行工作。那么如何让Windows操作系统用起来更顺手?

Total Commander是神器

Total Commander是必装的WIndows资源管理器,从转到macOS之前,我最开始用Windows的时候就一直在用Total Commander,这个老牌的资源管理器从1996年就有了,现在已经更新到了10.0版本,软件价格不到300人民币,一次性购买终身免费升级,物超所值。
网络里有大量关于TC如何更有效率使用的文章,甚至有专门的TC学堂

Everything是神器

Everything是Windows下的搜索工具,所有使用的人都震惊于其闪电般的搜索速度,Everything on Windows的搜索效率远胜Spotlight on macOS。Everything是免费软件。

QuickLook是神器

macOS下的一大方便之处就是在Finder中选中任何文件,然后按空格键,就可以快速浏览,这个使用习惯一旦形成,当Windows没有内置这个功能的时候非常别扭。幸好,有QuickLook软件可以实现该功能。QuickLook是免费且开源的软件。

如何让Total Commander和Everything及QuickLook协同工作

现在我们要实现的是,在TC窗口里,选中文件按空格,打开QuickLook进行快速浏览;按Ctrl+F快捷键(TC默认的Ctrl+F快捷键是打开连接FTP服务器的窗口,用处不大)打开Everything搜索窗口。

  1. 在TC的配置文件目录下创建usercmd.ini文件,并且设置用户命令。
    网上的一些教程谈及在TC主目录下创建usercmd.ini,实际上是不全面的,TC会在自己的配置文件目录下寻找所有配置,而该目录可能在TC的程序安装目录下,也可能在单独的额外目录里。
    在菜单栏的帮助-关于 Total Commander页面里,可以找到设置文件路径,我的TC安装,程序文件和设置文件就是在不同的目录的。

在该路径下创建usercmd.ini,TC默认安装是没有该ini文件的,需要手工创建。
在该文件中增加如下内容。

[em_Everything]  
cmd=C:\Program Files\Everything\Everything.exe  
param="-search "%P "" 

[em_QuickLook]
cmd=D:\Tools\QuickLook\QuickLook.exe 
param="%P%N" 

其中cmd部分是填写Everything和QuickLook的安装路径,该部分需要根据自己安装路径的不同自行做修改;param就是当前的目录和文件名作为变量传入,该部分无需修改。

  1. 设置TC快捷键
    在菜单栏 配置-选项-其他页面,有“重新定义快捷键”部分。

下图是设置Ctrl+F快捷键,点击命令后面的放大镜图标,就可以找到之前在usercmd.ini中设置的em_Everything命令。

下图是设置空格快捷键,命令部分选择之前在usercmd.ini中设置的em_QuickLook命令。

One more thing

如果想要实现macOS里的Alfred快速启动的功能,推荐安装ueli,基本上可以复刻在Alfred中的体验。

How to Connect DBeaver to Oracle Autonomous Database by JDBC Thin Driver

之前介绍了如何使用SQL Developer使用PL/SQL Developer连接Oracle Autonomous Database。

但是实际上在macOS系统中,我更喜欢使用DBeaver这个GUI客户端来操作数据库,DBeaver是一款用Java编写的免费数据库工具,可以连接几十种数据库,包括RDBS,NoSQL,时序数据库,图数据库等等,非常丰富。

NewImage

在DBeaver中连接Oracle ADB,需要使用Oracle JDBC驱动。这个解决方案是在Stackoverflow中找到的,有意思的是回答者是Jeff Smith,而Jeff是Oracle SQL Developer,Oracle SQL Developer Web,Oracle SQLcl等工具的产品经理。

下载最新的JDBC驱动

需要使用18.3版本以上的JDBC驱动,可以是18.3,也可以是19.3。下载地址分别是:
Oracle Database 18c (18.3) drivers
Oracle Database 19c (19.3) drivers

我们以18.3 JDBC Driver为例,下载ojdbc8-full.tar.gz,这个压缩包中包括ojdbc8.jar等一系列使用wallet连接Oracle ATP所必须的jar包。解压以后包含以下这些文件。

$ ls -l
total 16640
-rw-r--r--@ 1 Kamus  staff     2595  8 21  2018 README.txt
-rwxr-xr-x@ 1 Kamus  staff    11596  8  3  2018 ojdbc.policy
-rw-r--r--@ 1 Kamus  staff  4161744  8  3  2018 ojdbc8.jar
-rw-r--r--@ 1 Kamus  staff   144428  8  3  2018 ons.jar
-rw-r--r--@ 1 Kamus  staff   307817  8  3  2018 oraclepki.jar
-rw-r--r--@ 1 Kamus  staff  1661545  8  3  2018 orai18n.jar
-rw-r--r--@ 1 Kamus  staff   205152  8  3  2018 osdt_cert.jar
-rw-r--r--@ 1 Kamus  staff   306854  8  3  2018 osdt_core.jar
-rw-r--r--@ 1 Kamus  staff    29103  8  3  2018 simplefan.jar
-rw-r--r--@ 1 Kamus  staff  1398331  8  3  2018 ucp.jar
-rw-r--r--@ 1 Kamus  staff   262415  8  3  2018 xdb6.jar

下载连接ADB的wallet文件

在Oracle Cloud管理后台下载连接ATP需要的wallet压缩文件,这一步在之前的文章中都有提及。
NewImage
下载以后解压到任意目录。

在Beaver中增加连接驱动

在菜单项Database->Driver Manager中,点击New按钮。
NewImage

  1. 点击“Add File”按钮,将之前下载的JDBC Driver文件ojdbc8.jar添加进来
  2. 点击“Find Class”按钮,会自动找到类名,选择类名以后,上方的Class Name处会自动填入
  3. 填写URL Template,这是最重要的一步,具体的文档介绍,可以参看Oracle官方文档-Using a JDBC URL Connection String with JDBC Thin Driver。其中的关键点是修改dbname_high为下载的ADB wallet文件解压后包括的tnsnames.ora中的连接串名字,TNS_ADMIN是ADB wallet文件解压后的目录路径
  4. 填写Default Port,这个端口对于Oracle ADB来说是1522,在tnsnames.ora中也可以看到

在DBeaver中创建数据库连接

在菜单项Database->New Database Connection中,选择上述创建的连接驱动,然后填入数据库用户名和密码。点击Test Connection。
NewImage

如果一切正常,会显示连接成功。

至此,可以成功用这个新建的连接登入到Oracle ADB中了。
NewImage

Enjoy the Oracle Cloud always free tier. 😀

How to Connect PL/SQL Developer to Oracle Autonomous Transaction Processing (ATP)

之前写过一篇如何使用SQL Developer连接Oracle Autonomous Database,那么如果主要使用的客户端并非Oracle SQL Developer,而是PL/SQL Developer的话,该如何连接呢?

首先,下载Oracle instant client,目前的最新版本是19.3。解压到任何目录都可以。如果你的Windows机器中已经安装了Oracle数据库软件,比如Oracle Database 18c (18.3) for Microsoft Windows x64,或者是Oracle客户端,比如Oracle Database 18c Client (18.3) for Microsoft Windows x64,那么可以跳过这一步。

其次,假设你已经按照我之前的那篇文章,下载了连接Oracle自治数据库服务的wallet zip文件,需要将该zip文件解压(在使用SQL Developer连接ATP或者ADW的时候无需解压zip文件)。

解压之后的目录中 包含了以下这些文件。

PS C:\oracle\Wallet_DB201909261518> dir


    目录: C:\oracle\Wallet_DB201909261518


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2019/10/12      3:40           6661 cwallet.sso
-a----       2019/10/12      3:40           6616 ewallet.p12
-a----       2019/10/12      3:40           3243 keystore.jks
-a----       2019/10/12      3:40             87 ojdbc.properties
-a----       2019/10/12     12:54            130 sqlnet.ora
-a----       2019/10/12      3:40           1776 tnsnames.ora
-a----       2019/10/12      3:40           3335 truststore.jks

需要修改sqlnet.ora文件,将WALLET_LOCATION的位置修改为解压之后的目录的绝对地址。在我的机器上,修改以后如下:

WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="C:\oracle\Wallet_DB201909261518")))
SSL_SERVER_DN_MATCH=yes

然后,设置Windows系统的环境变量TNS_ADMIN到wallet文件解压目录,设置方法不再赘述。设置完毕以后echo命令显示如下:

C:\oracle\Wallet_DB201909261518>echo %TNS_ADMIN%
C:\oracle\Wallet_DB201909261518

最后,启动PL/SQL Developer,新增Connection。

新增Connection时候的Database处,填写wallet文件解压目录里tnsnames.ora文件中的任何一个连接串名称。

如果你的PL/SQL Developer没有自动探测到Oracle instant client的安装位置,那么可以在配置中手工指定。

现在,可以在PL/SQL Developer中访问ATP或者ADW服务了。

Enjoy the Oracle Cloud always free tier. 😀