Skip to content

变量

类型示例作用
普通变量name=lai只在当前shell
环境变量export name=lai子进程可用
环境变量(系统自带)PATH HOME系统默认

环境变量

环境变量是操作系统中用于存储系统或程序运行时所需信息的一种变量。 Shell、程序、脚本都会读取这些变量来决定如何运行。

  • 查看当前环境变量
sh
env
  • 常见环境变量
变量含义
PATH命令搜索路径
HOME用户家目录
USER当前用户名
SHELL当前使用的 shell
PWD当前工作目录
LANG语言环境
HOSTNAME主机名

PATH

PATH告诉 shell 在哪些目录下去查找可执行命令

sh
echo $PATH
sh
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • 每个目录之间用 : 分隔

  • 当你输入一个命令(比如 ls)时,shell 会按照顺序在这些目录里查找

  • 找到第一个匹配的命令就执行

  • 如果某个目录不在 PATH 中,那么你在 shell 中直接输入命令就可能报错:

sh
command not found
  • 新增PATH路径常用命令:
sh
export PATH=$PATH:/new/path

export

export【导出】 是 Shell 的一个内置命令,用来 把变量变成环境变量,使子进程也能使用这个变量

  • 普通变量不会传递给子进程
sh
name=lai
echo $name #输出lai

但是如果启动一个新的 shell:

sh
echo $name #输出为空
  • 使用export
sh
export name=lai
bash
echo $name
sh
bash (父进程)
   |
   └── bash (子进程)

变量的继承

子进程会继承父进程中导出的变量

sh
export name=lai
bash
echo $name

子进程修改继承的变量,不会影响父进程中的变量

$

在 Linux / Shell 中,$ 是一个取变量值的符号(变量展开符)

sh
echo $PATH

${name} 表示 获取变量 name 的值

sh
echo 路径是${PATH}

警告

$(command)表示的是执行command命令,并获取输出

设置环境变量

临时环境变量

sh
export MYNAME=lai

临时变量在关闭终端后就消失。如果想永久生效,需要写入配置文件。

永久环境变量

  • 针对当前用户(包含root用户)生效,配置在当前用户的配置文件中。
sh
~/.bashrc
  • 针对所有用户生效,配置在根目录的配置文件中
sh
/etc/profile