Linux环境变量&文件查找
声明一个变量:
declare tmp
声明一个变量tmp
,也可以不用声明直接使用。
什么是环境变量?
通俗的解释,只要是能作用于Shell自身和它的子进程的变量就是环境变量。
怎么定义环境变量?
1.临时环境变量
export tmp=1
此时tmp
就成了一个环境变量,只不过如果当前Shell进程终止就会失效,重新启动Shell则不再存在。
2.永久环境变量
想要让创建的环境变量永久生效,就要更改相关的配置文件,Linux下的配置文件有两个:
/etc/bashrc
:存放的是shell变量
/etc/profile
:存放的是环境变量
一般有的用户目录下还会有一个隐藏文件.profile
,这个.profile
只对当前用户永久生效。而写到
/etc/profile
中是对所有用户永久生效,所以想要添加一个永久的环境变量,就在这个配置文件中加上想要添加的环境变量就好了。
命令的查找路径和顺序
环境变量PATH
介绍
环境变量PATH
中保存了Shell中执行命令的搜索路径
查看
echo $PATH
怎样添加自定义路径到 PATH ?
PATH=$PATH:/bin_dir_path
bin_dir_path
是可执行文件(gcc编译产物,Shell脚本,python脚本……)存放的文件夹路径,这个路径一定要是绝对路径,eg: /home/zanda/Desktop/Shell
添加了以后就可以在任意路径下执行这个目录下的可执行文件,并且不需要带./
这样有一个弊端就是:只在当前Shell下有效,一旦退出终端,则刚才所作均失效。
那怎样可以永久的添加PATH路径呢?
在每个用户的 home 目录中有一个 Shell 每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等等。zsh 的配置文件是 .zshrc,相应 Bash 的配置文件为 .bashrc 。它们在 etc 下还都有一个或多个全局的配置文件,不过我们一般只修改用户目录下的配置文件。
命令:echo "PATH=$PATH:/bin_dir_path" >> .bashrc
如何让环境变量立即生效?
当进行完上一个操作以后,你会发现”然而并没有什么卵用“,这是因为修改后的配置文件还未生效,可以使用这个命令令其立即生效:
source .bashrc
变量的删除
unset tmp
删除变量tmp
以下为搜索文件的四种方式:
搜索文件
whereis
这个搜索很快,因为它并没有从硬盘中依次查找,而是直接从数据库中查询。
whereis
只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)。如果想要获得更全面的搜索结果可以使用locate
命令。locate
通过“
/var/lib/mlocate/mlocate.db
”数据库查找,不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行updatedb
命令更新一次,所以有时候你刚添加的文件,它可能会找不到,需要手动执行一次updatedb
命令(在我们的环境中必须先执行一次该命令)。它可以用来查找指定目录下的不同文件类型。#如查找 `/etc` 下所有以 `sh` 开头的文件 yum -y install locate locate /etc/sh #查找 /usr/share/ 下所有 jpg 文件 locate /usr/share/\*.jpg
which
which
本身是 Shell 内建的一个命令,我们通常使用which
来确定是否安装了某个指定的软件,因为它只从PATH
环境变量指定的路径中去搜索命令find
这怕是不用多说了吧……