[笔试考试试题命令部分](总满分 72 分,每题 4 分)
1.一个目录中有很多文件(ls -l 查看时好多屏),想用一条命令最快速度查看到最近更新的文件。如何看?
ls -rtl
ls 命令中 -t按时间排序 -r是反转排序
2.在配置 apache 服务时 执行了 ./configure --prefix=/application/apache2.2.17 来编译apche,在 make install 完成后,希望用户访问 apache 路径更简单,需要给 /application/apache2.2.17目录做一个软链接 /application/apache,使得内部开发或管理人员通过 /application/apache 就可以访问apache 的安装目录 /application/apache2.2.17 下的内容,请你给出实现的命令。
ln –s /application/apache2.2.17 /application/apache
这道题开发人员需要一个简单的命令来实现直接访问/application/apache2.2.17 只需要创建一个指向/application/apache2.2.17的软连接.
3.已知 Nginx 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张,现在要求只能保留最近 7 天的访问日志!请问如何解决? 请给解决办法或配置或处理命令。
00 00 * * * /usr/bin/find /app/logs -type f -mtime +7 |xargs rm -f &>/dev/null 或 >/dev/null 2>&1
00 00 * * * /usr/bin/find /app/logs -type f -mtime +7 –exec rm –f{} \; &> /dev/null 或 >/dev/null 2>&1
00 00 * * * rm -f $(find /app/logs -type f -mtime +7) &> /dev/null或 >/dev/null 2>&1
先使用find命令取出需要删除的文件,注意-mtime参数的使用,(定时任务中命令需要使用全路径)最后做成脚本运行
4.调试系统服务时,希望能实时查看/var/log/messages 系统日志的更新,如何做?
tail –f /var/log/messages
tail –F /var/log/messages
tailf /var/log/messages
tail -f追踪文件尾部信息 -F一直跟踪文件哪怕文件删除,只要创建出命令中需要跟踪的文件,他就会自动追踪
5.打印轻量级 web 服务的配置文件 nginx.conf 内容的行号及内容,该如何做?
cat –n nignx.conf
grep –n '.' nginx.conf
awk '{print NR,$0}' nginx.conf
vim :set nu
sed '=' nginx.conf
less –N nginx.conf
上述命令都可以显示行号,只需要显示出全文就可以
6.已知如下命令及结果:
[oldboy@test ~]$ echo "I am oldboy,my qq is 31333741" >>oldboy.txt
[oldboy@test ~]$ cat oldboy.txt
I am oldboy,my qq is 31333741
现在需要从文件中过滤出“oldboy”和“31333741”字符串,请给出命令。
grep –Eo 'oldboy|31333741'oldboy.txt
egrep –o 'oldboy|31333741' oldboy.txt
sed –r 's#am (.*),.*is (.*)#\1\2#g' oldboy.txt
awk –F '[ ,]' ‘{print $3,$NF}' oldboy.txt
过滤两个字符串grep需要用扩展正则,加-E 可以过滤多个字符串,加-o只过滤整个字符串-w出来就会把只要带这些字符的字符串过滤出来
7.问题:请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出。
echo "oldboy";echo "oldboy"
echo –n "oldboy";echo "oldboy"
echo -n 参数为不换行显示
8.如何快速查到 ifconfig 命令的全路径(假如你不知道其路径),请给出命令。
which ifconfig
whereis ifconfig
which查看文件全路径
whereis 查看与该命令相关的所有路径
9.查找/oldboy/目录下所有文件,并把文件中的 www.etiantian.org 字符串换成www.oldboyedu.com
find /oldboy/ -type f |xargs sed 's#www.etiantian.org#www.oldboyedu.com#g'
find /oldboy/ -type f -exec sed 's#www.etiantian.org#www.oldboyedu.com#g'
sed 's#www.etiantian.org#www.oldboyedu.com#g' $(find /oldboy/ -type f )
共三种方法,同理第三题
10.过滤出/etc/services 文件包含 3306 或 1521 两数据库端口的行的内容。
grep -E '3306|1521' /etc/services
egrep '3306|1521' oldboy.txt
sed –nr '/3306|1521/p' oldboy.txt
awk '/3306|1521/' oldboy.txt
过滤一般用grep,因为是两个字符串所以需要-E 因为用到了扩展正则
sed因为需要使用扩展正则用到 -r参数 awk自动识别扩展正则
11.请将 ifconfig eth0 和 ip add 结果中的 eth0 网卡对应 ip 地址取出(不低于 2 种方法)。
[root@oldboyedu ~]# ifconfig eth0
eth0: flags=4163 mtu 1500
inet 10.0.0.201 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::9fdb:66ba:dc7f:3fe5 prefixlen 64 scopeid 0x20
[root@oldboyedu ~]# ip add
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:2a:ca:54 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.201/24 brd 10.0.0.255 scope global noprefixroute eth0
ifconfig eth0|sed -rn 's#.*t (.*) net.*#\1#gp'
ifconfig eth0|awk -F'[ :]+' 'NR==2{print $3}'
ip addr|awk -F'[ /]+' 'NR==9{print $3}'
ip add|sed -rn 's#.*inet (.*) \/24.*#\1##gp'
这道题主要是用来检测三剑客命令的使用
12.如何赋予 oldboy.txt 文件如下权限、用户、用户组属性。
-w--rw-rwx. 1 oldboy sa 24 Mar 13 11:46 oldboy.txt
chmod 267 oldboy.txt
chmod u=w g=rw o=rwx oldboy.txt
chown oldboy.sa oldboy.txt
chown oldboy:sa oldboy.txt
chmod是设置用户权限,chown是改变文件属主和属组 的命令属主和属组中间需要用.或:隔开
13.某系统管理员需每天做一定的重复工作,请按照下列要求,编写一个解决方案,请按步骤写清楚每一步操作:
(1)在下午 4:50 删除/abc 目录下的全部子目录和全部文件。
(2)每逢星期一下午五点将/data 目录下的所有目录和文件归档并压缩为以当天日期命名的tar.gz 结尾打包文件。
(1) 50 16 * * * /bin/rm –rf /abc/* >/dev/null 2>&1
脚本:
路径/server/scripts/rm_abc.sh
#!/bin/bash
#在下午4:50删除/abc目录下的全部子目录和全部文件
/bin/rm -rf /abc/*
执行脚本
crontab -e
50 16 * * * /bin/sh /server/scripts/rm_abc.sh >/dev/null 2>&1
(2) 00 17 * * 1 /bin/tar zcf ./date_$(date +\%F).tar.gz ./data >/dev/null 2>&1
脚本:
路径/server/scripts/tar_data.sh
#!/bin/bash
#打包data目录下的所有目录
/bin/cd /&&
tar zcf data_$(date +%F ).tar.gz ./data
执行脚本
crontab -e
00 17 * * 1 /bin/sh /server/scripts/tar_data.sh
定时任务的执行需要注意前面的每个星号的代表(分时日月周)后面追加>/dev/null2>&1 把文件产生的报错定义到空,减少磁盘的占用,因为有时候定时任务不止一个放在脚本里一块执行
14.如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r--r-- 为 644,要求使用命令取得644这样的数字(不低于 2 种方法)。
stat /etc/hosts -c %a
stat /etc/hosts|awk -F'[0/]' 'NR==4{print $2}'
stat /etc/hosts|sed -nr 's#.*\(0(.*)/-.*#\1#gp'
使用sed和awk 可以取出来,sed使用替换排除前后的字符,awk使用分列取列
15.Linux 下通过 mkdir 命令创建一个新目录/oldboy/ett,它的硬链接数是多少,为什么?如果在/oldboy/ett 下面再创建一个目录 test。再问/oldboy/ett 的硬链接数是多少?为什么。
2 目录本身是一个硬链接,.
3 目录本身是一个硬链接,.也是一个,..也是一个
目录本身为一个硬链接,该目录内会有一个.的隐藏文件属于当前目录的硬链接,而他下面的每个目录里后会有一个..的隐藏文件,也是属于当前目录的硬链接,下面的目录越多硬链接数越多
16. 企业 故障案例 1 :(参考问题 9)
作为运维工程师,你在工作中遇到的一个实际问题,情况是:一个 lnmp 的服务器,站点目录下所有的文件均被植入了如下内容:
(可用 A 代替此行内容解答)
包括图片文件也被植入了,当用户网站打开时就会调用这个地址,显示一个广告,请问你如何解决.
第一步:
备份
第二步:
find / -type f |xargs sed ‘s#A##g’
定位到文件内容后,将其替换掉,确认无误再加-i 参数
总结报告并查找故障原因,进行针对性防护
运维的核心职责,在操作文件时提前备份,然后查找出被添加的内容进行删除,最后做总结,之后针对相同问题进行预防
17.请输出当前日期和时间、3 天前的日期、未来 10 天的日期。
date +%F
date –d “-3 day” +%F
date –d +10 day +%F
date -d参数显示字符串的时间,而不是现在的时间
18.写出 10 个以上 Linux 命令行中特殊字符及对应含义。
* 表示所有
?匹配单个字符,有且只有一个
[abcd] 匹配里面任意一个字符
[a-z] 匹配连续的任意单个字符
[!a-z] 取反也是单个字符 !=^
~ 用户家目录
- 上次的目录
. 当前目录
.. 上一级目录
'单引号' 所见即所得
"双引号"引用字符串 解析变量命令,推荐使用
`` 反引号 引用命令 解析命令 等价$() 替代`` 希望系统把字符串当做命令
;分号 表示命令分隔符
# 1.管理员提示符 2.注释
$ 1.普通用户提示符 2.调用变量使用
| 管道符 将前面的数据流交给后面处理
\ 转义字符 让字符还原本来的意义
{}1.生成序列 2.引用变量
!1.取反 2.vim 强制 3.调用最近符合字符开头的命令
&&并且 前面正确后面才输出
||或者 or 前面错误 后面才输出
标准输入:代码0,配合<或<<使用
标准输入 0<或<
清空已有内容
追加输入0<<或<<
追加到已有内容尾部
标准输出:代码为1,配合 >或>>使用
标准输出1>或>
正常输出到重定向到文件,会清空文件已有内容
追加输出1>>或>>
将内容追加重定向文件底部,不会清空存在内容
标准错误:代码为2,配合>或>>使用
错误输出重定向2>
将标准错误内容重定向到文件,如果文件存在内容则清空
错误输出追加重定向2>>
将标准错误内容和最佳到文件底部,不会清空
特殊重定向用法
将标准错误重定向到标准输出
echo "I am oldboy" &>>oldbiy.txt
echo "I am oldboy" 1>>oldbiy.txt 2>>oldboy.txt
echo "I am oldboy" >>oldboy.txt 2>&1
[笔试考试试题理论部分] (总满分 28 分,每题 4 分)
1. 请说出软链接和硬链接的区别。
硬链接不占用 inode 软连接占用一个 inode
硬链接不可以跨文件系统创建,软链接不影响
删除源文件对硬链接无影响,但是软链接会失效
硬链接不可以给目录创建,软连接可以
2.描述 ls -lhi 输出中,每一列的意义。
33631870 -rw-r--r--. 1 root root 21 Oct 6 2020 oldboy.txt
33631870:inode节点号
-rw-r--r--.:文件类型及权限.代表selinux开启
1 :硬链接数
root:属主
root:属组
21 :文件大小
Oct:月份
6:日期
2020:年份
oldboy.txt:文件名不属于文件属性
2. 什么是 PATH 环境变量,它有什么作用?
PATH 是命令的搜索路径
PATH 可以在其他子 shell 中定义命令的目录路径
3. 描述 Linux 下文件删除的原理?
硬链接数为 0 link 为 0
进程数为 0 icount 为 0
4. 企业 故障案例 2 :往磁盘中写入数据出现 no space left on device 故障,请写出可能原因。
inode 满 : 定时任务书写有误,导致邮件产生大量小文件,把 把 inode 占用完了
block 满:df –h du –sh 定位 到大文件,并将其删除
5. 企业例 故障案例 3 : Tomcat 服务器磁盘满了,临时删除对应日志文件但是发现空间未释放,可能原因是?如何解决
进程占用,ps –ef|grep delete 相应的服务进程,并将其重启即可释放空间
6. 企业例 故障案例 4 :定时任务的脚本手工可以执行,但是放到定时任务里无法执行,可能的原因是什么?
原因 一:环境变量问题,没有使用绝对路径执行定时任务
原因 二 :定时任务写错了