运维笔试题整理(转)

面试题一

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、打印配置文件nginx.conf内容的行号及内容,该如何做?

方法1:cat -n nginx.conf
方法2:less -N nginx.conf
方法3:grep -n . nginx.conf #此处的.(点)号,表示任意单个字符,-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 2}’|awk ‘{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目录下的文件里面都被植入了广告链接,如何将其去除

删除植入广告:

sed -i ‘/<p class=”chromeframe”>You are using an outdated browser. Please <a href=”https:\/\/www.google.com\/chrome\/” rel=”external nofollow” target=”_blank”>upgrade your browser<\/a> and try again.<\/p>\//d’ kaka

12、打印出kaka文件中除掉空行的内容

方法1:grep -v “^$” kaka
方法2:sed  ‘/^$/d’ kaka

13、打印3天前的日期,格式如:2016-05-06

方法1date “+%F” -d “3 day ago”
方法2date “+%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 -f initramfs-2.x.xx-xx.el6.x86_64.img 2.x.xx-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.com

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 3 , " o w n s " , 9}’ 这条命令是在做什么?

这条ll命令会显示这些文件的文件名和它们的拥有者。

19、linux中的at命令有什么用?

at命令用来安排一个程序在未来的做一次一次性执行。所有提交的任务都被放在 /var/spool/at 目录下并且到了执行时间的时候通过atd守护进程来执行。

20、linux中lspci命令的作用是什么?

lspci命令用来显示你的系统上PCI总线和附加设备的信息。指定-v,-vv 或-vvv来获取越来越详细的输出,加上-r参数的话,命令的输出则会更具有易读性。

猜你喜欢

转载自blog.csdn.net/qq_36747237/article/details/81036591