linux基础面试题一

Posted y_zilong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础面试题一相关的知识,希望对你有一定的参考价值。

1、统计当前主机的TCP协议网络各种连接状态出现的次数

[root@cent8_yzil ~]# netstat -nat|awk '{print $6}' |sort|uniq -c

2、请使用文本处理命令打印出 /etc/init.d/functions 的所有函数名称 

[root@cent8_yzil ~]# cat /etc/init.d/functions | sed -nr 's/\\{$//p'

 3、抓取从源地址为10.0.0.111主机访问目标主机10.0.0.222的80/tcp端口的流量?

tcpdump -i eth0 -nn src host 10.0.0.111 and dst host 10.0.0.222 and tcp port 80

4、主机202.192.33.160/28的子网掩码是什么,所在网段最多有多个主机?

子网掩码:255.255.255.240 所在网段最多有32-28=4,2^4-2=14 

5、创建网桥br0,配置IP为10.0.0.123/24,并将eth0,eth1加入网桥,持久保存上面配置

[root@cent8_yzil ~]# nmcli c add type bridge con-name br0 ifname br0
[root@cent8_yzil ~]# nmcli c modify br0 ipv4.addresses 10.0.0.123/24 ipv4.method manual 
[root@cent8_yzil ~]# nmcli c up br0
[root@cent8_yzil ~]# nmcli c add type bridge-slave con-name br0-eth0 ifname eth0 master br
[root@cent8_yzil ~]# nmcli c add type bridge-slave con-name br0-eth1 ifname eth0 master br0 
[root@cent8_yzil ~]# nmcli c up br0-eth0
[root@cent8_yzil ~]# nmcli c up br0-eth1

6、编译源码包过程介绍。采用源码包编译的方式安装软件包时,有哪些基本过程、各自的作用是什么?

1、下载软件包
2、解压到目录
3、进入解压目录
4、./configure 编译前准备
作用:(1)安装之前检测系统环境是否符合安装要求;
     (2)对当前系统环境指定安装目录、定义需要的功能选项./configure --help查看支持的功能,例如./configure --prefix=安装路径
5、make编译
作用:调用gcc编译器,读取Makefile文件中的信息进行系统软件编译,将源代码编译成二进制的可执行程序、库文件等数据
6、make install
作用:将编译好的程序文件、配置文档等复制到对应的安装目录

7、为什么说 TCP 协议比 UDP 协议通讯更可靠,并简述 TCP 三次握手和四次挥手的网络连接和断开过程

TCP的可靠保证,是它的三次握手双向机制,这一机制保证校验了数据,保证了他的可靠性。而UDP就没有了,udp信息发出后,不验证是否到达对方,所以不可靠。不过UDP的速度是TCP比不了的,而且UDP的反应速度更快

三次握手:
第一次握手
客户端A向服务器B发送连接请求报文段。该报文段的头部中SYN=1,ACK=0,seq=x。请求发送后,客户端A便进入SYN-SENT状态。
1:SYN=1,ACK=0表示该报文段为连接请求报文。
2:x为本次TCP通信的字节流的初始序号。
TCP规定:SYN=1的报文段不能有数据部分,但要消耗掉一个序号。
第二次握手
服务器B收到连接请求报文段后,如果同意连接,则会发送一个应答:SYN=1,ACK=1,seq=y,ack=x+1。该应答发送完成后便进入SYN-RCVD状态。
1:SYN=1,ACK=1表示该报文段为连接同意的应答报文。
2:seq=y表示服务器B作为发送者时,发送字节流的初始序号。
3:ack=x+1表示服务器B希望下一个数据报发送序号从x+1开始的字节。
第三次握手
当客户端A收到连接同意的应答后,还要向服务器B发送一个确认报文段,表示:服务器B发来的连接同意应答已经成功收到。
该报文段的头部为:ACK=1,seq=x+1,ack=y+1。
客户端A发完这个报文段后便进入ESTABLISHED状态,服务器B收到这个应答后也进入ESTABLISHED状态,此时连接的建立完成!

