#3:目录和文件 | Linux 新手课程
目录:
在命令行上键入命令时,基本上是在告诉Shell运行具有给定名称的可执行文件。 在Linux中,这些可执行程序(如
ls
,
find
,
file
等)通常位于系统上的几个不同目录中。 这些目录中存储的具有可执行权限的任何文件都可以从任何位置运行。 包含可执行程序的最常见目录是
/bin
,
/sbin
,
/usr/sbin
,
/usr/local/bin
和
/usr/local/sbin
。
但是shell如何知道,要搜索可执行程序的目录是什么,还是shell在整个文件系统中搜索?
答案很简单。 当您键入命令时,shell在用户
$PATH
变量中指定的所有目录中搜索该名称的可执行文件。
本文介绍如何在Linux系统中将目录添加到
$PATH
。
什么是Linux中的
$PATH
$PATH
环境变量是用冒号分隔的目录列表,告诉外壳程序哪些目录搜索可执行文件。
要检查
$PATH
目录,可以使用
printenv
或
echo
命令:
echo $PATH
输出将如下所示:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
将目录添加到
$PATH
在某些情况下,您可能希望将其他目录添加到
$PATH
变量中。 例如,某些程序可能安装在不同的位置,或者您可能想要为您的个人便笺建立专用的目录,但是能够在不指定可执行文件绝对路径的情况下运行它们。 为此,您只需要将目录添加到
$PATH
。
假设您的主目录中有一个名为
bin
目录,您可以在其中保存Shell脚本。 要将目录添加到
$PATH
输入:
export PATH="$HOME/bin:$PATH"
export
命令将修改后的变量导出到Shell子进程环境。
现在,您只需键入可执行脚本名称即可运行脚本,而无需指定可执行文件的完整路径。
但是,此更改只是临时的,仅在当前的Shell会话中有效。
要使更改永久生效,您需要在shell配置文件中定义
$PATH
变量。 在大多数Linux发行版中,当您启动新会话时,将从以下文件中读取环境变量:
-
特定于全局Shell的配置文件,例如
/etc/environment和/etc/profile。 如果要将新目录添加到所有系统用户$PATH请使用此文件。每用户外壳程序特定的配置文件。 例如,如果您使用的是Bash,则可以在
~/.bashrc文件中设置$PATH变量,如果您使用的是Zsh,则文件名为~/.zshrc。
在此示例中,我们将在
~/.bashrc
文件中设置变量。 使用文本编辑器打开文件,并在文件末尾添加以下行:
nano ~/.bashrc
〜/.bashrc
export PATH="$HOME/bin:$PATH"
保存文件,并使用
source
命令将新的
$PATH
加载到当前的shell会话中:
source ~/.bashrc
要确认目录已成功添加,请键入以下内容以打印
$PATH
的值:
结论
向用户或全局
$PATH
变量添加新目录非常简单。 这使您可以执行存储在非标准位置的命令和脚本,而无需键入可执行文件的完整路径。
相同的说明适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian和Linux Mint。
如有任何疑问,请随时发表评论。
终奌站






