echo $HOME 等于 echo ${HOME}
变量的设定规则
1. 变量与变量内容以一个等号『=』来连结,如下所示:
『myname=VBird』
2. 等号两边不能直接接空格符,如下所示为错误:
『myname = VBird』或『myname=VBird Tsai』
3. 变量名称只能是英文字母与数字,但是开头字符不能是数字,如下为错误:
『2myname=VBird』
4. 变量内容若有空格符可使用双引号『"』或单引号『'』将变量内容结合起来,但
o 双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示:
『var="lang is $LANG"』则『echo $var』可得『lang is zh_TW.UTF-8』
o 单引号内的特殊字符则仅为一般字符 (纯文本),如下所示:
『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』
5. 可用跳脱字符『 \ 』将特殊符号(如 [Enter], $, \, 空格符, '等)变成一般字符,如:
『myname=VBird\ Tsai』
6. 在一串指令的执行中,还需要藉由其他额外的指令所提供的信息时,可以使用反单引号『`指令`』或 『$(指
令)』。特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号! 例如想要取得核心版本
的设定:
『version=$(uname -r)』再『echo $version』可得『3.10.0-229.el7.x86_64』
e.g. 何进入到您目前核心的模块目录?
[dmtsai@study ~]$ cd /lib/modules/`uname -r`/kernel
[dmtsai@study ~]$ cd /lib/modules/$(uname -r)/kernel # 以此例较佳!
其实上面的指令可以说是作了两次动作,亦即是:
(1). 先进行反单引号内的动作『uname -r』并得到核心版本为 3.10.0-229.el7.x86_64
(2). 将上述的结果带入原指令,故得指令为:『cd /lib/modules/3.10.0-229.el7.x86_64/kernel/』
在指令下达的过程中,反单引号( ` )这个符号代表的意义为何?
答:在一串指令中,在 ` 之内的指令将会被先执行,而其执行出来的结果将做为外部的输入信息!
7. 若该变量为扩增变量内容时,则可用 "$变量名称" 或 ${变量} 累加内容,如下所示:
『PATH="$PATH":/home/bin』或『PATH=${PATH}:/home/bin』
8. 若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量:
『export PATH』
9. 通常大写字符为系统默认变量,自行设定变量可以使用小写字符,方便判断 (纯粹依照使用者兴趣与嗜好) ;
10. 取消变量的方法为使用 unset :『unset 变量名称』例如取消 myname 的设定:
『unset myname』
命令别名:
alias 例子:alias lm='ls -al | more'
取消: unalias lm
login shell 的配置文件读取流程
其中这三个按顺序只读取一个,第一个不存在再读取第二个。1. ~/.bash_profile 2. ~/.bash_login 3. ~/.profile
source :读入环境配置文件的指令
source ~/.bashrc <==底下这两个指令是一样的!
. ~/.bashrc
利用 source 或小数点 (.) 都可以将配置文件的内容读进来目前的 shell 环境中!