2019-08-04

day09-练习题

选择题

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

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

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

A.64GB
B.128GB
C.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.PWD
C.PS2

7、/etc文件系统的标准应用是用于 D

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

8、如何删除一个非空子目录/tmp? B

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

9、存放linux默认系统日志文件是 B

A./var/log/dmesg #系统启动时日志
B./var/log/messages #系统日志
C./var/log/secure #登录相关 安全

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

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

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

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

12、创建一个新文件可以使用的命令为(A D)

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

13、以下哪个命令是查找文件的命令( A )

A.find
B.grep 过滤 匹配
C.awk 取列 截取
D.cat 查看

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

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

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

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

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

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

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

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

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

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

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

/dev
/boot
/root
/etc

20、在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是_-p

-m
-d
-f
-p

21、/var目录标准作用是用于 C

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

22、用"rm -i"系统会提示什么来让你确认( 是否真的删除 )

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

23、下面哪个Linux命令可以一次显示一页内容? C

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

24、显示一个文件最后几行可以使用的命令是: B

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

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

用户当前所在目录为(B)
A:/home B:/root C:/home/root D:/usr/local

26、Linux有三种查看文件的命令,若希望在查看文件内容过程中可

以用光标上下移动来查看文件内容,应使用命令(C)
A:cat B:more C:less D:me

27、 在Linux系统中,用来存放系统所需要的配置文件和子目录是

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

28、Linux文件系统的文件都安其作用分门别类地放在相关目录中,

对于外部设备文件,一般应将其放在(C)目录中
A:/bin B:/etc C:/dev D:/lib

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

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

30、 在vi编辑器中的命令模式下,键入(B)可在光标当前所在行下添

加一新行。
A:a B:o C:I D:A

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

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

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

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

33、在给定文件中查找与条件相符字符串的命令及查找某个目录下相

应文件的命令为:C
A:grep B:gzip C:find

34、下列关于链接描述,错误的是(D)

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

命令题

1、 创建目录/old/boy/

   [root@alwzz ~]# mkdir -p /old/boy/

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

   [root@alwzz boy]# touch bgx1.txt bgx2.txt bgx3.txt

3、 将/old/boy/目录下所有内容复制到/root/目录下

   [root@alwzz ~]# cp /old/boy/* -p /root/

4、 将/old目录移动到/tmp/下

   [root@alwzz ~]# mv /old /tmp/

5、 将I am student输入到/root/bgx1.txt中

    [root@alwzz ~]# cat >>/root/bgx1.txt < I am student
> EOF

6、查看/root/bgx1.txt文件的内容(四种方法)

   [root@alwzz ~]# cat /root/bgx1.txt 
   [root@alwzz ~]# less /root/bgx1.txt
   [root@alwzz ~]# more /root/bgx1.txt
   [root@alwzz ~]# head /root/bgx1.txt

7、查看/tmp/old/属于哪种文件类型

   [root@alwzz ~]# file /tmp/old/

8、 删除/tmp目录下所有内容

   [root@alwzz ~]# rm -rf /tmp/*

9、删除/root下所有a开头的文件

   [root@alwzz ~]# rm -f /root/^a

10、查看/etc/passwd文件的第7、8行

   [root@alwzz ~]# sort -t ":" -k7 -k8 /etc/passwd

11、 清除命令历史记录

   [root@alwzz ~]#history -c

12、 将文件从Windows上传到centos系统中使用什么命令

    使用xftp上传

13、 如何将/root/bgx1.txt文件下载到windows系统中

     [root@alwzz ~]#sz bgx1.txt 指定目标

14、如何比较两个文件内容有什么区别(2种方式,并简述2种方式

的区别)

     [root@alwzz ~]# diff
     [root@alwzz ~]#vimdiff

15、已知阿里源地址为http://mirrors.aliyun.com/repo/Centos-7.r

epo将其下载到etc/yum.repos.d目录下并命名为Centos-7.repo

     [root@alwzz ~]# -O http://mirrors.aliyun.com/repo/Centos-7.repo  /etc/yum.repos.d/Centos-7.repo

16、如何安装vim

      [root@alwzz ~]# yum install -y vim

17、在/tmp/目录下面创建一个etc的软连接etc-test

   [root@alwzz ~]# ln -s /tmp/etc-test /etc

18、 如何查看家目录下的所有文件

   [root@alwzz ~]# ll -a /root

19、给hello设置别名,使每次使用hello就输出“你好”

   [root@alwzz ~]#alias  hello='你好' 

20、 取消hello命令的别名

   [root@alwzz ~]#unalias hello

