5.find命令
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-name:按照文件名搜索
-iname:按照文件名搜索,不区分文件名大小写
-inum:按照 inode 号搜索
-size [+|-]大小:按照指定大小搜索文件这里的“+”的意思是搜索比指定大小还要大的文件,“-”的意思是搜索比指定大小还要小的文件。
①b
如果单位为 b 或不写单位,则按照 512 Byte 搜索
②c
: 按照字节搜索
③k
: 按照 KB 单位搜索,必须是小写的 k
④M
: 按照 MB 单位搜索,必须是大写的 M
⑤G
: 按照 GB 单位搜索,必须是大写的 G
⑥w
: 按照双字节(中文)搜索
按照修改时间搜索
-atime [+|-]时间:按照文件访问时间搜索
-mtime [+|-]时间:按照文件数据修改时间搜索
- -5:代表 5 天内修改的文件。
- 5:代表前 5~6 天那一天修改的文件。
- +5:代表 6 天前修改的文件。
按照文件类型搜索
-type d:查找目录
-type f:查找普通文件
-type l:查找软链接文件
逻辑运算符
-a:and 逻辑与
-o:or 逻辑或
-not:not 逻辑非
实例:find . -size +2k -a -type f
6. grep命令
grep 的作用是在文件中提取和匹配符合条件的字符串行
[root@localhost ~]# grep [选项] "搜索内容" 文件名
选项:
-i:忽略大小写
-n: 输出行号
-v:反向查找
--color=auto: 搜索出的关键字用颜色显示
find 也是搜索命令,那么 find 命令和 grep 命令有什么区别呢?
1)find 命令
find 命令用于在系统中搜索符合条件的文件名,如果需要模糊查询,则使用通配符进行匹配,通配符是完全匹配(find 命令可以通过-regex 选项,把匹配规则转为正则表达式规则,但是不建议如此)。
2)grep 命令
grep 命令用于在文件中搜索符合条件的字符串,如果需要模糊查询,则使用正则表达式进行匹配,正则表达式是包含匹配。
3)通配符与正则表达式的区别
通配符:用于匹配文件名,完全匹配
通配符 | 作 用 |
---|---|
? | 匹配一个任意字符 |
* | 匹配 0 个或任意多个任意字符,也就是可以匹配任何内容 |
[] | 匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是 a,或者是 b,或者是 c |
[-] | 匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符 |
正则表达式:用于匹配字符串,包含匹配
正则符 | 作 用 |
---|---|
? | 匹配前一个字符重复 0 次,或 1 次(?是扩展正则,需要使用 egrep 命令) |
* | 匹配前一个字符重复 0 次,或任意多次 |
[] | 匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是 a,或者是 b,或者是 c |
[-] | 匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
7.管道符:补充命令
命令格式: 命令1 | 命令2
ll -a /etc/ | more
想在/etc/的结果中搜索 yum 的文件名,应该使用 find 命令?还是 grep 命令?
ll -a /etc/ | grep yum
netstat 命令(CentOS 7 中,需要安装 net-snmp.x86_64,net-tools.x86_64 两个包才有此命令。7.5系统中已经自动安装)格式如下:
[root@localhost ~]# netstat [选项]
选项:
-a:列出所有网络状态,包括 Socket 程序
-c 秒数:指定每隔几秒刷新一次网络状态
-n:使用 IP 地址和端口号显示,不使用域名与服务名
-p:显示 PID 和程序名
-t:显示使用 TCP 协议端口的连接状况
-u:显示使用 UDP 协议端口的连接状况
-l:仅显示监听状态的连接
-r:显示路由表
统计正在连接的网络连接数量
如果想知道具体的网络连接数量,就可以再使用 wc 命令统计行数
[root@localhost ~]# netstat -an | grep "ESTABLISHED" | wc -l