显示或打印 UNIX / Linux 路径 ~ $PATH 变量
在 Linux 或类 Unix 文件系统中,资源的可读地址由 PATH shell 变量定义。在类 Unix / Linux 操作系统上(以及 DOS / Windows 及其后代),PATH 是一个环境变量,列出了可执行文件的目录路径集。本页介绍如何在 Linux 和类 Unix 系统下使用各种命令打印路径变量。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 或 Unix 终端 |
类别 | Linux shell 脚本 |
操作系统兼容性 | AIX • Alma • Alpine • Arch • CentOS • Debian • Fedora • FreeBSD • HP-UX • Linux • macOS • Mint • NetBSD • OpenBSD • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu • Unix • WSL |
预计阅读时间 | 3 分钟 |
显示 Linux 中的当前 PATH
使用 echo 命令或 printf 命令如下:
这是我在 Debian Linux 系统中的设置:
$ echo "$PATH"
$ printf "%s\n" $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games
您也可以使用 printf 命令来显示当前 PATH 设置:
$ printf "%s\n" $PATH
这是我在 macOS/macOS X Unix 桌面上的设置:
/Users/veryv/google-cloud-sdk/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/veryv/bin:/opt/X11/bin:/Applications/Wireshark.app/Contents/MacOS
为了获得人类可读的格式,请尝试使用Bash 参数替换的echo 命令:
$ echo "${PATH//:/$'\n'}"
输出:
/home/vivek/google-cloud-sdk/bin /home/vivek/.local/bin /home/vivek/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games /snap/bin
想要对输出进行排序?尝试使用 sort 命令:
$ echo "${PATH//:/$'\n'}" | sort
Linux 或 Unix 中的 PATH 是什么?
PATH 只是命令的搜索路径。它是一个以冒号分隔的目录列表,shell 会在这些目录中查找命令。
如何在使用 bash/ksh/sh 时修改当前 PATH
使用export 命令将 /opt/games 添加到 PATH,输入:
$ export PATH=$PATH:/opt/games
为了格式化您的 PATH 变量以便于查看,请将以下代码添加到您的 bash 启动文件(例如 ~/.bashrc 或 ~/.bash_profile):
function path(){ old=$IFS IFS=: printf "%s\n" $PATH IFS=$old }
现在只需运行路径:
$ path
这是我在 CentOS/RHEL/Fedora Linux 上看到的:
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/bin/X11 /usr/games
另一个选择是运行以下命令:
$ echo "$PATH" | tr ":" "\n" | nl
图 01:在 Linux 或类 Unix 系统上打印 $PATH
总结
默认 shell 路径($PATH变量)与系统相关,由安装 bash 或 ksh 或任何其他 shell 的管理员设置。但是,开发人员和其他 Linux 和 Unix 系统用户可以使用bash/sh/ksh 下的export 命令设置自己的路径。
永久设置 PATH
用户可以编辑 ~/.bashrc 或 ~/.bash_profile 或 ~/.profile 来为 bash 设置自己的路径,如下所示:
# set up dart lang path # echo 'export PATH="$PATH:/usr/local/dart/bin"' >> ~/.bash_profile
在 Linux 或 Unix 中打印 PATH
现在运行 printf 命令或 echo 命令如下:
$ echo "$PATH"
$ printf "%s\n", $PATH
如何在 Unix 和 Linux 中检查路径
$ man bash
$ man ksh
$ man sh
$ man tcsh
$ man printf
#Bash only help#
$ help echo
$ help printf
$ help export