grep
grep命令用于对文本进行搜索,格式为:grep [选项] [文件],搜索某个关键词:"grep 关键词 文本文件"
命令参数
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的次数
-i 忽略大小写
-n 显示行号
-v 反向选择——仅列出没有“关键词”的行。
-
命令示例
- 搜索在/etc/passwd中 "/sbin/nologin"出现的行,找出系统中不允许登录的用户
grep /sbin/nologin /etc/passwd
- 找出文件"/usr/share/gedit/plugins/snippets/docbook.xml"中所有包含entry的行 并输出到/root/lines:
grep entry /usr/share/gedit/plugins/snippets/docbook.xml >> /root/lines
find
find命令用于查找文件,格式为:find [查找路径] 寻找条件 操作
-
命令参数
-name 匹配名称 -perm 匹配权限(mode为完全匹配,-mode为包含即可) -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 匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件) -prune 忽略某个目录 --exec {} \; 后面可接对搜索到结果进一步处理的命令(下面会有演示)
-
命令示例
-
搜索在/etc/中所有以host开头的文件
find /etc -name "host*" -print
-
搜索整个系统中所有包含SUID的文件(因SUID的数字表示法是4,而减号表示只要包含即可)
find / -perm -4000 -print
-
找出用户linuxprobe的文件并复制到/root/findresults目录,重点是"-exec {} ;", 其中的{}代表find命令搜索出的文件,记住结尾必须是;
find / -user linuxprobe -exec cp -arf {} /root/findresults/ \;
-