Linux:环境变量

环境变量

变量

变量定义:declare tmp,declare是可选的。

变量赋值:tmp=1,=号左右不要有空格。

变量引用:echo $tmp,不要忘记了$号。

环境变量

简单理解了变量的概念,就很好解释环境变量了,环境变量就是作用域比自定义变量要大,如Shell 的环境变量作用于自身和它的子进程。在所有的 UNIX 和类 UNIX 系统中,每个进程都有其各自的环境变量设置,且默认情况下,当一个进程被创建时,处理创建过程中明确指定的话,它将继承其父进程的绝大部分环境设置。Shell 程序也作为一个进程运行在操作系统之上,而我们在 Shell中运行的大部分命令都将以 Shell 的子进程的方式运行。

通常会涉及三种环境变量:

  • 私有环境变量,只在当前shell中有效,如:tmp=1。
  • shell本身内建的环境变量。
  • 从私有环境变量导出的环境变量。

set显示shell中所有环境变量。env显示用户相关环境变量。export显示导出的环境变量。
set>env>export。

PATH环境变量

修改PATH环境变量:PATH=$PATH:other_path。
在每个用户的 home 目录中有一个 Shell 每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等等。zsh 的配置文件是.zshrc,相应 Bash 的配置文件为.bashrc。它们在etc下还都有一个或多个全局的配置文件,不过我们一般只修改用户目录下的配置文件。

我们可以简单的使用下面命令直接添加内容到.zshrc中:echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc。

上述命令中>>表示将标准输出以追加的方式重定向到一个文件中,注意前面用到的>是以覆盖的方式重定向到一个文件中,使用的时候一定要注意分辨。在指定文件不存在的情况下都会创建新的文件。

变量修改和删除

变量修改有如下几种方式:

  • ${变量名#匹配字符串}:从头向后匹配,删除符合匹配的最短数据。
  • ${变量名##匹配字符串}:从头向后匹配,删除符合匹配的最长数据。
  • ${变量名%匹配字符串}:从后向前匹配,删除匹配字符串的最短数据。
  • ${变量名%%匹配字符串}:从后向前匹配,删除匹配字符串的最长数据。
  • ${变量名/旧字符串/新字符串}:将旧字符串的第一个匹配替换为新字符串。
  • ${变量名//旧字符串/新字符串}:将旧字符串的所有匹配替换为新字符串。

使用 unset 删除环境变量。

如何让环境变量立即生效

在上面我们在 Shell 中修改了一个配置脚本文件之后(比如 zsh 的配置文件 home 目录下的.zshrc),每次都要退出终端重新打开甚至重启主机之后其才能生效,很是麻烦,我们可以使用source命令来让其立即生效,如:

source .zshrc
source命令还有一个别名就是.,注意与表示当前路径的那个点区分开,虽然形式一样,但作用和使用方式一样,上面的命令如果替换成.的方式就该是

. ./.zshrc
注意第一个点后面有一个空格,而且后面的文件必须指定完整的绝对或相对路径名,source 则不需要。

相关推荐

  1. linux设置环境变量

    2023-12-28 15:10:04       40 阅读
  2. Linux环境变量

    2023-12-28 15:10:04       34 阅读
  3. Linux 环境变量

    2023-12-28 15:10:04       24 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-28 15:10:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-28 15:10:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-28 15:10:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-28 15:10:04       20 阅读

热门阅读

  1. 2024 年软件工程将如何发展

    2023-12-28 15:10:04       28 阅读
  2. leetcode18. 四数之和

    2023-12-28 15:10:04       41 阅读
  3. go语言10进制与16进制转换

    2023-12-28 15:10:04       37 阅读
  4. 关于:网络安全

    2023-12-28 15:10:04       34 阅读
  5. mysql导入tab符号txt文件到数据库

    2023-12-28 15:10:04       37 阅读
  6. Vue.js

    Vue.js

    2023-12-28 15:10:04      28 阅读
  7. 如何判断网站服务器的访问承载量?

    2023-12-28 15:10:04       34 阅读
  8. html隐藏元素的方法

    2023-12-28 15:10:04       32 阅读
  9. Tomcat使用手册

    2023-12-28 15:10:04       29 阅读
  10. CSS标准盒子模型和怪异盒子模型

    2023-12-28 15:10:04       36 阅读
  11. 自然语言处理(NLP)技术

    2023-12-28 15:10:04       36 阅读
  12. Linux用wget/curl 发起post请求

    2023-12-28 15:10:04       36 阅读
  13. Leetcode4-唯一元素的和(1748)

    2023-12-28 15:10:04       32 阅读
  14. 树莓派非常实用的程序-1 tvservice

    2023-12-28 15:10:04       32 阅读
  15. Qt+opencv 视频分解为图片

    2023-12-28 15:10:04       38 阅读