Linux环境变量的设置和修改

资料:https://www.shiyanlou.com/courses/running

1 环境变量的理解

环境变量的作用域比自定义变量的要大,如 Shell 的环境变量作用于自身和它的子进程。在所有的 UNIX 和类 UNIX 系统中,每个进程都有其各自的环境变量设置,且默认情况下,当一个进程被创建时,除了创建过程中明确指定的话,它将继承其父进程的绝大部分环境设置。


Linux环境变量的设置和修改_第1张图片

1.1 三种变量类型:

  • 当前 Shell 进程私有用户自定义变量,只在当前 Shell 中有效。
  • Shell 本身内建的变量。
  • 从自定义变量导出的环境变量。

1.2 与三种环境变量相关的命令

  • set : 显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。
  • env : 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
  • export : 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。
Linux环境变量的设置和修改_第2张图片
Linux环境变量的设置和修改_第3张图片

按变量的生存周期来划分,Linux 变量可分为两类:

  • 永久的:需要修改配置文件,变量永久生效;

  • 临时的:使用 export 命令行声明即可,变量在关闭 shell 时失效。

Linux环境变量的设置和修改_第4张图片

每个用户目录下有一个.profile隐藏文件,这个 .profile 只对当前用户永久生效。

Linux环境变量的设置和修改_第5张图片

写在 /etc/profile 里面的是对所有用户永久生效,如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。

2 PATH

Linux环境变量的设置和修改_第6张图片

echo $PATH 输出环境变量,发现环境变量的分隔符为:

2.1 添加自定义路径到PATH(环境变量)

  • PATH=$PATH:/home/shiyanlou/mybin 将绝对路径/home/shiyanlou/mybin添加到环境变量,后可以在home目录直接运行mybin里面的文件
  • echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc 将命令内容添加到 .zshrc 中,每次启动 Shell 时自动执行添加自定义路径到 PATH 的命令
  • zsh 的配置文件是 .zshrc,相应 Bash 的配置文件为 .bashrc 。Shell 每次启动时会默认执行该配置脚本,以初始化环境,包括添加一些用户自定义环境变量等。
  • 命令中>> 表示将标准输出以追加的方式重定向到一个文件中
  • 命令中 > 是以覆盖的方式重定向到一个文件中
  • gcc -o hello_world hello_world.c 将.c文件变成可执行文件,gcc 生成二进制文件默认具有可执行权限,不需要修改

2.2 修改和删除已有环境变量

Linux环境变量的设置和修改_第7张图片
  • 删除PATH中的环境变量
Linux环境变量的设置和修改_第8张图片
  • 删除一个环境变量


    Linux环境变量的设置和修改_第9张图片
  • 让环境变量立马生效
    source .zshrc

3 搜索文件

  • whereis
Linux环境变量的设置和修改_第10张图片

whereis 直接从数据库中查询,只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)。

  • locate
locate /etc/sh    查找 /etc 下所有以 sh 开头的文件
locate /usr/share/\*.jpg  查找 /usr/share/ 下所有 jpg 文件
  • which 只从 PATH 环境变量指定的路径中去搜索命令
    比如:which man

  • find
    find 不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索;
    基本命令格式为 find [path] [option] [action]

 sudo find /etc/ -name interfaces  去 /etc/ 目录下面 ,搜索名字叫做 interfaces 的文件或者目录
Linux环境变量的设置和修改_第11张图片
Linux环境变量的设置和修改_第12张图片

你可能感兴趣的:(Linux环境变量的设置和修改)