[Linux] Shell变量

来源:互联网 发布:怎么应聘淘宝主播 编辑:程序博客网 时间:2024/05/16 00:59

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/bash
unset用于取消变量,如:
# export a=1# echo $a1# unset a# echo $a  -- 返回空

语系变量 - locale和LANG

我们通过locale命令可以获得当前的语系编码,如下所示:
# localeLANG=en_US.UTF-8LC_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/i18nLANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16"

变量的声明 - declare

由declare声明的变量默认是自定义的变量,如果加上-x参数表示定义为环境变量(同export的效果一样)

对用户的资源限制 - ulimit

执行ulimit -a即可列出当前用户资源使用限制情况:
# ulimit -acore file size          (blocks, -c) 0data seg size           (kbytes, -d) unlimitedscheduling priority             (-e) 0file size               (blocks, -f) unlimitedpending signals                 (-i) 29823max locked memory       (kbytes, -l) 64max memory size         (kbytes, -m) unlimitedopen files                      (-n) 65535pipe size            (512 bytes, -p) 8POSIX message queues     (bytes, -q) 819200real-time priority              (-r) 0stack size              (kbytes, -s) 10240cpu time               (seconds, -t) unlimitedmax user processes              (-u) 1024virtual memory          (kbytes, -v) unlimitedfile locks                      (-x) unlimited


1 0
原创粉丝点击