前言

在看别人的博客解决angular cli安装的环境变量配置的时候,由于我不小心出错,把$符敲成了S,他报错找不到某些命令。

bVbz9If

再一敲,发现绝大多数的命令都不能用了。

bVbz9IC

很明显这就是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::::......

export PATH

你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登录时生效。

可以利用each $PATH查看当前系统PATH路径。

在我的错误中,我不小心错误的修改了PATH环境变量的地址,使得大部分命令都找不到了。

总结

在以后修改PATH,我们可以增添PATH的路径,即

PATH = PATH + ":/usr/locar/new/bin"

这样应该就会避免原来的指令找不到的情况了。

装Linux时要把语言换成英文,不然报错搜索都搜索不到解决办法。

Logo

更多推荐