Linux系统中服务、文件多,需要使用多种搜索命令进行查找我们需要的文本信息,系统中常用的文本搜索命令有grep、find、seek等,熟练掌握其用法可以显著提高搜索效率。
grep
常用于文本中搜索关键词,并显示匹配结果。最常用的参数是:
n:显示行号和v:反向匹配
- b:将可执行文件当做文本文件来搜索
- c:仅显示搜索到的行数
- i:忽略大小写
- n:显示行号
- v:反向搜索,列出没有关键词的行
root@peter:~# grep -n ubuntu /etc/apt/sources.list # 查找含有ubuntu的文本信息,并且显示行号
4:deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
5:deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
......
root@peter:~# grep -nv ubuntu /etc/apt/sources.list # 查找不含有ubuntu的文本,空行也显示
1:# deb cdrom:[Ubuntu 18.04.2 LTS _Bionic Beaver_ - Release amd64 (20190210)]/ bionic main restricted
2:
3:# add aliyuan codename:bionic
14:
15:
17:# newer versions of the distribution.
find
find 命令用于按照指定的条件来查找文件。
格式:find 路径 寻找条件 操作
参数 | 作用 |
---|---|
-name | 名称匹配 |
-perm | 权限匹配 |
-user | 所有者匹配 |
-group | 所有组匹配 |
-mtime | 修改内容时间(-n指n天内;+n指n天以前) |
-atime | 访问时间 |
-ctime | 修改权限时间 |
-newer f1 !f2 | 匹配比f1新但比f2旧的文件 |
--type b/c/d/p/l/f | 匹配文件类型 |
-size | 匹配文件大小(+50KB:超过;-50:小于) |
-exec ..... {}; | 后面接进一步处理搜索结果的命令 |
root@peter:~# find /etc -name "host*" -print # 查找配置etc中以host开头的文件列表
/etc/host.conf
/etc/hosts
/etc/hosts.deny
/etc/avahi/hosts
/etc/hostname
/etc/hosts.allow
ubuntu@peter:~/spider$ find . -name "*s" # 查找当前目录下以s结尾的任意文件
./BeautiulSoup/.git/hooks
./BeautiulSoup/.git/objects
./BeautiulSoup/.git/logs
ubuntu@peter:~/spider$ find . -type f # 列出当前目录的一般性文件
ubuntu@peter:~/spider$ find . -ctime -20 # 列出当前目录下进20天内更新过的文件
ubuntu@peter:~/spider$ find . -type f -perm 644 -exec ls -l {} \; # 列出当前目录中文件属主具有读写权限,并且文件所属组的用户和其他用户具有读权限的文件
Linux命令_文本搜索命令
网友评论