文章来自于我的个人博客:(linux shell)第二章--命令之乐(一)   

上一章我们描写叙述了一些linux shell中须要注意的一些语法。接下来我们開始了解linux shell的经常使用命令。let's go...

  1. cat 命令:

    cat本身表示拼接(concatenate)。cat命令有一些经常使用參数,像-n,-s等,我们以下逐一介绍:

    假设你想高速查看一个文本文件内容。就能够使用cat命令:

    cat file

    假设你想一次查看多个文件内容。也是在后面加上文件路径就可以

    cat file1 file2 file3

    假设想显示文本文件的行号。则使用參数-n:

    cat -n file 或者 cat -n file1 file2 file3

    假设想去掉文本中的空行。则使用參数 -s:

    cat -s file 或者 cat -s file1 file2 file3 当然这里也能够使用tr命令来益处空白行:cat file | tr -s '';  这个tr命令的意思是说将多个换行符当作一个换行符来看待。

  2. find 命令:

    find命令是沿着文件层次结构向下遍历,匹配符合条件的文件,并运行对应的操作。

    基本的语法:

    find . -print   #打印出带有路径的当前文件夹下的全部文件路径

find命令也有非常多參数,我们以下来看一些经常使用參数的使用方法:

1).依据文件名称或者正則表達式匹配搜索

find . -name "*.sh" -print   #从当前文件夹查找全部符合以sh结尾的文件,并打印到终端

-name另一个相应的-iname来忽略keyword的大写和小写

find . -iname "*.sh" -print

2).依据路径匹配

find . -path "*test*" -print  #从当前文件夹開始。查找路径前缀是test的全部路径以及打印出这些文件夹下的文件

3).基于正則表達式的匹配 -regex

find . -regex ".*\.py$" -print

4).否定參数 !

假设想要查找不包括条件的文件,则在类型前面加上!就可以:

find . ! -name "*.sh" -print

5).给予文件夹深度的搜索 -maxdepth 和-mindepth

我们能够通过这个命令来限制find向下查找的深度

find . -maxdepth 1 -type f -print   #在当前文件夹的当前文件夹查找是文件类型的文件,也就是查找时它不会向下遍历

-maxdepth和-mindepth应该作为find的第三个參数出现,假设作为第四个或者之后的參数出现,就可能会影响到find的效率,由于  它不得不进行一些不必要的检查。

​    ​6).依据文件类型搜索 -type

​    ​    ​find . -type d -print   #仅仅列出全部的文件夹

​    ​    ​

​    ​    ​find . -type f -print   #仅仅列出全部的文件

​    ​    ​find . -type l -print    #仅仅列出全部的链接

​    ​7).依据文件的时间搜索  -mtime(改动时间) -atime(訪问时间) -ctime(变化时间),时间用+,-来表示时间的前后

​    ​    ​find . -type f -atime -7 -print   #打印出在近期7天内被訪问的全部文件

​    ​    ​

​    ​    -amin(訪问时间),-mmin(改动时间),-cmin(变化时间)

​    ​    ​find . -type f -amin +7 -print    #打印出訪问时间超过7分钟的全部文件

​    ​    ​find . -type f -newer file.sh -print   #找出比file.sh改动时间更长的全部文件

​    ​8),基于文件大小的搜索  -size

​    ​    ​find . -type f -size +2k    #查找大于2KB的全部文件,除了k之外,还能够使用b--块,c--字节,w--字,M--兆字节,G--吉字节

​    ​    ​

​    ​    ​find . -type f -size 2k   #大于等于2KB的文件

​    ​    ​find . -type f -size -2k  #小于2KB的文件

​    ​9).匹配操作

​    ​    ​find . -name "*.sh" -delete   #删除匹配的全部文件(甚用)

​   10).基于文件权限和全部权的匹配  --perm

​    ​    ​find . -type f -perm 644 -print   #打印出权限为644的文件

​   11).结合find运行命令或动作

​    ​    ​find命令能够借助选项-exec与其它命令进行结合,-exec算得上是find最强大的特性之中的一个。

​    ​    ​find . -type f -user root -exec chown test {} \; 这个命令中,{}是一个特殊字符串,与-exec选项结合使用。对于每一个匹配的文件,{}会被替换成对应的文件名称。在上面的命令中,先查找文件所属是root用户的全部文件,然后给test用户加入权限。

​    ​    ​find . -type f -name "*.sh" -exec cat {} \; > all_sh_files.txt  这个命令是先查出全部的sh文件。然后将文件的内容都加到文本文件里。​

