Linux下如何在PATH中添加目录

通常,用于启动已安装程序的可执行文件的位置将被添加到Linux中。因此,您可以从shell中的任何位置运行程序,而无需输入可执行文件的完整路径。然而,在某些情况下,您需要手动将程序的安装位置添加到。在这个简短的教程中,我们将看到如何在Linux操作系统中添加一个目录到PATH。
为什么我们要在$PATH中添加一个目录?
前几天,我在测试一个名为Macchina的程序,它是用Rust编程语言编写的。所以我在Ubuntu系统中用软件包管理器安装了Rust,然后用Rust的软件包管理器condacargo安装了Macchina
当我试图启动Macchina程序时,输出说程序没有安装。再次,我试图安装它,并得到以下错误消息:
Updating crates.io index
Ignored package `macchina v0.5.9` is already installed, use --force to override
warning: be sure to add `/home/sk/.cargo/bin` to your PATH to be able to run the installed binaries

正如你可能已经知道的,当我们安装一个用Rust编写的程序时,可执行二进制文件将被保存在Cargo的bin目录下(i.e.)。~ / .cargo / bin
$ ls ~/.cargo/bin/
macchina
如您所见,Macchina二进制文件保存在cargo bin目录中。在安装Rust之后,我应该将这个目录添加到我的$PATH中,但是我忘记了。因此出现了上述问题!
如果我使用安装程序脚本安装Rust,我就不会遇到这个问题。因为rustup脚本会通过修改位于~/.profile的概要文件,自动将Cargo的bin目录添加到环境变量中。但是在本例中,我在一个环境中安装了Rust,并且cargo bin目录没有添加到PATH.rustup$PATHconda中。
在$PATH中列出环境变量
让我们列出所有使用command.$PATHecho的环境变量
$ echo $PATH
输出:
/home/sk/anaconda3/envs/rustenv/bin:
/home/sk/anaconda3/condabin:/home/sk/.nvm/versions/node/v15.0.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

正如您在上面的输出中看到的,目录在$路径中不可用,因此程序Macchina不能使用它的名字启动。但是,我可以通过键入程序的完整路径来启动程序,如下所示:~/.cargo/bin/
$ ~/.cargo/bin/macchina
为了在任何位置使用程序名运行程序,我们需要将其添加到PATH中,如下节所示。
Linux下添加目录到PATH中
添加目录,例如在$PATH下执行:/home/sk/.cargo/bin/
$ export PATH=/home/sk/.cargo/bin:$PATH
请注意目录路径末尾的冒号(:)。
现在使用command:echo再次列出环境变量
$ echo $PATH
输出:
/home/sk/.cargo/bin:/home/sk/anaconda3/envs/rustenv/bin:/home/sk/anaconda3/condabin:/home/sk/.nvm/versions/node/v15.0.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

看到了吗?目录已被添加到。从现在开始,我可以通过调用程序名来启动安装在这个目录中的任何程序。~/.cargo/bin$ path
请注意这是暂时的。退出当前会话后,环境变量将消失。要使更改永久生效,请编辑文件:~/.bashrc
$ nano ~/.bashrc
在末尾添加以下一行:
export PATH=/home/sk/.cargo/bin:$PATH

按ctrl +OCTRL+X保存文件并退出
执行如下命令使修改立即生效:
$ source ~/.bashrc
如果您想在系统范围内执行此操作,请在./etc/profile中添加相同的行。
相关推荐
-
MySQL 安装失败,提示Apply Security Settings 的处理办法
MySQL 安装失败,提示Apply Security Settings 的处理办法2025-04-20 01:54:57 -
MySQL事务隔离级别详解2025-04-20 01:44:01
-
一文说清nginx规则匹配(含案例分析)2025-04-20 01:10:02
-
运维服务篇:Nginx常用功能(rewrite重定向/location定位等)
运维服务篇:Nginx常用功能(rewrite重定向/location定位等)2025-04-20 00:55:25 -
php定义变量规则不能包含哪些字符?2025-04-20 00:27:24