LINUX面试题案.docx
《LINUX面试题案.docx》由会员分享,可在线阅读,更多相关《LINUX面试题案.docx(16页珍藏版)》请在冰豆网上搜索。
![LINUX面试题案.docx](https://file1.bdocx.com/fileroot1/2023-4/16/26956980-c596-4d24-ba7f-a961221e96d8/26956980-c596-4d24-ba7f-a961221e96d81.gif)
LINUX面试题案
LL_题案
题案分类
●Windwos题案
●Cisco题案
●Linux题案
●综合题案
●必会技术
1.Windows题案
§1.端口
(1)MS-SQL、MySQL、HTTP、HTTPS、Telnet、DNS、SSH、RDP、SMTP、POP3、IMAP4、Samba、FTP、Squid服务端口号
1MS-SQL
TCP1433UDP1434
2MySQL:
3306
3HTTP:
80HTTPS:
TCP443
4Telnet:
23
5DNS:
53
6SSH:
22
7RDP:
3389
8SNMP:
161
9SMTP(25)、POP3(110)、IMAP4(143)、SAMBA(139)、FTP(20数据端口、21控制端口)
10Squid3128
§2.TCP/IP协议
(1)OSI7层模型
1OSI7层功能
◆物理层(PhysicalLayer):
以二进制数据形式在物理媒体上传输数据(比特流)。
◆数据链路层(DatalinkLayer):
传输有地址的帧以及错误检测功能。
◆网络层(NetworkLayer):
传送数据包,为数据包选择路由。
◆传输层(TransportLayer):
传送完整数据报文,进行差错检测,提供端对端的接口。
◆会话层(SessionLayer):
建立、终止、管理会话连接,即解除或建立与别的接点的联系。
◆表示层(PresentationLayer):
数据格式转换,即数据格式化,代码转换,数据加密。
◆应用层(ApplicationLayer):
是各种应用接入到网络,如文件传输,电子邮件,文件服务,虚拟终端。
2OSI7层数据格式
数据流(物理层):
由数据链路层数据帧转换而来。
数据帧(数据链路层):
帧头+IP数据包+帧尾(帧头包括源和目标主机MAC地址及类型,帧尾是校验字)。
IP数据包(网络层):
IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等)。
TCP数据报(传输层):
TCP头部+实际数据(TCP头包括源和目标主机端口号、顺序号、确认号、校验字等。
数据(应用层):
应用程序键传递的真实数据。
由此可以理解想象网络中数据传输过程:
应用层(真实数据)|真实数据|
传输层(TCP数据报)|TCP头|真实数据|
网络层(IP数据包)|IP头|TCP数据报|
数据链路层(数据帧)|帧头|IP数据包|帧尾|
物理层(比特流)|数据帧转换而来|
(2)TCP/IP四层模型
◆TCP/IP四层模型协议
网络接口层(又称链路层)
网络层:
传输层:
应用层:
(3)OSI7层模型和TCP/IP四层模型协议:
应用层:
HTTP、HTTPS、FTP、SMTP、……
表示层:
无
会话层:
无
传输层:
TCP、UDP
网络层:
IP、ARP、RARP、ICMP、IGMP
数据链路层:
ARPRARPSLIPCSLIPPPPMTU
物理层:
ISO2110,IEEE802,IEEE802.2
(4)TCP建立连接三次握手&&TCP结束连接四次握手
TCP三次握手建立连接:
SYN、ACK分别为10,11,01
TCP四次握手断开连接:
FIN、ACK分别为11,01;11,01
(5)网络地址172.16.22.38/27请写出此地址的子网ID以及广播地址,此地址所处子网有多少台主机及可用主机数?
11111111
1286432168421
子网ID:
172.16.22.32/27
广播地址:
172.16.22.63
主机数:
32
可用主机数:
30
(6)Windows常用网络测试工具
1地方ipconfig
ipconfigipconfig/all
ipconfig/releaseipconfig/renew
ipconfig/flushdns
2ping
-t持续发送-n自定义发送数据包个数
-l自定义发送数据包大小-r自定义途经路由器个数
3nbtstat
-n查看本机在网络上注册的NetBIOS名,互联网中唯一
-aIP查看目标IP的NetBIOS名,互联网中唯一
hostname查看本地计算机名
4whomi
whomi/user显示用户相关信息
whomi/groups显示用户组的相关信息
(7)Windows常用命令
1三将文件系统转为ntfs
convert盘符:
/fs:
ntfs
2将远程共享文件夹映射为一本地磁盘分区
netuse盘符:
\\服务器名或IP\共享名
netshare查看本机所有共享文件夹
netsharec$/del删除隐藏的共享文件夹
3
(8)在TCP/IP中,网络层和传输层之间的区别是最为关键的:
________层提供点到点的服务,而________层提供端到端的服务。
(TCP/IP详解卷1小结原话)
网络层提供点到点
传输层提供端到端
2.Cisco题案
§1.IP地址规划
1286432168421
(1)有类地址&&无类地址
有类地址:
像ABCDE
有类地址=NetID+HostID
A1.0.0.1-126.255.255.254
B127.0.0.1-191.255.255.254
C192.0.0.1-223.255.255.254
D224.0.0.1-239.255.255.254组播
E240.0.0.1-254.255.255.254科学实验
无类地址:
根据需要,将标准地址再划分
无类地址=NetID+SubNetID+HostID
(2)有类地址相关
1IP地址=网络部分(netID)+主机部分(hostID)
2网络部分全0表示本网络,全1保留用于诊断,故有效网络范围=理论网络范围-2
3主机部分全0表示网络地址,全1表示广播地址,故可分配主机数=理论数-2
40.0.0.0表示本机,255.255.255.255表示广播地址
5ABCDE的引导位(即分类标志,不可变)分别是0、10、110、1110、11110
6私有地址
A10.0.0.0-10.255.255.255
B172.16.0.0-172.31.255.255
C192.168.0.0-192.168.255.255
(3)子网划分方法
◆公式法:
子网数=
,n为子网位数
子网主机数=
N为主机位数
◆画饼法:
0-255,共256个数
1当前网段加1到下一网段减2为当前子网有效IP地址段,下一网段减1是当前子网广播地址;
2划分子网时,无论题干要求划分几个子网,始终按照子网主机数从多到少依次画饼划分;
§2.虚拟局域网(VLAN)
(1)VLAN
作用:
分离广播;增加带宽;增加安全性;减少延迟
(2)VLANTrunk
作用:
承载多个VLAN
(3)以太网通道
作用:
解决同一VLAN的不同交换机下主机通信流量增大导致网络性能下降的问题
§3.VTP、STP、RSTP、MST、HSRP
(1)VTP(VLANTrunkingProtocol虚拟局域网中继协议)
作用:
交换机之间能够互相传递VLAN信息,实现了VLAN的统一配置和统一管理
(2)STP(SpanningTreeProtocol,生成树协议)
作用:
防止广播风暴的产生,有备份线路的作用
(3)RSTP(RapidSpanningTreeProtocol,快速生成树协议)
作用:
STP、RSTP都是为每个VLAN创建一个STP实例,RSTP收敛速度更快
(4)MST(MultipleSpanningTreeProtocol,多生成树协议)
作用:
MST将一个或多个VLAN放入一个STP实例中
(5)HSRP(HotStandbyRouterProtocol热备份路由协议)
§4.ACL、NAT
§5.RIP、OSPF
§6.VPN
3.Linux题案
§1.IPTables
(1)IPTables的4表5链
◆4表:
filter:
包过滤IFO
nat:
地址转换PPO
mangle:
修改数据包标记PIFOP
raw:
状态跟踪PO
◆5链:
INPUT链:
收到访问防火墙本机地址的数据包(入站)时
OUTPUT链:
防火墙本机向外发送数据包(出站)时
FORWARD链:
通过防火墙发送给其他地址的数据包(转发)时
PREROUTING链:
对数据包作路由选择之前
POSTROUTING链:
对数据包作路由选择之后
(2)IPTables语句书写规则
链名大写,表名小写,动作大写,动作匹配小写
(3)SNAT、DNAT
◆SNAT
作用:
实现企业共享上网
实现步骤:
1开启网关服务器路由转发功能
vi/etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl-p
2为局域网访问Internet的数据包采用SNAT策略,将源地址改为服务器的公网IP
公司通过公网固定IP上网:
iptables–tnat–APOSTROUTING–s192.168.1.0/24–oeth0–jSANT–to-source219.27.28.29
公司通过ADSL上网:
Iptables–tnat–APOSTROUTING–s192.168.1.0/24–oeth0–jMASQUERADE
◆DNAT
作用:
在Internet中发布内网应用服务器
实现步骤:
1开启网关服务器的路由转发功能
vi/etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl-p
2在网关上添加DNAT映射,对于访问网关80端口的数据包,将目标地址更改为网站服务器的内网IP地址
Iptables–tnat-APREROUTING–ieth0–d219.27.28.29–ptcp–dport80–jDNAT–to-destination192.168.1.7
3
(4)Squid代理
◆标准的传统代理:
企业局域网用户通过浏览器中指定代理服务器地址和端口号,访问Web站点和FTP站点;
◆透明代理:
不用指定代理服务器地址和端口号,其功能与传统代理相同,只是甚至用户都不知道自己是通过代理服务器上网的;
实现步骤:
1配置Squid支持透明代理
vi/etc/squid/squid.conf
http_port192.168.1.1:
3128transparent
2设置iptables的重定向策略
Iptables–tnat–IPREROUTING–ieth1–s192.168.1.0/24–ptcp–dport80-jREDIRECT–to-ports3128
◆反向代理:
与标准传统代理、透明代理功能一样,额提供缓存加速,只是访问方向不同,是用于外网用户访问企业局域网的Web站点;
§2.Apache、Nginx
◆Apache
(1)apache两种工作模式prefork、worker的区别
prefork:
使用多个子进程,每个子进程只有一个线程。
每个进程在某个确定的时间只能维持一个连接,效率高,但内存占用量比较大。
worker:
使用多个子进程,每个子进程有多个线程,每个线程在某个确定的时间只能维持一个连接,内存占用量比较小,适合高流量的http服务器。
(缺点是假如一个线程崩溃,整个进程就会连同其任何线程一起”死掉”,所以要保证一个程式在运行时必须被系统识别为”每个线程都是安全的”。
)
(2)ab压力测试
ab[-q]–c并发请求数–n总的请求数[http:
//]域名[:
端口]/路径
◆Nginx
§3.MySQL
(1)ISAM、MyISAM、InnoDB
1ISAM
ISAM(IndexedSequentialAccessMethod,索引顺序访问方法),是一种索引机制,用于高效访问文件中的数据行。
它是IBM公司发展起来的一个文件操作系统,可连续地(按照他们进入的顺序)或者任意地(根据索引)记录任何访问。
每个索引定义了一次按数据的不同属性排列的记录。
2MyISAM
MyISAM是默认存储引擎。
它基于更老的ISAM代码,但有很多有用的扩展。
每个MyISAM在磁盘上存储成三个文件。
第一个文件的名字以表的名字开始,扩展名指出文件类型。
.frm文件存储表定义。
数据文件的扩展名为.MYD(MYData)。
索引文件的扩展名是.MYI(MYIndex)。
3InnoDB
事务型数据库的首选引擎,支持ACID事务,支持行级锁定。
InnoDB是为处理巨大数据量时的最大性能设计。
InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。
InnoDB存储它的数据表和索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。
这与MyISAM表不同,比如在MyISAM表中每个表被存在分离的文件中。
InnoDB表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。
在技术上,InnoDB是一套放在MySQL 后台的完整数据库系统,InnoDB在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。
InnoDB把数据和索引存放在表空间里,可能包含多个文件,这与其它的不一样,举例来说,在MyISAM中,表被存放在单独的文件中。
InnoDB表的大小只受限于操作系统的文件大小,可也可以每个表使用各自独立的表空间,只需要启用选项innodb_file_per_table。
◆MyISAM与InnoDB的区别
1)文件构成上,每个MyISAM在磁盘上存储成三个文件。
第一个文件的名字以表的名字开始,扩展名指出文件类型。
.frm文件存储表定义。
数据文件的扩展名为.MYD(MYData)。
索引文件的扩展名是.MYI(MYIndex)。
InnoDB存储它的数据表和索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。
InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB。
2)事务处理方面,MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持、外部键等高级数据库功能。
3)表查询方面(SELECTUPDATE,INSERT,Delete操作),如果执行大量的SELECT,MyISAM是更好的选择。
◇如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表
◇DELETEFROMtable时,InnoDB不会重新建立表,而是一行一行的删除。
◇LOADTABLEFROMMASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用
4)锁,MyISAM提供表锁,而Innodb提供行锁(lockingonrowlevel),提供与 Oracle 类型一致的不加锁读取(non-lockingreadinSELECTs),另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如updatetablesetnum=1wherenamelike“%aaa%”
5)表的具体行数,
对于MyISAM,selectcount(*)fromtable,MyISAM只要简单的读出保存好的行数,注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
而InnoDB 中不保存表的具体行数,也就是说,执行selectcount(*)fromtable时,InnoDB要扫描一遍整个表来计算有多少行。
6)对AUTO_INCREMENT的操作
每表一个AUTO_INCREMEN列的内部处理。
MyISAM为INSERT和UPDATE操作自动更新这一列。
这使得AUTO_INCREMENT列更快(至少10%)。
在序列顶的值被删除之后就不能再利用。
(当AUTO_INCREMENT列被定义为多列索引的最后一列,可以出现重使用从序列顶部删除的值的情况)。
AUTO_INCREMENT值可用ALTERTABLE或myisamch来重置对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引更好和更快的auto_increment处理
◇如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。
自动增长计数器仅被存储在主内存中,而不是存在磁盘上。
(2)innoDB备份&&MyISAM备份
◆innoDB引擎的MySQL数据备份
1法Xtrabackup,Xtrabackup有两个主要的工具:
xtrabackup、innobackupex.xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
2mysqldump可以备份单个表、单个库或所有库,可以备份表结构和数据,可以同时支持MyISAM和InnoDB引擎数据库。
格式:
mysqldump–u用户名–p[密码][options][数据库名][表名]>/备份路径/备份文件名
◆MyISAM引擎的MySQL数据备份
①mysqlhotcopy 是一个 Perl脚本,只用于备份MyISAM
格式:
mysqlhotcopy db_name [/path/to/new_directory ]
②mysqldump可以备份单个表、单个库或所有库,可以备份表结构和数据,可以同时支持MyISAM和InnoDB引擎数据库。
§.Samba
(1)win系统的共享目录(WIN主机IP:
192.168.1.10其共享目录名为share登陆账号seker登陆密码为passwd)如何在linuxredhat上将其挂载至/mnt/share目录下
mount-ousername=seker,password=passwd//192.168.1.10/share/mnt/share
(2)Samba服务器四种共享方式的区别:
share:
可匿名访问;
user:
需要由本服务器验证用户名和密码;
server:
由另一台服务器验证用户名和密码;
domain:
由Windows域控制器验证用户名和密码;
(3)更改和添加Samba服务器登陆用户的密码命令是什么?
#smbpasswd用户名
§.Shell
(1)linux中shell变量$#,$@,$0,$1,$2的含义解释
变量说明:
$$ Shell本身的PID(ProcessID)
$0 Shell本身的文件名
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$- 使用Set命令设定的Flag一览
$* 所有参数列表。
如"$*"用「"」括起来的情况、以"$1$2…$n"的形式输出所有参数。
$@ 所有参数列表。
如"$@"用「"」括起来的情况、以"$1""$2"…"$n"的形式输出所有参数。
$#添加到Shell的参数个数
$1~$n 添加到Shell的各参数值。
$1是第1参数、$2是第2参数…。
§.常用命令
§.Linux其他
(1)Linux系统中常用备份工具
(2)G4L、Bacula、tar、dd
(3)awstats是基于日志的……
(4)echo"1">/proc/sys/net/ipv4/ip_forward意为开启ipv4路由转发功能
(5)init0init1init2init3init4init5init6这几个启动级别都代表什么意思?
#0–关机(千万不要把initdefault设置为0)
#1-单用户模式
#2–字符界面多用户,不支持网络;
#3–字符界面完整多用户;
#4–未分配使用;
#5–图形界面多用户
#6-重新启动
(6)查看Linux系统运行状态
cat/proc/cpuinfo
cat/proc/meminfo
cat/proc/swaps
cat/proc/scsi/scsi
fdisk-l
cat/proc/mounts<=>df-hT
cat/proc/version
(7)如何在命令行查看一台linux机器的CPU、内存、SWAP分区信息?
①CPU
more/proc/cpuinfo
②内存
more/proc/meminfo
③Swap分区
swapon–smore/proc/swaps
④CPU内存Swap
top
⑤内存Swap
free–m
(8)df-hT可查看分区容量使用情况;du/var/log可查看容量
(9)如何修改linux主机名(不重启的情况下)指出都要修改哪些文件即可,写出各文件的绝对路径.
临时生效:
#hostname主机名
彻底生效:
#vi/etc/sysconfig/network,修改主机名
#vi/etc/hosts修改ip对应得主机名
(10)--enable-modules与—enable-modules-shared区别
--enable-modules是将模块编译到apache中,而--enable-modules-shared是将模块独立编译、动态加载,也就是所谓的dso
(11)
(12)
(13)
(14)
4.综合题案
§1.公司使用网络接入线为一条3M光纤,随着业务的扩大,人员的增多出现网络拥挤状态,为解决此问题,采取两种方案:
一,将现有带宽增至6M
二,再申请一条3M带宽。
如果此事由你决策你会选择哪一种方案并写出原因。
从公司的角度来看:
应该带宽增至6M增,这样可以减少再申请一条3M带宽的报装费,新增加的设备费用,技术维护费用
从网吧的角度来看:
可以再申请一条3M带宽(网通),假说原来的为电信。
这样可以做带宽冗佘,当一条光纤出现故障时还可以继续营业,可以满足上网的人对不同网络(网通/电信)需要,从而使用整个网络更优化稳定。
虽然初始的费用高了,但从长远的角度来说,还是有利于网吧营运!
§2.局域网内出现另一台DHCP服务器与你做的DHCP冲突,你会采取什么技术手段将其捕获?
①停掉自己的DCHP设置成默认ipconfig/releaseipconfig