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 eth1R2:
eth0::192.168.10.201/24
eth1:172.18.0.200/24route 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基础面试题一的主要内容,如果未能解决你的问题,请参考以下文章