(linux shell)第二章--命令之乐(一)的更多相关文章

  1. LinuxShell脚本攻略--第二章 命令之乐

    用 cat 进行拼接 文件查找与文件列表玩转 xargs 用 tr 进行转换排序临时文件命名与随机数分割文件和数据根据扩展名切分文件名mv 批量重命名文件交互输入自动化 cat: echo 'Text ...

  2. (linux shell)第一章--小试牛刀(上)

    来源:(linux shell)第一章--小试牛刀(上) 从今天開始,我们一起来学习<linux shell脚本攻略>这本书. 1.1简单介绍 shell脚本一般是一个以#!起始的文本文件 ...

  3. (linux shell)第一章--小试牛刀(下)

    文章来源: (linux shell)第一章--小试牛刀(下) 1.6 数组和关联数组 1.6.1 预备知识 Bash同一时候支持普通数组和关联数组.普通数组仅仅能使用整数作为数组索引,而关联数组能够 ...

  4. Linux Shell 05 位置变量(命令行参数)

    在Linux shell 脚本中可能会用到一些命令行参数,常见如下: $0:脚本名称 $#:执行脚本时传入的参数个数,不包括脚本名称 $@:所有参数 $*:所有参数 $1...$9:第1个参数.... ...

  5. linux shell 操作 mysql命令(不进入mysql操作界面)

    由于需要,需要将一系列mysql的操作制作成.sh文件,只需要shell操作bash命令就可以傻瓜式的完成黑盒任务. #!/bin/bash mysql -uroot -p??? -e "c ...

  6. linux shell实用常用命令

    本文主要介绍Linux Shell的一些使用小技巧收集,非常实用,需要的朋友可以参考下. 查看本机某端口是否被占用 netstat -anpt | grep 22 查看远程某端口是否被开放 echo ...

  7. Linux学习《第二章命令》本章小结

    经过这一章的学习,了解了常用的命令.这是学习Linux系统最最基础的工作,必须努力掌握,个人觉得,并不是这个章节学习结束之后,命令的学习就结束了,而是刚刚开始,今后在每个知识点学习过程中,都会 学习到 ...

  8. Linux课后练习(第二章命令)20200218

  9. Linux学习-第二章(命令)20200216

随机推荐

  1. uoj22 【UR #1】外星人

    link 题意: 给一个长为n的序列a[],现在有一个初始值m,问一个1~n的排列p[],满足将m对a[p[i]]顺次取模后得到的值最大,输出最大值和方案数. $n,m\leq 5\times 10^ ...

  2. Java并发(十一):Condition条件

    先做总结: 1.为什么使用Condition条件? synchronized配合Object的wait().notify()系列方法可以实现等待/通知模式. Lock提供了条件Condition,对线 ...

  3. struts2漏洞S2-046修复解决方案

    项目验收通过半年之后, 甲方找了一些网络砖家用工具扫描我司做的社保卡申领系统, 找到了struts2漏洞S2-046, 真是服了, 只知道struts2有bug, 现在才知道它漏洞. 砖家们给出了修复 ...

  4. python开发_tarfile_文档归档压缩|解压缩

    ''' python中的tarfile模块实现文档的归档压缩和解压缩 功能: 把工作空间下面的所有文件,打包生成一个tar文件 同时提供一个方法把该tar文件中的一些文件解压缩到 指定的目录中 ''' ...

  5. hdu 5207 Greatest Greatest Common Divisor 数学

    Greatest Greatest Common Divisor Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/ ...

  6. 读书笔记_Effective_C++_条款二十七:尽量少做转型动作

    有关转型的几种做法,已经在早些的博客中写过了.这里先简单回顾一下,再讲一讲effective中对之更深入的阐述. 转型可以按风格可以分成C风格转型和C++风格转型两大类,C风格转型很容易看到,因为我们 ...

  7. 通过手机音频口,实现与单片机通讯,做电子签名成功n

    手机端的Ukey便携产品, 可以管理证书.加密解密.电子签名 : 1.通讯稳定,生成签名成功率100% 2.证书固化,私钥安全 3.走手机音频接口,通用.跨平台 4.耗电少,自带电池可长期供电,且可充 ...

  8. ExtJs 3 自定义combotree

    ExtJs 3 自定义combotree /** * 自定义下拉树,支持初始化值时自动定位树节点. * 还没有考虑性能问题.继承自Ext.form.ComboBox也很浪费. * 代码中的cu.get ...

  9. Spring Bean InitializingBean和DisposableBean实例

    在Spring中,InitializingBean和DisposableBean是两个标记接口,为Spring执行时bean的初始化和销毁某些行为时的有用方法. 对于Bean实现 Initializi ...

  10. [Asp.net]使用flexpaper+swftools大文件分页转换实现在线预览

    引言 之前总结了在线预览几种常见解决方案,可以戳这里: http://www.cnblogs.com/wolf-sun/p/3569960.html http://www.cnblogs.com/wo ...