Shell 中有很多常用的环境变量,它们存储了系统配置、用户信息、程序行为等重要数据。以下是一些最常用的环境变量:
1. 路径相关变量
# 当前用户的主目录
echo $HOME
# 示例: /home/username 或 /root
# 当前工作目录
echo $PWD
# 示例: /home/username/projects
# 上一个工作目录
echo $OLDPWD
# 示例: /home/username/documents
2. 用户和身份相关
# 当前用户名
echo $USER
# 示例: username
# 用户ID
echo $UID
# 示例: 1000
# 登录Shell
echo $SHELL
# 示例: /bin/bash
# 终端类型
echo $TERM
# 示例: xterm-256color
3. 系统路径相关
# 命令搜索路径(最重要的变量之一)
echo $PATH
# 示例: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
# 动态库搜索路径
echo $LD_LIBRARY_PATH
# 示例: /usr/local/lib:/usr/lib
# 手动页搜索路径
echo $MANPATH
4. Shell 配置相关
# 当前Shell的路径
echo $BASH
# 示例: /bin/bash
# Bash 版本
echo $BASH_VERSION
# 示例: 5.1.16(1)-release
# Shell 选项
echo $SHELLOPTS
# 示例: braceexpand:emacs:hashall:histexpand:history:...
# 命令历史相关
echo $HISTSIZE # 内存中保存的历史命令数量
echo $HISTFILESIZE # 历史文件保存的命令数量
echo $HISTFILE # 历史文件路径
5. 语言和区域设置
# 系统语言和编码
echo $LANG
# 示例: en_US.UTF-8
# 本地化设置
echo $LC_ALL
echo $LC_COLLATE # 排序规则
echo $LC_CTYPE # 字符分类
6. 应用程序特定变量
# 默认文本编辑器
echo $EDITOR
# 示例: vim 或 nano
# 默认分页器
echo $PAGER
# 示例: less
# 浏览器
echo $BROWSER
# 示例: firefox
# 临时目录
echo $TMPDIR
# 示例: /tmp
7. 终端和显示相关
# 当前终端设备
echo $TERM
# 示例: xterm-256color
# 显示服务器(X11)
echo $DISPLAY
# 示例: :0 或 :1
# 颜色支持
echo $COLORTERM
# 示例: truecolor
8. 进程和作业控制
# 当前进程ID
echo $$
# 示例: 1234
# 上一个后台进程ID
echo $!
# 示例: 1235
# 上一个命令的退出状态
echo $?
# 示例: 0 (成功) 或 1 (失败)
9. 其他重要变量
# 主机名
echo $HOSTNAME
# 示例: my-computer
# 主机类型
echo $HOSTTYPE
# 示例: x86_64
# 提示符格式
echo $PS1
# 示例: \u@\h:\w\$
# 输入字段分隔符(用于单词分割)
echo $IFS
# 示例: 空格、制表符、换行符
实用命令示例
查看所有环境变量
# 查看所有环境变量
env
# 或
printenv
# 查看所有变量(包括环境变量和局部变量)
set
# 查看特定变量
echo "PATH: $PATH"
echo "User: $USER"
echo "Home: $HOME"
设置环境变量
# 临时设置(当前会话有效)
export MY_VAR="value"
# 永久设置(添加到 ~/.bashrc 或 ~/.profile)
echo 'export MY_VAR="value"' >> ~/.bashrc
source ~/.bashrc
常用环境变量操作脚本
#!/bin/bash
echo "=== 系统信息 ==="
echo "用户: $USER"
echo "主机: $HOSTNAME"
echo "Shell: $SHELL"
echo "工作目录: $PWD"
echo -e "\n=== 路径信息 ==="
echo "HOME: $HOME"
echo "PATH: $PATH"
echo -e "\n=== 检查重要变量 ==="
# 检查编辑器是否设置
if [ -z "$EDITOR" ]; then
echo "警告: EDITOR 未设置"
else
echo "默认编辑器: $EDITOR"
fi
# 检查语言设置
echo "系统语言: ${LANG:-未设置}"
注意事项
- 变量名区分大小写
- 使用
export命令使变量成为环境变量 - 环境变量只在当前进程和子进程中有效
- 永久设置需要写入配置文件(如
~/.bashrc,~/.profile,/etc/environment)
这些环境变量在Shell编程和日常系统管理中非常有用,理解它们可以帮助你更好地配置和使用系统。
2480

被折叠的 条评论
为什么被折叠?



