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.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'