变量
| 类型 | 示例 | 作用 |
|---|---|---|
| 普通变量 | name=lai | 只在当前shell |
| 环境变量 | export name=lai | 子进程可用 |
| 环境变量(系统自带) | PATH HOME | 系统默认 |
环境变量
环境变量是操作系统中用于存储系统或程序运行时所需信息的一种变量。 Shell、程序、脚本都会读取这些变量来决定如何运行。
- 查看当前环境变量
sh
env- 常见环境变量
| 变量 | 含义 |
|---|---|
| PATH | 命令搜索路径 |
| HOME | 用户家目录 |
| USER | 当前用户名 |
| SHELL | 当前使用的 shell |
| PWD | 当前工作目录 |
| LANG | 语言环境 |
| HOSTNAME | 主机名 |
PATH
PATH告诉 shell 在哪些目录下去查找可执行命令。
sh
echo $PATHsh
/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/pathexport
export【导出】 是 Shell 的一个内置命令,用来 把变量变成环境变量,使子进程也能使用这个变量。
- 普通变量不会传递给子进程
sh
name=lai
echo $name #输出lai但是如果启动一个新的 shell:
sh
echo $name #输出为空- 使用
export
sh
export name=lai
bash
echo $namesh
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