Linux 面试宝典
Linux面试宝典
- **Linux 面试宝典**
-
-
- 一、计算机基础部分
-
-
- 络部分
- 后续再不断更新……
-
- 二、Linux基础部分
-
-
- Linxu文本处理三剑客
-
- 文本处理三剑客之grep
- 文本处理三剑客之sed
- 文本处理三剑客之awk
- Linxu脚本部分
- Linxu的各种服务
- 后续不断更新中……
-
-
一、计算机基础部分
1.第一台计算机诞生的时间为:1946年。
2.冯诺依曼体系体系结构。
- 数字计算机的数制采用二进制,bit位,byte字节 1byte=8bit
- 计算机应该按照顺序执行
- 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
3.二进制和十进制转换。
二进制和十进制之间转换可根据下表操作。
- 2^0=1=1b
- 2^1=2=10b
- 2^2=4=100b
- 2^3=8=1000b
- 2^4=16=10000b
- 2^5=32=100000b
- 2^6=64=1000000b
- 2^7=128=10000000b
- 2^8=256=100000000b
- 2^9=512=1000000000b
- 2^10=1024=10000000000b
4.Unix的哲学思想/p>
- 一切都是一个文件(包括硬件)
- 小型,单一用途的程序
- 链接程序,共同完成复杂的任务
- 避免令人困惑的用户界面
- 配置数据存储在文件中
5.硬盘存储术语CHS:
- head:磁头 磁头数=盘面数
- track:磁道 磁道数=柱面数
- sector:扇区,512bytes
- cylinder:柱面 1柱面=512sector数/trackhead数 大概8M
6.识别SSD和机械硬盘类型br> 备注:1表示机械盘,0表示SSD盘
7.MBR分区:使用32位表示扇区数,分区的磁盘不能超过2T。MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1个扩展分区,多个逻辑分区。主分区和扩展分区对应的1-4,逻辑分区从5开始。
8.GPT分区,支持128个分区,使用64位,支持8Z
UEFI统一可扩展固件接口,硬件支持GPT,是得操作系统可以使用。
9.管理磁盘常用命令:
lsblk –>列出块设备
创建分区命令:
fdisk:管理MBR分区
gdisk:管理GPT分区
parted:高级分区,可以是交互式或非交互式
注意:parted的操作都是实时生效的,小心使用。
partprobe:更新内存中的磁盘分区表版本,适用于处CentOS6以为的其他版本5,7,8
10.mount挂载:
默认权限相当于rw, suid, dev, exec, auto, nouser, async
挂载规则:
一个挂载点同一时间只能挂载一个设备
一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏
一个设备可以同时挂载到多个挂载点
通常挂载点一般是已存在空的目录
将挂载保存到 /etc/fstab 中可以下次开机时,自动启用挂载
11.swap交换分区:
- 创建交换分区或者文件
- 使用mkswap写入特殊签名
- 在/etc/fstab文件中添加适当的条目
- 使用swapon -a 激活交换空间
swapon 启用交换分区。
swapoff 关闭交换分区。
SWAP交换分区可以指定swap分区0到32767的优先级,值越大优先级越高
系统默认从-1开始,每加一个新的交换分区,给该交换分区的优先级减一
12.官方推荐系统swap空间:
系统中的RAM量 | 推荐的swap空间 | 允许休眠的建议swap空间大小 |
---|---|---|
低于2GB | RAM量的2倍数 | RAM容量的三倍 |
2GB-8GB | 等于RAM量 | RAM量的倍数 |
8GB-64GB | 4GB到RAM容量的0.5倍 | RAM容量的1.5倍 |
超过64GB | 独立负载(至少4GB) | 不建议使用休眠功能 |
后面搭建k8s时,需要禁用swap
13. RAID0、RAID1、RAID5、RAID6、RAID10之间的区别:
RAID等级 | 最少硬盘 | 最大容错 | 可用容量 | 读取性能 | 写入性能 | 安全性 | 目的 | 应用场景 |
---|---|---|---|---|---|---|---|---|
0 | 1 | 0 | n | n | n | 一个硬盘异常,全部硬盘都会异常 | 追求最大容量、速度 | 影片剪接,缓存用途 |
1 | 2 | n-1 | 1 | n | 1 | 高,一个正常即可 | 追求最大安全性 | 个人、企业备份 |
5 | 3 | 1 | n-1 | n-1 | n-1 | 高 | 最求最大容量、最小预算 | 个人、企业备份 |
6 | 4 | 2 | n-2 | n-2 | n-2 | 安全性较RAID5高 | 同RAID5,但教安全 | 个人、企业备份 |
10 | 4 | 高 | 综合RAID0/1优点,理论速度较快 | 大型数据库、服务器 |
14.df与du的区别么时间df>du;什么时间df
文件系统空间实际真正占用等信息的查看工具 df
查看某目录总体空间实际占用状态 du,显示指定目录下面各个子目录的大小,单位为KB
当删除文件但不释放空间时,有什么不同du 查看文件空间释放,df不释放)
du查看文件以删除,空间释放;df查看文件系统不释放。
du从文件的角度看,df从分区空间的使用角度看(df可用看到的时真实的)。
df>du是在分区刚挂好的时候,默认地df>du 1. 络的功能和优点 数据和应用程序 资源 络存储 备份设备 广域 城域 局域 3.开放系统互联OSI模型: 4. 络的三种通讯模式: 5.冲突域和广播域 6. 络的三种通讯机制: 7.局域 的特点、功能、优点: 8.超5类线的双绞线(Twisted-Pair) 线线序 9. 线线缆和接口 10. 桥和交换机: 11.路由器: 12.虚拟局域 VLAN 13.VALN的优点: 虚拟局域 的实现技术 14.TCP/IP 15.TCP/IP分层 16.TCP/IP和OSI模型的比较 17.TCP和UDP 18.TCP头结构(理解) 19.三次握手和四次挥手 20.UDP特性 21.Internet协议 24 25.IP地址可唯一标识IP 络中的每台设备,每台主机(计算机、 络设备、外围设备)必须有唯一的地址。(IP地址是一个32位二进制数) 26.IP地址分类 A类:0-127 B类:128-191 C类:192-223 D类:组(多)播,1110 0000 – 1110 1111.X.Y.Z: 224-239.X.Y.Z 保留未使用,240-255 27.CIDR:无类域间路由,目前的 络已不再按A,B,C类划分 段,可以任意指定 段的范围, 络ID位不固定,按需指定 。 28.子 掩码 29.相关公式 用自已的子 掩码分别和自已的IP及对方的IP相与,比较结果,相同则同一 络,不同则不同 段 30.203.101.123.163/28 31.划分子 : 将一个大 (主机数量多,主机ID位多)分割成多个小 (主机数量少,主机ID位少) , 络ID向主机ID借N位,将划分成个2^N子 32.中国移动10.0.0.0/8 给32个各省公司划分对应的子 。 2)每个省公司的子 的主机数有多少br> 2^(32-13)-2=524286 3)河南省得到第10个子 , 络IDbr> 10.00000 000.0.0/13 4)河南省得到第10个子 的最小IP和最大的IPbr> 10.01001 000.0.1 5)所有子 中最大,最小的子 的netidbr> 10.00000 000.0.0/13 10.0.0.0/13 33.计算公式 34.路由 路由表组成: 四个组成部分 metric: 费用,值越小,优先级越高 1.什么是shellbr> Shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。 3.软连接与硬链接的区别: 4.下面那个些选项不是将标准输出和错误都重定向到同一个文件中的(E)。 5.案例1:提示空间满No space left on device,但df可以看到空间很多,为什么br> 答:因为改分区的incode 使用完了,小文件太多,清理掉不用的小文件就可以了。 6.案例2:提示空间快满了,使用rm删除了很大的无用文件后,df依然看到空间不足,为什么何解决br> 答:因为使用rm删除的文件,可能被删除的文件还在被程序占用的。需要用 # lsof | grep deleted 命令找到被删除的文件。然后在kill掉相应的进程就行了。 7.Linux中的目录和文件的权限区别分别说明读,写和执行权限的区别) 8.执行 cp /etc/issue /data/dir/ 所需要的最小权限ABCDE) 9.误将 /bin/chmod 文件的执行权限删除,如何恢复br> 解决:两种办法,一种是直接把root用户设置ACL权限,另外一种是将root组设置ACL权限。 10.ACL生效的顺序是br> 所有者,自定义用户,所属组/自定义组,其他人 11.误删除了用户git的家目录,如何重建并恢复该用户家目录及相应的权限属性/p> 12.Linux中新建文件和目录的默认权限为br> 新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变 13.Linux安全模型: 14.CentOS7/8中生成12位数的随机密码: 15.CentOS6/7/8中生成sha512加密密码的方法: 16.判断一个账户是否为管理员,通过该用户的uid 是否为0来判断。 17.Linux系统中文本查看工具的命令有:cat、nl、tac、rev、more、less、head、tail等 18.统计文件中客户访问前10名的IP信息 备注:该文件的第一列为客户IP 19.找到file1和file2文件中重复的行和不重复的行 或 20.用正则表达式表示QQ、邮箱、手机 码: 21.如何查看当前进程的环境变量br> 通过进程 查看对应的环境变量。 22.变量的分类: 状态变量: 状态变量是查看上一条命令执行的结果,是否成功。 23.判断磁盘使用率大于80发告警邮件的小脚本。 24.利用扩展正则表达式分别表示0-9、10-99、100-199、200-249、250-255 25.异域实现变量互换: 26.xargs命令的默认功能是接收键盘的标准输入,把输入的结果用xargs传给后续的命令作为参数,默认会将换行换成空格。用xargs可以把一些命令的参数动态生成。 声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!
df 络部分
2. 络分类:
分层名称
功能
每层功能概览
对应物理设备及对应的协议
单位
7
应用层
针对特定应用的协议
电子邮件、远程登陆、文件传输
HPPT、FTP、SSH、MySQl等
消息 message
6
表示层
设备固有数据格式和 络标准数据格式的转换。
接收不同变现形式的信息,如文字、图像、声音等
消息 message
5
会话层
通信管理。负责建立和断开通信连接。管理传输层一下的分层
何时建立连接,何时断开连接以及保持多久的连接
消息 message
4
传承层
管理两个节点之间的数据传输。负责可靠传输
是否有数据丢失/td>
TCP
数据段 segment
3
络层
地址管理与路由选择
经过那个路由传递到目标地址/td>
路由器 IP
数据包 packet
2
数据链路层
互连设备之间传递和识别数据帧
数据帧与比特流之间的转换(分段发送)
交换机、 MAC
数据帧 frame
1
物理层
以“0”、“1”代表电压的高低,灯光的闪灭。界定连接器和 线的规格。
比特流与电子信 之间的切换。连接器与 线的规格
数据位 bit
冲突域:两个 络设备同时发送数据,如果发生了冲突,则两个设备处于同一个冲突域,反之,则各自处于不同的冲突域
广播域:一个 络设备发送广播,另一个设备收到了,则两个设备处于同一个广播域,反之,则各自处于不同的广播域
特点: 络为一个单位所拥有;地理范围和站点数目均有限
主要功能:资源共享和数据通信
优点:能方便地共享昂贵的外部设备,主机以及软件、数据。从一个站点可以访问权威;便于系统的扩展和逐渐演变,各设备的位置可灵活的调整和改变;提高系统的可靠性、可用性、易用性。
T568B和T568A
T568B的线序为:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕
T568A的线序为:白绿 绿 白橙 蓝 白蓝 橙 白棕 棕
桥bridge:也叫桥接器,是连接两个局域 的一种存储/转发设备,根据MAC地址表对数据帧进行转发,可隔离碰撞域。 桥将 络的多个 段在数据链路层连接起来,并对 络数据帧进行管理
交换机:是工作在OSI参考模型数据链路层的设备,外表和集线器相似
它通过判断数据帧的目的MAC地址,从而将数据帧从合适端口发送出去
交换机是通过MAC地址的学习和维护更新机制来实现数据帧的转发。
交换机的工作原理:
(1)交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中
(2)交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发
(3)如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)
(4)广播帧和组播帧向所有的端口转发
路由:把一个数据包从一个设备发送到不同 络里的另一个设备上去。这些工作依靠路由器来完成。路由器只关心 络的状态和决定 络中的最佳路径。路由的实现依靠路由器中的路由表来完成
路由器功能:
VLAN工作原理:虚拟局域 VLAN 是由一些局域 段构成的与物理位置无关的逻辑组。这些 段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。虚拟局域 其实只是局域 给用户提供的一种服务,而并不是一种新型局域 。
(1)基于端口的VLAN
(2)基于MAC地址的VLAN
(3)基于协议的VLAN
(4)基于 络地址的VLAN
Transmission Control Protocol/Internet Protocol 传输控制协议/因特 互联协议
TCP/IP是一个Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多协议
TCP/IP4层模型
应用层—->应用层、表示层、会话层
传输层—->传输层
互联 层—-> 络层
络接口层—->数据链路层、物理层
相同点:两者都是以协议栈的概念为基础;协议栈种的协议批次相互独立;下层对上层提供服务。
不同点:OSI是先有模型;TCP/IP 是先有协议,后有模型
OSI是国际标准,适用于各种协议;TCP/IP实际标准,只适用于TCP/IP 络;
层次数量不同
Reliable
Best-Effort
Connection Type
Connection-oriented
Connectionless
Protocol
TCP
UDP
Sequencing
Yes
No
Uses
E-mail、File sharing、Downloading
Voice streaming、Video streaming
源端口、目标端口:源/目标端口用16位表示的,可得计算机端口个数位:2^16个,即65536个
序列 :表本 文段所发送数据的第一个字节的编 。TCP连接中所传送的字节流的每一个字节都会按顺序编 。由于序列 由32位表示,所以每2^32个字节,就会出现序列 回绕,再次从0 开始。
确认 :表示接收方期望收到发送方下一个 文段的第一个字节数据的编 。也就是告诉发送方:我希望你(指发送方)下次发送的数据的第一个字节数据的编 为此确认 。
数据偏移:表示TCP 文段的首部长度,该字段的单位是32位(即4个字节为计算单位),4位二进制最大表示15,所以数据偏移也就是TCP首部最大60字节
URG:表示本 文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效。
ACK:表示是否前面确认 字段是否有效。只有当ACK=1时,前面的确认 字段才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP 文段称为确认 文段。
PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中。
RST:如果收到一个RST=1的 文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP 文段称为复位 文段。
SYN:在建立连接时使用,用来同步序 。当SYN=1,ACK=0时,表示这是一个请求建立连接的 文段;当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的 文。只有在前两次握手中SYN才置为1,带SYN标志的TCP 文段称为同步 文段。
FIN:表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的TCP 文段称为结束 文段。
窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本 文段的确认 开始允许对方发送的数据量,达到此值,需要ACK确认后才能再继续传送后面数据,由Window size value * Window size scaling factor(此值在三次握手阶段TCP选项Window scale协商得到)得出此值。
校验和:提供额外的可靠性。
紧急指针:标记紧急数据在数据字段中的位置。
选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长为:(2^4-1)*4-20=40字节
TCP三次握手:客户A与服务器B通信
A主动向B发起请求SYN=1,seq=x
B收到后,返回一个SYN=1,ACK=1,seq=y,ack=x+1
然后,A在给B发送一个ACK=1,seq=x+1,ack=y+1 确认建立连接,开始传递数据。
TCP四次挥手:客户端A与服务器B
A主动发起关闭FIN=1,seq=u 这时A处于终止等待状态(FIN-WAIT1)
B收到后返回一个ACK=1,seq=v,ack=u+1 这时B处于关闭等待状态(CLOSE-WAIT)
这个时候可能还会有数据传送。等待数据传送完后
B在给A发个关闭确认请求FIN=1,ACK=1,seq=w,ack=u+1 这时B处于最后确认状态(LAST-ACK)A处于终止等待状态2(FIN-WAIT2)
A等待2s后返回确认断开ACK=1,seq=u+1,ack=w+1 A处于时间等待状态(TIME-WAIT)
工作在传输层、提供不可靠的 络访问、非面向连接协议、有限的错误检查、传输性能高、无数据恢复特性
IP地址由两部分组成
络 ID:标识 络,每个 段分配一个 络ID,处于高位
主机 ID:标识单个主机,由组织分配给各设备,处于低位
IPv4地址格式:点分十进制记法
络ID位是最高8位,主机ID是24位低位
络数:126=2^7(可变是的 络ID位数)-2
每个 络中的主机数:2^24-2=16777214
默认子 掩码:255.0.0.0
私 地址:10.0.0.0
络ID位是最高16位,主机ID是16位低位
络数:2^14=16384
每个 络中的主机数:2^16-2=65534
默认子 掩码:255.255.0.0
私 地址:172.16.0.0-172.31.0.0
络数:2^21=2097152
每个 络中的主机数:2^8-2=254
默认子 掩码:255.255.255.0
私 地址:192.168.0.0-192.168.255.0
CIDR 无类域间路由表示法:IP/ 络ID位数,如:172.16.0.100/16
netmask: 子 掩码 32bit二进制,和IP成对使用,对应于IP中 络ID为1,对应于主机ID为0
子 掩码的8位:
128 64 32 16 8 4 2 1
——————————
1 0 0 0 0 0 0 0 =128
1 1 0 0 0 0 0 0 =192
1 1 1 0 0 0 0 0 =224
1 1 1 1 0 0 0 0 =240
1 1 1 1 1 0 0 0 =248
1 1 1 1 1 1 0 0 =252
1 1 1 1 1 1 1 0 =254
1 1 1 1 1 1 1 1 =255
1)每个省公司的子 的netmask2^5>=32 借5位 络ID
8+5=13
255.248.0.0
10.01001 000.0.0/13
10.72.0.0/13
10.01001 111.11111111.11111110
10.72.0.1—10.79.255.254
10.11111 000.0.0/13 10.248.0.0/13
主机数=2^主机ID-2
络数=2^可变 络ID
络ID=IP与netmask
络路由: 表示一个 段的路由
主机路由: 表示一个主机的路由
默认路由: 所有未知 段的路由 0.0.0.0/0
1)目标 络: 目标主机所在 络ID 172.16.0.0
2)netmask:
3)接口: 当前 络设备的出口
4) 关: 下一个路由器的临近当前路由器的接口的IP,下一跳 next hop
后续再不断更新……
二、Linux基础部分
Shell也被称为Linux的命令解释器,Shell本身是一个程序。
2.Linux下的文件类型有:
区别
硬链接
软连接
本质
硬链接本质是同一个文件
软件链接的本质不是同一个问题件
跨设备
不支持
支持
incode
相同
不同
链接数
创建新的硬链接,链接数会增加,删除硬链接,链接数会减少
创建或删除,链接数不会变化
文件夹
不支持
支持
相对路径
原始文件相对路径是相对于当前工作目录
原始文件的相对路径是相对于链接文件的相对路径
删除源文件
只是链接数减一,但链接文件的访问不受影响
链接文件将无法访问
文件类型
和源文件相同
链接文件和源文件无关
文件大小
和源文件相同
源文件的路径的长度
A.[root@centos8 ~]#ls /data /xxx > /data/all.log 2>&1
B.[root@centos8 ~]#ls /data /xxx 2> /data/all.log 1>&2
C.[root@centos8 ~]#ls /data /xxx &> /data/all.log
D.[root@centos8 ~]#ls /data /xxx >& /data/all.log
E.[root@centos8 ~]#ls /data /xxx 2>&1 > /data/all.log
删除大文件,正确的姿势:
区别类型
目录
文件
读 ( r )
使用ls命令查看目录文件
使用文件类查看工具,如cat查看文件内容
写 ( w )
可以在目录下创建/删除文件及目录
可以修改文件中的内容
执行( x )
可cd目录,执行ls -l查看目录元数据(需要配合r权限)
可将文件在系统中运行
A./bin/cp 需要x权限
B./etc/ 需要x权限
C./etc/issue 需要r权限
D./data 需要x权限
E./data/dir 需要w,x权限
新建目录的默认权限: 777-umask
非特权用户umask默认是 002
root的umask 默认是 022
资源分派:
Authentication:认证,验证用户身份
Authorization:授权,不同的用户设置不同权限
Accouting|Audition:审计
内置变量和自定义变量
自定义变量又分为普通变量、环境变量、只读变量
特殊变量:位置变量、状态变量
位置变量:
结果为0,则成功;结果为1-255为失败。
后续可以加定时任务,让其自动发邮件。