![Ubuntu 搞乱了 PATH](https://linux22.com/image/129329/Ubuntu%20%E6%90%9E%E4%B9%B1%E4%BA%86%20PATH.png)
在尝试配置 go 编程语言时,我弄乱了 linux 中的 PATH。如果不指定路径,我无法执行任何命令:
frede@frede-Lenovo-V110-15ISK:~$ ls
Command 'ls' is available in '/bin/ls'
The command could not be located because '/bin' is not included in the PATH environment variable.
ls: command not found
frede@frede-Lenovo-V110-15ISK:~$ echo $PATH
/home/frede/bin:/home/frede/.local/bin:PATH:/home/frede/go/bin
但是我可以用指定的路径运行它。我尝试通过查看类似线程来解决这个问题,但就是找不到适合我的解决方案。你能帮助我吗?
更新
frede@frede-Lenovo-V110-15ISK:~$ grep 'PATH=' ~/.profile ~/.bashrc ~/.bash_profile /etc/profile
/home/frede/.profile:PATH="$HOME/bin:$HOME/.local/bin:$PATH"
/home/frede/.bashrc:export GOPATH=/home/frede/go
/home/frede/.bashrc:export PATH=PATH:/home/frede/go/bin
grep: /home/frede/.bash_profile: No such file or directory
答案1
恢复
你的/etc/profile
.我不知道你是如何搞乱你的路径的,但是采购/etc/profile
应该会让事情恢复正常。只要你没有编辑那个。所以试试这个:
. /etc/profile
正确的路径设置
假设您使用的是 bash,您可以使用.bashrc
file (而不是.profile
)来设置路径。您可以使用与您可能在以下位置找到的条目类似的条目/etc/profile
:
# set PATH so it includes your private Go bin folder if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/go/bin:$PATH"
fi
如果您不使用 bash,请调整您的私有文件中的 PATH(与上面的方式相同),.profile
而不是.bashrc
.
最后,获取您修改过的文件:
. ~/.bashrc # or
. ~/.profile
(注:.profile
通常来源.bashrc
——请参阅参考资料以获取更多信息)
如果您用错误的 PATH 定义污染了某些文件,则需要将其清除。请关注 Terdon 在您的问题下的评论。
参考
- https://serverfault.com/questions/261802/what-are-the-function-differences- Between-profile-bash-profile-and-bashrc
- https://stackoverflow.com/questions/415403/whats-the-difference- Between-bashrc-bash-profile-and-environment
- https://superuser.com/questions/789448/choosing- Between-bashrc-profile-bash-profile-etc
- ~/.profile、~/.bashrc、~/.bash_profile、~/.gnomerc、/etc/bash_bashrc、/etc/screenrc ... 之间有什么区别?