三、(1)常用文本查看及处理命令

cat、cut、uniq、sort、grep、wc命令的使用方法

cat命令

cat – concatenate files and print on the standard output(连接文件并在标准输出上输出)

  • 常见用法:
  • cat [OPTION]… [FILE]…
  1. -n:给显示的文本行编号
  2. -E:显示行结束符$
  • 使用实例:将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中
    [root@localhost var]# cat /etc/fstab /etc/issue > /tmp/etc.test
    

cut命令

cut – remove sections from each line of files(从文件的每一行中提取片段)

  • 常见用法:
    1.-d [CHAR](使用指定符号做字段切分的分隔符)
    2.-f [FIELDS](挑选出指定的字段;”-“可指定连续的多个字段;”,”可指定多个字段)
  • 使用实例:取出root用户的家目录和默认shell
    [root@localhost ~]# cat /etc/passwd|grep root
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin
    [root@localhost ~]# cat /etc/passwd|grep root|head -n 1
    root:x:0:0:root:/root:/bin/bash
    [root@localhost ~]# cat /etc/passwd|grep root|head -n 1|cut -d ':' -f 6
    /root
    [root@localhost ~]# cat /etc/passwd|grep root|head -n 1|cut -d ':' -f 7
    /bin/bash
    [root@localhost ~]# cat /etc/passwd|grep root|head -n 1|cut -d ':' -f 6-7
    /root:/bin/bash
    [root@localhost ~]# cat /etc/passwd|grep root|head -n 1|cut -d ':' -f 6,7
    /root:/bin/bash
    

uniq命令

uniq – report or omit repeated lines(报告或移除重复的行)

  • 常见用法:
  • uniq [OPTION]… [INPUT [OUTPUT]]
  1. -c:显示每行的重复次数
  2. -u:仅显示未曾重复过的行
  3. -d:仅显示重复过的的行
  • 使用实例:计算当前系统上被用户当做其默认shell的每种shell的次数
    [root@localhost ~]# cat /etc/passwd|head -n 1
    root:x:0:0:root:/root:/bin/bash
    [root@localhost ~]# cat /etc/passwd|cut -d ':' -f 7|uniq -c
        1 /bin/bash
        4 /sbin/nologin
        1 /bin/sync
        1 /sbin/shutdown
        1 /sbin/halt
       27 /sbin/nologin
        1 /bin/bash
    

sort命令

sort – sort lines of text files(对文本文件的内容进行排序,PS:不修改文件内容)

  • 常见用法:
  • sort [OPTION]… [FILE]…
  1. -n:基于数值大小而非字符进行排序
  2. -t [CHAR]:指定分隔符
  3. -k #:用于排序比较的字段
  4. -r:逆序排序
  5. -f:忽略字符大小写
  6. -u:重复的行只保留一份(重复行:连续且相同)
  • 使用实例:
  1. 取出当前系统上被用户当做其默认shell的最多的那个shell
    [root@localhost ~]# cut -d : -f 7 /etc/passwd|uniq -c
       1 /bin/bash
       4 /sbin/nologin
       1 /bin/sync
       1 /sbin/shutdown
       1 /sbin/halt
      27 /sbin/nologin
       1 /bin/bash
    [root@localhost ~]# cut -d : -f 7 /etc/passwd|uniq -c|sort -n
       1 /bin/bash
       1 /bin/bash
       1 /bin/sync
       1 /sbin/halt
       1 /sbin/shutdown
       4 /sbin/nologin
      27 /sbin/nologin
    [root@localhost ~]# cut -d : -f 7 /etc/passwd|uniq -c|sort -n|tail -n 1
      27 /sbin/nologin
    [root@localhost ~]# cut -d : -f 7 /etc/passwd|uniq -c|sort -n|tail -n 1|awk '{print $2}'
    /sbin/nologin
    
  2. 将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中
    [root@localhost ~]# sort -t : -n -k 3 /etc/passwd|tail -n 10|tr 'a-z' 'A-Z' > /tmp/maxusers.txt
    [root@localhost ~]# cat /tmp/maxusers.txt
    SYSTEMD-NETWORK:X:192:192:SYSTEMD NETWORK MANAGEMENT:/:/SBIN/NOLOGIN
    SSSD:X:993:988:USER FOR SSSD:/:/SBIN/NOLOGIN
    GEOCLUE:X:994:989:USER FOR GEOCLUE:/VAR/LIB/GEOCLUE:/SBIN/NOLOGIN
    CHRONY:X:995:990::/VAR/LIB/CHRONY:/SBIN/NOLOGIN
    SETROUBLESHOOT:X:996:993::/VAR/LIB/SETROUBLESHOOT:/SBIN/NOLOGIN
    LIBSTORAGEMGMT:X:997:994:DAEMON ACCOUNT FOR LIBSTORAGEMGMT:/VAR/RUN/LSM:/SBIN/NOLOGIN
    COLORD:X:998:996:USER FOR COLORD:/VAR/LIB/COLORD:/SBIN/NOLOGIN
    POLKITD:X:999:997:USER FOR POLKITD:/:/SBIN/NOLOGIN
    GENTOO:X:1000:1000::/HOME/GENTOO:/BIN/BASH
    NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
    
  3. 取出/etc/group文件中第三个字段数值最小的10个组的名字
    [root@localhost var]# sort -t : -k 3 -n /etc/group | head -n 10
    root:x:0:
    bin:x:1:
    daemon:x:2:
    sys:x:3:
    adm:x:4:
    tty:x:5:
    disk:x:6:
    lp:x:7:
    mem:x:8:
    kmem:x:9:
    [root@localhost var]# sort -t : -k 3 -n /etc/group | head -n 10 | cut -d : -f 1
    root
    bin
    daemon
    sys
    adm
    tty
    disk
    lp
    mem
    kmem
    

