1.变量
shell中特殊变量:
序号 | 变量 | 含义 |
---|---|---|
1 | $0 | 当前脚本的文件名 |
2 | $n | 传递给脚本或函数的参数。n是一个数字,表示第几个参数 |
3 | $# | 传递给脚本或函数的参数个数 |
4 | $* | 传递给脚本或函数的所有参数 |
5 | $@ | 传递给脚本或函数的所有参数,被双引号包含时,与$*稍有不同 |
6 | $? | 上个命令的退出状态,或函数的返回值 |
7 | $- | 显示shell使用的当前选项 |
8 | $$ | 当前shell进程ID,对于shell脚本,就是这些脚本所在的进程ID |
9 | $! | 后台运行的最后一个进程的ID号 |
Linux环境变量:
查看变量命令:
env #显示所有环境变量
export #显示所有环境变量,同env数量相当
set #显示所有本地定义的shell变量,数量比env,export显示的多
操作变量:
unset varvalue #清除环境变量
set var=value #设置环境变量
export var=value #增加环境变量
readonly varvalue #设置变量为只读
环境变量设置与/etc/profile
文件中,如需增加,添加行export path=$path:/path1:/path2:/pathn
linux 变量种类:
- 永久的:需要修改配置文件,变量永久生效
- 临时的:使用export命令声明,变量在关闭shell时失效
设置变量的三种方法:
- 在/etc/profile文件中添加变量
- 在用户目录.bash_profile文件中增加变量(只对当前用户有效)
- 直接运行export命令定义变量(只对当前shell有效)
常用的环境变量:
BASH #bash shell的全路径
BASH_VERSION #bash shell的版本号
CONFIG_PROTECT #包含一系列用空格隔开的目录,更新时候会被portage保护
CONFIG_PROTECT_MASK #包含一系列空格隔开的目录,在更新时候不会被portage保护
EDITOR #包含修改文件内容的程序的路径,如nano、vi
EUID #记录当前用户的UID,如root用户值为0
FUNCNAME #在用户函数体内部,记录当前函数体的函数名
HOME #当前用户主目录
HISTCMD #记录下一条命令在history命令中的编号
HISTFILE #记录history命令记录文件的位置
HISTFILESIZE #设置HISTFILESIZE文件记录命令的行数
HOSTNAME #显示主机名
HISTSIZE #命令缓冲区大小
HOSTTYPE #显示主机架构,如i386,i686,x86,x64
KDEDIRS #包含一系列用冒号隔开的目录,里面是KDE相关资料
IFODIR #包含一系列冒号隔开的目录,命令info将在这些目录里搜索info页面
LOGNAME #当前用户的登录名
LANG #用来设置当前系统语言环境
LANGUGE #语言相关的环境变量,多语言可以修改此环境变量
MAIL #当前用户的邮件存放目录
MANPATH #包含一系列冒号隔开的目录,命令man会在这些目录里搜索man页面
MACHTYPE #显示主机类型的GNU标识,如主机架构-公司-系统-GNU
OLDPWD #记录之前的目录
PAGER #包含浏览文件内容的程序路径,如less/more
PS1 #基本提示符,对于root用户是#,对于普通用户是$
PATH #命令的搜索路径
PWD #记录当前目录
SHELL #当前用户shell类型