环境变量与文件查找
2016-07-13 14:04
288 查看
-----------------------------------------------------------------Sun-------------------------------------------------------------------1.环境变量 ①变量 何为变量? 变量就是计算机中用于记录一个值/字符/字符串 的符号。 变量名 英文字母数字下划线,不能以数字开头! 变量的作用域 一个函数中,源文件中,全局范围中,在这些范围中只允许有一个同名变量。 用 declare 创建一个 tmp 变量,然后赋值。 也可以不用 declare 声明变量。直接创建也可。 echo $tmp 读取 tmp 变量的值②环境变量前 Shell 进程私有用户自定义变量,如上面我们创建的 temp 变量,只在当前 Shell 中有效。Shell 本身内建的变量。从自定义变量导出的环境变量。 也有三个与上述三种环境变量相关的命令,
分别通过管道 用 sort 排序,重定向到 txt 文件中。 再用 vimdiff 比较文件内容 可以简单理解成 环境变量在当前子进程有效。 例: 用 export 将Shell 中的变量导出为环境变量,此时子Shell 中可查看到变量的值。 ③ 命令的查找路径与顺序 Shell 中输入一个命令是通过环境变量 PATH 来进行搜索的。即就是 PATH 中保存了Shell中执行命令的搜索路径。 echo $PATH 查看PATH内容 这一类目录下放的都是可执行文件,当我们在 Shell 中执行一个命令时,系统就会按照 PATH 中设定的路径按照顺序依次到目录中去查找,如果存在同名的命令,则执行先找到的那个。④ 修改和删除已有变量变量的修改有以下几种方式:
unset 变量名 删除一个环境变量2.搜索文件
下面以
set,
env,
export。区别在于是不同范围的环境变量。
命令 | 说明 |
---|---|
set | 显示当前 Shell 所有环境变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量 |
env | 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行 |
export | 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量 |
变量设置方式 | 说明 |
---|---|
${变量名#匹配字串} | 从头向后开始匹配,删除符合匹配字串的最短数据 |
${变量名##匹配字串} | 从头向后开始匹配,删除符合匹配字串的最长数据 |
${变量名%匹配字串} | 从尾向前开始匹配,删除符合匹配字串的最短数据 |
${变量名%%匹配字串} | 从尾向前开始匹配,删除符合匹配字串的最长数据 |
${变量名/旧的字串/新的字串} | 将符合旧字串的第一个字串替换为新的字串 |
${变量名//旧的字串/新的字串} | 将符合旧字串的全部字串替换为新的字串 |
whereis简单快速,直接在数据库中查找
命令。[/code]whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)。如果想要获得更全面的搜索结果可以使用[code]locate
which 小而精
which本身是 Shell 内建的一个命令,我们通常使用
which来确定是否安装了某个指定的软件,因为它只从
PATH环境变量指定的路[/code]
径中去搜索命令。
find精而细
不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索
find [path] [option] [action]与时间相关的命令参数:
参数 | 说明 |
---|---|
-atime | 最后访问时间 |
-ctime | 创建时间 |
-mtime | 最后修改时间 |
-mtime参数举例:
-mtime n: n 为数字,表示为在n天之前的”一天之内“修改过的文件
-mtime +n: 列出在n天之前(不包含n天本身)被修改过的文件
-mtime -n: 列出在n天之前(包含n天本身)被修改过的文件
newer file: file为一个已存在的文件,列出比file还要新的文件名
locate 快而全
通过"/var/lib/mlocate/mlocate.db"数据库查找,不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行updatedb
命令更新一次,所以有时候你刚添加的文件,它可能会找不到,需要手动执行一次updatedb命令(在我们的环境中必须先执行一次该
命令)。它可以用来查找指定目录下的不同文件类型!
相关文章推荐
- try catch 以及 throw 的用法
- UVA 10250 The Other Two Trees
- Objective-C错误码
- 手动搭建PHP环境之新建站点
- 技术主导型公司的困境
- Chromium OS 单板机项目需要你的加入!
- ubuntu source for caffe reference to solve the problem of the LIB
- JDK 1.8新特性Lambda入门
- POJ-3159 Candies( 差分约束 )
- SVM学习笔记
- uc/os-iii学习笔记-临界段
- 安卓 android 程序运行,禁止锁屏代码
- 不能为虚拟机xxxx电脑 打开一个新任务
- 解决vi命令不正常退出导致.swp文件无法删除问题的梦幻之旅
- Codeforces Round #271 (Div. 2) E. Pillars(线段树+DP)
- STL-优先级队列
- 【风宇冲】Unity3D教程宝典之Shader篇:特别讲 CG函数
- js 非构造函数的继承 object()方法
- Python之函数参数介绍
- canvas元素的基础知识