原文链接:【命令操作】Linux上export命令详解 | 统信 | 麒麟 | 方德
Hello,大家好啊!今天给大家带来一篇关于Linux系统中export命令的详解文章。在Linux中,export命令用于将变量导出到子进程环境中,是环境变量管理中非常重要的一个命令。无论是在命令行中临时设置变量,还是在脚本中定义全局变量,export都能够帮助我们更好地控制和使用这些变量。本文将详细介绍export命令的基本用法、常见使用场景及相关注意事项,帮助大家掌握并灵活运用这一命令。欢迎大家分享转发,点个关注和在看吧!
什么是export命令?
export命令用于将Shell中的变量导出到子进程环境中,从而使这些变量能够被当前Shell启动的子进程继承和使用。在Shell中,不使用export的变量只在当前Shell进程中有效,不会影响由该Shell启动的其他进程。而通过export导出的变量则会成为环境变量,可以在子Shell或子进程中使用。
export命令的注意事项
变量名不能包含特殊字符:在使用export命令定义变量时,变量名不能包含空格或特殊字符(如$、*等)。
环境变量的作用域:export命令导出的变量只在当前Shell及其子进程中有效。如果您想让某个环境变量在整个系统中始终有效,可以将export命令写入系统的环境配置文件中(如/etc/profile或~/.bashrc)。
1.基本语法
export [变量名]=[值]
变量名:你想要导出的变量的名称。
值:你要赋予该变量的值。
示例:
pdsyw@pdsyw-client:~/Desktop$ export MY_VARIABLE="Hello, pdsyw!"
这会设置环境变量 MY_VARIABLE,并将其值设置为 “Hello, pdsyw!”。
示例
导出变量:
pdsyw@pdsyw-client:~/Desktop$ MY_VAR="Hello"
pdsyw@pdsyw-client:~/Desktop$ export MY_VAR
这个例子首先定义了一个名为 MY_VAR 的变量,并将它的值设置为 Hello,然后使用 export 命令使它对所有子进程可见。
定义和导出变量(简洁写法):
pdsyw@pdsyw-client:~/Desktop$ export MY_VAR="Hello"
上述命令同时定义了变量并导出。
2.查看已导出的变量
pdsyw@pdsyw-client:~/Desktop$ export -p
使用 export -p 可以查看当前 shell 中所有已导出的环境变量。
3.使变量对子进程可见
pdsyw@pdsyw-client:~/Desktop$ export PATH=$PATH:/home/pdsyw/
pdsyw@pdsyw-client:~/Desktop$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin:/home/pdsyw/
这将把 /home/pdsyw/ 添加到 PATH 环境变量中,使得当前 shell 及其子进程可以使用该路径下的命令。
4.export 的应用场景
脚本中设置环境变量:在编写 shell 脚本时,常常需要设置一些全局变量供子进程使用。例如,配置程序路径或者设置 API 密钥。
修改系统变量:修改诸如 PATH 这样的系统变量,使得安装的新软件能够在命令行中被找到和执行。
5.作用域
在 Linux 中,变量分为 局部变量 和 环境变量:
局部变量:只能在当前 shell 会话中使用,不能在子进程中使用。
环境变量:通过 export 设为环境变量后,它可以在子进程中使用。
pdsyw@pdsyw-client:~/Desktop$ MY_VAR="Hello"
pdsyw@pdsyw-client:~/Desktop$ echo $MY_VAR # 输出:Hello
pdsyw@pdsyw-client:~/Desktop$ bash # 启动一个子shell
pdsyw@pdsyw-client:~/Desktop$ echo $MY_VAR # 没有输出,因为 MY_VAR 只是局部变量
pdsyw@pdsyw-client:~/Desktop$ exit # 返回父shell
pdsyw@pdsyw-client:~/Desktop$ export MY_VAR="Hello"
pdsyw@pdsyw-client:~/Desktop$ bash # 启动一个子shell
pdsyw@pdsyw-client:~/Desktop$ echo $MY_VAR # 输出:Hello,因为 MY_VAR 是环境变量
6.取消导出变量
如果想在环境中删除一个变量,可以使用 unset 命令:
pdsyw@pdsyw-client:~/Desktop$ export -p | grep MY_VAR
declare -x MY_VAR="Hello"
pdsyw@pdsyw-client:~/Desktop$ unset MY_VAR
pdsyw@pdsyw-client:~/Desktop$ export -p | grep MY_VAR
这会从当前 shell 和子进程中删除 MY_VAR 变量。
7.常见用法
在一个脚本中导出变量以供其他程序使用:
pdsyw@pdsyw-client:~/Desktop$ vim start-server.sh
pdsyw@pdsyw-client:~/Desktop$ cat start-server.sh
#!/bin/bash
export DATABASE_URL="mysql://user:pass@localhost:3306/dbname"
pdsyw@pdsyw-client:~/Desktop$ ./start-server.sh
start-server.sh 脚本可以访问 DATABASE_URL
8.添加环境变量到 .bashrc 中
为了在每次打开终端时都自动导入环境变量,可以把它写入到 .bashrc 文件中:
pdsyw@pdsyw-client:~/Desktop$ echo 'export MY_VAR="Hello"' >> ~/.bashrc
pdsyw@pdsyw-client:~/Desktop$ source ~/.bashrc
通过本文的介绍,您已经掌握了Linux系统中export命令的用法及常见使用场景。无论是定义全局变量、临时设置环境变量,还是在脚本中传递变量,export都是非常重要且实用的工具。如果您觉得这篇文章有用,请分享和转发,同时别忘了点个关注和在看,以便未来获取更多实用的Linux命令教程。感谢大家的阅读,我们下次再见!