百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Linux 系统常用的 30 个系统环境变量全解析

off999 2025-03-13 19:12 10 浏览 0 评论

在 Linux 系统中,环境变量起着至关重要的作用,它们犹如隐藏在系统背后的 “魔法指令”,掌控着诸多程序的运行路径、配置信息等关键要素。尤其在 shell 脚本编写时,巧妙运用环境变量,能让脚本如虎添翼,极大提升效率。接下来就为大家详细介绍 30 个常用的系统环境变量及其使用方式。

一、PATH

这可能是最广为人知的环境变量之一。它定义了系统在哪些目录下查找可执行文件。例如,当你在终端输入一个命令(如 ls)时,系统就会按照 PATH 变量所列出的目录顺序,依次查找名为 ls 的可执行文件。

使用示例:

在 shell 脚本中,如果要调用一个不在当前目录下的自定义脚本或工具,确保其所在目录已添加到 PATH 中,就可以直接使用命令调用,无需输入完整路径。假设你有个自定义脚本 myscript.sh 在 /home/user/scripts 目录下,将该目录添加到 PATH(export PATH=$PATH:/home/user/scripts)后,就能在任意目录下直接运行 myscript.sh。

二、HOME

指向当前用户的主目录。这在很多操作中都极为实用,比如保存用户的配置文件、个人数据等。在脚本中需要访问用户特定的配置文件时,就可以使用 $HOME/.config/filename 这样的路径,确保在不同用户下都能正确定位到对应的配置文件,增强脚本的通用性。

三、SHELL

指定当前用户所使用的 shell 程序路径,如 /bin/bash 或 /bin/zsh 等。了解这个变量有助于在脚本中根据不同 shell 特性进行兼容性处理。

使用示例:

#通过判断 SHELL 变量,脚本可以针对不同 shell 执行差异化代码。
if [ "$SHELL" = "/bin/bash" ]; 
then 
		echo "Using bash shell"; 
fi

四、USER

保存当前用户名,在需要识别操作主体时很有用。记录操作日志时,可以加上用户名信息,echo "User $USER executed the script at $(date)" >> log.txt,方便追踪责任人, 在运行nginx 的服务中,默认情况下nginx 是以nginx 用户运行的,如果我们想修改为当前用户运行,只需要修改nginx.conf 文件中的第一行 user ${USER} 改成这样即可。

五、PWD

