Linux进阶:环境变量

环境变量是一组信息记录,类型是KeyValue型(名=值),用于操作系统运行的时候记录关键信息.

env命令:查看系统全部的环境变量

语法:env

$符号:取出指定的环境变量的值

语法:$变量名

示例:

echo $PATH,输出PATH环境变量的值

echo ${PATH}ABC,输出PATH环境变量的值以及ABC。如果变量名和其它内容混淆在一起,可以使用${}

PATH变量

  • 环境变量PATH会记录一组目录,目录之间用:隔开。

    • 这里记录的是命令的搜索路径,当执行命令时会从记录中的目录中逐个搜索要执行的命令并执行。
  • 可以通过修改这个项目的值,加入自定义的命令搜索路径。如:export PATH=$PATH:自定义路径

注意 :修改PATH时,必须添加$PATH,否则变成了使用自定义路径覆盖PATH的值,而不是给PATH中添加值

PATH变量使用说明

使用cd指令运行说明PATH作用:

无论当前工作目录是什么,都能执行/usr/bin/cd这个程序,就是借助环境变量中:PATH这个项目的值来做到的。

  • 查看PATH变量:env | grep PATHPATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/adailly/.local/bin:/home/adailly/bin

  • PATH记录了系统执行任何命令的搜索路径,如上(路径之间以:隔开):

    • /usr/local/bin
    • /usr/bin
    • /usr/local/sbin
    • /usr/sbin
    • /home/adailly/.local/bin
    • /home/adailly/bin
  • 当执行任何命令,都会按照顺序,从上述路径中搜索要执行的程序的本体。

  • 执行cd命令,就从第二个目录/usr/bin中搜索到了cd命令,并执行。

  • 可通过which cd 查找到cd指令的执行文件路径:/usr/bin/cd

修改环境变量

  • 临时设置,语法:export 变量名=变量值
  • 永久生效
    • 针对当前用户生效,配置在当前用户的: ~/.bashrc文件中
    • 针对所有用户生效,配置在系统的: /etc/profile文件中
    • 配置完成,通过:source 配置文件,进行立刻生效,或重新登录生效

自定义修改环境变量

环境变量PATH这个项目里面记录了系统执行命令的搜索路径。

这些搜索路径我们也可以自行添加到PATH中去。

测试:

  • 在当前HOME目录内创建文件夹myenv,在文件夹内创建文件mkhello
  • 通过vim编辑器,在mkhello文件内填入:echo hello
  • 完成上述操作后,随意切换工作目录,执行mkhello命令尝试一下,会发现无法执行

修改PATH的值:

  • 临时修改PATHexport PATH=$PATH:/home/user/myenv,再次执行mkhello,则在任何地方都可以执行
  • 或将export PATH=$PATH:/home/user/myenv,填入用户环境变量文件或系统环境变量文件中去。
  • 执行source环境变量文件,则在任何地方都可以执行
相关推荐
caimouse4 小时前
ReactOS 图形系统分析(3):显示驱动 DDI framebuf.dll
linux·运维·网络
TonyLee0175 小时前
Claude Code + DeepSeek:服务器安装与使用笔记
linux·服务器·deepseek·claude code
buhuizhiyuci5 小时前
【Linux 篇】数字世界的水流蓄水池 —— IO 缓冲区机制深度实战解析
linux·运维·服务器·c++
骇客野人5 小时前
Linux 服务器 Python 版 MCP 服务部署整体方案(适配 Claude/Cursor/自研Agent)
linux·服务器·python
天疆说6 小时前
04 稳定性与性能调优实录:OOM 崩溃、并发槽位、前缀缓存与 DSpark 调参
linux·运维·缓存
星卯教育tony6 小时前
NOI Linux 2.0 服务器多用户网页桌面部署方案(腾讯云轻量Ubuntu20.04专属版 CSP复赛比赛环境搭建免安装虚拟机 )
linux·服务器·腾讯云
Forever Nore7 小时前
LeetCode 14 最长公共前缀 - 纵向扫描
linux·服务器·leetcode
拂拉氏7 小时前
【知识讲解】 Linux权限相关知识讲解
linux·权限
Shadow(⊙o⊙)7 小时前
Linux网络部分——TCP协议服务端客户端交互接口,入门级硬核解析1.0
linux·网络·tcp/ip
桑榆41611 小时前
双系统(Windows + Ubuntu)安装流程
linux·windows·ubuntu