第三周 文件查看命令

摘要

1、描述Linux上的文件管理类命令并详解。
2、描述用户管理。

一、文本查看及处理工具命令

  • cut:文本截取工具
        语法:
                cut OPTION... [FILE]...
           命令选项:
                        -d CHAR:以指定的字符为分隔符;
                        -f FIELDS:挑选出的字段;
                                #:指定的单个字段;
                                #-#:连续的多个字段;
                                #,#:离散的多个字段;
            例如:
                    [root@localhost ~]# cat /etc/passwd
                                   root:x:0:0:root:/root:/bin/bash
                                   bin:x:1:1:bin:/bin:/sbin/nologi
                    [root@localhost ~]# cut -d: -f1,2-4,7 /etc/passwd
                                   root:x:0:0:/bin/bash
                                   bin:x:1:1:/sbin/nologin
                                   daemon:x:2:2:/sbin/nologin
                                   adm:x:3:4:/sbin/nologin
                                   lp:x:4:7:/sbin/nologin
                                   sync:x:5:0:/bin/sync
                                   shutdown:x:6:0:/sbin/shutdown
    
  • wc : 字符统计
    语法:
        wc [OPTIONS].. [FILE]...
    命令选项:
        -l  :lines 统计行数
        -w:words统计单词个数
        -c:character 统计字符个数
    
  • sort: 排序命令,对内部文件不造成影响,以ascii排序
        语法:
                        sort  [OPTION]...  [FILE]...
        命令选项:
                        -n:基于数值大小而非字符进行排序;
                        -t CHAR:指定分隔符;
                        -k #:用于排序比较的字段;
                        -r:逆序排序;
                        -f:忽略字符大小写
                        -u:重复的行只保留一份;
                               复复行:连续且相同;
            例如:
                        [root@localhost ~]# cut -d: -f1,7 /etc/passwd |sort -k2 -n
                                            aaa:/bin/bash
                                            abrt:/sbin/nologin
                                            adm:/sbin/nologin
                                            avahi-autoipd:/sbin/nologin
                        [root@localhost ~]# cut -d: -f1,7 /etc/passwd |sort -k2 -n |wc -l
                                                 4                                                        
    
  • uniq:报告或移除重复的行
        语法:
                    uniq [OPTION]... [INPUT [OUTPUT]]
        命令选项:
                    -c:显示每行的重复次数;
                    -u:仅显示未曾重复过的行;
                    -d:仅显示重复过的行;
        例如:
                   [root@localhost ~]# cut -d: -f1,7 /etc/passwd |sort -k2 -n | uniq -c
                              1 aaa:/bin/bash
                              1 abrt:/sbin/nologin
                              1 adm:/sbin/nologin
                              1 avahi-autoipd:/sbin/nologin
                              1 bin:/sbin/nologin
                              1 chrony:/sbin/nologin
    
  • diff:compare files line by line 逐行比较两个文件(目录)不同之处的
        语法:
                        diff [OPTION]... FILES
                        diff  /PATH/TO/OLDFILE  /PATH/TO/NEWFILE > /PATH/TO/PATCH_FILE
        命令选项
                        -u   更加详细的表示差异   -#   +#  差异  有上下文连接,即显示要修改的行的上下文,默认为3行
    
    • patch 向文件打补丁
         命令选项:
                      -R  反向打补丁
          patch [OPTIONS] -i /PATH/TO/PATCH_FILE /PATH/TO/OLDFILE
      
          patch   /PATH/TO/OLDFILE   <   /PATH/TO/PATCH_FILE
      
    • which
       显示文件完成路径 which - shows the full path of (shell) commands.
         which [options] [--] programname [...]
         ~]# which which
              alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
      
             /usr/bin/alias
              /usr/bin/which
       --COMMAND-alias   忽略别名
      
    • whereis
       显示文件的路径,手册页,
        -b  只看二进制文件路径
        -m 只看使用手册文件路径                      
      
    • who
         查看登录当前用户的相关信息
         -b  显示系统此次启动时间
         -d  显示此次死亡进程
          -l  显示登录进程
          -u 比who多显示端口号
          -r  运行级别
      
    • w
         查看当前用户和其现阶段工作内容
      
    • more命令: 正序显示文档内容
      mroe [options] file [...]
        -d :显示翻页及退出提示 
      more FILE  翻盘至文件尾部后自动退出
      
    • less命令 : 倒序显示文档内容
      less FILE   
      
    • head命令:查看文件前N行
         head -n  10  /xxx   默认查看前10行
         head [options] ...[FILE]...
                 -n #:指定获取前#行,也可以用 -#
                 -c #:指定获取前#字节内容
      
    • tail 显示文件后几行内容
      tail  -n 10 /xxx 默认查看后10行
              -f   查看文件尾部结束后不退出,跟随显示新增的行
              -n #:指定获取#行,也可以用 -#
              -c #:指定获取#字节内容
      
    • stat命令 :
      显示文件/文件系统的状态
            /]# stat /tmp/ks-script-x4E8mp 
                文件:"/tmp/ks-script-x4E8mp"
                大小:813          块:8          IO 块:4096  普通文件
                设备:fd00h/64768d    Inode:956087      硬链接:1
                权限:(0700/-rwx------)  Uid:(  0/ root)  Gid:(  0/    root)
                环境:system_u:object_r:initrc_tmp_t:s0
                最近访问:2017-10-15 17:53:52.464998198 +0800
                最近更改:2017-10-15 17:53:52.455998198 +0800
                最近改动:2017-10-15 17:53:52.455998198 +0800 
      
