• Linux面试题--1


    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列的所有字符进行排序)
      sort -t "." -k3.1,3.1 -n  -k4.1,4.3 -n 1.txt 
    
    (2)过滤该文件所有的字母,不区分大小写
      grep -i '[a-z]' 1.txt
    
    (3)过滤出以数字3结尾的行
      grep -n '3$' 1.txt
    

    2.将"web3_access.log"上传至你的linux服务器

    (1)统计出该文件IP地址出现的次数,并按正序对其进行排序
    awk '{print $1}' access.log |sort -n |uniq -c |sort -n
    
    (2)统计该文件内HTTP状态返回码出现的次数(例如200,404,403,在第九列),并按照倒序进行排序
    awk '{print $9}' access.log |sort -n |uniq -c |sort -nr
    
    (3)过滤出所有状态返回码是200的行,并将这些返回码为200行的全部替换成300
     [root@yinwucheng ~]# grep '200' access.log |sed 's#200#300#gp'
    

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

     grep -n 'root' /etc/passwd
     awk '/root/' /etc/passwd
    

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

     awk -F ":" 'NR==1{print $NF}' /etc/passwd
    

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

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

    6.使用hostnamectl查看当前系统信息,取出kernel内核版本信息

    方法1:
    [root@yinwucheng ~]# hostnamectl |awk 'NR==9{print $3}'
    3.10.0-957.21.3.el7.x86_64
    
    方法2:
    [root@yinwucheng ~]# hostnamectl |sed -n 9p |awk '{print $3}'
    3.10.0-957.21.3.el7.x86_64
    
    方法3:
    [root@yinwucheng ~]# hostnamectl |grep 'Kernel' |awk -F "[: ]+" '{print $4}'
    3.10.0-957.21.3.el7.x86_64:
    
    方法4:
    [root@yinwucheng ~]# hostnamectl |sed -nr '9s#^.*Kernel: Linux (.*)$#1#gp'
    3.10.0-957.21.3.el7.x86_64
    

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

    [root@yinwucheng ~]# hostnamectl |grep 'CPE' |awk '{print $4}'
    

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

    方法1:
     [root@yinwucheng ~]# hostnamectl |awk 'NR==7{print $4,$5}'
    Linux 7
    
    方法2:
    hostnamectl |grep 'Operating' |awk '{print $4,$5}'
    

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

     awk -F "=" 'NR==19 {print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0
    

    10.复制/etc/passwd到当前root用户家目录

    (1)只查看头3行,并将“:”替换为“#”
      head -n 3 passwd | sed -n 's@:@#@gp'
    
    (2)查看该文件全部内容,将匹配到的每一行的第一个"bin"替换成"test".
      [root@yinwucheng ~]# cat /etc/passwd |xargs -n1|sed -n 's#bin#test#p' |grep  -n 'test'
    
    (3)查看该文件全部内容,将匹配到的所有"bin"全部替换成"test"
     cat passwd |sed -n 's#bin#test#gp'
    

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

    [root@yinwucheng ~]# ifconfig |grep '127'
        inet 127.0.0.1  netmask 255.0.0.0
    root@yinwucheng ~]# ifconfig |awk 'NR==11'
        inet 127.0.0.1  netmask 255.0.0.0
    root@yinwucheng ~]# ifconfig |sed -n '11p'
        inet 127.0.0.1  netmask 255.0.0.0
    

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

      [root@yinwucheng ~]# 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这段关键字
    awk  'NR==3{print $2}' test.txt |sed 's#;##g'
    
    (2)同时过滤出root和index的行,不区分大小写
    [root@yinwucheng ~]# egrep -i 'root|index' test.txt 
    root /code/dOcs
    index INDEX.html;
    
    (3)过滤index,区分大小写
    [root@yinwucheng ~]# grep 'index' test.txt 
    index INDEX.html;
    
    (4)过滤出带"O"的行,不区分大小写
     [root@yinwucheng ~]# grep -i 'O' test.txt 
     server_nAme docs.xuliangwei.com;
     root /code/dOcs
    
    (5)过滤出不带";"的行
     [root@yinwucheng ~]# grep -v ';' test.txt 
     server {
     root /code/dOcs
     }
    

    14.如果某一天你误操作了"rm -rf *",会发生哪些情况

    a、如果当前目录为”/tmp” ,那么这个目录下的东西会全部删除(默认不包含隐藏文件)
    b、如果当前目录为”/”,那么系统上的数据将会丢失,且无法启动,系统崩溃(谨慎使用这个命令)

    选择题

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

    A.cat
    B.more
    C.less
    D.me

    2.若一台计算机的内存为8G,则交换分区的大小通常是(C)

    A.64GB
    B.128GB
    C.16GB
    D.32GB

    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.存放用于系统管理的配置文件

    1.如何删除一个非空子目录/tmp? (B)

    A. del /tmp/*
    B. rm -rf /tmp
    C. rm -Ra /tmp/*
    D. rm -rf /tmp/*

    2.存放linux默认系统日志文件是 (B)

    A./var/log/dmesg
    B./var/log/messages
    C./var/log/secure

    3.用命令ls -l显示出来文件txt的描述如下所示,由此可知文件ff的类型为 (A)

    -rwxr-x-r-- 1 root root 599 Ce 10 17:12 ff
    A.普通文件
    B.硬链接
    C.符号链接
    D.目录

    4.(C)命令可以从文本文件的每一行中截取指定内容的数据

    A.cp
    B.fmt
    C.cut
    D.dd

    5.创建一个新文件可以使用的命令为(A)

    A.touch
    B.cat
    C.echo
    D.vim

    6.以下哪个命令是查找文件的命令(A)

    A.find
    B.grep
    C.awk
    D.cat

    7.linux文件系统的文件都按其作用分门别类的放在相关的目录中,对于外部设备文件,一般应将其放在(B)目录中

    A./bin
    B./dev
    C./lib
    D./lib64

    8.在使用mkdir命令创建新的目录时,若其父级目录不存在,先创建父目录的选择是(D)

    A.-m
    B.-d
    C.-f
    D.-p

    9.在linux系统中,用来存放系统所需要的配置文件和子目录是(A)

    A./etc
    B./var
    C./root
    D./home

    10.关闭linux系统(不重新启动)可使用命令(A B)

    A.init 0
    B.halt
    C.shutdown -r now
    D.reboot

    11.设超级用户root当前所在目录为:/usr/local,键入cd命令后,用户当前所在目录为(/root)

    /home
    /root
    /home/root
    /usr/local

    12.Linux系统习惯将许多设备驱动存储在(/dev)目录中。

    /dev
    /boot
    /root
    /etc

    13.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是-p__

    -m
    -d
    -f
    -p

    14./var目录标准作用是用于 (C)

    A安装附加的应用程序
    B存放可执行程序、系统管理工具
    C一般系统运行时要改变的数据
    D存放用于系统管理的配置文件

    15.用"rm -i"系统会提示什么来让你确认(B)

    A命令行的每个选项
    B是否真的删除
    C是否有写的权限
    D文件的位置

    16.下面哪个Linux命令可以一次显示一页内容? (C)

    A. pause
    B. cat
    C. more
    D. grep

    17.显示一个文件最后几行可以使用的命令是:(B)

    A. tac
    B. tail
    C. rear
    D. last

    简答

    1.说出下列字符在linux操作系统里所代表的含义
    ~	当前用户所在的家目录
    -	上一次所在的目录
    .	当前目录
    ..	上级目录
    |	管道
    #	1.超级管理员的提示符  2.注释的意思
    *	匹配所有
    	转义字符 让字符还原本义
    ^	以什么开头
    $	1.普通管理员的提示符  2.以什么结尾
    ||	或者
    &&  并且  前者命令必须成功 才能执行后者
    
    2.统计/var/log下的文件个数

    [root@yinwucheng /var/log]# ll /var/log/ | grep '^-' |wc -l 38

    3.使用ifconfig查看网卡信息,筛选出包含10.0.0.200的行(不少于三种方法)
    方法1:
    [root@yinwucheng ~]# ifconfig |awk 'NR==2{print $2}'
    10.0.0.201
    方法2:
    [root@yinwucheng ~]# ifconfig | sed -rn '2s#^.*inet (.*)net.*$#1#gp'
    10.0.0.201 
    方法3:
    [root@yinwucheng ~]# ifconfig eth0 |grep 'inet '|awk '{print $2}'
    10.0.0.201
    
    1.如何打印出该网卡的整体信息(整体信息需要包含10.0.0.200)
    [root@yinwucheng ~]# ifconfig eth0
        eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.201  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::56c7:2e7f:36ac:d668  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:46:77:d2  txqueuelen 1000  (Ethernet)
        RX packets 5009  bytes 404056 (394.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3465  bytes 369732 (361.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    2.筛选包含10.0.0.200的行
    [root@yinwucheng ~]# ifconfig eth0 |grep 'inet '
        inet 10.0.0.201  netmask 255.255.255.0  broadcast 10.0.0.255
    
    3.使用awk取出/etc/passwd第一列用户名,第三列UID
    [root@yinwucheng ~]# awk -F ":" '{print $1,$3}' /etc/passwd
    root 0
    bin 1
    daemon 2
    adm 3
    lp 4
    sync 5
    shutdown 6
    halt 7
    mail 8
    operator 11
    games 12
    ftp 14
    nobody 99
    systemd-network 192
    dbus 81
    polkitd 999
    tss 59
    abrt 173
    sshd 74
    postfix 89
    chrony 998
    jack 1000
    tcpdump 72
    apache 48
    
    5.阐述命令的执行流程

    第一步:看命令是不是通过以绝对路径的方式执行
    第二步:看命令是否存在别名
    第三步:判断是内置命令还是外置命令
    第四步:若是内置的话,可直接执行 若是外置的话,查看是否有缓存
    第五步:通过$PATH变量查找命令,若有的话可执行 没有的话会报错 command not found

    6.阐述软硬链接的区别
    软链接:快捷方式,不同的inode指向同一个block,删除软链接对源文件无任何影响,删除源文件,则软链接失效.
    硬链接:多个相同的inode指向同一个block,其实就是用来对文件做备份的.
    
    7.查看/etc/passwd文件里的第二行,要求输出结果为“/bin❌bin:1:/sbin/nologin:bin:1”(两种方法,分别使用sed和awk完成)
    方法1:
    [root@yinwucheng ~]# awk -F ":" 'NR==2{print $6":"$2":"$1":"$3":"$7$8":"$5":"$4}' /etc/passwd
    /bin:x:bin:1:/sbin/nologin:bin:1
    
    9.打印/etc/passwd 文件中的第 2-5 行
    1.先用head取出前5行,然后使用tail取最后4行,刚好2-5
    [root@yinwucheng ~]# head -5 /etc/passwd |tail -4 
        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
    
    2.使用sed
    [root@yinwucheng ~]# sed -nr '2,5p' /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	
    
    10.用三种方法查询cd命令所在的绝对路径
    [root@yinwucheng ~]# whereis -b cd
    cd: /usr/bin/cd
    [root@yinwucheng ~]# which cd
    /usr/bin/cd
    [root@yinwucheng ~]# type -a cd
    cd is a shell builtin
    cd is /usr/bin/cd
    
    11.查看/etc/passwd文件里的第一行,将其倒置输出,要求输出结果为“/bin/bash❌0:0:root:/root:root”
    [root@yinwucheng ~]# awk -F ":" '/^root/{print $7":"$6":"$5":"$4":"$3":"$2":"$1}' /etc/passwd
    /bin/bash:/root:root:0:0:x:root
    
    12.打印当前服务器的ens32网卡IP地址,需要下载yum install net-tools -y
    1.先打印网卡的所有内容,
    2.匹配IP地址所在的行
    3.取值		
        [root@yinwucheng ~]# ifconfig eth0 |awk 'NR==2{print $2}'
         10.0.0.201
    
    13.如何删除/tmp下所有A开头的文件
          [root@yinwucheng ~]# rm -rf /tmp/A*
    
    14.创建一个文件名为student.txt的文件,文件内容如下
    注意:以下文本中间有空行
    oldboyedu
    O2LD
    Bo3y
    eD123u
    
    oldboy
    olboyabd
    
    a123bc
    dd132ac
    aabb
    
    baba
    
    oldboyabc
    
    (1)写出查询以字符abc结尾的行
    [root@yinwucheng ~]# grep 'abc$' student.txt 
    	oldboyabc
    
    (2)查看该文件所有内容,不显示空行,并打印行号 ^$
    [root@yinwucheng ~]# grep -vn '^$' student.txt 
    1:oldboyedu
    2:O2LD
    3:Bo3y
    4:eD123u
    6:oldboy
    7:olboyabd
    9:a123bc
    10:dd132ac
    11:aabb
    13:baba
    15:oldboyabc
    
    (3)查看该文件第10行(写出所有你知道的方法)
    [root@yinwucheng ~]# sed -n 10p student.txt 
    dd132ac
    
    [root@yinwucheng ~]# awk 'NR==10' student.txt 
    dd132ac
    
    (4)查找以a开头的行
    [root@yinwucheng ~]# grep '^a' student.txt 
    a123bc
    aabb
    
    (5)将该文件所有行的第一个字符"o"替换成"yy"
    [root@yinwucheng ~]# grep 'o' student.txt |sed 's#o#yy#'
    yyldboyedu
    Byy3y
    yyldboy
    yylboyabd
    yyldboyabc
    
    (6)整个文件所有的字符"a"替换成"www"
    [root@yinwucheng ~]# grep 'a' student.txt |sed 's#a#www#g'
    olboywwwbd
    www123bc
    dd132wwwc
    wwwwwwbb
    bwwwbwww
    oldboywwwbc
    
    15.查看/etc/passwd文件的总行号
    [root@yinwucheng ~]# cat /etc/passwd |wc -l
    24
    
    16.用什么命令可以看到整个目录下的所有内容
           ls -a
    
    17.你所知道的linux系统上传下载命令一共有哪些,并说明具体应用场景。

    从互联网下载用 wget curl
    wget -O curl -o
    本地到服务器上传用 rz sz
    rz 上传
    sz 下载

    18.在Linux系统中,用来存放系统需要的配置文件目录是?
         /etc
    
    19.使用w查看已登录的系统用户列表
    (1)以空格为分隔符,取出出第一行,第一列的时间信息
          [root@yinwucheng ~]# w |sed -n 1p |awk '{print $1}'
           14:41:41
    
    (2)以逗号为分隔符,取出出第一行,第三列的当前系统登录的用户数
         [root@yinwucheng ~]# w |awk -F "," 'NR==1{print $2}'
       2 users
         [root@yinwucheng ~]# w |awk -F "," 'NR==1{print $2}' |awk '{print $1}'
       2
    
    (3)取出FROM所在的这一列往下所有行的IP地址信息(此地址为当前登录终端的地址来源)
    [root@yinwucheng ~]# w |grep '^root' |awk '{print $3}'
    10.0.0.1
    10.0.0.1
    
    20.当你创建了一个在"/edu/data/"名为oldboy的目录,并使用ln命令创建了该文件的符号链接文件(软链接)名为"new"到当前系统用户的家目录下。
    [root@yinwucheng ~]# mkdir /edu/data/oldboy -p
    [root@yinwucheng ~]# ln -s /edu/data/oldboy/ ./new
    [root@yinwucheng ~]# ll 
    total 0
    lrwxrwxrwx. 1 root root 17 Jul 31 16:54 new -> /edu/data/oldboy/
    
    (1)使用"ls -al"查看家目录下的所有文件,并过滤出new文件所在的行
    [root@yinwucheng ~]# ls -al |grep 'new'
    
    (2)进入到new目录,查看当前所在位置的绝对路径
    [root@yinwucheng ~]# cd new/
    [root@yinwucheng ~/new]# pwd
    /root/new
    
    (3)使用命令(echo "你的名字拼音" > ~/new/1.txt),进入/edu/data/oldboy目录,查看该目录下是否有1.txt这个文件,如有,查看该文件
    [root@yinwucheng ~]# echo 'chengyinwu' > new/1.txt
    [root@yinwucheng ~]# cd /edu/data/oldboy/
    [root@yinwucheng /edu/data/oldboy]# ll
    total 4
    -rw-r--r--. 1 root root 11 Jul 31 16:59 1.txt
    
    (4)删除oldboy目录及该目录下所有文件,是否还能进入new目录
    [root@yinwucheng /edu/data]# rm -rf oldboy/
    进不去了
    
    (5)使用命令cat查看new目录下的1.txt文件,是否能访问
      不能访问
    
    21.命令"man cd"的意思是

    解;
    查看cd命令的帮助信息

    22.如何精准判断一个文件的类型?系统中 l s d c b 这些类型都是什么意思?
      file filename
      l    链接文件 类似于windows的快捷方式
      s    socket 本地进程与进程间的一种通信方式
      d    directory目录 类似于windows的文件夹
      c    字符设备 用于提供用户的输入输出
      b    块设备文件  (硬盘 分区 光盘)
    

    原理题

    1.阐述linux系统下软链接和硬链接的区别
    1. 软链接就是一个快捷方式,删除软连接不会影响源文件.
    2. 硬链接,类似于一个文件副本,删除硬链接不影响原文件,只有删除所有的硬链接及其源文件,这个文件才算彻底被删除.
    2.阐述linux系统下命令的执行流程

    第一步:看命令是不是通过以绝对路径的方式执行
    第二步:看命令是否存在别名
    第三步:判断是内置命令还是外置命令
    第四步:若是内置的话,可直接执行 若是外置的话,查看是否有缓存
    第五步:通过$PATH变量查找命令,若有的话可执行 没有的话会报错 command not found

    3.什么是绝对路径,什么是相对路径

    绝对路径:以根开始的路径
    相对路径:相对于当前所在的位置

    4."."和".."分别代表什么

    .代表当前目录
    ..代表上一级目录

    习题: 将/etc/passwd文件中的第一行中的第一列和最后一列位置进行交换。
    [root@yinwucheng ~]# grep '^root' /etc/passwd |awk -F ":" '{print $7":"$2":"$3":"$4":"$5":"$6":"$1}'
    /bin/bash:x:0:0:root:/root:root
    
    习题: 将/etc/sysconfig/selinux 文件中的SELINUX=enforcing替换成SELINUX=disabled
    [root@yinwucheng ~]# sed -i 's#^SELINUX=.*#SELINUX=disabled#g' /etc/sysconfig/selinux 
    
    习题: 分析如下日志,统计每个域名被访问的次数。
    [root@student tmp]# cat >> web.log <<EOF 
    http://www.xuliangwei.com/index.html
    http://www.xuliangwei.com/1.html
    http://post.xuliangwei.com/index.html
    http://mp3.xuliangwei.com/index.html
    http://www.xuliangwei.com/3.html
    http://post.xuliangwei.com/2.html
    EOF
    
    方法1:
    [root@yinwucheng /tmp]# awk -F "/" '{print $3}' web.log |sort |uniq -c |sort -nr
          3 www.xuliangwei.com
          2 post.xuliangwei.com
          1 mp3.xuliangwei.com
    
    方法2:[root@yinwucheng /tmp]# sed -r 's#^.*//(.*)/.*$#1#g' web.log |sort |uniq -c |sort -r
          3 www.xuliangwei.com
          2 post.xuliangwei.com
          1 mp3.xuliangwei.com
    

    image.png

    一、选择题(每题2分)

    1.1 设超级用户root当前所在目录为:/usr/local,键入cd命令后,用户当前所在目录为(B)

    A:/home B:/root C:/home/root D:/usr/local

    1.2 Linux有三种查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用命令(C)

    A:cat B:more C:less D:me

    1.3 在Linux系统中,用来存放系统所需要的配置文件和子目录是(A)

    A:/etc B:/var C:/root D:/home

    1.4 Linux文件系统的文件都安其作用分门别类地放在相关目录中,对于外部设备文件,一般应将其放在(C)目录中

    A:/bin B:/etc C:/dev D:/lib

    1.5 除非特别指定,cp假定要拷贝的文件在下面那个目录下(D)

    A:用户目录 B:home目录 C:root目录 D:当前目录

    1.6 在vi编辑器中的命令模式下,键入(B)可在光标当前所在行下添加一新行。

    A:a B:o C:I D:A

    1.7 (D)命令可以从文本文件的每一行中截取指定内容的数据。

    A:cp B:dd C:fmt D:cut

    1.8 按下(A)键能终止当前运行的命令

    A:ctrl -c B:ctrl -f C:ctrl -b D:ctrl -d

    1.9 在给定文件中查找与条件相符字符串的命令及查找某个目录下相应文件的命令为:(C)

    A:grep B:gzip C:find

    1.10 下列关于链接描述,错误的是(B)

    A:硬链接就是让链接文件的i节点号指向被链接文件的i节点
    B:硬链接和符号连接都是产生一个新的i节点
    C:链接分为硬链接和符号链接
    D:硬链接不能链接目录文件

    二、原理题

    2.1 bash常用快捷键(2分)
    ctrl +c 终止当前正在运行的程序
    ctrl +l清屏
    ctrl +w按单词或者空格进行向前删除
    ctrl +->按单词向左移动
    crrl + <按单词向右移动
    ctrl +a光标跳转至行首
    ctrl +e光标跳转至行尾
    ctrl +z暂时放入后台
    ctrl +u删除光标以前的所有内容
    ctrl +k删除光标以后的所有内容
    
    2.2 常见的bash特性有哪些?(2分)
    1.补全tab
    2.命令快捷键
    3.历史命令 history
    4.命令别名
    5.帮助 --help man
    
    2.3 什么是GNU,什么是GPL(3分)
    • GPL 通用版权许可证协议
    • GNU 它不是Unix 它是一个组织,是一种自由软件的操作系统
    2.4 以下目录的作用(7.5分)
    /bin     --->>>普通用户存放的二进制相关命令路径  如 /bin/ls
    /sbin    --->>>超级用户存放的二进制相关命令路径  如 /sbin/ls
    /boot    --->>>系统启动相关程序存放的位置 如 kernel grub(引导启动菜单)
    /dev     --->>>存放一些设备的目录   如 硬盘、光驱
    /etc     --->>>系统的配置文件 大多数服务的相关配置文件都在/etc目录下 如 /etc/hostname 
    /home    --->>>普通用户的家目录
    /lib     --->>>存放的是一些库文件 不可删除
    /lib64   --->>>存放的是64位的库文件 不可删除
    /media   --->>>存放的是一些与媒体设备有关的文件
    /mnt     --->>>临时挂载点
    /opt     --->>>第三方软件安装的路径
    /proc    --->>>虚拟的文件系统,反应当前用户当前正在运行进程的实时状态
    /root    --->>>超级用户的家目录,普通用户无权访问
    /run     --->>>进程运行的pid,(放在一个文件中)   如 lock相关文件
    /srv     --->>>存放一些服务启动之后需要提取的数据
    /sys     --->>>虚拟文件系统,存放进程和内核信息的
    /tmp     --->>>临时目录 相当于回收站
    /usr     --->>>存放系统文件的目录 相当于windows下的c盘
    /var     --->>>可变化数据的目录,常用于存放系统日志相关的文件
    
    2.5 简述命令执行的流程(2分)
    第一步:看命令是不是通过以绝对路径的方式执行
    第二步:看命令是否存在别名
    第三步:判断是内置命令还是外置命令
    第四步:若是内置的话,可直接执行  若是外置的话,查看是否有缓存  hash
    第五步:通过$PATH变量查找命令,若有的话可执行   没有的话会报错 command not found
    
    2.6 什么是绝对路径,什么是相对路径(2分)
    绝对路径:以根开始的路径都算是绝对路径
    相对路径:相对于当前所在的位置 如 a.txt  ./a.txt ../a.txt
    
    2.7 简述软连接与硬连接的区别(2分)
    1.软链接就是一个快捷方式,删除软连接不会影响源文件.
    2.硬链接,类似于一个文件副本,删除硬链接不影响源文件,只有删除所有的硬链接及其源文件,这个文件才算彻底被删除.
    
    2.8 vim的几种模式,每种模式都是做什么的(2分)
    VIm 普通模式:复制与粘贴,删除、剪贴、撤销、替换
    VIm 编辑模式:从普通模式进入到编辑模式
    VIm 命令模式:主要用于搜索, 保存, 退出文件
    视图模式:(从普通模式进入视图模式),主要进行批量操作
    
    2.9 写出15个学过的命令(15分)
    1、man 男人,查找命令的功能 参数 等等帮助信息的工具。
       man 命令
       
    2、help 查内置命令的帮助
       help 命令
       
    3、shutdown、reboot 重启 推荐reboot(我用的)
       shutdown -r now 立刻重启
       shutdown -h now 立刻关机
       
    4、halt、poweroff 关机  推荐halt
    
    5、pwd   print working directory   打印当前目录
    
    6、cd    change directory    改变目录
    cd - 去上一次所在的目录
    cd ~或cd 去当前用户的家目录    ~表示家目录
    cd . 去当前目录,.表示当前目录
    cd.. 去上一级目录 ..表示上一级目录
    
    7、tree 大叔 以树形结构显示目录
       -L(level)指定层数 例如 tree -L 1 /
       -d(directory)  只显示目录
       
    8、mkdir make directory 创建目录
       -p    根据需要创建所有目录 包括父目录子目录,递归创建
       -v    显示执行过程
       
    9、touch 创建文件,重复的文件忽视。
    touch {1..10}.txt 等价touch 1.txt 2.txt 3.txt........
    {}生成数字序列、字母序列
    
    10、ls list显示目录下的内容
        -l (long)  以长格式显示目录下的内容
    	-a,显示所有文件,包含隐藏文件(以.开头的文件)
    	-d,directory显示目录
    	-i   显示inode号
        -h   以人性化显示
    
    11、cp   copy  复制
     cp [OPTION]... SOURCE... DIRECTORY
          选项        源         目录
        -r  (递归 recursive) 复制目录
    	-p  保持文件属性(描述文件详细信息的  文件大小 创建时间  权限 属主)
    	-a  保持文件属性和链接
    	复制的时候 不提示是否覆盖,直接覆盖
    	cp 
    	
    12、alias  查看或者设置别名
        alias cp='cp -i'
    	
    13、rm 删除文件或目录  remove
        -r 递归删除  recursive 删除目录
    	-f (force) 强制删除
    	-i 确认
    	-rf 删文件、目录  (谨慎使用)
        alias rm='rm -i'
    	
    	如何防止rm误删数据?
        1、放弃使用rm,用mv或find替代
        2、不删除,移动到回收站(/tmp)
        3、一定要删,要先备份
        4、不要这样用 rm -fr /opt/* 要切换到指定的目录下再删除
        5、为rm设置别名,提醒自己和组员
    	
    14、unalias 取消别名
        unalias rm
    	
    15、mv  move 移动目录或文件
        mv是移动,当前下面就没了,剪切 默认也会提示覆盖
    	cp是复制,当前下面依然有,复制
    	
    16、echo 输出和打印
    -n 不换行输出
    -e 支持转义字符
       	 代表tab
       
     代表换行
       
    17、printf 格式化打印
    printf "oldboy
    "
    
    18、查看运行级别
    runlevel	(who -r)
    
    19、切换运行级别 init
    init 0 关机
    init 6 重启
    
    20、hostnamectl 设置主机名C7 永久
        hostname    设置主机名C7和C6  临时
    
    21、vi/vim  纯文本编辑器
        vi  记事本
    	vim notepad++
    
    22、cat  查看文件内容 (tac和cat相反)
        -n   显示行号
    
    23、more 分页显示文件内容
    
    24、less 一页一页查看文件内容
    下一页  空格 /f
    上一页  b
    /搜索
    less -N 显示行号
    q  退出
    
    25、head 显示文件内容头部 (默认显示前10行,显示前n行,-n后跟数字 n可省略 -数字)
        -c 5 显示文件的前几个字符(文字 符号)
    	
    26、tail 显示文件尾部内容 (默认显示后10行,显示后n行,-n后跟数字 n可省略 -数字)
        -f   跟踪显示文件尾部的信息(显示文件的实时更新)
    	-F  --follow --tries 显示文件的实时更新,如果文件不存在 自动进行尝试
    	
    27、tac  按行翻转文件内容(和cat相反) concatenate and print files in reverse
    
    28、rev  左右按字符翻转行的内容  reverse lines of a file or files
    
    29、tr   替换或删除字符
        -c 取反
    	-d 删除
    
    30、grep 过滤  筛子  重要性前三名
        -n 显示行号
    	-v 排除 取反
    	-o 显示筛选的
    	-i 不区分大小写
    	-E 同时过滤多个条件
    	-w 按单词进行过滤
    	-c 只输出匹配行的计数
    	-A 显示过滤的下几行
    31.rpm -qa tree 检查软件装没装
       rpm -i install  安装。。。。包
           -v verbose 显示进度
    	   -h 以人类可读形式显示
    	   -qa 查询所有
    	   -q query 查询
    	   -a all
           -ql 显示软件包内容
    
    32.free   显示内存使用情况
        -h --human-readable
    	
    33.lscpu  显示cpu相关详细信息
    34.df  显示硬盘的使用情况
    	-h --human-readable  以人性化显示
    	
    35.w  显示谁登陆了系统 在干啥  系统负载
    35.2 who  显示谁登陆了系统
    36.uptime  系统负载
    37.useradd 添加用户
       -u
       -s
       -g
       -M
    38.passwd  设置密码
    --stdin
    38.2 userdel  删除用户
    -r
    
    39.su       switch user 切换用户
    40.whoami   显示当前用户	
    41.seq sequence 序列 生成数字序列
    seq 10====seq 1 10
    42.which  查询命令绝对路径
    43.whereis  查询命令相关文件的位置
    44.file  查询命令详细类型
    45.history  显示历史命令
    -c 清空历史命令
    46.[root@yinwucheng ~]# cat -n ~/.bash_history
    47.sed  三剑客老二
        -r
    	-n
    	-i
    	-i.bak
    48.awk 三剑客老大
        -F
    	-v  修改或创建awk变量
    
    49.sort 排序
    -n  按照数字进行排序
    -r  逆序排序
    -k  某一列排序
    -t  分隔符
    
    50.find 查找文件
       -maxdepth  最大深度
       -type
       -name
       -iname
       -size
       -mtime
       
    51.wc 统计文件信息
       -l (小写)显示一共有多少行
    
    52.chown  修改文件的所有者
    -R  递归修改文件的所有者
    
    53.ps  process 显示系统进程信息
    ps -ef 
    
    54.last    显示谁登陆了系统  谁什么时间从哪里登陆系统 登陆多久
    
    55.lastlog  显示所有用户最近一次登陆情况
    
    2.10 以下特殊符号所代表的含义(2.5分)
    .    当前目录
    ..   上一级目录
     /    根
    #    注释,超级管理员提示符
    $    以什么结尾,普通用户提示符
    

    三、命令题
    3.1 创建目录/old/boy/(2分)

    mkdir -p /old/boy/
    

    3.2 使用一条命令在/old/boy/目录下创建bgx1.txt、bgx2.txt、bgx3.txt三个文件(2分)

     touch /old/boy/bgx{1..3}.txt
    

    3.3 将/old/boy/目录下所有内容复制到/root/目录下(2分)

    cp /old/boy/* /root/
    

    3.4 将/old目录移动到/tmp/下(2分)

     mv /old/ /tmp/
    

    3.5 将I am student输入到/root/bgx1.txt中(2分)

    echo "I am student" >/root/bgx1.txt
    

    3.6 查看/root/bgx1.txt文件的内容(四种方法)(4分)

    cat bgx1.txt
    less bgx1.txt 
    more bgx1.txt
    vim bgx1.txt
    

    3.7 查看/tmp/old/属于哪种文件类型(2分)

    file /tmp/old/
    

    3.8 删除/tmp目录下所有内容(2分)

    rm -rf /tmp/*
    

    3.9 删除/root下所有a开头的文件(2分)

    rm -rf /root/a*
    

    3.10 查看/etc/passwd文件的第7、8行(3分)

    sed -n '7,8p' /etc/passwd
    

    3.11 清除命令历史记录(3分)

    history -c
    

    3.12 将文件从Windows上传到centos系统中使用什么命令(3分)

    rz
    

    3.13 如何将/root/bgx1.txt文件下载到windows系统中(3分)

    sz  /root/bgx1.txt
    

    3.14 如何比较两个文件内容有什么区别(2种方式,并简述2种方式的区别)(6分)

    diff     --->>>文件对比
    vimdiff  --->>>可高亮显示
    

    3.15 已知阿里源地址为http://mirrors.aliyun.com/repo/Centos-7.repo将其下载到etc/yum.repos.d目录下并命名为Centos-7.repo(3分)

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    

    3.16 如何安装vim(3分)

    yum install vim -y
    

    3.17 在/tmp/目录下面创建一个etc的软连接etc-test(3分)

    ln -s /etc/ /tmp/etc-test
    

    3.18 如何查看家目录下的所有文件(3分)

    ls -a ~
    

    3.19 给hello设置别名,使每次使用hello就输出“你好”(3分)

    alias hello="echo 你好"
    

    3.20 取消hello命令的别名(3分)

    unalias hello
    

    四、面试题

    4.1 显示1.txt文件第3到第10行的内容?(3分)
    sed -n '3,10p' 1.txt
    
    4.2 写出查询file.txt以abc结尾的行(3分)
    grep 'abc$' file.txt
    
    4.3 删除file.txt文件中的空行(3分)
    grep -v '^$' file.txt
    sed -n '/^$/d' file.txt
    
    4.4 找出ifconfig命令结果中的1-255之间的数值;(3分)
    ifconfig |grep -o '[1-255]'
    
    4.5 统计出apache的access.log 中访问最多的5个ip(IP为第一列)(4分)
    awk '{print $1}' access.log |sort -n |uniq -c |sort -n |tail -5
    
    4.6 在/var/sync/log/cef_watchd-20080424.1og文件中查找大小写不敏感“mysql"字符串中的命令是(3分)
    grep -i 'mysql' /var/sync/log/cef_watchd-20080424.1og
    
    4.7 用命令行更改config.txt文件,把里面所有的"name"更改为"address" (4分)
    :%s#name#address#g
    
    4.8 用awk获取文件中第三行的倒数第二列字段(3分)
    awk 'NR==3{print $NF-1}' 1.txt
    
    4.9 显示file文件里匹配foo字串那行及前5行、匹配foo及后5行(4分)
    grep -C 5 'foo' file
    
    4.10 查找file.log文件中的包含关键字“helloworld”的内容,及其上下两行的内容从定向保存到1.txt。请写出命令(4分)
    grep -C 2 'helloworld' file.log >1.txt
    

    image.png

  • 相关阅读:
    flink源码阅读(概览)
    idea如何设置home目录
    博客园定制化从入门到精通
    CAP理论的理解
    几个常用的profiler工具对比jprofiler、vituralVM、yourkit、JVM profler
    kafka的使用经验
    netty高并发框架
    Mysql Explain 详解
    show engine innodb status解读
    Class.getResourceAsStream()与ClassLoader.getResourceAsStream()的区别
  • 原文地址:https://www.cnblogs.com/yinwu/p/11332375.html
Copyright © 2020-2023  润新知