代表当前工作目录,随时获取脚本运行时的位置信息。在脚本需要备份当前目录下文件到指定位置时,cp -r $PWD/* /backup/dir,确保备份的源文件路径准确无误。

六、LANG

定义系统的语言环境,影响程序的本地化输出,如显示的菜单、错误信息等语言风格。如果想在脚本中临时切换语言环境输出特定语言的提示信息,export LANG=fr_FR.UTF-8 可将语言切换为法语,随后的 echo 等输出就会以法语显示。

七、TERM

表示当前终端类型,像 xterm、vt100 等。一些需要与终端交互的程序依赖此变量来适配不同终端特性。在运行基于文本界面的交互式程序时,它能确保程序按终端能力正确显示格式,如 vim 编辑器会根据 TERM 值优化显示效果。

八、PS1

用于定制命令行提示符样式,可添加用户名、主机名、当前目录等信息,让提示符更具辨识度。export PS1='[\u@\h \w]\$ ',会让提示符显示为 [用户名@主机名 当前目录]$ 形式,方便用户随时知晓所处环境。

九、HOSTNAME

存放当前主机的名称,在网络配置、分布式系统操作中有广泛应用。在集群环境下,脚本需要区分不同节点执行不同任务时,if [ "$HOSTNAME" = "node1" ]; then start_service1; fi,根据主机名精准调度。

十、MAIL

指向用户的邮件收件箱文件路径,与邮件相关程序联动,比如邮件客户端可借此找到收件箱。若有脚本监控邮件状态,可通过检查 MAIL 路径下文件的变化来判断是否有新邮件到达。

十一、LD_LIBRARY_PATH

指定共享库的搜索路径。当程序运行需要链接外部共享库时,会在此路径下查找。

使用示例:

# 对于自行编译安装的软件,其依赖的特殊库在非标准位置时,确保程序运行不报错。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mylibs

十二、INPUTRC

指向 readline 库的初始化配置文件路径,用于定制命令行输入的快捷键、自动补全等行为。若想在脚本运行时让用户输入更便捷,可修改 INPUTRC 指向的配置文件,添加自定义快捷键,如设置 Ctrl + E 为快速跳到行尾。

十三、HISTSIZE

定义命令历史记录的行数,控制 bash 历史记录保存规模。

使用示例:

export HISTSIZE=1000  # 可将历史记录行数扩展到 1000 条,方便回溯之前执行过的命令。

十四、HISTFILESIZE

与 HISTSIZE 类似,但它决定历史记录文件的最大行数,持久化保存历史记录。

使用示例:

export HISTFILESIZE=2000   # 保障即使多次打开终端,历史命令文件也能留存足够多的有用信息。

十五、TMPDIR

指定临时文件的存放目录,程序运行产生的临时数据都会放在此处。在脚本中创建临时文件时,mktemp -p $TMPDIR tmpfile.XXXXXX,确保临时文件统一管理,便于清理且不占用系统关键空间。

十六、EDITOR

设定默认的文本编辑器,像 vi、nano 等。当需要编辑文本时,系统按此变量调用编辑器。

使用示例:

export EDITOR=vim   # 之后运行 git commit 等需要编辑提交信息的命令,就会自动弹出 vim 编辑器。

十七、VISUAL

与 EDITOR 类似,不过更倾向于可视化编辑器,优先级稍高。如果两者都设置,优先使用 VISUAL。

使用示例:

export VISUAL=gedit   # 对于习惯图形化编辑的用户,执行相关操作时会打开 gedit 进行文本处理。

十八、TZ

设置系统的时区,保证时间显示符合当地习惯。

使用示例:

export TZ='Asia/Shanghai',将系统时区调整为上海时区,确保 date 等时间相关函数输出正确当地时间。

十九、LESS

定制 less 命令的默认行为,如是否显示行号、语法高亮等。

使用示例:

export LESS='-N -R',让 less 查看文件时默认显示行号且支持彩色语法高亮,提升阅读体验。

二十、GREP_OPTIONS

为 grep 命令设置默认选项,如忽略大小写、显示匹配行上下文等。

使用示例:

export GREP_OPTIONS='-i -C 2'  # 后续执行 grep 时都会自动忽略大小写并显示匹配行前后各 2 行上下文。

二十一、MANPATH

定义 man 手册页的搜索路径,方便查找不同软件包的帮助文档。

使用示例:

# 当安装了自定义软件并带有手册页在 /opt/mydoc/man 目录下
# 设置这个变量之后就能通过 man mycommand 查找到对应手册。
export MANPATH=$MANPATH:/opt/mydoc/man  

二十二、CPATH

供 C 语言编译器查找头文件的路径,编译 C 程序时必备。对于引入自定义头文件的 C 项目,export CPATH=$CPATH:/home/user/include,确保编译顺利进行。

二十三、CFLAGS

传递给 C 语言编译器的额外编译选项,如优化级别、调试信息等。

使用示例:

export CFLAGS='-O2 -g' # 开启二级优化并添加调试信息,让编译出的程序既高效又便于调试。

二十四、CPPFLAGS

类似 CFLAGS,但主要用于 C++ 编译器,处理 C++ 特定的预处理选项。

使用示例:

export CPPFLAGS='-I/home/user/cpplibs/include'  # 指定 C++ 项目额外的头文件搜索路径。

二十五、CXXFLAGS

C++ 编译器的编译标志,是 CFLAGS 在 C++ 语境下的延伸,综合控制编译过程。

使用示例:

export CXXFLAGS='-std=c++11 -Wall'  # 启用 C++11 标准并开启所有警告,提升代码质量。

二十六、LDFLAGS

用于指定链接器的选项,如链接库路径、库名称等,在程序最终链接阶段起作用。

使用示例:

export LDFLAGS='-L/home/user/libs -lmylib'  # 告知链接器到指定目录查找 mylib 并链接进程序。

二十七、MAKEFLAGS

为 make 命令提供默认参数,优化构建过程,比如并行构建任务数。

使用示例:

export MAKEFLAGS='-j4'  #让 make 在编译大型项目时最多同时运行 4 个任务,加快构建速度。

二十八、SSH_AUTH_SOCK

指向 SSH 认证套接字文件,用于 SSH 密钥认证等安全登录相关操作。在自动化脚本中通过 SSH 连接远程服务器时,确保此变量正确设置,保障密钥认证顺畅,无需重复输入密码。

二十九、DISPLAY

在图形化环境下,指定 X Server 的显示地址,用于图形程序找到显示输出目标。运行图形化应用程序时,如 gedit,若远程连接到服务器且需要图形显示,需正确设置 DISPLAY 环境变量指向本地 X Server。

三十、RANDOM

这是一个特殊的变量,每次引用它都会生成一个 0 - 32767 之间的随机整数,常用于脚本生成随机数场景。

使用示例:

echo $RANDOM % 100  # 可获取一个 0 - 99 之间的随机数,用于模拟抽奖、生成随机端口号等场景。

掌握这些常用的 Linux 系统环境变量,不仅能让日常命令行操作更加得心应手,更能在 shell 脚本编写中充分发挥其强大威力,让脚本更智能、高效、通用。不断实践运用,定能挖掘出更多奇妙用法

相关推荐

Python自动化脚本应用与示例(python自动化脚本教程)

Python是编写自动化脚本的绝佳选择,因其语法简洁、库丰富且跨平台兼容性强。以下是Python自动化脚本的常见应用场景及示例,帮助你快速上手:一、常见自动化场景文件与目录操作O批量重命名文件...

如何使用Python实现一个APP(如何用python做一个程序)

要使用Python实现一个APP,你可以选择使用一些流行的移动应用开发框架,如Kivy、PyQt或Tkinter。这里以Kivy为例,它是一个跨平台的Python框架,可以用于创建漂亮的图形用户界面(...

免费定时运行Python程序并存储输出文档的服务推荐

免费定时运行Python程序并存储输出文档的服务推荐以下是几种可以免费定时运行Python程序并存储输出结果的云服务方案:1.PythonAnywhere特点:提供免费的Python托管环境支持定时...

【Python程序开发系列】如何让python脚本一直在后台保持运行

这是我的第385篇原创文章。一、引言让Python脚本在后台持续运行,有几种常见的方式,具体方式可以根据你的系统环境和需求选择。二、Linux或macOS系统2.1使用nohup命令no...

运行和执行Python程序(运行python的程序)

一、Python是一种解释型的脚本编程语言,这样的编程语言一般支持两种代码运行方式:交互式编程在命令行窗口中直接输入代码,按下回车键就可以运行代码,并立即看到输出结果;执行完一行代码,你还可以继续...

Python 初学者指南:计算程序的运行时长

在编写Python程序时,了解程序的运行时长是一项很有用的技能。这不仅能帮助你评估代码的效率,还能在优化程序性能时提供关键的数据支持。对于初学者来说,计算程序运行时长其实并不复杂,接下来就让我们看...

pyest+appium实现APP自动化测试,思路全总结在这里

每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试码同学抖音号:小码哥聊软件测试01appium环境搭建安装nodejshttp://nodej...

血脉觉醒后,编程小白我是如何通过Deepseek和Trae轻松开发软件的

以下就是作为一个编程小白的我,是如何一步步开发软件的保姆级教程,请点赞收藏:第一步:打开#deepseek#(首先关闭深度思考和联网搜索)输入或复制你要让它做一个什么样软件的要求和提示词(你可以先用...

我用Deepseek+Trae写的python小软件,小白也能轻松用上模型啦!

利用AI大模型deepseek,搭配TraeCN,用半个小时做了一个本地Ollama安装部署和一键卸载的小工具,哈哈哈!感觉还不错#deepseek#一直想做一个本地Ollama安装部署和一键卸载...

在安卓设备上运行Python的方法(安卓能运行python吗)

技术背景在安卓设备上运行Python可以为开发者提供更多的开发选择和灵活性,能够利用Python丰富的库和简洁的语法来开发各种应用,如游戏、脚本工具等。然而,由于安卓系统原生不支持Python,需要借...

零基础小白,DeepSeek全自动编程,超详细提示词,一键生成软件!

我前面发表了文章,详细说了编程零基础小白,如何利用DeepSeek进行编程的全过程,感兴趣的可以去看看:DeepSeek全自动编程很多人不会写提示词,不知道怎么开始对话。话不多说,请先看下图中的对话,...

小白用DeepSeek+Python编写软件(用python制作软件)

周末无事,用DeepSeek生成全部代码,写了一个mp3音乐播放器,几分钟搞定,DeepSeek确实太强大了。我的提示语是这么写的:“请用Python语言写一个音乐播放器,支持常见音乐格式,我是Pyt...

零基础使用DeepSeek开发Windows应用程序,超简单超实用!

你敢相信,我居然用DeepSeek开发了一个能用的Windows软件!整个过程就像和学霸同桌组队做作业,我负责提需求,DeepSeek负责写代码改bug,全程碰到任何问题直接丢给DeepSeek即可。...

第二篇:如何安装Python并运行你的第一个程序

欢迎回到我的Python入门教程系列!在上一篇中,我们讨论了为什么Python是一门值得学习的编程语言。今天,我们将迈出第一步:安装Python并运行你的第一个程序。无论你是Windows、macOS...

Python 运行,带你找入口,快速读懂程序

有C或Java编程开发经验的软件开发者,初次接触python程序,当你想快速读懂python项目工程时,是否觉得python程序有些太过随意,让你看有些无所适从,进而有些茫然。这是...

取消回复欢迎 发表评论: