Shell 脚本源文件未保存

Shell 脚本源文件未保存

我在 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

  1. 编辑您的~/.profile
  2. 在所有 $PATH 相关变量之后添加此行:

    export PATH="$PATH:$HOME/your-home-dir-path"

  3. 保存存档。

  4. 注销/重新启动。

将其添加到您的~/.profile启用此更改的终端和文本模式。

万一您的自定义路径是~/bin~/.local/bin!!!

正如问题评论中所说,这些位置已经包含在 Ubuntu 的 PATH 中!

您可以:

  1. 创建目录(例如~/bin)。
  2. 将您的脚本复制到其中。
  3. 使用以下命令将其权限更改为可执行:

    chmod +x ~/bin/script.sh

  4. 注销/登录。或者,您可以执行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 文件,则没有必要。

相关内容