grep命令

grep, egrep, fgrep – print lines matching a pattern(打印匹配给定模式的行)

  • 常见用法:
  • grep [OPTIONS] PATTERN [FILE…]
  • grep [OPTIONS] [-e PATTERN | -f FILE] [FILE…]
  1. —color=auto:对匹配到的文本着色后高亮显示
  2. -i:忽略字符的大小写
  3. -o:仅显示匹配到的字符串本身
  4. -v:显示不能被模式匹配到的行
  5. -E:支持使用扩展的正则表达式元字符
  6. -q:静默模式,即不输出任何信息
  7. -A #:after, 后#行
  8. -B #:before,前#行
  9. -C #:context,前后各#行
  • 使用实例:
  1. 取出当前主机的IP地址
    [root@localhost szhang]# ifconfig ens33|grep -o -E "[[:digit:]]+[.][[:digit:]]+[.][[:digit:]]+[.][[:digit:]]+"
    172.16.100.2
    255.255.255.0
    172.16.100.255
    [root@localhost szhang]# ifconfig ens33|grep -o -E "[[:digit:]]+[.][[:digit:]]+[.][[:digit:]]+[.][[:digit:]]+"|head -n 1
    172.16.100.2
    
  2. 列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中
    [root@localhost ~]# ls /etc | grep [.]conf$ | tr 'a-z' 'A-Z' > /tmp/etc.conf
    [root@localhost ~]# cat /tmp/etc.conf 
    ASOUND.CONF
    AUTOFS.CONF
    AUTOFS_LDAP_AUTH.CONF
    CGCONFIG.CONF
    CGRULES.CONF
    CGSNAPSHOT_BLACKLIST.CONF
    CHRONY.CONF
    DRACUT.CONF
    E2FSCK.CONF
    FPRINTD.CONF
    FUSE.CONF
    GEOIP.CONF
    HOST.CONF
    IDMAPD.CONF
    KDUMP.CONF
    KRB5.CONF
    LD.SO.CONF
    LIBAUDIT.CONF
    LIBUSER.CONF
    LOCALE.CONF
    LOGROTATE.CONF
    MAN_DB.CONF
    MKE2FS.CONF
    NFS.CONF
    NFSMOUNT.CONF
    NSSWITCH.CONF
    NTP.CONF
    ODDJOBD.CONF
    PBM2PPA.CONF
    PNM2PPA.CONF
    REQUEST-KEY.CONF
    RESOLV.CONF
    RSYNCD.CONF
    RSYSLOG.CONF
    SESTATUS.CONF
    SOS.CONF
    SUDO.CONF
    SUDO-LDAP.CONF
    SYSCTL.CONF
    TCSD.CONF
    TROLLTECH.CONF
    UPDATEDB.CONF
    USB_MODESWITCH.CONF
    VCONSOLE.CONF
    WVDIAL.CONF
    YUM.CONF
    

wc命令

wc – print newline, word, and byte counts for each file(输出文件中的行数、单词数、字节数)

  • 常见用法:
  • wc [OPTION]… [FILE]…
  1. -l:输出行数
  2. -w:输出单词数
  3. -c:输出字符数
  • 使用实例:显示/var目录下一级子目录或文件的总个数
    [root@localhost var]# ll -d /var/*
    drwxr-xr-x.  2 root root   19 Dec  9 16:52 /var/account
    drwxr-xr-x.  2 root root    6 Nov  5  2016 /var/adm
    drwxr-xr-x. 12 root root  144 Jan  9 20:42 /var/cache
    drwxr-xr-x.  2 root root    6 Aug  7  2017 /var/crash
    drwxr-xr-x.  3 root root   34 Dec  9 16:52 /var/db
    drwxr-xr-x.  3 root root   18 Dec  9 16:52 /var/empty
    drwxr-xr-x.  2 root root    6 Nov  5  2016 /var/games
    drwxr-xr-x.  2 root root    6 Nov  5  2016 /var/gopher
    drwxr-xr-x.  3 root root   18 Dec  9 16:45 /var/kerberos
    drwxr-xr-x. 55 root root 4096 Dec  9 18:04 /var/lib
    drwxr-xr-x.  2 root root    6 Nov  5  2016 /var/local
    lrwxrwxrwx.  1 root root   11 Dec  9 16:42 /var/lock -> ../run/lock
    drwxr-xr-x. 18 root root 4096 Apr 11 05:15 /var/log
    lrwxrwxrwx.  1 root root   10 Dec  9 16:43 /var/mail -> spool/mail
    drwxr-xr-x.  2 root root    6 Nov  5  2016 /var/nis
    drwxr-xr-x.  2 root root    6 Nov  5  2016 /var/opt
    drwxr-xr-x.  2 root root    6 Nov  5  2016 /var/preserve
    lrwxrwxrwx.  1 root root    6 Dec  9 16:42 /var/run -> ../run
    drwxr-xr-x. 12 root root  140 Dec  9 16:52 /var/spool
    drwxr-xr-x.  4 root root   28 Dec  9 16:48 /var/target
    drwxrwxrwt.  8 root root 4096 Apr 11 05:16 /var/tmp
    drwxr-xr-x.  2 root root    6 Nov  5  2016 /var/yp
    [root@localhost var]# ll -d /var/* | wc -l
    22

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91119

(0)
ZSZS
上一篇 2018-01-14 21:30
下一篇 2018-01-15

相关推荐