目录
一.基本常用指令
指令1:find命令:
指令2:which命令:
指令3:alias命令:
指令4:whereis
which,find,whereis这三个搜索命令的区别:
指令5:grep命令
指令6:sort命令:
指令7:uniq指令:
二.打包压缩/解包解压型指令
指令8:zip/unzip命令:
指令9:tar命令:
一.基本常用指令
指令1:find命令:
Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:
-name 按照文件名查找文件。
例1:
例2:
例3:
其实find命令不止一个按文件名称查找,还有别的查找方式,但-name方式是最常用到的。
例4:
指令2:which命令:
which 用于查看给定命令的绝对路径。
which 可指定一个或多个参数。对于它的每个参数,它将可执行文件的完整路径打印到 stdout。它通过使用与 bash(1)相同的算法在环境变量 PATH 中列出的目录中搜索可执行文件或脚本来实现这一点。
如上图发现有个alias词汇,该词汇其实也是一个指令。
指令3:alias命令:
alias命令用于设置指令的别名。
alias[别名]=[指令名称]。
功能:alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令的别名。
将指定的指令重命名,那么自己设置的名字就可代替官方的指令进行操作了:,如下:
解析:将ls -l指令重起个名字为zhangsan,那么zhangsan也就是一个可以查看当前路径下所有文件的指令了。
指令4:whereis
功能:定位一个“命令”的二进制文件、源文件、手册文件。
语法:whereis [options] [-BMS directory... -f name..
描述whereis 定位一个指定“命令”的二进制文件、源文件、手册文件的位置。提供的名称首先去除前导路径名组件和任何 (单个) 尾随 .ext 扩展名 (例如: .c) 。使用源代码控制产生的前缀"s."也得到处理。然后whereis 尝试在标准 LinuxQ 位置以及 SPATH 和SMANPATH 指定的位置中定位所需的程序。
选项:
-b: 只搜索二进制文件
-m:只搜索手册文件
-s: 只搜索源文件。
which,find,whereis这三个搜索命令的区别:
- which:常用于查找可直接执行的命令。只能查找可执行文件,该命令基本只在$PATH路径中搜索,查找范围最小,查找速度快。默认只返回第一个匹配的文件路径,通过选项 -a 可以返回所有匹配结果。
- whereis:不只可以查找命令,其他文件类型都可以(man中说只能查命令、源文件和man文件,实际测试可以查大多数文件)。在$PATH路径基础上增加了一些系统目录的查找,查找范围比which稍大,查找速度快。可以通过 -b 选项,限定只搜索二进制文件。whereis适用于查找文档和指令。
- find:直接搜索整个文件目录,默认直接从根目录开始搜索,建议在以上命令都无法解决问题时才用它,功能最强大但速度超慢。除非你指定一个很小的搜索范围。通过 -name 选项指定要查找的文件名,支持通配符。
指令5:grep命令
全拼:Global search REgular expression and Print out the line.
语法: grep [选项] 搜寻文件中的指定内容
功能:文本搜索工具,根据用户指定的“模式 (过滤条件”对目标文本逐行进行匹配检查,打印匹配到的行模式:由正则表达式的元字符及文本字符所编写出的过滤条件
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
例1:此下图片为106.txt的内容:
通过使用grep指令去查询筛选出特定关键字的内容:
图片解析:查询106.txt文件中的有关字母i的行数并显示出来grep -i 不分大小写 ,grep -n 显示行数。
采用-v选项可以筛选出除了包含内容i以外的所有内容:
指令6:sort命令:
语法:sort [filename]
功能:对文件内容进行排序(按照ASCII码表)
例1:
采用sort指令对该文件进行排序后,如下:
解析:文件内容变得很规范,数字行在前,字母行在后。
注:那些空行全部都按照ASCII的数字0进行匹配的。
指令7:uniq指令:
语法:uniq [filename]
功能:对文件内容进行去重,即有多个相同行数据的全部清除到只有一行。
例1:
采用uniq指令后:
图片解析:从图中可发现,那些连续行重复的,uniq可以进行去重;但是零散的多个重复行内容却没有做到去重。
解决方法:
想要真正去重只能是在sort的前提下进行uniq才能真正做到文件内容的去重!
二.打包压缩/解包解压型指令
1. 打包:将一堆文件或目录什么的变成一个总的文件。
2. 压缩:将一个大的文件经过某种压缩算法变成一个小文件。
为什么要区分这两个概念呢?因为Linux中的很多压缩程序只能针对一个文件进行压缩,所以当你想要压缩一大堆文件时,首先需要打个包,然后压缩。
指令8:zip/unzip命令:
语法: zip 压缩文件.zip 目录或文件 ; unzip解压文件
功能: 将目录或文件压缩成zip格式; 将zip格式的压缩包进行解压成文件
常用选项:
-r 递 归处理,将指定目录下的所有文件和子目录一并处理
使用该命令需要执行yum指令安装下载才可以,注意:安装时需要root用户进行,采用子账号权限不够!
例1:
但是进入myy.zip中发现该文件中没有empty的文件,这是为什么?从上上个图可以看出:zip myy.zip empty指令是一定执行成功的,因为有adding:qaq/(stored 0%)。
但是我们需要好好想想:empty是一个目录文件,它里面即可以放目录,又可以放普通文件,所以我们的做法只是将empty目录表面压缩成了包,但empty里面的内容并没有压缩!所以还得加上-r选项才可以!
将my.zip移动到新创建的目录qaq中:
对zip进行解压:
还可以将压缩包解压到指定路径下:需要用到-d选项!
以上就成功的将某个目录文件完整的进行压缩成zip格式的包,然后再放到新建的目录文件中进行解压的全部过程。
总结:
1.zip默认对一个目录进行打包压缩的时候,只会对目录文件打包压缩。
2.zip -r 你的压缩包名称(自定义) dir(要打包压缩的目录)
3.unzip 你自定义的压缩包名称 —— 在当前目录下进行解包解压的功能
指令9:tar命令:
功能:tar -[选项] [要打包的目录文件] (压缩指令);
tar -[选项] [要解压的taz类型的压缩包] (解压指令);
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
例1:仍是将empty目录文件压缩到指定目录中
解析:压缩的时候是:tar -czf 自定义的压缩包名称 dir(要压缩的目录文件)
解压的时候是:tar -xzf 自定义的压缩名称
例2:解包解压时指定路径:-C选项
例3:不解包解压,仍可以查看到包里的文件名称: