三、(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

相关推荐

  • Linux用户和组管理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。 5、取出当前主机的…

    Linux笔记 2018-07-13
  • Linux命令之alias

    语法,选项,参数

    Linux笔记 2018-07-22
  • 数组、字符串处理及变量

    拍照是被动学习,记笔记才是主动学习!

    2018-05-11
  • 重启网卡失败的解决方法

    重启网卡 报Job for network.service failed because the control process exited with error code. See “systemctl status network.service” and “journalctl -xe” for details. 的错误

    2018-04-18
  • 网络基本概念及OSI参考模型、TCP/IP协议简介

    当今时代,运行一台没有连接网络的计算机几乎是难以想象的,幸运的是,Linux从一开始就是为网络开发的,并且网络也是Linux做的最好的事情之一。掌握网络知识,对于Linux学习而言,就显得非常有必要了。本节我们将带大家了解一些网络的基本概念,以及OSI参考模型和TCP/IP协议。

    2018-05-02
  • Linux运维学习的常用命令总结以及需要注意的地方(1)

    逆水行舟,不进则退 ,大家共勉之!
    1.在linux安装阶段可能会用到的命令
    2.设置网络相关的命令
    3.用户频道的切换以及用户相关信息的查看
    4.系统当前的shell信息以及别名、内部命令、外部命令相关

    2018-04-02