Linux常用环境变量PATH

一、常用的默认的shell环境变量

1、当我们在shell命令行属于一个命令,shell解释器去解释这个命令的时候,需要先找到这个命令.
找到命令有两种方式

  • 要么你告诉shell这个命令的具体位置。即使用绝对路径运行。

  • 要么放在shell 默认的存放命令的地方。即命令放在PATH环境变量的路径下面。

  • 好比我们要去读一篇文章,先找到这篇文章才能去读它,要么告诉明明白白告诉你在哪里。
    如果没告诉你,你就自己找,你可能就在书桌上找,再去书包里找,再去别的地方,但是一定在你平时放书的地方,不可能去你都不知道的地方去找 。而shell在去执行命令的时候,如果不是通过决定路径去执行,就只会去PATH这个变量的路径下去找这个执行命令的程序 。

二、环境变量 PATH

1、PATH 环境变量定义了用于进行命令和程序查找的目录。这个是我们常用的一个环境变量。
在这里插入图片描述

2、 PATH 中的目录使用冒号分隔,如果命令或者程序的位置没有包括在PATH 变量中,又不使用绝对路径的话,shell是没法找到的。如果shell找不到指定的命令或程序,
它会产生一个错误信息:

在这里插入图片描述

  • 我们只需引用原来的PATH 值,然后再给这个字符串添加新目录就行了,添加环境变量的方式如下
PATH=$PATH:/home/zmx    
  • 这样的话,搜索命令也会在/home/zmx这个文件下搜索了,你的程序放在这个位置可以被执行到了。
    3、 如果希望子shell也能找到你的程序的位置,一定要记得把修改后的PATH 环境变量导出。

# 假设你想添加 /my/new/path 到你的 PATH 变量  
export PATH=$PATH:/my/new/path      

4、 我们可以把当前路径加入环境变量的话,可以使用单点符,通过单点符号把当前目录 加入PATH 环境变量。

    PATH=$PATH:.
  • 这样我们在当前目录运行文件的时候,就可以直接调用了, 否则要使用bash 文件名或者 ./文件名 这种方式来运行

在这里插入图片描述

5、以上的对PATH 变量的修改只能持续到退出或重启系统。这种效果并不能一直持续。优点就是我们不会搞乱了系统的变量,但缺点也很明显,就是每次打开新的shell界面,需要重新配置这个环境变量,最常用的是
$HOME/.bashrc这个文件 。在这个文件里添加自己想要的环境变量。

三、持久化修改环境变量

1、启动shell的几种方式
在你登入Linux系统启动一个bash shell时,默认情况下bash会在几个文件中查找命令。这些文件叫作启动文件 或环境文件 。bash检查的启动文件取决于你启动bash shell的方式。启动bash shell有3种方式:

  • 登录时作为默认登录shell
  • 作为非登录shell的交互式shell
  • 作为运行脚本的非交互shell
    我们不用过多关注这些,只需要知道,这三种方式,有着不同的启动方式,我们需要获取到每次启动会自动调用的shell文件,把我们需要的环境变量,写入到里面就行。最常用的就是上面说的 $HOME/.bashrc这个文件这个$ HOEM 就是 ~ 。
  • 我们下面只讨论第一种,默认登录shell

2、登录时作为默认登录shell
当你登录Linux系统时,bash shell会作为登录shell启动。登录shell会从5 个不同的启动文件里读取命令:

  • /etc/profile
  • $HOME/.bash_profile
  • $HOME/.bashrc
  • $HOME/.bash_login
  • $HOME/.profile

3、shell默认启动的重点文件

  • /etc/profile文件是系统上默认的bash shell的主启动文件。系统上的每个用户登录时都会执行这个启动文件。下图查看里面的内容

在这里插入图片描述

所以我们可以把想要执行的程序,或者环境变量写成文件,放在etc/profile.d目录下

在这里插入图片描述

其余4个文件 在$HOME目录下不一定都存在,如果存在,就按下面图的顺序,运行第一个被找打的文件,余下的都被忽略。

在这里插入图片描述

