1 环境变量的理解
环境变量的作用域比自定义变量的要大,如 Shell 的环境变量作用于自身和它的子进程。在所有的 UNIX 和类 UNIX 系统中,每个进程都有其各自的环境变量设置,且默认情况下,当一个进程被创建时,除了创建过程中明确指定的话,它将继承其父进程的绝大部分环境设置。
1.1 三种变量类型:
当前 Shell 进程私有用户自定义变量,只在当前 Shell 中有效。
Shell 本身内建的变量。
从自定义变量导出的环境变量。
1.2 与三种环境变量相关的命令
set : 显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。
env : 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
export : 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。
按变量的生存周期来划分,Linux 变量可分为两类:
永久的:需要修改配置文件,变量永久生效;
临时的:使用 export 命令行声明即可,变量在关闭 shell 时失效。
每个用户目录下有一个.profile隐藏文件,这个 .profile 只对当前用户永久生效。
写在 /etc/profile 里面的是对所有用户永久生效,如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。
2 PATH
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 修改和删除已有环境变量
删除PATH中的环境变量
删除一个环境变量
让环境变量立马生效
source .zshrc
3 搜索文件
whereis
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 的文件或者目录