linux学习笔记-08shell脚本基础

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/ \;
      

你可能感兴趣的:(linux学习笔记-08shell脚本基础)