我在 bin 中保存了一个 shell 脚本(由我创建)。当我运行该程序时,为了避免使用 ./ 来运行脚本,我需要将脚本复制到 PATH 变量指定的目录之一。创建的 bin 目录不在路径列表中。因此,要添加到 PATH 列表中:
export PATH=~/bin:"$PATH"
但是这个目录没有保存到 PATH 列表中。当我打开一个新的终端窗口时,我需要再次导出它才能运行脚本。我如何才能将其永久添加到 PATH 列表中?此外,如果我尝试将脚本移动到当前 PATH 列出的目录,它会显示 PERMISSION DENIED。我必须成为 root 用户才能移动它吗?
答案1
您可以添加export PATH=~/bin:"$PATH"
到您的~/.profile
文件中。将其添加到底部,保存然后重新连接到 SSH。
或者,如果您希望此更改对任何用户都具有系统范围的影响,您可以编辑中的路径/etc/environment
。
答案2
这个对我有用。
打开你的 .bashrc gedit ~/.bashrc
文本编辑器已打开。
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
粘贴此内容并编辑 .bashrc。关闭文本编辑器后,source ~/.bashrc
如果出现权限被拒绝的情况,则表示脚本不是可执行格式。
chmod 755 program_name
这应该可以解决问题。打开新的终端,它就可以正常工作了。
答案3
将自定义主目录路径添加到 $PATH
- 编辑您的
~/.profile
在所有 $PATH 相关变量之后添加此行:
export PATH="$PATH:$HOME/your-home-dir-path"
保存存档。
注销/重新启动。
将其添加到您的~/.profile
启用此更改的终端和文本模式。
万一您的自定义路径是~/bin
或~/.local/bin
!!!
正如问题评论中所说,这些位置已经包含在 Ubuntu 的 PATH 中!
您可以:
- 创建目录(例如
~/bin
)。 - 将您的脚本复制到其中。
使用以下命令将其权限更改为可执行:
chmod +x ~/bin/script.sh
注销/登录。或者,您可以执行
source ~/.profile
答案4
当你跑步时
export PATH=~/bin:"$PATH"
您正在设置 PATH 环境变量并将其导出到正在运行的父终端。这就像说“新的 PATH 变量是这个,传播这个消息”。它可以工作,但是一旦您重新启动计算机,PATH 将返回到配置的那个。要使更改永久生效,您必须编辑主文件夹中的 .profile 文件。它通常包含以下内容:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
如果存在,它将自动包含 $HOME/bin 文件夹。但如果不存在,您可以添加上述命令,或者:
export PATH="$PATH:$HOME/bin"
该文件和该文件夹将包含在用户每个会话的 PATH 中。
您需要 root 权限才能在 /usr/bin 目录中进行写入,但如果您更改 .profile 文件,则没有必要。