共计 1051 个字符,预计需要花费 3 分钟才能阅读完成。
前言
在看别人的博客解决 angular cli
安装的环境变量配置的时候,由于我不小心出错,把 $
符敲成了 S
,他报错找不到某些命令。
再一敲,发现绝大多数的命令都不能用了。
很明显这就是 PATH 设置错误导致的,但我不知道该怎么去解决呢?
解决
当我以为要重新装 Linux 系统的时候,我从谷歌上找到了答案。
由于我的语言是中文(主要当时懒,觉得中文很顺手,却早已忘了老师的提醒)。幸好查中文也能查到,从别的博客中找到解决办法。
问题主要是 PATH 环境变量变化,导致无法找到基本命令。
解决办法:
好多命令的位置在 /usr/bin
恢复办法如下:
1. /usr/bin/sudo vi /etc/profile (由于找不到 sudo,所以必须写全路径,其他命令如果提示找不到,也需要写全路径)
2. 末尾添加以下内容后保存
export PATH=$PATH:/sbin:/usr/bin:/usr/sbin
3. 重新启动系统或执行以下命令生效
source /etc/profile
虽然绝大部分命令都不能用了,但是幸亏 export 命令还能用
这样所有的命令就都回来了, 我们来验证一下。
echo $PATH
什么是 PATH
PATH 是 Linux 环境变量的一种,简单来说就是指定命令的搜索路径。PATH 控制的是系统会去哪些目录中寻找可执行的程序的环境变量。
当你输入命令的时候 Linux 会去查找 PATH 路径下的命令。
以下是摘自一位知乎网友的例子:
比如说你想执行一条命令 ls。
如果不设置这个环境变量,除非你知道 ls 放在 /bin 下,告诉系统去执行 /bin/ls, 否则系统会告诉你我不知道 ls 在哪,”command not found”。现在有了 $PATH 这个变量,系统会优先去这个变量的值里指定的目录去找 ls,如果都找不到,才会告诉你 ”command not found”, 是不是方便很多呢?而且他的值可以自己去设定的。
PATH 声明的用法
PATH = $PATH:<PATH 1>:<PATH 2>:<PATH 3>:......
export PATH
你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登录时生效。
可以利用 each $PATH 查看当前系统 PATH 路径。
在我的错误中,我不小心错误的修改了 PATH 环境变量的地址,使得大部分命令都找不到了。
总结
在以后修改 PATH,我们可以增添 PATH 的路径,即
PATH = PATH + ":/usr/locar/new/bin"
这样应该就会避免原来的指令找不到的情况了。
装 Linux 时要把语言换成英文,不然报错搜索都搜索不到解决办法。