运维必须掌握的Linux面试题

运维必须掌握的Linux面试题,第1张

1、解释下什么是GPL,GNU,自由软件?

GPL:(通用公共许可证):一种授权,任何人有权取得、修改、重新发布自由软件的权力。

GNU:(革奴计划):目标是创建一套完全自由、开放的的操作系统。

自由软件:是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。主要许可证有GPL和BSD许可证两种。

2、linux系统里,buffer和cache如何区分?

buffer和cache都是内存中的一块区域,

当CPU需要写数据到磁盘时,由于磁盘速度比较慢,所以CPU先把数据存进buffer,

然后CPU去执行其他任务,buffer中的数据会定期写入磁盘;

当CPU需要从磁盘读入数据时,由于磁盘速度比较慢,

可以把即将用到的数据提前存入cache,CPU直接从Cache中拿数据要快的多。

3、描述Linux运行级别0-6的各自含义

0:关机模式

1:单用户模式<==破解root密码

2:无网络支持的多用户模式

3:有网络支持的多用户模式(文本模式,工作中最常用的模式)

4:保留,未使用

5:有网络支持的X-windows支持多用户模式(桌面)

6: 重新引导系统,即重启

4、描述Linux系统从开机到登陆界面的启动过程

⑴开机BIOS自检,加载硬盘。

⑵读取MBR,MBR引导。

⑶grub引导菜单(Boot Loader)。

⑷加载内核kernel。

⑸启动init进程,依据inittab文件设定运行级别

⑹init进程,执行rc.sysinit文件。

⑺启动内核模块,执行不同级别的脚本程序。

⑻执行/etc/rc.d/rc.local

⑼启动mingetty,进入系统登陆界面。

5、描述Linux下软链接和硬链接的区别

在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。

①默认不带参数的情况下,ln创建的是硬链接,带-s参数的ln命令创建的是软链接。

②硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同,

③ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。

④删除软链接文件,对源文件和硬链接文件无任何影响。

⑤删除文件的硬链接文件,对源文件及软链接文件无任何影响。

⑥删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。

⑦同时删除源文件及其硬链接文件,整个文件才会被真正的删除。

⑧很多硬件设备的快照功能,使用的就是类似硬链接的原理。

⑨软链接可以跨文件系统,硬链接不可以跨文件系统。

6、shell脚本中“$?”标记的用途是什么?

在写一个shell脚本时,如果你想要检查前一命令是否执行成功,在if条件中使用“ ?

0

如果结束状态是0,说明前一个命令执行成功。

root@localhost:~# ls /usr/bin/share

ls: cannot access /usr/bin/share: No such file or directory

root@localhost:~# echo $?

2

如果结束状态不是0,说明命令执行失败。

7、如何让history命令显示具体时间?

$ HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S"

$ export HISTTIMEFORMAT

重新开机后会还原,可以写/etc/profile

8、用shell统计ip访问情况,要求分析nginx访问日志,找出访问页面数量在前10位的IP数。以下是nginx的访问日志节选

202.101.129.218- - [26/Mar/2006:23:59:55 +0800] "GET /online/stat_inst.php?pid=d065HTTP/1.1" 302 20-"-" "-" "Mozilla/4.0(compatibleMSIE 6.0Windows NT 5.1)"

1}' access.log |sort|uniq -c |head -n 10

31 202.101.129.218

21 123.93.29.11

11 13.92.19.31

9、将本地的80端口的请求转发到8080端口,本机地址10.0.0.254,写出命令

$ iptables -t nat -A PREROUTING -d 10.0.0.254 -p tcp --dprot 80 -j DNAT --to-destination 10.0.0.254:8080

10、Load过高的可能性有哪些?

排查思路:

其他经验:

cpu load的飙升,一方面可能和full gc的次数增大有关,一方面可能和死循环有关

11、描述/etc/fstab 文件中每个字段的含义?

(1)第一列:将被加载的文件系统名;

(2)第二列:该文件系统的安装点;

(3)第三列:文件系统的类型;

(4)第四列:设置参数;

(5)第五列:供备份程序确定上次备份距现在的天数;

(6)第六列:在系统引导时检测文件系统的顺序。

12、 如何在打包时排除指定目录?

$ tar --exclude=/home/dmtsai --exclude= .tar -zcvf myfile.tar.gz /home/ /etc

mysql>update user set password=password('123123') where user='root'

0 1 * * * /bin/sh /usr/bin/fileback

7.有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?

参考答案:(1)第一种方法:

