本文和大家分享的主要是linux 环境变量相关内容,一起来看看吧,希望对大家学习linux有所帮助。 通俗的讲,环境变量就是告诉电脑 (实际是操作系统)几个目录。这几个目录下存储几个执行文件,如前面显示的/usr/bin目录,大部分的系统命令都在这个目录下。 当我们输入命令mkdir时,系统就会在环境变量所代表的几个目录从前到后去查找,哪个里面有mkdir文件,然后去执行mkdir命令。 系统中环境变量的名字是PATH,其内容可通过下面的命令显示 (根据操作系统不同和配置不同,略有差别,但格式是统一的,:分割的一堆路径) $ echo $PATH /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin 所以如果我们想让自己的命令能被系统找到,就需要把命令所在的目录加到环境变量里面,怎么操作呢? 加到环境变量的路径必须是全路径,全路径指以/开头或以~开头的路径。 # 注意第一个PATH不含$, 第二个PATH有$符号 $ export PATH=$PATH:/home/ct $ echo $PATH /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ct 所以在以后安装了新的软件,或者写了新的脚本后,都把软件的可执行程序和可执行的脚本所在的目录,加到环境变量里面就可以了。 但是,在命令行中执行export,对环境变量所做的修改,只对当前终端有效,退出后就无效了。为了使得这一操作长期有效,我们需要把这句话写入一个文件中,一个登陆服务器就会被自动读取的文件中。 对于普通用户,在远程登录终端时,家目录下的~/.bash_profile (不是~/.bashrc)会自动被读取,所以我们需要把export语句加入到这个文件中。 # 这是我的~/.bash_profile中的内容,主要是最后一行。可以连续的加入多个路径。 if [ -f ~/.bashrc ]; then . ~/.bashrc fi if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi export PATH=$PATH:/home/ct:/home/bin:/home/soft/bowtie2/bin 前面提到,系统查找命令的顺序是从环境变量的第一个目录到最后一个目录,在第一次碰到查询的命令后,就调用执行。假如系统存在一个python命令,我们自己又安装了一个python (假如在/home/ct/anaconda/bin目录下),如果我们想执行自己的python程序,就需要把/home/ct/anaconda/bin写在$PATH前面,如下 # 注意$PATH的顺序 $ export PATH=/home/ct/anaconda/bin:$PATH 至此,我们可以熟练使用环境变量来简化命令的输入过程了,因为如果没有环境变量,我们就得需要运行/home/ct/anaconda/bin/python来运行python命令了 来源:Linux公社
|