当前位置:首页>Linux>Linux | 环境变量

Linux | 环境变量

  • 2026-10-28 03:23:14
Linux | 环境变量

哈喽大家好,今天继续分享Linux的相关内容——环境变量,这部分内容比较抽象,我也是结合了deepseek的解释才搞明白环境变量的具体含义。这块内容主要需要掌握的是如何管理PATH(虽然我也没有完全掌握具体的用法),让我们一起来学习一下吧!

定义

环境变量:用于储存有关shell会话和工作环境的系统变量。

这个定义太太太抽象,我们把它通俗地解释一下:环境变量就相当于是你的个人备忘录或手机快捷指令。

想象一下你每天工作的书桌。为了让工作更高效,你会在墙上贴一些 便利贴(环境变量),上面写着关键信息:

一张纸条写着:我的项目文件放在:/home/我/重要项目 (这就像变量 PROJECT_HOME)

一张纸条写着:命令搜索路径:1号抽屉、2号书架、3号文件夹... (这就是最重要的变量 PATH)

环境变量就是操作系统(Linux)和你运行的程序(软件)用来记录和查找各种关键信息的“便利贴集合”。

作用

方便软件找工具

你告诉系统去完成“画图”这个任务,它不用翻遍整个房子,它直接去看PATH(最重要的一种环境变量)那张“便利贴”,按上面写的路径顺序(1号抽屉、2号书架...)去找画图这个工具。找到了就立刻运行。

个性化和共享配置

个性化:你的“便利贴”可以写“编辑器=vs_code”,而别人的可以写“编辑器=vim”。同一个编辑文件命令,你们会打开不同的软件。

共享配置:一个软件(比如JAVA程序)启动时,会先去看JAVA_HOME这张便利贴,知道应该去哪里找运行所需的Java核心文件。

常见的环境变量

PATH

内容

一串用冒号 : 隔开的路径列表。

工作方式

假设你在终端输入一个命令ascp并回车时,系统会严格按照这个列表的顺序,去这些文件夹里寻找名叫ascp的可执行文件。

先查 /usr/local/bin 里有没有 ascp?没有。

再查 /usr/bin 里有没有?没有。

再查 /home/.../rna/bin 里有没有?找到了! 于是运行它。

如果找不到:系统搜遍了PATH列表里所有的文件夹都没找到 ascp,就会对你报错:command not found。

相关代码

echo$PATH | tr ':''/n'##将路径输出为一行一个
which ls ##查找命令ls在哪个路径

管理PATH

推荐方法:在自己家目录下创建一个 ~/bin/ 文件夹并将其添加到环境变 量,后续手动安装的软件就可以将软件的可执行文件拷贝或软链接(绝 对路径)到这个 bin 文件夹:

mkdir  ~/bin 
echo'export "PATH=~/bin:$PATH" ' >> ~/.bashrc 
source  ~/.bashrc

理解这段代码

想象你的家(家目录 ~)旁边有一个小工具房(~/bin):

大街上(系统目录):/usr/bin,/usr/local/bin 是公共工具房,所有人都能用;

你的工具房(~/bin):你自己搭建的,只有你能用,想放什么就放什么。

代码分解

1. 创建个人工具房

mkdir ~/bin

在家目录(~)下创建一个名为 bin 的文件夹

这个文件夹专门存放你个人的可执行文件(工具/软件)

位置示例:/home/你的用户名/bin/

2. 告诉系统:"先去我的工具房找工具!"

echo'export "PATH=~/bin:$PATH"' >> ~/.bashrc

a) export - 发布通知

向整个系统宣布:"请注意,我的 PATH 要这样设置!"

b) "PATH=~/bin:$PATH" - 设置搜索顺序

~/bin:首先搜索我的个人工具房

::分隔符(像分号)

$PATH:然后是原来的搜索路径

修改后的系统找工具顺序:先到 ~/bin(你的工具房)找;找不到再到 /usr/local/bin 找;再到 /usr/bin 找。

c) >> ~/.bashrc - 永久记录

“>>”:追加到文件末尾(不覆盖原有内容)

~/.bashrc:你的个人配置文件

效果:每次打开终端,自动执行这个设置

3. 立即生效

source ~/.bashrc
管理作用

1. 个人软件管理

场景:你下载了一个小工具 my_tool,它不在系统目录

# 以前的做法(麻烦):
/home/你/下载/my_tool  # 每次都要输入完整路径

# 现在的做法(方便):
cp /home/你/下载/my_tool ~/bin/
my_tool  # 直接运行!

2. 覆盖系统命令

场景:系统有 Python 3.6,你需要 Python 3.9

# 在你的 ~/bin 里放一个指向新 Python 的链接
ln -s /opt/python3.9/bin/python3 ~/bin/python

# 现在输入 python 会先用你的版本
python --version  # 输出:Python 3.9.x
# 系统原来的 python 3.6 还在,但优先级低

3. 避免污染系统目录

不需要 sudo 权限!

系统目录(如 /usr/local/bin)需要管理员权限;你的 ~/bin 你想放什么就放什么。

4. 隔离和整洁

所有个人工具都在一个地方,重装系统时,备份 ~/bin 就行,删除软件时,直接从 ~/bin 移除。

应用实例
  1. 安装自定义脚本
# 1. 创建一个脚本
cat > ~/bin/hello.sh << 'EOF'
#!/bin/bash
echo"Hello, 世界!"
EOF

# 2. 给执行权限
chmod +x ~/bin/hello.sh

# 3. 直接运行(因为 ~/bin 在 PATH 中)
hello.sh
# 输出:Hello, 世界!
  1. 安装下载的软件
# 假设你下载了 myapp,解压后在这里:
# /home/你/下载/myapp-1.0/bin/myapp

# 创建软链接到 ~/bin
ln -s /home/你/下载/myapp-1.0/bin/myapp ~/bin/

# 现在可以直接运行
myapp
  1. 管理多个版本
# 你有两个 Java 版本
# Java 8: /opt/java8/bin/java
# Java 11: /opt/java11/bin/java

# 创建软链接,快速切换
ln -s /opt/java11/bin/java ~/bin/java  # 当前用 Java 11

# 想切换时
rm ~/bin/java
ln -s /opt/java8/bin/java ~/bin/java   # 切换到 Java 8

其他的环境变量

PS1:命令行配色。

HOME:当前用户的主目录。

LOGNAME:当前用户的登录名。

补充:

~/.bashrc:系统配置文件,包含专用于你的 bash shell 的bash信息、设 置,每次登录或打开新的 shell 时,该文件会被自动读取和执行。如果正 确修改了~/.bashrc,需要source。

查看环境变量

echo $环境变量名

今天的分享就到这里啦,我们下期见。

★

生信技能树课程

最新文章

随机文章