1. grep 命令

grep 命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项][文件]”。
grep 命令的参数及其作用如下:
-b	将可执行文件(binary)当做文本文件(text)来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号 ***常用***
-v 反向选择——仅列出没有“关键字”的行 ***常用***

这些参数中,-n 和 -v 这两个参数几乎能完成您日后 80% 的工作需要。

//用grep命令来查找/etc/passwd 文件中包含“/sbin/nologin”的行
[root@bogon test]# grep -n /sbin/nologin /etc/passwd
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
//省略部分输出信息

2. find 命令

find 命令用于按照指定条件查找文件,格式为 “find [查找路径] 寻找条件 操作”。
Linux中,搜索工作都是通过 find 命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限信息),一旦匹配成功则默认将信息显示到屏幕上。
find 命令的参数及其作用如下:
-name	匹配名称
-perm 匹配权限
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n 指 n 天以内, +n 指 n 天之前)
-atime -n +n 匹配访问文件的时间(-n 指 n 天以内, +n 指 n 天之前)
-ctime -n +n 匹配修改文件权限的时间(-n 指 n 天以内, +n 指 n 天之前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件f1新但比f2旧的文件
--type b/d/c/p/l/f 匹配文件类型(块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB查找超过50KB的文件,-50KB查找小于50KB的文件)
-prune 忽略某个目录
-exec ..... {}\; 后面可跟进一步处理搜索结果的命令

其中, -exec 参数用于把 find 命令搜索到的结果交由紧随其后的命令做进一步处理。

在 /etc 目录中,如果想要获取到该目录中所有以 host 开头的文件列表,可以执行如下命令:

//常规搜索
[root@bogon test]# find /etc -name "host*" -print
/etc/selinux/targeted/active/modules/100/hostname
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/hostname
//find命令 -exec ..... {}\;参数使用
//1.开始时,0611文件夹中只有test和findtest两个文件夹,并且test文件夹中有四个文件,findtest为空
[root@bogon 0611]# ls -R
.:
findtest test ./findtest: ./test:
560_file aaa.txt aa.txt a.txt
//2.执行find命令,将在test文件夹中找的的文件名以“a”打头的文件全部复制到findtest文件夹中
[root@bogon 0611]# find ./test -name "a*" -exec cp -a {} ./findtest/ \;
//3.再次查看文件夹,发现已经将查找到的文件都保存到了findtest中
[root@bogon 0611]# ls -R
.:
findtest test ./findtest:
aaa.txt aa.txt a.txt ./test:
560_file aaa.txt aa.txt a.txt

06grep与find命令详解的更多相关文章

  1. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  2. linux yum命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  3. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

  4. Docker命令详解

    Docker命令详解   最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...

  5. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  6. android adb 命令详解

    ADB (Android Debug Bridge)  是android SDK中的工具,需要先配置环境变量才能使用.起调试桥的作用,可以管理安卓设备.(也叫debug工具) ---------查看设 ...

  7. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  8. Top 命令详解

    Top 命令详解 先感受一下top命令的执行结果吧!哈哈-- top - 17:32:34 up 3 days, 8:04, 5 users, load average: 0.09, 0.12, 0. ...

  9. Ruby Gem命令详解

    转自:http://www.jianshu.com/p/728184da1699 Gem介绍: Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.o ...

随机推荐

  1. Hexo - 记录一次Pages服务部署失败的原因

    问题与分析 某天忽然发现,一直运行得好好的Pages服务部署失败了,GitHub Pages报错如下: Your site is having problems building: The tag c ...

  2. Codeforces 161A(贪心)

    要点 我在想贪心是对的那要二分图何用,自己的想法是:二分图最开始并不知道怎么匹配最好所以就按输入顺序连了,之后慢慢修改:而这道匹配也成对匹配但从一开始你就可以知道选哪个最划算,就是贪心地选最小的.不必 ...

  3. Kali下安装rar

    1.在kali中安装rar解压软件 方法一: apt-get install rar 方法二: 下载RAR:wget https://www.rarlab.com/rar/rarlinux-x64-5 ...

  4. Java EE学习笔记(十)

    MyBatis与Spring的整合 1.整合环境搭建 1).要实现MyBatis与Spring的整合,很明显需要这两个框架的JAR包,但是只使用这两个框架中所提供的JAR包是不够的,还需要其他的JAR ...

  5. angular4和asp.net core 2 web api

    angular4和asp.net core 2 web api 这是一篇学习笔记. angular 5 正式版都快出了, 不过主要是性能升级. 我认为angular 4还是很适合企业的, 就像.net ...

  6. WebApi迁移ASP.NET Core2.0

    WebApi迁移ASP.NET Core2.0 一步一步带你做WebApi迁移ASP.NET Core2.0   随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的AS ...

  7. Spark Mllib里的本地矩阵概念、构成(图文详解)

    不多说,直接上干货! Local matrix:本地矩阵 数组Array(1,2,3,4,5,6)被重组成一个新的2行3列的矩阵. testMatrix.scala package zhouls.bi ...

  8. Eclipse - 安装语言包

    Open the install wizard with 'Help' > 'Install new software...' add the Babel p2 repository: http ...

  9. c#基础2-out-ref

    //out参数要求在方法的内部 ; JiangJin(ref salary1); Console.WriteLine(salary1); Console.ReadKey(); 必须为其赋值 out.r ...

  10. CF1166C A Tale of Two Lands

    思路: 搞了半天发现和绝对值无关. http://codeforces.com/blog/entry/67081 实现: #include <bits/stdc++.h> using na ...