四次挥手:
第一次挥手
若客户端A认为数据发送完成,则它需要向服务端B发送连接释放请求。该请求只有报文头,头中携带的主要参数为:
FIN=1,seq=u。此时,客户端A将进入FIN-WAIT-1状态。
1:FIN=1表示该报文段是一个连接释放请求。
2:seq=u,u-1是A向B发送的最后一个字节的序号。
第二次挥手
服务器B收到连接释放请求后,会通知相应的应用程序,告诉它客户端A向服务器B这个方向的连接已经释放。此时服务器B进入CLOSE-WAIT状态,并向客户端A发送连接释放的应答,其报文头包含:
ACK=1,seq=v,ack=u+1。
1:ACK=1:除TCP连接请求报文段以外,TCP通信过程中所有数据报的ACK都为1,表示应答。
2:seq=v,v-1是B向A发送的最后一个字节的序号。
3:ack=u+1表示希望收到从第u+1个字节开始的报文段,并且已经成功接收了前u个字节。 客户端A收到该应答,进入FIN-WAIT-2状态,等待服务器B发送连接释放请求。第二次挥手完成后,客户端A到服务器B方向的连接已经释放,服务器B不会再接收数据,客户端A也不会再发送数据。但服务器B到客户端A方向的连接仍然存在,服务器B可以继续向客户端A发送数据。
第三次挥手
当服务器B向客户端A发完所有数据后,向客户端A发送连接释放请求,请求头:FIN=1,ACK=1,seq=w,ack=u+1。服务器B便进入LAST-ACK状态。
第四次挥手
客户端A收到释放请求后,向服务器B发送确认应答,请求头:ACK=1,seq=u+1,ack=w+1。此时客户端A进入TIME-WAIT状态。该状态会持续2MSL时间,若该时间段内没有服务器B的重发请求的话,就进入CLOSED状态,撤销TCB。当服务器B收到确认应答后,也便进入CLOSED状态,撤销TCB。

8、请简述将一块 100G 新硬盘插入服务器, 创建EXT4的逻辑卷1G,并配置挂载到 /data/log/,使用一段时间空间不足,扩容到2G

1、yum install -y lvm2    #安装lvm2工具
2、pvcreate /dev/sdb   
   pvs    #物理卷100G
3、vgcreate vg1 /dev/sdb   
   vgs
4、lvcreate lv1 -L 1G vg1 #创建1G的逻辑卷   
   lvs
5、mkfs.ext4 /dev/vg1/lv1 #格式化成ext4文件系统
6、vi /etc/fstab          #挂载文件系统   
   /dev/vg1/lv1  /mnt   ext4 defaults   0  0   
   mount -a
7、umount /dev/vg1/lv1     #卸载挂载点
8、#要是卷组不够,先扩容卷组在扩容lv  
   vgdisplay     #查看lv1的卷组名
9、lvextent -L +1G /dev/vg1/lv1  
   resize2fs /dev/vg1/lv1   #文件系统的扩展
10、mount -a    #挂载

9、如何配置linux系统的环境变量,如何配置Linux系统的指定用户的环境变量

系统环境变量:/etc/profile /etc/profile.d /etc/bash.bashrc
用户环境变量:~/profile ~/.bashrc  ~/.bash_profile
echo $PATH
/app/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
例如配置mysql的环境变量
vi /etc/profile.d/mysql.sh
export PATH=/app/mysql/bin:$PATH
source /etc/profile.d/mysql.sh  #立即生效

10、检测网络状态一般用哪些指令,请例举。并说明具体用途?(俩种以上)

ping:通过ping命令的返回信息,可以判断是否连接远程主机,并可以看到连接远程主机的延迟时间;
netstat:可以显示当前正在活动的网络连接的详细信息,例如显示网络连接、路由表和网络接口信息,可以统计目前总共有哪些网络连接正在运行;

11、写出创建系统用户 apache 的命令,要求其用户 id 和组 id 为 799

[root@cent8_yzil ~]# groupadd apache -g 799
[root@cent8_yzil ~]# useradd -r apache -u 799 -g 799
[root@cent8_yzil ~]# id apache
uid=799(apache) gid=799(apache) groups=799(apache)
[root@cent8_yzil ~]# 

