如何在PATH中添加更多目录

打响电话

好的,首先,我是Linux的新手,正在使用Linux Mint。

我了解到,当我想向我的目录PATH(特别是我的主目录)添加更多目录时,我需要一个看起来像的Bash命令PATH=$PATH:~,对吗?

问题是为什么我需要放在$PATH那儿?它代表系统路径,对吗?如果我只打字会行PATH=~吗?我的意思是我只想将我的主目录添加到现有PATH目录中。

你好

在Unix中,某些环境变量$PATH是特殊的,例如它们是项目列表,而不仅仅是单个项目。对于这些类型的列表,冒号(:)分隔列表中的项目。

因为$PATH您仅打印它就可以看到它:

$ printenv PATH
/sbin:/bin:/usr/sbin:/usr/bin

如果要添加其他项目,则必须包括上一个列表以及新项目。实际上,这就是您说的话PATH=$PATH:<new item>

$ PATH=$PATH:/path/to/some/dir
$ printenv PATH
/sbin:/bin:/usr/sbin:/usr/bin:/path/to/some/dir

请记住,这些更改仅在运行它们的外壳上是本地的。如果您希望更改$PATH在重新启动之间保持不变,或在其他Shell实例中显示,则需要将其添加到配置文件中,以便将其作为默认设置的一部分进行设置。

通常,对于用户而言,这就是您对这些文件~/.bashrc所做的操作~/.bash_profile

export PATH=$PATH:$HOME/bin:$HOME/somedir

添加这样的行会修改您的$PATH

替代$PATH用法

如果您只是希望能够运行不在您自己范围内的脚本和可执行文件,则$PATH可以使用此方法而不是将其添加到来轻松解决$PATH

这是一个场景,可以说我们有一个这样的可执行文件:

$ ls -l helloexec.bash
-rwxr-xr-x 1 user1 user1 31 Aug 12 07:45 helloexec.bash

但是它不在,$PATH因此我们无法运行它:

$ helloexec.bash
bash: helloexec.bash: command not found...

所以您在想,哦,我必须将其添加到我的$PATH程序中才能运行它。但是,您可以运行当前目录中的任何可执行文件,如下所示:

$ ./helloexec.bash
hello bash

在Unix类型的操作系统中,必须内部化与脚本和可执行文件进行交互的方法,而不是坚持将它们全部放在$PATH

加入的危险 $PATH

在示例中,您表明您想添加~到中$PATH多年来,我已经看到很多用户想要这样做,或者想这样做,直接将目录放在他们的目录上将为您带来极大的便利和时间的节省$PATH

这通常不是解决问题的好方法。相反,您应该认真思考要在Linux / Unix中存储可执行文件的位置,并且只添加对关键位置至关重要的目录,例如on $PATH

大多数将通常添加系统目录,然后将添加$HOME/bin$PATH并保留该目录。将更多的内容放在设备上$PATH可能会导致意想不到的后果,例如命令无法按预期运行,甚至更糟,从而导致使系统更容易受到威胁的情况。

例如,假设您从网站上下载了一些脚本,却没有意识到您的网络浏览器已更改为将文件保存到$HOME现在,已下载的文件处于可以被攻击者调用的位置。

或者,如果您的命令处于其他目录之前$PATH的状态~,例如:

$ printenv PATH
/home/vagrant:/sbin:/bin:/usr/sbin:/usr/bin

而且我们不小心下载了这样的可执行文件:

$ cat ps
#!/bin/bash

/bin/ps -eaf | grep -v "spyware"

现在,当有人跑步时ps,他们正在使用的是该版本,而不是预期的版本/bin/ps

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在输出中添加更多值?

来自分类Dev

如何在添加到PATH的目录中运行可执行文件?

来自分类Dev

如何在jquery中的许多段落中添加“更多”链接?

来自分类Dev

如何在CVS中添加目录

来自分类Dev

如何在Jasper报表中添加目录

来自分类Dev

如何在CVS中添加目录

来自分类Dev

如何在div中动态添加更多宽度?

来自分类Dev

如何在mysqli的更多表中添加一列?

来自分类Dev

GNUPLOT如何在标签的索引中添加更多空间

来自分类Dev

如何在spark / scala的getOrElse()中添加更多代码逻辑?

来自分类Dev

如何在R中添加更多颜色以绘图

来自分类Dev

如何在拍打身体中添加更多项目

来自分类Dev

如何在seaborn barplot中添加更多网格?

来自分类Dev

如何在多个输入标签html中添加更多图像?

来自分类Dev

如何在此框中添加更多文本?

来自分类Dev

如何在JavaScript中为IF语句添加更多案例

来自分类Dev

如何在mysqli的更多表中添加一列?

来自分类Dev

如何在我的pf规则中添加更多IP地址?

来自分类Dev

如何在Google图表中添加更多网格线?

来自分类Dev

如何在 Excel 图表中添加更多信息?

来自分类Dev

如何在js中添加更多输入名称?

来自分类Dev

如何在通用组合框中添加更多选项

来自分类Dev

如何在rails中截断和添加阅读更多

来自分类Dev

如何在表格列中添加阅读更多或更少按钮

来自分类Dev

如何在单个按钮中添加更多功能

来自分类Dev

如何在 Laravel Artisan 生成的代码中添加更多内容?

来自分类Dev

如何在目录中添加tar归档文件中的文件?

来自分类Dev

如何在页面底部添加更多滚动

来自分类Dev

如何在PHP之后添加更多HTML?

Related 相关文章

热门标签

归档