用户应使用crontab –e 命令创建crontab文件。格式如下:

0 0 * * sun cp –r /user/backup /tmp

(2)第二种方法:

用户先在自己目录下新建文件file,文件内容如下:

0 * * sun cp –r /user/backup /tmp

然后执行 crontab file 使生效。

8.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读文件所有者的权限

为:读、写、执行文件所有者所在组的权限为:读、执行。

参考答案: 建立程序 Pro16如下:

#!/bin/sh

i=1

while [ i -le 50 ]

do

if [ -d /userdata ]then

mkdir -p /userdata/user$i

chmod 754 /userdata/user$i

echo "user$i"

let "i = i + 1" (或i=$(($i+1))

else

mkdir /userdata

mkdir -p /userdata/user$i

chmod 754 /userdata/user$i

echo "user$i"

let "i = i + 1" (或i=$(($i+1))

fi

done

五、多选题

1.关于硬链接的描述正确的(BE)。

A 跨文件系统 B不可以跨文件系统 D可以做目录的连接

C 为链接文件创建新的i节点 E链接文件的i节点同被链接文件的i节点

2.在网站发布用户wang的个人网页时,需要创建用户网页目录,假定用户网页目录设定为web

(用户目录在/home目录下),如下描述正确的是(BCE)

A 存放用户网页的绝对路径/wang/web B存放用户网页的目录~wang/

C 存放用户网页的绝对路径/home/wang/web D存放用户网页的绝对路径/home/web

E 在本机访问用户wang的个人网页的URL地址http://localhost/~wang/

3.在一台WWW服务器上将端口号设定为8000,默认的网页文件index.html,服务器网页的根目录/www。在本机访问服务器时,正确的用法是(BDE)

A 浏览器访问该服务器的URL地址http://localhost/

B 浏览器访问该服务器的URL地址http://localhost:8000/

C 浏览器访问该服务器的用户li网页URL地址http://localhost/~li

D 浏览器访问该服务器的用户li网页URL地址http://localhost:8000/~li

E 浏览器访问该服务器的URL地址localhost:8000/

4.在shell编程中关于$2的描述正确的是(CE)

A 程序后携带了两个位置参数 B 宏替换 C 程序后面携带的第二个位置参数

D 携带位置参数的个数 E 用$2引用第二个位置参数

5.某文件的权限是 - r w x r - - r- -,下面描述正确的是(CD)

A 文件的权限值是755 B 文件的所有者对文件只有读权 限

C 文件的权限值是 744 D 其他用户对文件只有读权限 E同组用户对文件只有写权限

6.关于OpenSSH的作用的描述正确的是(ACE)

A 开放源代码的安全加密程序 B OpenSSH常用于为http协议加密

C OpenSSH用于提高远程登录访问的安全性 D 它和telnet实用同样的端口号

E OpenSSH是免费下载的应程序

7.关于NFS服务器描述正确的是(BC)

A 网络中实现Windows系统之间文件系统共享的应用软件

B 网络中实现Linux系统之间文件系统共享的应用软件

C 网络中实现Unix系统之间文件系统共享的应用软件

D 网络中实现Windows系统和Unix之间文件系统共享的应用软件

E 网络中实现Windows系统和Linux之间文件系统共享的应用软件

8.关于sed描述正确的是(ABD)

A sed 是Linux系统中的流编辑器 B sed 是UNIX系统中的流编辑器

C sed 网络文件系统的类型

D 利用管道对标准输入/标准输入的数据进行编辑和组合

E sed是NFS的应用程序

9.关于限制磁盘限额,描述正确的是(ABD)

A 使用edquota可以监控系统所有用户使用的磁盘空间,并在接近极限时提示用户

B 用户组的磁盘限额是用户组内所有用户予设磁盘空间总和

C 单个用户的磁盘限额就是该用户所在用户组内所有磁盘限额的总合

D 在Linux系统下限制用户使用的磁盘空间可以使用edquota

E 用户组的磁盘限额就是该用户组内拥有最大磁盘限额值的用户的磁盘限额

10.关于建立系统用户的正确描述是(ABD)

A 在Linux系统下建立用户使用adduser命令

B 每个系统用户分别在/etc/passwd和/etc/shadow文件中有一条记录

C 访问每个用户的工作目录使用命令“cd /用户名”

D 每个系统用户在默认状态下的工作目录在/home/用户名

E 每个系统用户在/etc/fstab文件中有一条记录

1.TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用

2.TCP和UDP的区别

TCP是有连接的,两台主机在进行数据交互之前必须先通过三次握手建立连接;而UDP是无连接的,没有建立连接这个过程

TCP是可靠的传输,TCP协议通过确认和重传机制来保证数据传输的可靠性;而UDP是不可靠的传输

TCP还提供了拥塞控制、滑动窗口等机制来保证传输的质量,而UDP都没有

TCP是基于字节流的,将数据看做无结构的字节流进行传输,当应用程序交给TCP的数据长度太长,超过MSS时,TCP就会对数据进行分段,因此TCP的数据是无边界的;而UDP是面向报文的,无论应用程序交给UDP层多长的报文,UDP都不会对数据报进行任何拆分等处理,因此UDP保留了应用层数据的边界

3.三次握手过程中有哪些不安全性

1)伪装的IP向服务器发送一个SYN请求建立连接,然后服务器向该IP回复SYN和ACK,但是找不到该IP对应的主机,当超时时服务器收不到ACK会重复发送。当大量的攻击者请求建立连接时,服务器就会存在大量未完成三次握手的连接,服务器主机backlog被耗尽而不能响应其它连接。即SYN泛洪攻击

防范措施:

1、降低SYN timeout时间,使得主机尽快释放半连接的占用

2、采用SYN cookie设置,如果短时间内连续收到某个IP的重复SYN请求,则认为受到了该IP的攻击,丢弃来自该IP的后续请求报文

3、在网关处设置过滤,拒绝将一个源IP地址不属于其来源子网的包进行更远的路由

2)当一个主机向服务器发送SYN请求连接,服务器回复ACK和SYN后,攻击者截获ACK和SYN。然后伪装成原始主机继续与服务器进行通信。

