当前位置: 代码迷 >> 综合 >> 【Linux】【Shell】环境变量
  详细解决方案

【Linux】【Shell】环境变量

热度:89   发布时间:2023-12-06 13:31:44.0

研究学习 Linux Shell 的系列文章.

这篇文章主要讲 Shell 变量中的环境变量.

文章目录

      • 1. 环境变量
      • 2. 常用环境变量
      • 3. 语系变量

1. 环境变量

??由 Shell 变量及其类型可知,环境变量是 3 种 Shell 变量中的一种类型. 环境变量主要保存的是和系统操作环境相关的数据. 环境变量可以自定义,但是系统使用的的环境变量名和变量作用是固定的.
 
??环境变量与用户自定义变量的区别:

  • 用户自定义变量是局部变量
  • 环境变量是全局变量

用户自定义变量只在当前的 Shell 中生效
环境变量在当前 Shell 和这个 Shell 的所有子 Shell 中生效

user@ubuntu:~$ bash
user@ubuntu:~$ pstree
systemd─┬─YDLive───{
     YDLive}......├─sshd─┬─sshd───sshd│      └─sshd───sshd───bash───bash───pstree......

用户可以自己定义环境变量,但是对系统生效的环境变量名和变量作用是固定的.
 
设置环境变量
 

export 变量名=变量值

或者

变量名=变量值
export 变量名

 
查看环境变量
 
?set:查看所有变量
 
?env:查看环境变量
 

user@ubuntu:~$ export x=123
user@ubuntu:~$ y=456
user@ubuntu:~$ export y
user@ubuntu:~$ bash
user@ubuntu:~$ env
...
...
x=123
y=456
...
...
user@ubuntu:~$

 

2. 常用环境变量

Linux 系统中环境变量众多,常用的环境变量如下:

  • HOSTNAME:主机名
  • SHELL:当前的 Shell
  • TERM:终端环境
  • HISTSIZE:历史命令条数
  • SSH_CLIENT:当前操作环境是用 ssh 连接的,这里记录客户端 IP
  • SSH_TTY:ssh 连接的终端是 pts/1
  • USER:当前登录的用户
  • PATH 变量:系统搜索命令的路径
    • PATH=path1:path2:path3:…:pathn
    • echo $PATH:查看 PATH 环境变量
    • PATH="$PATH":/root/sh:添加 PATH 变量的值
  • PS1 变量:命令提示符设置. env 命令无法查看,需要 set 命令查看.
    • \d:显示日期,格式为“星期 月 日”
    • \H:显示完成的主机名。如默认主机名 “localhost.localdomain”
    • \t:显示24小时制时间,格式为 “HH:MM:SS”
    • \A:显示24小时制时间,格式为 “HH:MM”
    • \u:显示当前用户名
    • \w:显示当前所在目录的完整名称
    • \W:显示当前所在目录的最后一个目录
    • \$:提示符。如果是 root 用户会显示提示符为 “#”,如果是普通用户会显示提示符为 “$”

3. 语系变量

语系变量是 Linux 环境变量中定义语言环境的的一类变量,主要使用如下所示的两个语系变量:

  • LANG:定义系统主语系的环境变量. 当前生效语系
  • LC_ALL:定义整体语系的环境变量.

 
?使用locale命令查询当前系统语系,显示全部语系变量:

user@ubuntu:~$ locale
LANG=en_US.utf8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=

locale -a | more :查看 Linux 支持的所有语系
 
Linux 中文支持
 
前提条件,正确安装的中文字体和中文语系

  • 如果由图形界面,可以正确支持中文显示
  • 如果使用第三方远程工具,只要语系设定正确,可以支持中文显示
  • 如果使用纯字符界面,必须使用第三方插件(如 zhcon 等)