在命令行界面,执行的命令其实都是一些小程序,这些小程序没有图形界面,所以我们只能在命令行界面下使用它们。这些小程序要在特定的位置才能在命令行界面下,直接通过它们的名字使用它们,不然我们在使用它们的时候,要输入这个小程序的完整的路径才行。这些特殊的位置叫环境变量目录。
新建一个 Bash 类型的命令行界面,然后执行 echo $PATH,得到的就是系统里的环境变量目录的列表,你会发现有很多,它们中间会用冒号分隔开,我们也可以通过配置,添加自己需要的环境变量目录。执行了命令以后,命令行界面会到这些环境变量目录里查找这个命令工具,找到了就会执行它。
如果你想知道一个命令行工具到底在哪儿,可以用 which 命令,比如我想知道 ls 这个小工具的位置,执行一下 which ls,显示这个小工具是在 /usr/bin 这个目录的下面,这个位置应该是 cmder 设置的一个目录的别名,因为在 Windows 系统里并没有这个地方。 usr 一般表示的是 user,也就是用户的意思,bin 这个目录里通常包含的是一些可以执行的程序。
其实它真正的位置就是在 cmder 目录的下面。我们可以进去看一下。用 cd 这个命令,进入到 /C/Program\ Files/cmder/vendor/git-for-windows/usr/bin 。
然后执行 ls ,查看一下这个目录里的资源列表,这里你会发现一些 .exe 后缀的文件,在 Windows 系统里,带这种后缀的文件就是可执行的程序。在后面我们会用到这里面的一些命令行工具,比如远程连接服务器用的 ssh ,生成密钥文件用的 ssh-keygen 等等,Windows 系统默认都不带这些东西,这也是我们为什么要用 cmder 来代替 Windows 系统自带的命令行界面。
在这个资源列表里你可以找到之前我们用过的一些命令行工具,比如 ls 。我们可以筛选一下用 ls 这个命令返回的资源列表,执行 ls | grep ls,在命令的后面加上一条竖线,然后是 grep,接着是要搜索的关键词。
返回的结果就是名字里包含 ls 这个关键词的资源,你会看到这里有一个 ls.exe。
下面我们可以打开 Windows 系统自带的命令提示符工具,搜索 cmd,打开命令提示符。然后随便执行一个命令,比如执行一下 ls,这里提示 ls 不是内部或外部命令,也不是可运行的程序。
如果我们要在这个命令提示符里运行 cmder 里带的那些命令程序,需要进入到包含这些程序的地方,用 cd 这个命令,进入到 C 盘,Program Files,cmder,vender,git-for-windows ,usr 下面的 bin。 进来以后,执行一下 ls,你会发现会列出这个目录里包含的资源。