4.accept发生在三次握手的哪一步

        accept会监听已完成队列是否非空,当队列为空时,accept就会阻塞。当队列非空时,就从已完成队列中取出一项并返回。 

而已完成队列中的都是三次握手过程已经完成的,因此accept发生在三次握手之后。 

5.TCP在listen时的参数backlog的意义

linux内核中会维护两个队列:

1)未完成队列:接收到一个SYN建立连接请求,处于SYN_RCVD状态

2)已完成队列:已完成TCP三次握手过程,处于ESTABLISHED状态

当有一个SYN到来请求建立连接时,就在未完成队列中新建一项。当三次握手过程完成后,就将套接口从未完成队列移动到已完成队列。

backlog曾被定义为两个队列的总和的最大值,也曾将backlog的1.5倍作为未完成队列的最大长度

一般将backlog指定为5

6.TCP选项有哪些

TCP首部选项字段多达40B,一些常用的字段有:

1)选项结束字段(EOP,0x00),占1B,一个报文段仅用一次。放在末尾用于填充,用途是说明:首部已经没有更多的消息,应用数据在下一个32位字开始处

2)无操作字段(NOP, 0x01),占1B,也用于填充,放在选项的开头

3)MSS(最大报文段长度),格式如下:种类(1B,值为2),长度(1B,值为4),数值(2B)

用于在连接开始时确定MSS的大小,如果没有确定,就用默认的(一般实现是536B)

4)窗口扩大因子,格式如下:种类(1B,值为3),长度(1B,值为3),数值(1B)

新窗口值 = 首部窗口值 * 2的(扩大因子)次方

当通信双方认为首部的窗口值还不够大的时候,在连接开始时用这个来定义更大的窗口。仅在连接开始时有效。一经定义,通信过程中无法更改。

5)时间戳(应用测试RTT和防止序号绕回)

6)允许SACK和SACK选项

7.为什么建立连接需要三次握手,而断开连接需要四次握手

因为每个方向都需要一个FIN和ACK,当一端发送了FIN包之后,处于半关闭状态,此时仍然可以接收数据包。

在建立连接时,服务器可以把SYN和ACK放在一个包中发送。

但是在断开连接时,如果一端收到FIN包,但此时仍有数据未发送完,此时就需要先向对端回复FIN包的ACK。等到将剩下的数据都发送完之后,再向对端发送FIN,断开这个方向的连接。

因此很多时候FIN和ACK需要在两个数据包中发送,因此需要四次握手

8.超时重传和快速重传    

超时重传:当超时时间到达时,发送方还未收到对端的ACK确认,就重传该数据包

快速重传:当后面的序号先到达,如接收方接收到了1、 3、 4,而2没有收到,就会立即向发送方重复发送三次ACK=2的确认请求重传。如果发送方连续收到3个相同序号的ACK,就重传该数据包。而不用等待超时


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/179483.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存