本文和大家分享的主要是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
公社