原理题

1、 bash常用快捷键

       ctel + c :终止
       ctel + l :清屏  ==clear命令

2、常见的bash特性有哪些?

     TAB键命令补全、命令快捷键、历史命令History、命令别名   alias、Bash Shell的帮助

3、什么是GNU,什么是GPL

      GNU:是个组织,不是Unix 
      GPL通用公共许可协议

4、 以根目录下个目录的作用

      /bin ,普通用户的命令
      /sbin,管理员使用的命令
      /home 普通用户的家目录
      /root  超级管理员root的家目录
      /usr 存放系统文件
      /boot 存放的系统启动相关的文件
      /etc所有服务的配置
      /var,存放一些变化文件
      /tmp,系统临时目录
     /dev,存放设备文件
     /proc,反映当前系统正在运行进程的实时状态
     /media #提供挂载点
     /mnt   #提供挂载点  
     /opt   #第三方工具默认安装的目录
     /run   #进程运行的pid,(放在一个文件中) lock的相关文件

5、 简述命令执行的流程

    绝对路径-->alias--->hash缓存-->$PATH变量路径--->有执行--->没有command not found

6、 什么是绝对路径,什么是相对路径

       绝对路径:    只要以 / 开始的都算绝对路径
       相对路径:    相对于当前目录来说

7、 简述软连接与硬连接的区别

        软连接就是一个快捷方式,删除软连接不会影响源文件.
        硬链接,类似于一个文件副本,删除硬链接不影响原文件

8、 vim的几种模式,每种模式都是做什么的

        普通模式 、编辑模式 、命令模式

9、 写出15个学过的命令

        ls 列出当前目录下的内容
       -l 以长格式显示
       -a 显示所有的文件,包括隐藏文件
       -h 列出文件大小
  history  查看历史记录
   -w 写入文件
   -d 删除bash窗口的某一行内容
   -c 清空bash
 alias 命令别名  
unalias取消别名
man ls 帮助手册
     ls --help 手册
mkdir: 创建目录
   -p 递归
   -v 列出详情
    touch: 创建一个空的文件
mv: 移动文件  mv 源文件 目标位置
rm: 删除文件或者目录  
   -f 强制删除 
   -r 递归删除
cp 复制
   -r 递归拷贝
   -p 保持拷贝文件属性
   -v 显示拷贝过程
cat  查看内容
   -n 显示行号
   -A 显示特殊字符
less  查看大文件,空格翻页,q退出
    more  查看大文件显示百分比
tail  查看文件尾部内容,默认10行
     -n 查看尾部第几行
     -f 动态追踪一个文件尾部
head  查看文件头部内容,默认10行
     -n 指定查看头部多行

简答

1、说出下列字符在linux操作系统里所代表的含义

          ~         当前用户的家目录
          -         cd - 上一次所在的目录    - 普通文件
           .            当前目录
          ..            当前目录的上一级目录
           |            管道    将左边命令的输出结果传递给右边命令的输入
          #         注释
           *            表示所有
           \            转义符,去掉命令原有的属性
           ^            以什么开头
          $         以什么结尾
           ||           或者   command A || command B 前者命令不成功才执行后者
         &&         并且   command A && command B  前者命令成功才执行后者

2、"."和".."分别代表什么

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

3、统计/var/log下的文件个数

[[email protected]~]# ll /var/log/|wc -l

4、查看/etc/passwd文件里的第二行,要求输出结果为“/bin:x:bin:1:/sbin/nologin:bin:1”(两种方法,分别使用sed和awk完成)

[[email protected]~]# head -2 /etc/passwd| tail -1
[[email protected]~]# sed -n 2p /etc/passwd | awk -F ":" '{print $7":"$2":"$3":"$4":"$5":"$6":"$1}'
[[email protected]~]# awk -F ":" '/^bin/ {print $7":"$2":"$3":"$4":"$5":"$6":"$1}' /etc/passwd
[[email protected]~]# awk -F ":" 'NR==2 {print $7":"$2":"$3":"$4":"$5":"$6":"$1}' /etc/passwd 
[[email protected]~]# sed -nr '2s#(^.*)(:x.*)(/s.*$)# \3\2\1 #gp' /etc/passwd

5、使用w查看已登录的系统用户列表

1、以空格为分隔符,取出出第一行,第一列的时间信息

[[email protected]~]# w | head -1| awk '{print $1}'
[[email protected]~]# w | awk 'NR==1 {print $1}'

2、以逗号为分隔符,取出出第一行,第三列的当前系统登录的用户数

