环境变量与文件查找

简介:

目录

一、环境变量

  1. 变量

  2. 环境变量

  3. 命令的查找路径与顺序 

  4. 添加自定义路径到PATH

  5. 修改和删除已有变量

  6. 环境变量立即生效

二、搜索文件

  1. where

  2. locate

  3. which

  4. find

博客不支持截图直接粘贴功能,详情请查看:http://note.youdao.com/noteshare?id=3488c870429661bd72c18a64c38b60bf

一、环境变量

1.变量

shell中如何创建一个变量:spacer.gif

spacer.gif//预声明一个变量,也可以即用即创建 。

为变量赋值:

spacer.gif

读取变量值:

spacer.gif

 

2.环境变量

通常我们涉及到的变量类型有以下三种:

  • 当前 Shell 进程私有用户自定义变量,如上面我们创建的变量a,只在当前 Shell 中有效。

  • Shell 本身内建的变量。

  • 从自定义变量导出的环境变量。

 

有三个命令均可用于打印环境变量信息:

spacer.gif

为了区分普通变量与环境变量的区别,通常将环境变量写为大写。

 

如何让变量永久生效?

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

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

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

有2个重要文件 /etc/bashrc(有的 Linux 没有这个文件) 和 /etc/profile ,它们分别存放的是 shell 变量和环境变量。还有要注意区别的是每个用户目录下的一个隐藏文件:

spacer.gif

spacer.gif

 

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

以下是profile文件:

spacer.gif

 

3.命令的查找路径与顺序

 

当我们在Shell中输入一个命令,通过环境变量PATH进行搜索,这个PATH里保存了Shell中执行的命令的搜索路径。

spacer.gif

 

以下在图形模式下创建一个shell脚本:

spacer.gif

spacer.gif

保存并为其添加可执行权限:spacer.gif

执行脚本:spacer.gif

spacer.gif

 

如果将hello.sh移动到其他目录,则不能执行。如何可以像执行系统命令一样执行自己创建的脚本或程序---需要将命令所在路径添加到PATH环境变量。

 

4.添加自定义路径到PATH

spacer.gif一定要使用绝对路径。

这样就可以在任意目录执行该shell了。直接hello.sh,去掉./

spacer.gif

以上方法退出终端后就失效了。

需要让shell自动执行, 类似Windows中的开机自启动。

在每个用户的home目录中有一个shell每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等。

zsh的配置文件是.zshrc,相应Bash的配置文件为.bashrc。它们在etc下还有一个或多个全局的配置文件,不过一般只修改用户目录下的配置文件。

可使用下面命令直接添加内容到.zshrc中:

spacer.gif

 

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

 

 

5.修改和删除已有变量

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

spacer.gif

示例:将path的最后一个路径,使用%从尾向前匹配,删除。

spacer.gif

删除变量命令:

spacer.gif

6.如何让环境变量立即生效。

之前修改了一配置脚本文件.zshrc。每次都要退出终端重新打开或重启主机后才能生效,可以使用source

命令立即生效。

spacer.gif

此外,也可用.的方式,如下:

spacer.gif

如果用这种方式, 后面的文件必须指定完整的绝对或相对路径名,source则不需。

 

二、搜索文件 

搜索相关命令:where  which locate find 

1.where简单快速。

spacer.gif

可以看到搜索结果有3个路径,2个可执行文件路径和一个man在线帮助文件所在路径。直接从DB中查询 。

whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s).

whereis参数有:-b -m -s

2.locate

通过“ /var/lib/mlocate/mlocate.db ”数据库查找,不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行 updatedb 命令更新一次,所以有时刚添加的文件,可能会找不到,需要手动执行一次 updatedb 命令。它可以用来查找指定目录下的不同文件类型,如查找 /etc 下所有以 sh 开头的文件:

spacer.gif

查找/usr /下所有jpg文件的数量。 

spacer.gif

locate参数有-c(只统计数目),-i(可忽略大小写)

找出/etc下所有以.list结尾的file如下:

spacer.gif

3.which

which是Shell内建的一个命令,通常用which来确定是否安装了某个指定的软件 。 它只从path环境变量指定的路径中去搜索命令。

 

 

4.find

搜索命令中最强大的,可通过文件类型, 文件名、文件属性(文件时间戳、文件权限等)。

示例:搜索mysh下的hello.sh

spacer.gif

find基本命令格式为:

find [path][option][action]

以下是与时间相关的命令参数:

spacer.gif

 

示例:列出该目录下当天24小时之内有改动的文件 :

spacer.gif

示例:列出该目录下比mysh目录新的文件 :

spacer.gif

 

 

 

 

 

 

 

 

 本文转自 honzhang 51CTO博客,原文链接:http://blog.51cto.com/hongz/1919223






相关文章
|
5月前
|
Windows
windows命令行查找修改文件
windows命令行查找修改文件
|
21天前
|
Shell 开发工具 git
shell空文件夹查找
shell空文件夹查找
9 0
|
4月前
|
Shell
shell搜索文件和内容
shell搜索文件和内容
81 1
|
5月前
|
Linux
Linux配置环境变量
Linux配置环境变量
19 0
|
11月前
|
分布式计算 Hadoop
hadoop配置环境变量路径
hadoop配置环境变量路径
|
11月前
|
Shell
shell 获取到文件夹下的文件名
shell 获取到文件夹下的文件名
48 0
shell遍历文件夹及去掉文件后缀名
shell遍历文件夹及去掉文件后缀名
|
数据库 索引
文件查找
which 找可执行文件位置 locate 默认每天0点扫盘,将文件信息作为索引写入数据库。(updatedb可手动更新库) whereis 只能用于搜索程序名,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。
676 0
|
Shell 数据库