更改Path变量后,Bash命令不起作用

时间:2015-08-14 14:37:01

标签: linux macos bash command

我无法使用ls,bash ..任何在更改路径后都很关键的常用命令。 我不确定它之前是什么(因为我也不能做vi命令)。 我跑了第一个命令,并意识到第一个命令有一个错字 - 不是PATH,但是我输入了PATh。 所以我马上跑了下一个:

export PATH="/usr/local/bin:$PATh"
export PATH="/usr/local/bin:$PATH"

然后vi,ls,bash命令开始无效。

我确实回显了$ PATH以查看PATH。

usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/local/bin:

这就是我得到的。任何帮助表示赞赏。

5 个答案:

答案 0 :(得分:1)

您应该能够var table = [ ["name1", 1, 2], ["name2", 2, 3], ["name3", 3, 0], ["name4", 4, 1], ["name5", 5, 3] ]; function deepcheck(dad) { for (var i = 0; i < table.length; i++) { if (table[i][2] === dad) { console.log('{' + table[i][1] + '}'); var h = table[i][1]; deepcheck(h); } } } for (var i = 0; i < table.length; i++) { if (table[i][2] === 0) { console.log('[{'); console.log(table[i][0] + ',' + table[i][1] + '['); var t = table[i][1]; deepcheck(t); } }重置PATH变量,尽管它可能会踩到您在此过程中配置的其他一些变量。您也可以从中设置适当的行以设置source /etc/profile并重做当前环境中的

此外,您始终可以指定临时所需的可执行文件的完整路径。例如,如果您想将PATH与当前状态的PATH一起使用,则可以使用grep(或者/bin/grep,具体取决于您的系统)

答案 1 :(得分:0)

1&gt;尝试加载默认的.profile脚本

{{1}}

2&gt;只需从当前会话退出 并重新登录。

答案 2 :(得分:0)

由于PATh错误,您似乎已“破坏”了bash shell~ / .bash_profile脚本。 (问题明确指出bash,所以我在这种情况下回答。)

由于PATH“已损坏”,您需要使用其完全限定的路径访问编辑器。

/usr/bin/vi ~/.bash_profile

这应该允许您将PATh修改为PATH

如果您发现需要经常编辑PATH环境变量,那么这个小bash函数可能会有所帮助。

vipath() {
  local tmpfile=$(mktemp /tmp/vipath-edit.XXXXXX)
  echo "$PATH" | tr ':' '\n' > "$tmpfile"
  vi "$tmpfile" && PATH=$(paste -s -d ':' "$tmpfile")
  rm "$tmpfile"
}

注意:有更好的方法可以确保删除我在此代码段中未使用的$ tmp文件。在多用户系统上,有更好的方法可以确保临时文件不在共享位置。

如果要在PATH中添加目录位置,而不添加重复的位置,这个小bash函数可以帮助预先添加目录位置。

pathadd() {
  if [ -d "$1" ] && [[ ! ":$PATH:" =~ ":$1:" ]]
  then
    PATH="$1:$PATH"
  fi  
}

答案 3 :(得分:0)

我在 RHEL8 中也有同样的情况,我为某个目录做了一个导出路径,然后没有命令再工作了。我可能执行了错误的export PATH 命令。

我收到了这样的消息:

>$ yum
bash: yum: command not found...
Install package 'yum' to provide command 'yum'? [N/y] n

幸运的是,我有其他一些类似的系统可以从中获取路径,所以我做到了:

export PATH=/home/USER/.local/bin:/home/USER/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbine

将 USER 更改为您自己的。

要使其永久化:添加到 $HOME/.bashrc 中:

export PATH=$PATH:<YOUR PATH HERE>

答案 4 :(得分:-2)

当您执行export PATH="/usr/local/bin:$PATH"时,将PATH设置为/ usr / local / bin:加上之前PATH变量中的任何内容。这基本上将字符串“/ usr / local / bin:”与旧路径连接起来。这就是为什么你的PATH重复这么多,你必须运行该命令几次。

尝试运行此代码:export PATH="/usr/local/bin"