一、env命令
- 功能:可以查看Linux系统的环境变量
- 查看:
- 一些重要的环境变量:
- HOME:用户的家目录
- SHELL:这个环境所使用的SHELL程序
- HISTSIZE:这个与历史命令有关,曾经执行过的命令都会被记录下来。此项代表可以容纳多少条历史命令
- MAIL:我们使用mail命令收信时,系统会去读取的邮箱文件
- PATH:执行文件查找的路径,文件查找的顺序与PATH的变量的顺序有关,目录与目录中间以:冒号隔开
- LANG:当前的语系类型
- RANDOM:随机数的变量
二、set、delcare命令
- set与declare查看变量的功能相同,下面只介绍set
- 功能:可以观察所有的变量(包含环境变量、与操作界面有关的变量与自定义变量),比env更全
- 查看:
一些比较重要的环境变量
- 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='[\u@\h \w \A #\#]\$ '
- $:美元符号本身也是个变量,代表当前面shell的进程号,就是PID。使用echo ${$}可以查看当前的进程号
- ?:问号也是个变量,代表上一次执行命令的返回值。如果上一次命令执行成功,返回0值?为0,如果上一次命令执行失败,返回非0值?为非0值
- OSTYPE、HOSTTYPE、MACHTYPE:这几个变量代表主机硬件与内核的等级信息
三、export
- 功能:
- export功能之一可以设置环境变量
- 另外一个功能就是显示所有的环境变量,比env更详细。也正是此篇文章介绍的内容
- 查看:
四、locale命令
- 功能:
- locale -a:查看当前Linux系统支持的语系
- locale:查看当前软件的语系
- 这个设置不会更改配置文件的值
演示案例
- 当使用-a参数时,可以查看当前Linux支持的语系(图片有所省略)。
- zh_CN.utf8:Unicode的简体中文编码
- 单独使用locale时,可以查看各种语系变量所使用的语系
- LANG变量:代表主语言环境所使用的语系
- LC_TYPE变量:代表字符(文字)辨识的编码
- LC_NUMERIC变量:数字系统的显示数据
- ......其他语系变量省略介绍
语系变量的设置
- 前提:我们设置语系变量时,一般建议更改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
五、localectl
- 功能:
- localectl列出来的是当前软件所使用的语系,而localectl显示的当前系统的语系
- 这个语系的设置值会修改配置文件的内容
- 命令格式:
localectl //查看当前系统语系
localectl set-locale LANG=xxx //设置当前系统语系
- 查看:下面显示的LANG=en_AU.UTF-8,所以一登录系统时,系统使用的语系就是这个语系
- 更改语系:例如将当前语系改为zn_CN.utf8:localectl set-locale LANG=zn_CN.utf8
- 我是小董,V公众点击"笔记白嫖"解锁更多【Linux入门基础】资料内容。