【本文只是小白整理的小笔记,不一定能用,只是在自己机子上解决了,仅供参考哦!专业人士可以路过QWQ】
这篇小笔记主要解决以下两个问题:
1、如何对软件设置永久环境变量?
2、明明加入了环境变量,正常环境下可以打开软件,但在root权限下为什么就“找不到该命令”了?
作为一个刚入门的Linux小白,这两周差点被这个系统整哭,因此好不容易解决掉的一些问题,在这里略微记录一下,也当作是做个笔记了,以后还能翻回来看看。这次的笔记是基于UBUNTU 19.10,如何设置永久环境变量这样一个小问题。(由于刚接触linux,下面有些术语如有不妥欢迎指出QWQ)
其实问题一开始是因为matlab,不过其他软件也是一样的,这里就用matlab举个栗子吧!根据网上的步骤,安装好matlab后,只要把matlab加入到环境变量中即能在terminal中直接启动,浏览了多个“如何加入环境变量”的教程后,发现主要涉及到的文件有这几个: /etc/profile, /etc/.profile,/etc/.bash_profile,~/.bashrc,emmmm...我第一次看见这些也是...这都是什么鬼!而且长得怎么都差不多啊??经过简单的百度,嗯大概就是一些能够设置环境变量的文件,而文件名前面有 “.” 的则其实表示该文件为隐藏文件。
但是!设置个环境变量而已!怎么那么多啊?怎么每个教程都不太一样?然后整了好几天才发现,其实并没有那么多......而是不同的ubantu版本,对应的文件名称不一样!!啊!所以!每个机子可能因为版本不同,设置环境变量的文件名字很可能是不一样的!!所以要是还没弄清楚的话别乱加乱改!(改错了再一个个找回来删掉真的是豹哭)
比如UBANTU 19.10里面,就只有/etc/profile,~/.bashrc 这两个文件,其他几个都是没有的,但实际上加入环境变量的方法和最后的效果是一样的。如果发现机子没有这两个文件,可以尝试一下上面提到的其他文件哦,当然也可以先查一下自己的UBUNTU版本相关的设置文件是什么。
扯远了扯远了...话说回来,那这两个文件有啥区别呢?
(1)/etc/profile :在这个文件中加入环境变量,可以对所有用户起作用,相当于是一个总的环境变量设置文件。因此一般选择在该文件中加入环境变量。
(2)~/.bashrc :在这个文件中加入环境变量,只对当前用户起作用。
在这两个文件中加入环境变量的共同点是:这两个文件在开机的时候都会自动执行,因此可以保持环境变量的永久性,也就是不用每次开机都要export一下matlab的路径,是一个一劳永逸(懒到不行)的办法呀~
下面就是如何添加环境变量的方法了。
以下是加入环境变量的最最最常见步骤:
1、打开terminal,输入sudo vim /etc/profile 或 sudo vim ~/.bashrc
2、输入密码后,按 i 进入编辑环境
3、在文件最后加入:export PATH=$PATH:/media/q/sd1/matlab_R2019/bin/
其中绿色部分是需要加入环境变量的软件的路径,根据自己的软件所在路径进行修改即可。
4、按 esc 退出编辑环境,然后在英文输入法状态下输入“:wq”(表示保存并退出),回车
5、输入source /etc/profile 或 source ~/.bashrc,激活该环境变量(重启电脑也可以~)
6、为了检验软件路径是否已经成功加入环境变量,输入 echo $PATH,若在返回中能看到所加软件的路径,说明加入环境变量成功。这时可以开一个新的 terminal 直接输入matlab,如果成功打开matlab,那么恭喜你设置成功啦!
嗯我也安心地使用了几天=w=~ 直到某一天!!我需要使用权限来打开matlab,于是在 terminal 中输入 sudo matlab
这时候奇迹出现了:“未找到该命令”......What?!我不是已经加入环境变量了吗?怎么加了个权限就打不开了??没有权限直接在terminal 中输入 matlab 反而能打开呢?? (注意这个系统版本是UBUNTU 19.10哦,18版本好像没有这个问题,我个人推测,可能是因为不同版本的UBUNTU在开机时执行的文件顺序不一样所导致的)
然后开始了下面的测试:
1、在 terminal 中输入 echo $PATH,发现返回中存在matlab的路径,因此直接输入matlab是可以打开软件的,没毛病
2、在terminal 中先进入root权限,输入 su root ,输入密码后,再输入 echo $PATH ,奇迹又出现了!在root权限下居然没有 matlab 的路径!!难怪在terminal中输入 sudo matlab 说找不到该命令呢!
找到问题的源头了,就得找方法解决,整了老半天,终于知道该怎么做了!还记得在profile文件中加入环境变量后,我们source了一下,来激活这个环境变量么?没错,问题就是出在这里!!UBANTU 19.10在开机后,并不会首先执行 /etc/peofile 这个文件,因此在最后加入该路径后也只仅仅是加入了,但并没有被激活。
因此,只要在每次开机后,第一时间就在terminal中执行一句 source /etc/profile , 然后再输入 matlab 或者sudo matlab 就都能打开啦!(不信可以在 root 权限下输入 echo $PATH 看看~)
但是,还是好麻烦啊有木有!万一我好久没用了忘记 profile 这个文件了怎么办!!下面划重点了,以下操作可以让你无论是在正常环境,还是在root环境下都能轻松快乐地打开matlab~(或者其他软件)
1、按照上面的方法在 /etc/profile 中加入matlab 的路径,把matlab加入环境变量
2、输入 sudo vim ~/.bashrc ,按照上面的编辑方法,在该文件最后加入 source /etc/profile ,保存退出即可
因为UBUNTU 19.10开机进入自己的用户环境后必定会执行 ~/.bashrc 文件,因此只要在该文件最后加入source激活一下环境变量,就解决所有问题啦!
这次的笔记就记录到这里~如果中间有什么错误的地方欢迎指正!!
(Linux虐我千万遍,老子一定要征服Linux! TAT)