--------------------------------------第二次考试----------------------------
1.1 什么是绝对路径,什么是相对路径(2 分)
绝对路径:以根"/"开始,都算是绝对路径
相对路径:相对于当前目录而言
1.2 简述命令执行的流程(2 分)
1) 判断命令是否通过绝对路径执行
2) 判断命令是否存在alias别名
3) 判断用户输入的是内置命令还是外置命令
4) Bash内部命令直接执行,外部命令检测是否存在缓存
5) 通过$PATH变量查找命令,有执行,无报错 command not found
绝对路径-->alias--->hash缓存-->$PATH变量路径--->有执行--->没有command not found
1.3 简述软连接与硬连接的区别(2 分)
软连接:类似于快捷方式;删除源文件软链接会失效;ln -s命令创建软链接
软链接支持跨越分区系统;可以创建目录;软链接文件与源文件inode不同
硬链接:类似于副本,删除源文件对硬链接无影响;ln命令创建硬链接,
硬链接不可以跨越分区系统;不能创建目录;硬链接文件与源文件的inode相同
1.4 创建目录/old/boy/(2 分)
[root@oldboy ~]# mkdir -p /old/boy
1.5 使用一条命令在/old/boy/目录下创建 bgx1.txt、bgx2.txt、bgx3.txt 三个文件(2 分)
[root@oldboy ~]# touch /old/boy/ bgx{1..3}.tx
1.6 将/old/boy/目录下所有内容复制到/root/目录下(2 分)
[root@oldboy ~]#cp -r /old/boy/* /root/
1.7 删除/root 下所有 a 开头的文件及目录(2 分)
[root@oldboy ~]# rm -rf /root/a*
1.8 在/tmp/目录下面创建一个 etc 的软连接 etc-test(2 分)
[root@oldboy ~]# ln -s /etc /tmp/etc-test
1.9 写出 20 个学过的命令及含义(20 分)
find 查找 gzip打包 tar打包 sort排序 uniq去重 cut截取 awk去列 sed 用于增删改查
grep 过滤 history历史命令 vim 编辑 cat查看文件内容 less 查看文件内容 ln -s软连接
useradd创建用户 usermod修改用户 userdel删除用户 groupadd创建组 groupmod 修改组
groupdel删除组 file查看文件类型 cp 复制 mv 移动 rm 删除 touch创建文件
1.10 以下目录的作用(8 分)
/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 可变化数据的目录,常用于存放系统日志相关的文件
二、awk
2.1 显示 1.txt 文件第 3 到第 10 行的内容?(2 分)
[root@oldboy ~]# awk 'NR==3,NR==10' /etc/passwd
2.2 取出 IP 地址(2 分)
[root@oldboy ~]# awk'/NR==3/ {print $1}'
2.3 写一个文件,文件内容如下
cat >>test.txt<<EOF
server {
lisTEN 80;
server_nAme docs.xuliangwei.com;
root /code/dOcs
index INDEX.html;
}
EOF
2.3.1 过滤 docs.xuliangwei.com 这段关键字(2 分)
[root@oldboy ~]# awk '/com/ {print $2}' test.txt
[root@oldboy ~]# awk '/com/ {print $2}' test.txt|sed 's#;# #g'
2.3.2 同时过滤出 root 和 index 的行,不区分大小写(2 分)
[root@oldboy ~]# grep -Ei "root|index" test.txt
2.3.3 过滤 index,区分大小写(2 分)
[root@oldboy ~]# grep "index" test.txt
2.3.4 过滤出带"O"的行,不区分大小写(2 分)
[root@oldboy ~]# grep -i "o" test.txt
2.3.5 过滤出不带";"的行(2 分)
[root@oldboy ~]# grep -v ";" test.txt
3.4 将"web3_access.log"上传至你的 linux 服务器
2.4.1 统计出该文件 IP 地址(第一列)出现的次数,并按正序对其进行排序(2 分)
[root@oldboy ~]#awk '{print $1}' access.log |sort -n |uniq -c |sort -n
2.4.2 统计该文件内 HTTP 状态返回码出现的次数(例如 200,404,403,在第九列),并按照倒序进行排序(2 分)
[root@oldboy ~]#awk '{print $9}' access.log |sort -n |uniq -c |sort -nr
2.4.3 过滤出所有状态返回码是 200 的行,并将这些返回码为 200 行的全部替换成 300(2 分)
[root@oldboy ~]#awk '{print $9}' access.log |grep "200"|sed 's#200#300#g'
3.5 使用 hostnamectl 查看当前系统信息
[root@test-200 /home]# hostnamectl
Static hostname: test-200
Icon name: computer-vm
Chassis: vm
Machine ID: 955d9cf9777d49748690808a0b38096b
Boot ID: 9565d1bd772543beb49d178479e7c94f
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
PE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-957.el7.x86_64
Architecture: x86-64
2.5.1 取出 kernel 内核版本信息(2 分)
[root@oldboy ~]# hostnamectl|awk '/Linux/ {print $3}'
[root@oldboy ~]# hostnamectl|awk 'NR==9 {print $3}'
2.5.2 取出系统名称(2 分)
[root@oldboy ~]# hostnamectl|awk 'NR==1 {print $3}'
2.5.3 取出系统版本信息,只显示"linux 7"(2 分)
[root@oldboy ~]# hostnamectl|awk 'NR==7 {print $4,$5}'
三,用户与权限
3.1 在 Linux 系统中,哪个文件保存着用户信息(2分) B:/etc/passwd
A:/etc/Profile B:/etc/passwd C:/usr/bin/env D:/boot
3.2 一个用户想要修改 dir 目录下的 file 文件,他需要对 dir 目录以及file文件有什么权限(2 分)
A:file 的写权限和 dir 目录(以及一直向上到/目录)的执行权限
B:只需要 file 的写权限 C:只需 file 的读和写权限
D:file 的写权限和dir目录(以及一直向上到/目录)的写权限
3.3 默认情况下管理员创建了一个用户,就会在(B:/home )目录下创建一个用户主目录(2 分)
A:/usr B:/home C:/root D:/etc
3.4 为脚本程序指定执行权限的命令参数是(2 分)A:chmod +x filename.sh
A:chmod +x filename.sh B:chown +x filename.sh
C:chmod +w filename.sh D:chown +r filename.sh
3.5 如果执行命令 # chmod 746 file.txt , 那么该文件的权限是?(2 分)A:rwxr--rw-
A:rwxr--rw- B:rw-r--r-- C:–xr—rwx D:jrwxr—r—
3.6 某文件的权限为:drw--r--r--,用数值形式表示该权限,则该八进制数为(644),该文件属性是(目录)
(2 分)
3.7 某个服务器有 a.sh 脚本,用户权限为 644,需要执行什么命令,才可以执行./a.sh命令
chmod a+x ./a.sh
3.8 唯一标识每一个用户的是用户的(用户名和UID)(2 分)
3.9 将以下权限翻译成数字,将数字权限用字母表示(14 分)
rw-r-xr-- 654
rw-r--r-- 644
rwx--x--x 711
rw------- 600
rwxr--r-- 744
rw-rw-r--664
751 rwxr-x--x
771 rwxrwx--x
632 rw--wx--w
644 rw-r--r--
551 r-xr-x--x
622 rw--w--w-
746 rwxr--rw-
755 rwxr-xr-x
3.10 设置/home/user1/test文件权限为所有者可读可写可执行,所有组可读可写,其他所有账户可读,并将该文件的所有者和所有组都修改为 root(3 分)
chmod 764 /home/user1/test
chown root.root /home/user1/test
3.11 当用户 zabbix 对/testdir 目录有写和执行权限时,该目录下的只读文件 file1 是否可修改和删除?(3 分)
可以强制修改保存,也可以删除
3.12 把 jacky 的密码设置为 123(3 分)
echo "123"|passwd --stdin jacky
3.13 使用"ls -l /"以长格式查看根目录,写出引号内容所代表的详细含义(4 分)
“dr-xr-xr-x.” 5 “root root” 4096 May 16 01:36 boot
d: 表示目录
r-x 表示属主的权限
r-x 表示属组的权限
r-x 表示其他人的权限
root 表示属主
root 表示属组
3.14 当用户 mysql 对/data/DB 目录无读权限,但是拥有写和执行权限,意味着能做哪些操作,无法做哪些操作?(3 分)
可以创建修改文件,可以删除(前提是必须要知道具体的文件名)
四、进阶
4.1 如果某一天你误操作了"rm -rf *",会发生哪些情况(3 分)
如果删除根目录,系统将无法使用
如果删除普通下内容,则目录的内容将删除
4.2 用命令行更改 config.txt 文件,把里面所有的"name"更改为"address" (3 分)
sed 's#name#address#g'
4.3 用 awk 获取文件中第三行的倒数第二列字段(2分)
awk 'NR==3 {print $(NF-1)}'
4.4 删除 file.txt 文件中的空行(3 分)
grep -v '^$' file.txt|xargs rm -f
4.5 删除/tmp 目录下所有 a 开头的文件(3 分)
rm -rf /tmp/a*
五,翻译
5.1 [root@test-200 ~]# cd /rot
-bash: cd: /rot: No such file or directory
没有/rot 这个文件或目录
5.2 [root@test-200 ~]# mdkir a
-bash: mdkir: command not found
没有找到mdkri命令
5.3 [root@test-200 ~]# mkdir a
mkdir: cannot create directory ‘a’: File exists
不能创建'a'目录,已存在
5.4 [root@test-200 ~]# rm a
rm: cannot remove ‘a’: Is a directory
不能移除‘a’是目录
5.5 [root@test-200 ~]# rm a.txt
rm: remove regular empty file ‘a.txt’?
要移除‘a.txt’这个空文件吗?
5.6[root@test-200 ~]# cp /tmp/a.txt /root/a.txt
cp: overwrite ‘/root/a.txt’?
是否覆盖/root/a.txt
5.7 [root@test-200 ~]# id www
id: www: no such user
没有www这个用户
5.8 [test@test-200 /]$ cd /root
bash: cd: /root: Permission denied
权限拒绝
5.9 [root@test-200 /tmp]# cp -q a.txt c.txt
cp: invalid option -- 'q'
没有q这个选项
5.10 [root@test-200 /home]# useradd test
useradd: user 'test' already exists
用户‘test’已存在
-----------------------------第三次考试------------------------------
一、基础(每题 2 分)
1.1 阐述绝对路径与相对路径的区别
绝对路径:以根"/"开始,都算是绝对路径
相对路软连接径:相对于当前目录而言
1.2 简述软连接与硬连接的区别
软连接:类似于快捷方式;删除源文件软链接会失效;ln -s命令创建软链接
软链接支持跨越分区系统;可以创建目录;软链接文件与源文件inode不同
硬链接:类似于副本,删除源文件对硬链接无影响;ln命令创建硬链接,
硬链接不可以跨越分区系统;不能创建目录;硬链接文件与源文件的inode相同
1.3 简述命令执行的流程
1) 判断命令是否通过绝对路径执行
2) 判断命令是否存在alias别名
3) 判断用户输入的是内置命令还是外置命令
4) Bash内部命令直接执行,外部命令检测是否存在缓存
5) 通过$PATH变量查找命令,有执行,无报错 command not found
绝对路径-->alias--->hash缓存-->$PATH变量路径--->有执行--->没有command not found
1.4 写出查询 file.txt 以 abc 结尾的行
[root@oldboy ~]# grep "abc$" file.txt
1.5 查找 file.log 文件中的包含关键字 “helloworld”的内容,及其上下两行的重定向到 1.txt
[root@oldboy ~]# grep -n -C 2 "helloworld" file.log > 1.txt
1.6 假设公司研发部的用户 David 和 Peter 属于组 A
1.6.1 建立相应的用户和组,并设置相应的对应关系
1.6.2 建立目录 yf_a,该目录里面的文件只能由研发部人员读取、增加、删除、修改以及执 行,其他用户不能对该目录进行任何操作
1.6.3 建立目录 yf_b,该目录里面的文件只有研发部的 David 拥有所有权限,研发部的其他 人只有查看权限,其他部门不能进行任何操作
1.6.1 [root@oldboy ~]# groupadd A
groupadd: group 'A' already exists
[root@oldboy ~]# uaeradd David -g A
-bash: uaeradd: command not found
[root@oldboy ~]# useradd David -g A
[root@oldboy ~]# useradd Peter -g A
1.6.2 [root@oldboy ~]# mkdir yf_a
[root@oldboy ~]# chown .A yf_a/
[root@oldboy ~]# chmod 770 yf_a/
1.6.3 [root@oldboy ~]# mkdir yf_b
[root@oldboy ~]# chown David.A yf_b/
[root@oldboy ~]# chmod 740 yf_b/
[root@oldboy ~]# ll -d yf_b
drwxr-----. 2 David A 6 Aug 17 13:55 yf_b
1.7 有一用户 oldboy,及用户组 oldboy,在code 目录下创建的所有文件自动归属于 oldboy 组所有
[root@oldboy ~]# groupadd oldboy
[root@oldboy ~]# useradd oldboy -g oldboy
[root@oldboy ~]# mkdir /code/
[root@oldboy ~]# chown .oldboy /code/
[root@oldboy ~]# chmod 2770 /code/
1.8 有两个用户组 python 及 Linux,python组可以修改读取/hom/python/目录下所有内容,但 不能让 Linux 组读取;Linux 组可以修改读取 /home/linux/目录下所有文件,但不能让 python 组读取。给出配置命令。
[root@oldboy ~]# groupadd python
[root@oldboy ~]# groupadd Linux
[root@oldboy ~]# mkdir /home/python/
[root@oldboy ~]# mkdir /home/linux/
[root@oldboy ~]# chown .python /home/python/
[root@oldboy ~]# chmod 770 /home/python/
[root@oldboy ~]# chown .Linux /home/linux/
[root@oldboy ~]# chmod 770 /home/linux
二、find 相关(每题 3 分)
2.1 找出/tmp目录下,属主不是 root 的文件
[root@oldboy ~]# find /tmp/ -type f ! -user root
2.2 查找/var目录下属主为 old,且属组为 boy的文件
[root@oldboy ~]# find /var/ -type f -user old -a -group boy
2.3 查找/var目录下 7 天以前修改、且属组为root 的文件
[root@oldboy ~]# find /var/ -type f -mtime +7 -a -group root
2.4 查找/etc目录下大于 1M 且类型为普通文件的所有文件
[root@oldboy ~]# find /etc/ -type f -size +1M
2.5 查找/etc/目录下大于 100k,小于 1M 的文 件
[root@oldboy ~]# find /etc/ -type f -size +100k -a -size -1M
2.6 查找/目录下文件名包含 txt 的文件
[root@oldboy ~]# find / -type f -name "*txt*"
2.7 查找/目录下属主是 oldboy 或者属主是 oldgirl 的文件
[root@oldboy ~]# find / -type f -user oldboy -o -user oldgirl
2.8 删除/tmp目录下 15 天前的文件
[root@oldboy ~]# #find /tmp/ -type f -mtime +15 -exec rm -f {} \;
2.9 查找根下名为 1.txt 或 2.txt 的文件
[root@oldboy ~]# find / -type f -name "1.txt" -o -name "2.txt"
2.10 查找/tmp 目录下所有文件并删除
[root@oldboy ~]# #find /tmp/ -type f -exec rm -f {} \; |xargs rm -f
三、tar 相关(每题 3 分)
3.1 使用 zip 打包/etc 目录。
root@oldboy ~]# zip -r etc.zip /etc/
3.2 用 zip 打包/opt 目录,要求不显示打包过程。
[root@oldboy ~]# zip -qr opt.zip /opt/
[root@oldboy ~]# zip -r opt.zip /opt/ >1.txt
3.3 解压/data/etc.zip到当前目录
[root@oldboy ~]# unzip /data/etc.zip
3.4 已知文件 oldboy.zip,在不解压的情况下,如何查看该文件的内容
[root@oldboy ~]# unzip -t oldboy.zip -l
3.5 将/data/old.tar.gz 解压到/opt 目录下
[root@oldboy opt ~]# tar xf /data/old.tar.gz -C /opt/
3.6 不解压的情况下,查看/data/old.tar.gz 包中都有什么内容
[root@oldboy ~]# tar tf /data/old.tar.gz
3.7 打包/etc/目录,要求不打包/etc/hosts这个文件。
[root@oldboy ~]# tar czf etc.tar.gz /etc/ --exclude=etc/hosts
3.8 打包/etc/目录,要求不打包/etc/hosts和/etc/passwd这两个文件。
[root@oldboy ~]# tar czf etc.tar.gz /etc/ --exclude=etc/hosts --exclude=etc/
passwd
3.9 打包/etc/目录,命令以ip 地址方式的压缩包:比如:10.0.0.200_etc.tar.gz
[root@oldboy ~]# tar czf $(ifconfig ens32|awk 'NR==2 {print $2}')_etc.tar.gz /etc/
3.10 打包/etc/目录,要求以.bz2格式
[root@oldboy ~]# tar cjf etc.tar.bz2 /etc/
四、软件安装相关(每题3 分)
4.1 使用rpm 命令安装 tree 软件。
[root@oldboy ~]# rpm -vih tree
4.2 查看你的服务器中是否安装httpd 这个软件。
[root@oldboy ~]# rpm -q httpd
4.3 查看httpd 软件包里面的内容。
[root@oldboy ~]# rpm -ql httpd
4.4 查看httpd 软件包的详细信息。
[root@oldboy ~]# rpm -qi httpd
4.5 查看一下netstat 这个命令属于哪个软件包
[root@oldboy ~]# rpm -ql $(which netstat)
[root@oldboy ~]# yum provides netstat
4.6 卸载sl 这个命令
[root@oldboy ~]# yum remove sl -y
4.7 已知服务的mongodb 的版本为 3.0,现将mongodb这个软件版本升级为4.0,请给出 rpm升级命令
[root@oldboy ~]# rpm -Uvh mongodb
4.8 yum 安装 rsync 这个软件。
[root@oldboy ~]# yum install rsync -y
4.9 yum 安装多个软件,例如 sl、lsof、net-tools、nmap 等
[root@oldboy ~]#yum install sl lsof net-tools nmap -y
4.10 查看你的服务器中有哪些可用的 yum 源仓库。
[root@oldboy ~]# yum repolist
五、进阶(每题4 分)
5.1 将“I am student”重定向到/root/bgx1.txt中
[root@oldboy ~]# echo "I am student" > /root/bgx1.txt
[root@oldboy ~]# cat bgx1.txt
I am student
5.2 简述源码编译的流程
下载源代码安装包-->tar解包-->./configure 配置-->
make编译-->make install 安装-->测试及应用
5.3 查找/etc/目录下以.conf结尾、修改时间为最近七天的文件,打包压缩为/tmp/conf.tar.gz
[root@oldboy ~]# find /etc/ -type f -mtime -7 -name "*.conf" --exec tar czf /tmp
/conf.tar.gz
5.4 查找/目录下以a 开头的目录,打包压缩为zip结尾的压缩包
find / -type d -name "a*"|xargs zip -r zip.zip
5.5 查找/目录下,属主为oldboy 的文件,复制到/home/oldboy/目录下
find / -type -user oldboy |xargs cp {} /home/oldboy/ \;
六、翻译(每题2 分)
6.1 [root@test-200 ~]# cd /rot
-bash: cd: /rot: No such file or directory
没有/rot 这个文件或目录
6.2 [root@test-200 ~]# mdkir a
-bash: mdkir: command not found
没有找到mdkri 命令
6.3i [root@test-200 ~]# mkdir a
mkdr: cannot create directory ‘a’: File exists 6.4
不能创建'a'目录,已存在
6.4[root@test-200 ~]# rm a
rm: cannot remove ‘a’: Is a directory
不能移除‘a’是目录
6.5 [root@test-200 ~]#rm a.txt
rm:remove regular empty file ‘a.txt’?
要移除‘a.txt’这个空文件吗?
6.6 [root@test-200 ~]# cp /tmp/a.txt /root/a.txt
cp:overwrite ‘/root/a.txt’?
是否覆盖/root/a.txt
6.7 [root@test-200 ~]# id www
id: www: no such user
没有www这个用户
6.8[test@test-200 /]$ cd /root
bash: cd:/root: Permission denied
权限拒绝
6.9 [root@test-200 /tmp]# cp -q a.txt c.txt
cp: invalid option -- 'q'
没有q这个选项
6.10 [root@test-200 /home]# useradd test
useradd: user'test' already exists
用户‘test’已存在