Linux(入门基础):52---变量的查看(env、set、declare、export、locale)
一、env命令
1.功能
- 可以查看Linux系统的环境变量
2.查看
一些重要的环境变量
- HOME:用户的家目录
- SHELL:这个环境素哟使用的SHELL程序
- HISTSIZE:这个与历史命令有关,曾经执行过的命令都会被记录下来。此项代表可以容纳多少条历史命令
- MAIL:我们使用mail命令收信时,系统会去读取的邮箱文件
- PATH:执行文件查找的路径,文件查找的顺序与PATH的变量的顺序有关,目录与目录中间以:冒号隔开
- LANG:当前的语系类型
- RANDOM:随机数的变量
二、set、delcare命令
set与declare查看变量的功能相同,下面只介绍set
1.功能
- 可以观察所有的变量(包含环境变量、与操作界面有关的变量与自定义变量),比env更全
2.查看
因为内容过多,此处配合more命令进行查看
一些比较重要的环境变量:
- PS1:命令提示字符格式。就是我们命令行最前面的命令提示符,可以修改。不同的Linux版本与系统可能内容会不同。命令提示符中的一些特殊字符含义如下
\d | 可显示出【星期\月\日】这种格式,例如:Mon Feb 2 |
\H | 完整的主机名 |
\h | 仅去主机名在第一个小数点之前的名字 |
\t | 显示时间。为24小时格式HH:MM:SS |
\T | 显示时间,为12小时格式HH::MM:SS |
\A | 显示时间,为24小时格式的HH:MM |
\@ | 显示时间,为12小时格式的am/pm格式 |
\u | 目前用户的账号名称,如dongshao |
\v |
BASH的版本信息。例如:4.2.46版本的,仅取4.2显示 |
\w | 完整的工作目录 |
\W | 利用basename函数取得工作目录名称,所以仅会列出最后一个目录名 |
\# | 会显示一个数字,表示当前执行的命令为第几次执行的命令 |
\$ | 提示字符,如果是root时,提示字符为#,否则就为$ |
更改PS1的格式,更改完之后,可以看到最前面命令提示符的格式改变
PS1='[\[email protected]\h \w \A #\#]\$ '
- $:美元符号本身也是个变量,代表当前面shell的进程号,就是PID。使用echo ${$}可以查看当前的进程号
- ?:问号也是个变量,代表上一次执行命令的返回值。如果上一次命令执行成功,返回0值?为0,如果上一次命令执行失败,返回非0值?为非0值
- OSTYPE、HOSTTYPE、MACHTYPE:这几个变量代表主机硬件与内核的等级信息
三、export
1.功能
- export功能之一可以设置环境变量
- 另外一个功能就是显示所有的环境变量,比env更详细。也正是此篇文章介绍的内容
2.演示
四、locale命令
1.功能
- locale -a:查看当前Linux系统支持的语系
- locale:查看当前各种语系变量的设置值
2.案例
- 当使用-a参数时,可以查看当前Linux支持的语系(图片有所省略)
zh_CN.utf8:Unicode的简体中文编码
- 单独使用locale时,可以查看各种语系变量所使用的语系
LANG变量:代表主语言环境所使用的语系
LC_TYPE变量:代表字符(文字)辨识的编码
LC_NUMERIC变量:数字系统的显示数据
......其他语系变量省略介绍
3.语系变量的设置
- 前提:我们设置语系变量时,一般建议更改LANG与LC_ALL这两个变量,因为设置这两个变量,其他语系变量都会替换成LANG与LC_ALL这两个变量的值。所以更改语系,一般建议修改LANG与LC_ALL
- 注意事项:设置语系环境变量,只在此次命令行执行中有效,退出后失效,又恢复成原样
- 方法:LANG直接用=号赋值即可。LC_ALL需要使用export设置
我们设置LANG=zh_CN.UTF-8,发现其他的变量都变成zh_CN.UTF-8
在设置LC_ALL=en_US.UTF-8,发现其他的变量都变成了en_US.UTF-8