[Linux]Shell变量
[Linux]Shell变量
Shell变量分为环境变量和自定义变量,这两则的差异在于该变量能否被子进程使用,看下面的一个示意图:
如果是环境变量,子进程中还可以继续使用,但如果是自定义的变量,子进程里将失效。
用env查看环境变量
常见的环境变量如下: 1)HOME:用户的主目录(cd ~) 2)SHELL:用户的默认shell 3)HISTSIZE:历史记录条数 4)MAIL:邮件信箱文件 5)PATH:执行文件查找路径 6)LANG:语系用set查看环境变量和自定义变量
比较重要的自定义变量有: 1)PS1:提示符设置 2)$:本shell的PID 3)?:上个执行命令的返回码用export把自定义变量变成环境变量
上面我们提到过,只有环境变量才能被子进程使用,所以如果你想让某个自定义变量可以被子进程使用,就使用export命令把它变成环境变量。变量的显示和取消 - echo unset
echo用于显示变量的值,如:# echo $SHELL /bin/bashunset用于取消变量,如:
# export a=1 # echo $a 1 # unset a # echo $a -- 返回空
语系变量 - locale和LANG
我们通过locale命令可以获得当前的语系编码,如下所示:# locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=在实际使用中,其实只要设置LANG变量即可。默认的语系变量由以下文件定义:
# cat /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16"
变量的声明 - declare
由declare声明的变量默认是自定义的变量,如果加上-x参数表示定义为环境变量(同export的效果一样)对用户的资源限制 - ulimit
执行ulimit -a即可列出当前用户资源使用限制情况:# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 29823 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
评论暂时关闭