[[email protected]~]# w| awk -F "," 'NR==1 {print $3}'|awk '{print $1}'

3、取出FROM所在的这一列往下所有行的IP地址信息(此地址为当前登录终端的地址来源)

[[email protected]~]# w | grep -A "3" "FROM"

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

cat >>1.txt < 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列的所有字符进行排序)

          [[email protected]~]# sort -t "." -k3.1,3.1 -k4.1,4.3 -n 1.txt 

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

          [[email protected]~]# grep -i "[a-z]" 1.txt
          [[email protected]~]# grep "[a-Z]" 1.txt 

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

             [[email protected]~]# grep "3$" 1.txt 
             [root@oldboyedu-65 ~]# grep -n "3$" 1.txt 

7、将"access.log"上传至你的linux服务器

(1)统计出该文件IP地址出现的次数,并按正序对其进行排序 sort uniq

    1.如何拿到文件中的IP地址
    2.对拿到的IP地址进行排序,去重,统计
    3.对统计出来次数,在进行一次排序
    [[email protected]~]# awk '{print $1}' access.log |sort|uniq -c|sort -n
            取出IP访问次数最高的TOP3
   [[email protected]~]# awk '{print $1}' access.log |sort|uniq -c|sort -nr|head

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

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

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

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

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

  [[email protected]~]# grep "root" /etc/passwd
  [[email protected]~]# awk '/root/' /etc/passwd

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

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

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

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

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

    1.找到要取值的目标  hostnamectl
    2.先缩小到取内容的行
    3.取出需要的那一列
[[email protected]~]# hostnamectl | grep "Kernel" | awk '{print $2,$3}'
[[email protected]~]# hostnamectl | awk '/Kernel/ {print $3}'

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

[[email protected]~]# hostnamectl |grep "hostname" | awk '{print $3}'

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

[[email protected]~]# hostnamectl | grep "System" | awk '{print $4,$5}'

14、取出当前linux操作系统的DNS /etc/sysconfig/networkscripts/ifcfg-ens32

[[email protected]~]# grep "DNS" /etc/sysconfig/network-scripts/ifcfg-ens32 | awk -F "=" '{print $2}'

15、复制/etc/passwd到当前root用户家目录

(1)只查看头3行,并将“:”替换为“#”

   [[email protected]~]# head -3 passwd  | sed 's@:@#@g'

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

   [[email protected]~]# grep "bin" passwd | sed 's#bin#test#'

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

   [[email protected]~]# grep "bin" passwd | sed 's#bin#test#g'

注意: sed在使用过程中 加上 g 代表全局替换 如果不加 g 仅替换每行第一个出现的字符

             grep           过滤 匹配
             awk                取值
             sed                替换
          sort uniq        统计(排序|去重)

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

       1.找到要取值的目标  ifconfig lo
        2.筛选出要取值的行
          [[email protected]~]# ifconfig lo | grep "inet "
          [[email protected]~]# ifconfig lo | awk '/inet /'
          [[email protected]~]# ifconfig lo | sed -n '2p'      #2p 表示打印第二行

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

         [[email protected]~]# awk -F ":" '{print $1}' /etc/passwd

18、写一个文件,文件内容如下

     cat >>test.txt<

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

        [[email protected]~]# grep "docs" test.txt

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

       [[email protected]~]# grep -Ei "root|index"  test.txt

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

       [[email protected]~]# grep  "index"  test.txt

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

       [[email protected]~]# grep -i "o" test.txt

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

      [[email protected]~]# grep -v  ";" test.txt

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

      会删除当前目录下所有的文件
    /
    /home/
    /root/

20、使用ifconfig查看网卡信息,筛选出包含10.0.0.200(不少于三种方法)

grep awk sed 
    1.使用命令能够找到需要取值目标  ifconfig ens32
    2.缩小到行,行中包含了IP地址
    3.从行中提取出对应的IP地址
    [[email protected]~]# ifconfig ens32 | grep "inet " | awk '{print $2}'
[[email protected]~]# ifconfig ens32 | awk '/inet /'|awk '{print $2}'
[[email protected]~]# ifconfig ens32 | awk '/inet / {print $2}'
[[email protected]~]# ifconfig ens32 | sed -n '2p' | awk '{print $2}'
[[email protected]~]# ifconfig ens32 | sed -n '2p' | cut -d " " -f 10
[[email protected]~]# ifconfig ens32 | sed -n '2p' | sed -r 's#(^.*et) (.*) (net.*$)#\2#g'

你可能感兴趣的:(2019-08-04)