需要注意的是,这个执行顺序里面不涉及 .bashrc这个文件,因为这个文件通常通过其它几个文件运行。如下图:
在这里插入图片描述
在这里插入图片描述
可以看出找到的运行的.profile文件的内容,是运行.bashrc这个文件,所以我们常用的添加默认环境变量,就放在这个文件夹里。

四、常用的环境变量

在这里插入图片描述

<think> 我们被要求回答:如何在Linux环境下向环境变量PATH追加内容? 根据引用[1][2][3][4]提供的资料,我们可以总结出几种方法,包括临时追加和永久追加(针对当前用户或所有用户)。 注意:永久追加需要修改配置文件,不同的配置文件作用范围和生效方式不同。 我们将按照以下结构回答: 1. 临时追加PATH(仅当前终端会话有效) 2. 永久追加PATH(针对当前用户) 3. 永久追加PATH(针对所有用户) 同时,我们会注意引用标注。 开始回答: </think> ### Linux环境下向环境变量PATH追加内容的方法 在Linux系统中向PATH环境变量追加路径,主要通过修改配置文件或命令行操作实现。操作前可使用`echo $PATH`查看当前PATH值(如显示:`/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin`)。以下是详细方法: #### 一、临时追加(仅当前终端有效) 1. **命令行直接追加**: ```bash export PATH=$PATH:新路径 # 格式必须无空格 ``` 示例追加Python3路径: ```bash export PATH=$PATH:/usr/local/python/bin # 立即生效[^4] ``` - 验证:`echo $PATH` 查看末尾是否包含新路径 #### 二、永久追加(用户级配置) 1. **修改 `~/.bashrc`**(推荐个人使用): ```bash echo 'export PATH=$PATH:新路径' >> ~/.bashrc # 追加到文件末尾 source ~/.bashrc # 立即生效[^1][^2] ``` 示例: ```bash echo 'export PATH=$PATH:/opt/myapp/bin' >> ~/.bashrc ``` 2. **修改 `~/.profile` 或 `~/.bash_profile`**: ```bash echo 'export PATH=$PATH:新路径' >> ~/.profile source ~/.profile # 立即生效[^1] ``` #### 三、永久追加(系统级配置) 1. **修改 `/etc/profile`**(影响所有用户): ```bash sudo sh -c "echo 'export PATH=\$PATH:新路径' >> /etc/profile" source /etc/profile # 立即生效[^2] ``` 2. **修改 `/etc/environment`**(系统环境变量): ```bash sudo nano /etc/environment # 在PATH值末尾添加 :新路径 ``` 示例修改后内容: ```ini PATH="/usr/local/sbin:/usr/local/bin:/新路径" ``` - 需重启系统生效[^2] 3. **使用 `/etc/profile.d/` 目录**(推荐): ```bash sudo tee /etc/profile.d/custom_path.sh <<EOF export PATH=\$PATH:新路径 EOF chmod +x /etc/profile.d/custom_path.sh # 添加执行权限 source /etc/profile.d/custom_path.sh # 立即生效[^1] ``` #### 四、特殊技巧:多行追加 使用EOF语法批量添加变量[^3]: ```bash sudo tee -a /etc/profile <<EOF export JAVA_HOME=/usr/lib/jvm/java-11 export PATH=\$PATH:\$JAVA_HOME/bin EOF ``` #### ⚠️ 注意事项 1. **符号规范**: - 路径间用冒号分隔:`PATH=$PATH:路径1:路径2` - `$PATH`必须在前,避免覆盖原路径[^2] 2. **优先级问题**: - 系统按PATH中的顺序查找命令,建议将常用路径前置 3. **危险操作**: - 避免删除系统默认路径(如`/usr/bin`) - 修改系统级文件前备份:`sudo cp /etc/environment /etc/environment.bak` #### 验证方法 ```bash echo $PATH | grep "新路径" # 确认路径是否添加 which 命令名 # 检查新路径中的命令是否可识别 ``` > 示例:添加Python路径后,删除旧链接重建[^4] > ```bash > ln -sf /usr/local/bin/python3.9 /usr/bin/python # 修改默认Python解释器 > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值