12、请简述一下硬链接和软连接的区别和各自的特点

1.本质:
    硬链接:本质是同一个文件
    软连接:本质不是同一个文件
2.跨设备
    硬链接:不支持
    软连接:支持
3.inode
    硬链接:相同
    软链接:不同
4.连接数
    硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
    软链接:创建或删除,链接数不会变化
5.文件夹
    硬链接:不支持
    软链接:支持
6.相对路径
    硬链接:原始文件相对路径是相对于当前工作目录
    软链接:原始文件的相对路径是相对于链接文件的相对路径
7.删除源文件
    硬链接:只是链接数减一,但链接文件的访问不受影响
    软链接:链接文件将无法访问
8.文件类型
    硬链接:和源文件相同
    软链接:链接文件,和源文件无关
9.文件大小
    硬链接:和源文件相同
    软链接:源文件的路径的长度  

13、请简述一下 IP 地址分类和各自的私网或特殊地址范围

 ipv4地址分为五类:
A类:
   0.0.0.0-127.255.255.255
   0.0.0.0和127.0.0.0是本地回环地址
   私网地址:10.0.0.0—10.255.255.255;
B类:
   128.0.0.0-191.255.255.255
   私网地址:172.16.0.0---172.31.255.555;
C类:
   192.0.0.0-223.255.255.255
   私网地址:192.168.0.0---192.168.255.255;
D类:多为广播地址,不分网络地址和主机地址
   224.0.0.0-239.255.255.255
E类:为将来使用保存,不分网络地址和主机地址
   240.0.0.0-255.255.255.255 其中段255不可用

14、请分别简述几种常见的 raid 模式,并简述一下他们各自的特点

RAID 0:可以是一块盘和N个盘组合

其优点读写快,是RAID中最好的

缺点:没有冗余,一块坏了数据就全没有了

RAID 1:只能2块盘,盘的大小可以不一样,以小的为准

10G+10G只有10G,另一个做备份。它有100%的冗余,缺点:浪费资源,成本高

RAID 5:3块盘,容量计算10*(n-1),损失一块盘

特点,读写性能一般,读还好一点,写不好
RAID10:即高可靠性与高效磁盘结构它是一个带区结构加一个镜象结构,可以达到既高效又高速的目的。这种新结构的价格高,可扩充性不好。

冗余从好到坏:RAID1 RAID10 RAID 5 RAID0

性能从好到坏:RAID0 RAID10 RAID5 RAID1

成本从低到高:RAID0 RAID5 RAID1 RAID10

15、如何实现主机之间跨路由跨网段通讯。实验:主机A <<----- router1-----router2------>>主机B

A-net8--R1- net1--R2--net0-B

A: 10.0.0.123/24  Gw  10.0.0.200

R1:
eth0:10.0.0.200/24 net8
eth1:192.168.10.200/24 net1
route add -net  172.18.0.0/24 gw 192.168.10.201  dev  eth1

R2:
eth0::192.168.10.201/24
eth1:172.18.0.200/24

route add -net 10.0.0.0/24 gw  192.168.10.200 dev eth0
 
B:
eth0:172.18.0.123/24 Gw  172.18.0.200

16、 简述OSI协议和TCP/IP协议的对应分层功能及相关协议

 17.某公司因条件有限只有一个公有地址,需要全公司电脑通过该地址访问外网,并且需要搭建自己的内网服务器

要求:

  • 配置SNAT和DNAT规则

  • 俩台LanServer 都能访问外网

  • 外网通过防火墙可以访问Lanserver1的http

 lanServer1:yum install -y httpd
            systemctl enable --now httpd
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -p
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERAD
iptables -t nat -A PREROUTING -D 192.168.0.8 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.7:80

以上是关于linux基础面试题一的主要内容,如果未能解决你的问题,请参考以下文章

11个常见的Linux基础面试问题

Linux面试基础

IT运维面试问题总结-Linux基础

9道基础Linux运维面试题

11个Linux基础面试问题

面试 linux基础知识点总结