在Ubuntu 16.04中搞砸了PATH环境变量

时间:2017-01-30 12:32:44

标签: bash shell ubuntu terminal path

我尝试安装Anaconda以同时获取许多python包但是在python IDLE中遇到了一些问题,它说No package found所以必须在~/.bashrc中手动设置路径。

一旦我在~/.bashrc中设置路径,python中的IMPORT ERROR IDLE就解决了,但我现在无法在终端上使用命令。

我一直都会收到此错误。

sid@sids-ubuntu:~$ 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
sid@sids-ubuntu:~$ sudo
Command 'sudo' is available in '/usr/bin/sudo'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.
sudo: command not found
sid@sids-ubuntu:~$ mkdir aa
Command 'mkdir' is available in '/bin/mkdir'
The command could not be located because '/bin' is not included in the PATH environment variable.
mkdir: command not found

export PATH=/usr/bin:/bin找到了我的$PATH/etc/environment的内容。似乎两者都不同。

sid@sids-ubuntu:~$ export PATH=/usr/bin:/bin
sid@sids-ubuntu:~$ echo $PATH
/usr/bin:/bin
sid@sids-ubuntu:~$ cat /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Ubuntu不会在$PATH中查找/etc/environment吗? 如果是,那么$PATH/etc/environment不同的原因是什么?请帮我修理一下! 如果没有,Ubuntu在哪里寻找$PATH?请帮我解决一下!

3 个答案:

答案 0 :(得分:2)

请注意,您的/ etc / environment仅在重新启动时重新读取。

如果要更改路径,请务必同时包含现有部分。为此,请在新路径定义中添加$ PATH。

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

看看你的问题,在〜/ .bashrc中添加$ PATH应该可以解决问题。如果没有,请打开一个新终端并向我们显示

的输出
echo $PATH

答案 1 :(得分:0)

在向PATH添加某个目录时,最好不要覆盖以前的值,只需在最后一行的$HOME/bin添加中添加所需的目录(例如~/.bashrc)(并删除任何以前篡改PATH

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

并运行:

source ~/.bashrc

(或者只是打开终端的新会话)。

答案 2 :(得分:0)

PATH是一个环境变量,因此不会在任何文件中查找。

调用bash时会有几个文件来源(请参阅bash手册页中名为 INVOCATION 的部分),在获取这些文件时,可以设置环境变量PATH,分别进行操作。请注意,.bashrc 始终处理;请仔细阅读bash手册页,了解哪些文件包含在哪种情况下。