用户登录

我们在终端输入要执行的命令的名字,就可以直接执行对应的命令行工具,这是因为要执行的命令行工具包含在了某个可执行文件目录里面了。也就是每次我们执行文字命令的时候,终端都会到可执行文件目录里面去寻找要执行的命令行工具,找到以后就会执行它。

如果说要执行的命令行工具,不在这些可执行文件目录里面,那执行这个命令行工具的时候,就必须要指定这个工具的绝对路径或者相对于当前所在位置的路径。

这个可执行文件目录列表是由一个叫 PATH 的环境变量设置的,在终端,执行一下 echo $PATH,输出 PATH 这个环境变量的值,这里就是一组目录路径的列表,每个路径之间会用冒号分隔开,也就是当前我直接输入文字执行命令的时候,终端就会到这些目录里面去寻找要执行的命令。

```
echo $PATH

/Users/wanghao/.surrealdb:/Users/wanghao/.docker/bin:...
```

安装了某些软件以后,如果软件里面包含了一些命令行工具,它可能会自动修改 PATH 环境变量,或者要求我们手工修改终端的配置文件,添加新的可执行文件目录。这样在终端,就可以直接输入命令的名字,执行新安装的软件里面带的命令行工具了。

打开 ~/.zprofile 这个配置文件,如果在 macOS 系统里安装了 homebrew 以后,会在可执行文件目录里添加 /opt/homebrew/bin 这个目录,也就是在这个目录下面的东西都可以直接在终端执行。这里就是用 export 设置了一下 PATH 这个环境变量,这里先用了一下 $PATH 引用了一下 PATH 环境变量之前的值,然后用冒号分隔一下,后面是一个新的路径。有时候也会把要新添加的路径放在前面,然后是冒号,接着是 $PATH。

```
export PATH=$PATH:/opt/homebrew/bin
```

在终端,用 ls 命令查看一下 /opt/homebrew/bin 下面的东西,这里列出的就是使用 hoomebrew 安装的软件里面带的命令行工具。

```
ls /opt/homebrew/bin
```

比如这里有我之前用 homebrew 安装的 tree 这个命令行工具。它可以显示指定目录的树形结构,比如显示当前目录第一级别的东西。执行 tree 加上 -L 选项,级别是 1 。

```
tree -L 1

.
├── Applications
├── Desktop
├── Documents
├── Downloads
├── Library
├── Movies
├── Music
...
```

查看命令行工具所在的位置,可以使用 which 这个命令,执行一下 which tree,这里会显示这个 tree 命令行工具是在 /opt/homebrew/bin 这个目录的下面。

```
which tree
```

再试一下 which ls ,查看一下 ls 这个命令的位置,显示是在 /bin 这个目录的下面,说明 /bin 目录一定是在可执行目录列表里,因为我们可以直接在终端,执行 ls 这个命令。

如果 /bin 这个目录不在可执行目录列表里,想要在终端执行 ls 这个目录,就需要输入这个命令行工具的完整的路径,这里就是 /bin/ls。

可执行文件所在目录(PATH)《 DevOps 开发运维:命令界面 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点