Shell:系统环境变量

Linux 是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。 通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。环境变量是全局的,设置好的环境变量可以被所有当前用户所运行的程序所使用。 用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

环境变量有很多,需要重点理解的就是 PATH

比如说:bwa软件就没有添加到环境变量,所以需要用全路径,指明使用电脑里面什么地方的bwa软件来做数据分析,而 samtools 我已经添加到环境变量了,所以可以直接调用。

而把安装好的软件添加到环境变量的方法有:

第一种方法

1
2
$ export PATH=/usr/local/webserver/mysql/bin:$PATH  ## 先添加
$ echo $PATH

上述方法的 PATH 在终端关闭后就会消失。所以还是建议通过编辑 /etc/profile 来改 PATH ,也可以修改家目录下的 .bashrc (即:~/.bashrc )。只不过通常情况下普通用户都是修改自己目录下的 .bashrc 文件。

第二种方法

1
2
3
4
5
$ vim /etc/profile
# 在最后,添加:
export PATH="/usr/local/webserver/mysql/bin:$PATH"
# 保存,退出,然后运行:
$ source /etc/profile,不报错则成功。

当然,还有很多其它的环境变量,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PATH:        决定了shell将到哪些目录中寻找命令或程序
ROOTPATH: 这个变量的功能和PATH相同,但它只罗列出超级用户(root)键入命令时所需检查的目录。
HOME: 当前用户主目录
USER: 查看当前的用户
LOGNAME: 查看当前用户的登录名。
UID: 当前用户的识别字,取值是由数位构成的字串。
SHELL: 是指当前用户用的是哪种Shell。
TERM : 终端的类型。
PWD 当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化。
MAIL: 是指当前用户的邮件存放目录。
HISTSIZE: 是指保存历史命令记录的条数
HOSTNAME: 是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
PS1: 是基本提示符,对于root用户是#,对于普通用户是$,也可以使用一些更复杂的值。
PS2: 是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”。# PS1=" Hello,My NewPrompt :) "
IFS: 输入域分隔符。当shell读取输入时,用来分隔单词的一组字符,它们通常是空格、制表符和换行符。

大部分并不需要背诵,我们要学会的其实是搜索技巧,碰到陌生的知识点,用于搜索。

转自 - 生信技能树 (链接不知道去哪里了!)