设为首页 收藏本站
查看: 1015|回复: 0

[经验分享] linux find基本用法

[复制链接]

尚未签到

发表于 2019-2-17 09:40:12 | 显示全部楼层 |阅读模式

  •   定义一个对所有用户都生效的命令别名
      要在全局生效,可在/etc/profile.d文件夹下建立.sh结尾文件
      如:touch env.sh
      加入 alisa cdnet='cd /etc/sysconfig/network-scripts/'
      . env.sh 让它生效
      测试结果如下:
      su - dcrfan
      Last login: Fri Nov  9 00:17:27 CST 2018 on :0
      [dcrfan@centos7 ~]$cdnet
      [dcrfan@centos7 network-scripts]$pwd
      /etc/sysconfig/network-scripts
  •   显示/etc/passwd文件中不以/bin/bash结尾的行
      执行grep -v ".*/bin/bash$" /etc/passwd
      结果:
      [root@centos7 network-scripts]#grep -v ".*/bin/bash$" /etc/passwd
      bin:x:1:1:bin:/bin:/sbin/nologin
      daemon:x:2:2:daemon:/sbin:/sbin/nologin
      adm:x:3:4:adm:/var/adm:/sbin/nologin
      lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
      sync:x:5:0:sync:/sbin:/bin/sync
      shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
      halt:x:7:0:halt:/sbin:/sbin/halt
      mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
      operator:x:11:0:operator:/root:/sbin/nologin
      games:x:12:100:games:/usr/games:/sbin/nologin
      ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
      nobody:x:99:99:Nobody:/:/sbin/nologin
      systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
      dbus:x:81:81:System message bus:/:/sbin/nologin
      polkitd:x:999:998:User for polkitd:/:/sbin/nologin
      abrt:x:173:173::/etc/abrt:/sbin/nologin
      libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
      rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
      colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin
      saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin
      rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
      chrony:x:995:993::/var/lib/chrony:/sbin/nologin
      qemu:x:107:107:qemu user:/:/sbin/nologin
      tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
      usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
      geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin
      rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
      nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
      radvd:x:75:75:radvd user:/:/sbin/nologin
      setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
      pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
      gdm:x:42:42::/var/lib/gdm:/sbin/nologin
      gnome-initial-setup:x:992:987::/run/gnome-initial-setup/:/sbin/nologin
      sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
      avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
      postfix:x:89:89::/var/spool/postfix:/sbin/nologin
      ntp:x:38:38::/etc/ntp:/sbin/nologin
      tcpdump:x:72:72::/:/sbin/nologin
      tom:x:5001:5001::/tmp/tom:/bin/zsh
  3.找出/etc/passwd文件中,包含二位数字或者三位数字的行
  执行命令egrep   ".*\b[0-9]{2,3}\b" /etc/passwd
  结果如下

  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
  operator:x:11:0:operator:/root:/sbin/nologin
  games:x:12:100:games:/usr/games:/sbin/nologin
  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
  nobody:x:99:99:Nobody:/:/sbin/nologin
  systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
  dbus:x:81:81:System message bus:/:/sbin/nologin
  polkitd:x:999:998:User for polkitd:/:/sbin/nologin
  abrt:x:173:173::/etc/abrt:/sbin/nologin
  libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
  rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
  colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin
  saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin
  rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
  chrony:x:995:993::/var/lib/chrony:/sbin/nologin
  qemu:x:107:107:qemu user:/:/sbin/nologin
  tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
  usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
  geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin
  rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
  radvd:x:75:75:radvd user:/:/sbin/nologin
  setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
  pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
  gdm:x:42:42::/var/lib/gdm:/sbin/nologin
  gnome-initial-setup:x:992:987::/run/gnome-initial-setup/:/sbin/nologin
  sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
  avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
  postfix:x:89:89::/var/spool/postfix:/sbin/nologin
  ntp:x:38:38::/etc/ntp:/sbin/nologin
  tcpdump:x:72:72::/:/sbin/nologin
  4. 显示/proc/meminfo文件中以大写字母或小写字母S开头的行

  grep "^[sS]" /proc/meminfo
  sed -n /^[sS]/p /proc/meminfo
  grep -i "^s" /proc/meminfo
  结果如下
  SwapCached:         3268 kB
  SwapTotal:       2097148 kB
  SwapFree:        2049412 kB
  Shmem:             12928 kB
  Slab:             100388 kB
  SReclaimable:      52500 kB
  SUnreclaim:        47888 kB
  

  5.使用echo输出一个绝对路径,使用egrep去除路径名,类似dirname  /etc/passwd 的结果
  执行命令 echo /etc/postfix/access/ | egrep -o ".*/."|egrep -o ".*/"|egrep -o ".*[^/]"
  /etc/postfix
  

  6.找出ifconfig中的ip地址。
  ifconfig eth0 | grep "inet "|tr -s " "|cut -d" " -f3
  192.168.1.103
  7.vim定制自动缩进4个字符

  修改etc/vim/vimrc 或者 家目录的.vimrc文件
          添加set tabstop=4
     8.编写脚本实现自动添加三个用户,并计算三个用户的uid之和
        #!/bin/bash
  declare -i sumid
  for i in {1..3};do
  if useradd user$i &>/dev/null ;then
  echo "the user$i is successful add"
  else
  echo "the user$i is exist"
  fi
  id=`grep user$i /etc/passwd|cut -d":" -f3`
  let sumid=sumid+id
  done
  echo "the sumuid is "$sumid""
     执行脚本结果如下:

  ./autoadduser.sh
  the user1 is successful add
  the user2 is successful add
  the user3 is successful add
  the sumuid is 15009
  9.find基本用法

  find [OPTION]... [查找路径] [查找条件] [处理动作]
  查找路径:指定具体目标路径;默认为当前目录
  查找条件:指定的查找标准,可以文件名、大小、类型、 权限等标准进行;默认为找出指定路径下的所有文件
  处理动作:对符合条件的文件做操作,默认输出至屏
  查找条件

  -maxdepth  level 最大搜索目录深度,指定目录为第1级
  -mindepth level 最小搜索目录深度 
  -name "文件名称":支持使用通配符   *, ?, [], [^]
  -iname "文件名称":不区分字母大小写
  -inum n  按inode号查找  -samefile name  相同inode号的文件
  -links n   链接数为n的文件
  -regex "PATTERN":以PATTERN匹配整个文件路径字 符串,而不仅仅是文件名称 ;正则匹配不能够只匹配部分,要匹配完全路径
  -user USERNAME:查找属主为指定用户(UID)的文件
  -group GRPNAME: 查找属组为指定组(GID)的文件
  -uid UserID:查找属主为指定的UID号的文件
  -gid GroupID:查找属组为指定的GID号的文件
  -nouser:查找没有属主的文件
  -nogroup:查找没有属组的文件
  -empty 搜索空文件和空目录之类的 !取反

  -type TYPE:   · f: 普通文件 · d: 目录文件 · l: 符号链接文件 · s:套接字文件 · b: 块设备文件 · c: 字符设备文件 · p: 管道文件
  -size [+|-]#UNIT   常用单位:k, M, G,c(byte) -2k 表示0到1k文件;2k 表示1k(但不包括1k)到2k文件 ;+2k 表示大于2k(不包括2k)文件
  -atime(min) -mtime(min) -ctime(min) -2 表示0到2天(不包括2天)文件 ; 2表示2到3天(不包括3天)文件 :+2 表示3天以上文件
  -perm   666 精确匹配 ;  /666 (或) 只要有一个用户满足6或以上权限就匹配 ;-666(并且) 要三个用户满足6或以上权限才可以 ; 如果出现0表示不判该用户权限 例如 /002 表示不判断所属组和所属用户只判断其他人满足2以上权限 -002 也如此判断; 但精确匹配时0表示为没权限
  -a 与操作 -o 或操作 !非操作         !A -a !B = !(A -o B)  !A -o !B = !(A -a B)
  处理动作
  -print:默认的处理动作,显示至屏幕 
  -ls:类似于对查找到的文件执行“ls -l”命令 
  -delete:删除查找到的文件 
  -fls file:查找到的所有文件的长格式信息保存至指定文件中 
  -ok COMMAND {} \; 对查找到的每个文件执行由COMMAND 指定的命令,对于每个文件执行命令之前,都会交互式要求用 户确认
  -exec COMMAND {} \; 对查找到的每个文件执行由 COMMAND指定的命令
  {}: 用于引用查找到的文件名称自身
  -path "目录"  -a -prune  排除某个目录
  find 命令的动作可以用 |xargs 命令  来传递参数分割处理 :find | xargs COMMAND
  示例:
  find /etc/ -maxdepth 3 -mindepth 3    找在/etc/目录第3层文件
  find /etc/ -path "/etc/sane.d" -a -prune -o -name "*.conf" 查找/etc/下的.conf结尾文件,排除/etc/sane.d目录
  find /etc/ \( -path "/etc/sane.d" -o -path "/etc/speech-dispatcher" \) -a -prune -o -name "*.conf" 排除两个目录
  find /etc/ ! -perm /222 -ls  查找/etc/下所有人都没有写权限
  find  -name "test*" -exec rm -r {} \  或者 find -type d -name "test*" -delete  删除test开头的目录
  find /sbin -perm /7000 -ls  查找/sbin 下具有特殊权限的文件 suid guid等
  find /data –type  f -perm 644  -name “*.sh” –exec chmod 755 {} \;  把/data/目录下的 .sh结尾文件加上执行权限
  find ~ -perm -002  -exec chmod o-w {} \ ;  在你的主目录中寻找可被其它用户写入的文件 并去掉其他用户写权限
  find  -name  “*.conf”  -exec  cp {}  {}.orig  \;   备份配置文件,添加.orig这个扩展名 
  find /tmp -ctime +3 -user dcrfan -ok rm {} \;   提示删除存在时间超过3天以上的dcrfan的临时文件      

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673455-1-1.html 上篇帖子: 【Linux】Linux开启snmp及查询 下篇帖子: Linux 学习基础入门之Linux分区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表