美文网首页
one--Linux面试题库锦集之文件管理

one--Linux面试题库锦集之文件管理

作者: 风铃科技 | 来源:发表于2019-07-31 15:45 被阅读0次

    一、实践操作题

    1.编辑一个1.txt文件,内容如下

    cat >>1.txt <<EOF
    10.0.3.1 00:0F:AF:81:19:1F
    10.0.3.2 00:0F:AF:85:6C:25
    10.0.3.3 00:0F:AF:85:70:42
    10.0.2.20 00:0F:AF:85:55:DE
    10.0.2.21 00:0F:AF:85:6C:09
    10.0.2.22 00:0F:AF:85:5C:41
    10.0.0.151 00:0F:AF:85:6C:F6
    10.0.0.152 00:0F:AF:83:1F:65
    10.0.0.153 00:0F:AF:85:70:03
    10.0.1.10 00:30:15:A2:3B:B6
    10.0.1.11 00:30:15:A3:23:B7
    10.0.1.12 00:30:15:A2:3A:A1
    10.0.1.1 00:0F:AF:81:19:1F
    10.0.2.2 00:0F:AF:85:6C:25
    10.0.3.3 00:0F:AF:85:70:42
    10.0.2.20 00:0F:AF:85:55:DE
    10.0.1.21 00:0F:AF:85:6C:09
    10.0.2.22 00:0F:AF:85:5C:41
    10.0.0.151 00:0F:AF:85:6C:F6
    10.0.1.152 00:0F:AF:83:1F:65
    10.0.0.153 00:0F:AF:85:70:03
    10.0.3.10 00:30:15:A2:3B:B6
    10.0.1.11 00:30:15:A3:23:B7
    10.0.3.12 00:30:15:A2:3A:A1
    EOF
    

    (1)对该文件输出内容进行排序(提示:通过第三列的第一个字符,以及第4列的所有字符进行排序)

    [root@oldboye ~]# sort -t "." -k3.1,3.1 -k4.1,4.3 -n 1.txt 
    

    (2)过滤该文件所有的字母,不区分大小写

    [root@oldboye ~]# grep -i "[a-z]" 1.txt
    [root@oldboye ~]# grep "[a-Z]" 1.txt
    

    (3)过滤出以数字3结尾的行

    [root@oldboye ~]# grep "3$" 1.txt 
    
    1. 将"access.log"上传至你的linux服务器 ( 如何上传?)
      (1)统计出该文件IP地址出现的次数,并按正序对其进行排序。
    方法:

    1.如何拿到文件中的IP地址
    2.对拿到的IP地址进行排序,去重,统计
    3.对统计出来次数,在进行一次排序

    [root@oldboy ~]# awk '{print $1}' access.log |
     sort| uniq -c|sort -n
    [root@oldboy ~]# awk '{print $1}' access.log |
     sort| uniq -c|sort -nr|head 
    

    (2)统计该文件内HTTP状态返回码出现的次数(例如200,404,403,在第九列),并按照倒序进行排序

    [root@oldboy ~]# awk '{print $9}' access.log |
     sort | uniq -c |sort -nr
    

    (3)过滤出所有状态返回码是200的行,并将这些返回码为200行的全部替换成300

    [root@oldboye ~]# awk '{print $9}' access.log |
     grep "200" | sed 's#2#3#g'
    

    3.过滤/etc/passwd里包含root关键字的行(要求至少两种方法,分别使用awk和grep)

    [root@oldboy ~]# grep "root" /etc/passwd
    [root@oldboy ~]# awk '/root/' /etc/passwd
    

    4.以“:”为分隔符,取出/etc/passwd第一行的最后一列的内容

    [root@oldboy ~]# head -1 /etc/passwd | 
    awk -F ":" '{print $7}'
    [root@oldboy ~]# head -1 /etc/passwd | cut -d ":" -f 7
    

    5.取出以“:”为分隔符,第三列(用户UID)以0结尾的

    [root@oldboy ~]# awk -F ":" '{print $3}' /etc/passwd | grep "0$"
    

    6.使用hostnamectl查看当前系统信息,取出kernel内核版本信息。
    1.找到要取值的目标 hostnamectl
    2.先缩小到取内容的行
    3.取出需要的那一列

    [root@oldboy ~]# hostnamectl | grep "Kernel" | 
    awk '{print $2,$3}'
    [root@oldboy ~]# hostnamectl | awk '/Kernel/ {print $3}'
    

    7.使用hostnamectl查看当前系统信息,取出系统名称

    [root@oldboy ~]# hostnamectl |grep "hostname" |
     awk '{print $3}'
    

    8.使用hostnamectl查看当前系统信息,取出系统版本信息,要求只显示"linux 7"

    [root@oldboy ~]# hostnamectl | grep "System" |
     awk '{print $4,$5}'
    

    9.取出当前linux操作系统的DNS /etc/sysconfig/
    network-scripts/ifcfg-ens33

    [root@oldboy ~]# grep "DNS" /etc/sysconfig/network-scripts
    /ifcfg-ens33 | awk -F "=" '{print $2}'
    

    10.复制/etc/passwd到当前root用户家目录
    (1)只查看头3行,并将“:”替换为“#”

    [root@oldboy ~]# head -3 passwd  | sed 's@:@#@g'
    

    (2)查看该文件全部内容,将匹配到的每一行的第一个"bin"替换成"test"

    [root@oldboy ~]# grep "bin" passwd | sed 's#bin#test#'
    

    (3)查看该文件全部内容,将匹配到的所有"bin"全部替换成"test"

    [root@oldboy ~]# grep "bin" passwd | sed 's#bin#test#g'
    
    特别注意: sed在使用过程中加上 g 代表全局替换,如果不加 g 仅替换每行第一个出现的字符

    11.使用ifconfig查看网卡信息,筛选出包含127.0.0.1的行(不少于三种方法)

    方法:

    1.找到要取值的目标 ifconfig lo
    2.筛选出要取值的行

    法一、[root@oldboy ~]# ifconfig lo | grep "inet "
    法二、[root@oldboy ~]# ifconfig lo | awk '/inet /'
    法三、[root@oldboy ~]# ifconfig lo | sed -n '2p'       
    #2p 表示打印第二行
    

    12.使用awk取出/etc/passwd第一列数据也就是取出用户名

    [root@oldboy ~]# awk -F ":" '{print $1}' /etc/passwd
    

    13.写一个文件,文件内容如下

    cat >>test.txt<<EOF
    server {
        lisTEN 80;
        server_nAme docs.xuliangwei.com;
        root /code/dOcs
        index INDEX.html;
    }
    EOF
    

    (1)过滤docs.xuliangwei.com这段关键字

    [root@oldboy ~]# grep "docs" test.txt
    

    (2)同时过滤出root和index的行,不区分大小写

    [root@oldboy ~]# grep -Ei "root|index"  test.txt
    

    (3)过滤index,区分大小写

    [root@oldboy ~]# grep  "index"  test.txt
    

    (4)过滤出带"O"的行,不区分大小写

    [root@oldboy ~]# grep -i "o" test.txt
    

    (5)过滤出不带";"的行

    [root@oldboy ~]# grep -v  ";" test.txt
    

    14.如果某一天你误操作了"rm -rf *",会发生哪些情况
    会删除当前目录下所有的文件 比如说 / /home/ /root/

    二、选择题

    1.linux有三种查看文件命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用 ( C )
    A.cat
    B.more
    C.less
    D.me

    2.若一台计算机的内存为8G,则交换分区的大小通常是 ( C )
    A.64GB
    B.128GB
    C.16GB -----------------------解释:最大是16GB
    D.32GB
    128G ---------> 256GB SWAP交换分区,交换分区是为了防止系统物理内存不够时

    3.安装linux操作系统时,必须要创建的两个分区 ( B )
    A./和boot
    B./和swap
    C./home和/usr
    D./var和/trap

    4.用于windows和linux文件传输最便捷的方法是 ( D )
    A.winscp
    B.ftp 文件传输
    C.scp
    D.rz sz

    5.删除文件的命令为 ( D )
    A.mkdir
    B.rmdir
    C.mv
    D.rm

    6.改变bash的提示符实际上就是改变变量 ( C )
    A.$ HOME

    B.$PWD

    C.$PS1

    D.$PS2

    7./etc文件系统的标准应用是用于 ( D )
    A.安装附加的应用程序
    B.存放可执行程序,系统管理工具
    C.设置用户的主目录
    D.存放用于系统管理的配置文件

    相关文章

      网友评论

          本文标题:one--Linux面试题库锦集之文件管理

          本文链接:https://www.haomeiwen.com/subject/goftdctx.html