练习:
1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
[test1@localhost ~]$ who | cut -d " " -f 1 | sort -u
root
test1
test3
2、取出最后登录到当前系统的用户的相关信息
[test1@localhost ~]$ who
root     tty1         2017-12-17 21:36
root     pts/0        2017-12-17 21:36 (192.168.23.1)
test3    pts/1        2017-12-17 21:48 (192.168.23.1)
test1    pts/2        2017-12-17 21:49 (192.168.23.1)
[test1@localhost ~]$ who | tail -1 
test1    pts/2        2017-12-17 21:49 (192.168.23.1)
3、取出当前系统上被用户当作其默认shell的最多的那个shell
[test1@localhost ~]$ cat /etc/passwd |cut -d : -f 7 | uniq -c | sort -r | tail -1
 17 /sbin/nologin
4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中
[test1@localhost ~]$ cat /etc/passwd |sort -t : -k3 -n |tail -10 | tr 'a-z' 'A-Z' |tee /tmp/maxusers.txt
AVAHI-AUTOIPD:X:170:170:AVAHI IPV4LL STACK:/VAR/LIB/AVAHI-AUTOIPD:/SBIN/NOLOGIN
ABRT:X:173:173::/ETC/ABRT:/SBIN/NOLOGIN
CHRONY:X:997:996::/VAR/LIB/CHRONY:/SBIN/NOLOGIN
LIBSTORAGEMGMT:X:998:997:DAEMON ACCOUNT FOR LIBSTORAGEMGMT:/VAR/RUN/LSM:/SBIN/NOLOGIN
POLKITD:X:999:998:USER FOR POLKITD:/:/SBIN/NOLOGIN
MAGE:X:1000:1001::/HOME/MAGE:/BIN/BASH
AAA:X:1001:1002:AVCA:/HOME/AAA:/BIN/BASH
TEST1:X:1002:1003::/HOME/TEST1:/BIN/BASH
TEST2:X:1003:1004::/HOME/TEST2:/BIN/BASH
TEST3:X:1004:1005::/HOME/TEST3:/BIN/BASH

[test1@localhost ~]$ cat /tmp/maxusers.txt
AVAHI-AUTOIPD:X:170:170:AVAHI IPV4LL STACK:/VAR/LIB/AVAHI-AUTOIPD:/SBIN/NOLOGIN
ABRT:X:173:173::/ETC/ABRT:/SBIN/NOLOGIN
CHRONY:X:997:996::/VAR/LIB/CHRONY:/SBIN/NOLOGIN
LIBSTORAGEMGMT:X:998:997:DAEMON ACCOUNT FOR LIBSTORAGEMGMT:/VAR/RUN/LSM:/SBIN/NOLOGIN
POLKITD:X:999:998:USER FOR POLKITD:/:/SBIN/NOLOGIN
MAGE:X:1000:1001::/HOME/MAGE:/BIN/BASH
AAA:X:1001:1002:AVCA:/HOME/AAA:/BIN/BASH
TEST1:X:1002:1003::/HOME/TEST1:/BIN/BASH
TEST2:X:1003:1004::/HOME/TEST2:/BIN/BASH
TEST3:X:1004:1005::/HOME/TEST3:/BIN/BASH
5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分
[test3@localhost ~]$ ifconfig eno16777736 | head -2 | tail -1
    inet 192.168.23.128  netmask 255.255.255.0  broadcast 192.168.23.255
6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中
[test3@localhost ~]$ ls /etc/*.conf |tr 'a-z' 'A-Z' | tee /tmp/etc.conf
/ETC/ASOUND.CONF
/ETC/CHRONY.CONF
/ETC/DNSMASQ.CONF
/ETC/DRACUT.CONF
/ETC/E2FSCK.CONF
7、显示/var目录下一级子目录或文件的总个数
[test3@localhost ~]$ ls /var/ | wc -w
29
8、取出/etc/group文件中第三个字段数值最小的10个组的名字
[test3@localhost ~]$ cat /etc/group | sort -t : -k3 -n | head -10 | cut -d : -f 1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem
9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中
[test3@localhost ~]$ cat /etc//fstab /etc/issue > /tmp/etc.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值