运维笔试题整理(转)
⾯试题⼀
1、如何过滤出已知当前⽬录下oldboy中的所有⼀级⽬录(不包含⼦⽬录,即只能是⼀级⽬录)
⽅法1:find ./ -type d -maxdepth 1
⽅法2:ls -F
⽅法3:ls -l | grep ^d
⽅法4:ls -F | grep /$
⽅法5:ls -l | grep -v ^-
⽅法6:tree -L 1 /
⽅法7:根据颜⾊来区分⽂件和⽬录
⽅法8:ls -l | sed -n /^d/p
2、⼀个⽬录中有很多⽂件(ls查看时好多屏),想最快速度查看到最近更新的⽂件,如何看?
ls -lrt /etc #最底部的就是最新更新的⽂件
参数说明:
-r, –reverse #翻转排序
-t #按照修改时间排序
3、已知apache服务的访问⽇志按天记录在服务器本地⽬录/app/logs下,由于磁盘空间紧张,现在要求只能保留最近7天访问⽇志!请问如何解决?
办法或配置或处理命令(提⽰:可以从apache服务配置上着⼿,也可以从⽣成出来的⽇志上着⼿)
1>.服务⾃⾝的功能实现
2>.⼿动删除
find ./ -mtime +7 -type f -name “*.log” -exec rm -f {} \; #查7天以前的⽇志并删除之
4、打印配置⽂件f内容的⾏号及内容,该如何做?
⽅法1:cat -f
⽅法2:less -f
⽅法3:grep -n . f #此处的.(点)号,表⽰任意单个字符,-n是给过滤出的每⼀⾏加⾏号
5、如何迅速返回到上⼀次的⽬录?
cd – #环境变量OLDPWD始终记录着上⼀次的位置
6、调试系统服务时,希望能实时查看系统⽇志/var/log/messages的更新,如何做?
⽅法1:tail -f /var/log/messages
⽅法2:tail -F /var/log/messages #和-f⽐多个重试的功能,就是⽂件不存在了,会不断尝试
7、安装完系统(CentOS/RHEL)后,希望让⽹络⽂件共享服务NFS,仅在3级别上开机⾃启该如何做?
chkconfig –level 3 nfs off
8、如何查看/etc/services⽂件有多少⾏?
⽅法1:直接使⽤命令wc
wc -l /etc/services
⽅法2:给⽂件内容加⾏号
cat -n /etc/services | tail -1
⽅法3:sed -n ‘$=’ /etc/services
⽅法4:grep -n $ /etc/services | tail -1
9、请过滤出ifconfig中的ip地址?
⽅法1:ifconfig eth1|grep “inet add”|cut -d’:’ -f2|cut -d’ ‘ -f1
⽅法2:ifconfig eth1|grep “inet addr”|awk -F: ‘{print 1}’
⽅法3:ifconfig eth1|awk -F ‘[ :]+’ ‘NR==2 {print $4}’
⽅法4:ifconfig eth0|sed -n ‘2p’|sed ‘s#^.addr:##g’|sed ‘s# Bc.$##g’
10、如何将/etc/inittab中的权限取出来,以数字644这样的形式打印
⽅法1:stat /etc/inittab |sed -n ‘4p’|awk -F “[(/]” ‘{print $2}’
⽅法2:stat -c %a /etc/inittab
⽅法3:ll /etc/passwd |cut -c 1-9|tr rwx- 4210|awk -F “” ‘{print $1+$2+$3 $4+$5+$6 $7+$8+$9}’
11、在/tools⽬录下的⽂件⾥⾯都被植⼊了⼴告链接,如何将其去除
删除植⼊⼴告:nginx和网关怎么配合使用
sed -i ‘/<p class=”chromeframe”>You are using an outdated browser. Please <a href=”https:\/\/le\/chrome\/” rel=”external nofollow” target=”
12、打印出kaka⽂件中除掉空⾏的内容
⽅法1:grep -v “^$” kaka
⽅法2:sed ‘/^$/d’ kaka
13、打印3天前的⽇期,格式如:2016-05-06
⽅法1:date “+%F” -d “3 day ago”
⽅法2:date “+%F” -d “-3 day”
⾯试题⼆
1、如何查看当前的Linux服务器的运⾏级别?
who -r和 runlevel 命令可以⽤来查看当前的Linux服务器的运⾏级别。
2、如何查看Linux的默认⽹关?
⽤ route -n和 netstat -nr 命令,我们可以查看默认⽹关。除了默认的⽹关信息,这两个命令还可以显⽰当前的路由表。
3、如何在linux上重建初始化内存盘镜像⽂件?
在CentOS 5.X / RHEL 5.X中,可以⽤mkinitrd命令来创建初始化内存盘⽂件,举例如下:
# mkinitrd -f -v /boot/initrd-$(uname -r).img $(uname -r)
如果你想要给特定的内核版本创建初始化内存盘,你就⽤所需的内核名替换掉 uname -r。
在CentOS 6.X / RHEL 6.X中,则⽤dracut命令来创建初始化内存盘⽂件,举例如下:
# dracut -f
以上命令能给当前的系统版本创建初始化内存盘,给特定的内核版本重建初始化内存盘⽂件则使⽤以下命令:
# dracut --xx.el6.x86_64.-xx.el6.x86_64
4、cpio命令是什么?
cpio就是复制⼊和复制出的意思。cpio可以向⼀个归档⽂件(或单个⽂件)复制⽂件、列表,还可以从中提取⽂件。
5、patch命令是什么?如何使⽤?
顾名思义,patch命令就是⽤来将修改(或补丁)写进⽂本⽂件⾥。patch命令通常是接收diff的输出并把⽂件的旧版本转换为新版本。举个例⼦,Linux内核源代码由百万⾏代码⽂件构成,所以⽆论何时,任何代码贡献者贡献出代码,只需发送改动的部分⽽不是整个源代码,然后接收者⽤patch命令将改动写进原始的源代码⾥。
创建⼀个diff⽂件给patch使⽤,
# diff -Naur old_file new_file > diff_file
旧⽂件和新⽂件要么都是单个的⽂件要么都是包含⽂件的⽬录,-r参数⽀持⽬录树递归。
⼀旦diff⽂件创建好,我们就能在旧的⽂件上打上补丁,把它变成新⽂件:
# patch < diff_file
6、aspell有什么⽤ ?
顾名思义,aspell就是Linux操作系统上的⼀款交互式拼写检查器。aspell命令继任了更早的⼀个名为ispell的程序,并且作为⼀款免费替代品,最重要的是它⾮常好⽤。当aspell程序主要被其它⼀些需要拼写检查能⼒的程序所使⽤的时候,在命令⾏中作为⼀个独⽴运⾏的⼯具的它也能⼗分有效。
7、如何从命令⾏查看域SPF记录?
我们可以⽤dig命令来查看域SPF记录。举例如下:
linuxtechi@localhost:~$ dig -t TXT google
8、如何识别Linux系统中指定⽂件(/etc/fstab)的关联包?
# rpm -qf /etc/fstab
以上命令能列出提供/etc/fstab这个⽂件的包。
9、哪条命令⽤来查看bond0的状态?
cat /proc/net/bonding/bond0
10、linux系统中的/proc⽂件系统有什么⽤?
/proc⽂件系统是⼀个基于内存的⽂件系统,其维护着关于当前正在运⾏的内核状态信息,其中包括CPU、内存、分区划分、I/O地址、直接内存访问通道和正在运⾏的进程。这个⽂件系统所代表的并不是各种实际存储信息的⽂件,它们指向的是内存⾥的信息。/proc⽂件系统是由系统⾃动维护的。
11、如何在/usr⽬录下出⼤⼩超过10MB的⽂件?
# find /usr -size +10M
12、如何在/home⽬录下出120天之前被修改过的⽂件?
# find /home -mtime +120
13、如何在/var⽬录下出90天之内未被访问过的⽂件?
# find /var \! -atime -90
14、在整个⽬录树下查⽂件”core”,如发现则⽆需提⽰直接删除它们。
# find / -name core -exec rm {} \;
15、strings命令有什么作⽤?
strings命令⽤来提取和显⽰⾮⽂本⽂件中的⽂本字符串。(LCTT 译注:当⽤来分析你系统上莫名其妙出现的⼆进制程序时,可以从中到可疑的⽂件访问,对于追查⼊侵有⽤处)
16、tee 过滤器有什么作⽤ ?
tee 过滤器⽤来向多个⽬标发送输出内容。如果⽤于管道的话,它可以将输出复制⼀份到⼀个⽂件,并复制另外⼀份到屏幕上(或⼀些其它程序)。linuxtechi@localhost:~$ ll /etc | nl | tee /tmp/ll.out
在以上例⼦中,从ll输出可以捕获到 /tmp/ll.out ⽂件中,并且同样在屏幕上显⽰了出来。
17、export PS1 = “$LOGNAME@hostname:\$PWD:” 这条命令是在做什么?
这条export命令会更改登录提⽰符来显⽰⽤户名、本机名和当前⼯作⽬录。
18、ll | awk ‘{print 9}’ 这条命令是在做什么?
这条ll命令会显⽰这些⽂件的⽂件名和它们的拥有者。
19、linux中的at命令有什么⽤?
at命令⽤来安排⼀个程序在未来的做⼀次⼀次性执⾏。所有提交的任务都被放在 /var/spool/at ⽬录下并且到了执⾏时间的时候通过atd守护进程来执⾏。20、linux中lspci命令的作⽤是什么?
lspci命令⽤来显⽰你的系统上PCI总线和附加设备的信息。指定-v,-vv 或-vvv来获取越来越详细的输出,加上-r参数的话,命令的输出则会更具有易读性。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论