当前位置: 首页 > news >正文

Linux运维面试题总结—Linux基础、计算机网络基础

文章目录

  • 一、三次握手
    • 四次挥手
  • 二、如何划分vlan
  • 三、为什么划分vlan
    • vlan三个模式:
    • vxlan和vlan区别是什么?
  • 四、OSI七层模型及对应协议
  • 五、Linux中 查找大于10M的文件并删除
  • 六、查看cup占用情况,查看内存,查看磁盘IO使用情况,系统的核心指标
  • 七、硬盘、磁盘
  • 八、lvs和nginx的区别
  • 九、使用nginx+keepalived实现负载均衡,解决单点与高流量并发问题。为什么要用nginx而不用lvs?(使用nginx做七层负载均衡的理由?)
  • 十、目前市场上主流的虚拟化平台:
  • 十一、二层交换机和三层交换机的区别
  • 十二、Linux常用的文件系统
  • 十三、shell编程中单引号和双引号的区别
  • 十四、怎么去配置定时任务
  • 十五、无法连接互联网,怎么去安装软件包,部署一些服务
  • 十六、TCP和UDP 在Linux下用的是什么端口
  • 十七、ARP欺骗原理
  • 十八、TCP/IP工作原理
  • 十九、LNMP架构总结
  • 二十、LAMP和LNMP区别是什么?
  • 二十一、安全类:对称加密和非对称加密有什么区别
  • 二十二、公钥和私钥是干嘛的?
  • 二十三、哈希算法
  • 二十四、数据库
  • 二十五、数据库操作
  • 二十六、三剑客sed、grep、awk
    • sed、grep和awk之间的区别
  • 二十七、apt-get 和rpm的区别
  • 二十八、Linux下useradd与adduser的区别
  • 二十九、CI/CD 是什么
  • 三十、shell脚本
  • 三十一、数据结构
  • 三十二、版本管理工具
  • 三十三、怎么查询日志
  • 三十四、linux日志文件说明
  • 三十五、linux的开机启动顺序概述
  • 三十六、Linux系统的优化
  • 三十七、docker与虚拟机的区别是什么

Linux发行版:centos7    Ubuntu    redhat

远程终端:
1.xshell 

多用户设置 l  保持连接选项 l  SOCKS4/5、 HTTP代理连接 l  支持多个会话 (会话选项卡、会话栏) l  用户按键对应 l  VB脚本 l  新链接栏l  断开连接时自动进行连接

2.mobaXterm

支持各种连接 SSH,X11,RDP,VNC,FTP,MOSH
支持 Unix 命令(bash,ls,cat,sed,grep,awk,rsync,…)		功能很全,免费,有免安装版,支持多标签,同时自带文件传输系统
连接 SSH 终端后支持 SFTP 传输文件
各种丰富的插件(git/dig/aria2…)
可运行 Windows 或软件
初级:
wget 下载
uptime 运行时间 
ip a / ip r/ifconfig 读取IP
mount 挂载文件系统
chmod +x 添加可执行权限 
yum install  /rpm -i 安装软件 
cat test 查看文件内容
mkfs.xfs 格式化文件系统
mkdir 创建目录 
touch 创建空文件
vim 行复制 删除行 
su 切换用户 

一、三次握手

在这里插入图片描述
三次握手是建立链接的过程,当客户端向服务端发起连接时,会先发一包数据请求连接,询问服务端能否建立连接,这包数据我们称之为SYN包,如果服务端同意连接,则回复一个SYN+ACK包,客户端收到之后回复一包ACK包,连接建立,因为过程中互相发送了三包数据,所以称之为“三次握手”。

1、建立连接时,客户端发送SYN包(SYN=i)到服务器,并进入到SYN-SEND状态,等待服务器确认

2、服务器收到SYN包,必须确认客户的SYN(ack=i+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器进入SYN-RECV状态

3、客户端收到服务器的SYN+ACK包,向服务器发送确认报ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手,客户端与服务器开始传送数据。

四次挥手

在这里插入图片描述
处于连接状态的客户端和服务端都可以发起关闭连接请求,此时需要四次挥手来进行连接关闭,假设客户端主动发起连接关闭请求,需要向服务端发起一个FIN包,表示要关闭连接,自己进入终止等待状态,这是第一次挥手,服务端收到FIN包,发送一包ACK包,表示自己进入了关闭等待状态,客户端进入终止等待2状态,这是第二次挥手,服务端此时还可以发送未发送的数据,而客户端还可以接收数据,待服务端发送完数据后,发送一包FIN包,进入最后确认状态,这是第三次挥手,客户端收到之后恢复ACK包,进入超时等待状态,经过超时时间后关闭连接,而服务端收到ACK包后立即关闭连接,这是第四次挥手,为甚没客户端需要等待超时时间,这是为了保证对方已收到ACK包,因为假设客户端发送完最后一包ACK包后就释放了连接,一旦ACK包在网络中丢失,服务端将一直停留在最后确认状态。

如果客户端发送最后一个ACK包后等待一段时间,这时服务端因为没有收到ACK包,会重发FIN包,客户端会响应这个FIN包,重发ACK包并刷新超时时间,这个机制跟三次握手一样,也是为了保证在不可靠的网络链路中进行可靠的连接断开确认。

二、如何划分vlan

1.摆一个简单的拓扑图演示一下操作,划分vlan 10和vlan 20。
2.点击交换机,先进入全局配置模式,输入vlan 10和vlan 20创建vlan。根据需要可以给vlan命名。
3.输入show vlan命令可以查看刚刚创建的vlan。
4.再进入全局配置模式,将接口划分到vlan中。interface fastEthernet 0/1进入接口,switchport access vlan 10将接口划分给vlan 10。同样的方法划分vlan 20。
5.再次使用show vlan查看端口划分情况

vlan的划分方法有:
1、基于端口划分的VLAN;
2、基于MAC地址划分VLAN;
3、基于网络层协议划分VLAN;
4、根据IP组播划分VLAN;
5、按策略划分VLAN;
6、按用户定义、非用户授权划分VLAN。

三、为什么划分vlan

可以把一个网络划分为多个逻辑子网,控制广播域,减少广播域的范围。
从而减少计算性能和网络带宽的无谓消耗。从而保证局域网的性能。
隔离常见病毒与攻击,这样即使某个主机感染了arp攻击病毒、dhcp攻击病毒等常见局域网病毒,影响的范围也只限于本vlan,不会影响到其他vlan,可以将故障限制在比较小的范围。一来造成的影响小,二来排查故障也更加容易。

控制广播风暴; 增强网络的安全性; 增强网络管理

1、控制广播风暴
主要就是可以限制广播范围,可将广播风暴限制在一个VLAN内部,避免影响其他网段。VLAN能够更加有效地利用带宽。在VLAN中,网络被逻辑地分割成广播域,由VLAN成员所发送的信息帧或数据包仅在VLAN内的成员之间传送,而不是向网上的所有工作站发送。这样可减少主干网的流量,提高网络速度。
2、增强网络的安全性
共享式LAN上的广播必然会产生安全性问题,因为网络上的所有用户都能监测到流经的业务,用户只要插入任一活动端口就可访问网段上的广播包。采用VLAN提供的安全机制,可以限制特定用户的访问,控制广播组的大小和位置,甚至锁定网络成员的MAC地址,这样,就限制了未经安全许可的用户和网络成员对网络的使用。
3、增强网络管理
采用VLAN技术,使用VLAN管理程序可对整个网络进行集中管理,能够更容易地实现网络的管理性。用户可以根据业务需要快速组建和调整VLAN。当链路拥挤时,利用管理程序能够重新分配业务。管理程序还能够提供有关工作组的业务量、广播行为以及统计特性等的详尽报告。对于网络管理员来说,所有这些网络配置和管理工作都是透明的。

vlan三个模式:

vlan的三种模式Access、Hybrid和Trunk
1 Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;
2 Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;
3 Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
access 和trunk区别
trunk可允许通过多条vlan,access一般只属于1个vlan。
trunk口不能直接连pc上网,access可以直接连pc上网。

vxlan和vlan区别是什么?

VLAN意为虚拟局域网,VXLAN意为虚拟可拓展局域网。
VXLAN与VLAN的最大区别在于,VLAN只是修改了原始的Ethernet Header,但是整个网络数据包还是原来那个数据包,而VXLAN是将原始的Ethernet Frame隐藏在UDP数据里面。经过VTEP封装之后,在网络线路上看起来只有VTEP之间的UDP数据传递,原始的网络数据包被掩盖了。

vxlan最多支持个数:1600万个
VNI在数据包之中占24比特,故可支持1600万个VXLAN的同时存在,远多于VLAN的4094个,因此可适应大规模租户的部署。

四、OSI七层模型及对应协议

在这里插入图片描述
物理层
通过物理连接组网,传送比特流0和1

数据链路层
完成相邻节点之间的通信,将网络层传来的IP数据报组装成帧,为网络层提供服务

网络层
完成主机到主机之间的通信,分为数据平面和控制平面,完成转发和路由的功能

传输层
完成端口到端口之间的通信,传输层涉及到分段、流量控制、差错控制、面向连接和无连接传输(TCP和UDP)

会话层
向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理

表示层
处理用户信息的表示问题,如编码、数据格式转换和加密解密等
表示层从应用层接收数据。这些数据是以字符和数字的形式出现的,表示层将这些数据转换成为机器可以理解的二进制格式,功能有翻译、压缩、加密解密

应用层
直接向用户提供服务,完成用户希望在网络上完成的各种工作
各种应用程序和网络之间的接口,例如谷歌,火狐。这些应用不驻留于应用层,但是它们使用应用层的各种网络协议

五、Linux中 查找大于10M的文件并删除

find / -type f -size +100M | xargs rm -rf
/ --表示路径,根目录,也就是搜索全部文件
type --表示文件类型
f --表示文件
-size --表示大小
+10M --表示大于10M

六、查看cup占用情况,查看内存,查看磁盘IO使用情况,系统的核心指标

cpu占用情况:mpstat -p 、top命令
内存:free -m 、cat /proc/meminfo
磁盘IO 使用情况:iostat -xz 1、top命令、vmstat命令(vmstat命令来判断系统是否繁忙)
输出系统核心指标:vmstat 1
查看进程:ps -ef | grep 进程号

七、硬盘、磁盘

查看硬盘空间信息:df -hl
查看硬盘大小 : fidsk -l
查看磁盘剩余空间:parted -l
格式化硬盘:格式化命令:格式分区,并指定分区系统/dev/sdb ,这里是格式化成 ext4

mkfs.ext4  /dev/sdb

挂载硬盘 : mount
查看隐藏文件: ll -a
拷贝一个文件下的所有文件,拷贝到本地: cp -R

八、lvs和nginx的区别

lvs优点:
抗负载能力强,因为lvs工作方式的逻辑是非常简单的,而且工作再网络层第4层
配置性低,减少人为出错的机率
lvs基本上能支持所有应用
应用范围广,因为工作在4层,几乎可以对所有应用做负载均衡

缺点:软件本身不支持正则表达式处理,不能做动静分离
如果是网站应用比较庞大的话,LVS/DR+Keepalived实施起来就比较复杂了,相对而言,Nginx/HAProxy+Keepalived就简单多了。

nignx优点:
1、工作在网络7层上,可以针对http应用做一些分流的策略,如针对域名,目录结构等
2、对网络稳定性的依赖非常小,理论上能ping通就能进行负载均衡
3、安装简单
4、可以承担高负载压力且稳定
5、可以作为中层反向代理使用
6、可以作为静态网页和图片服务器

缺点:适应范围小,仅能支持http、https、email协议
对后端服务器的健康检查,只支持通过端口检测,不支持url来检测。

HAProxy优点:
1、支持虚拟主机,可以工作在4、7层,支持多网段
2、纯粹从效率上来说HAproxy比nginx更出色,在并发处理上也是优于nginx
3、负载均衡策略非常多 roundrobin(简单轮循)leastconn(连接数最少的服务器优先接收连接)

缺点:不支持POP/SMTP协议,不支持SPDY协议,不支持HTTP cache功能 多进程模式支持不够好

九、使用nginx+keepalived实现负载均衡,解决单点与高流量并发问题。为什么要用nginx而不用lvs?(使用nginx做七层负载均衡的理由?)

1.高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到2——3万并发连接数。
2.内存消耗少:在3万并发连接数下,开启的10个nginx进程才消耗150M内存(150*10=150M)。
3.配置文件非常简单:风格跟程序一样通俗易懂。
4.成本低廉:nginx为开源软件,可以免费使用。而购买F5 big-ip、netscaler等硬件负载均衡交换机则需要十多万至几十万人民币。
5.支持rewrite重写规则:能够根据域名、url的不同,将http请求分到不同的后端服务器群组。
6.内置的健康检查功能:如果nginx proxy后端的某台web服务器宕机了,不会影响前端访问。
7.节省带宽:支持gzip压缩,可以添加浏览器本地缓存的header头。

十、目前市场上主流的虚拟化平台:

KVM和xen 目前是主流

KVM (全称是 Kernel-based Virtual Machine)
是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。

Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。
它打算在单个计算机上运行多达100个满特征的操作系统。
操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。

十一、二层交换机和三层交换机的区别

功能:二层交换机基于MAC地址访问,只做数据的转发,并且不能配置IP地址,而三层交换机将二层交换技术和三层转发功能结合在一起,可配置不同vlan的IP地址;
应用:二层交换机主要用于网络接入层和汇聚层,而三层交换机主要用于网络核心层;

十二、Linux常用的文件系统

ext2与ext3:扩展文件系统,ext3增加了文件系统日志记录功能,称为日志式文件系统。
日志式文件系统在因断电或其他异常事件而停机重启后,操作系统会根据文件系统的日志,
快速检测并恢复文件系统到正常的状态,并可提高系统的恢复时间,提高数据的安全性。

swap文件系统:用于Linux的交换分区,使用整个交换分区来提供虚拟内存,分区大小一般是系统物理内存的2倍

vfat文件系统:他是Linux对DOS、windows系统下的FAT(fat16和fat32)文件系统的统称

NFS文件系统:网络文件系统,用于unix系统间通过网络进行文件共享

IOS 9660文件系统:该文件系统中光盘所使用的标准文件系统,Linux对该文件系统也有很好的支持,不仅能读取光盘和光盘ISO映像文件,而且还支持在Linux环境中刻录光盘。

reiserFS:是Linux环境下最稳定的日志文件系统之一,使用快速的平衡二叉树(binary tree)算法来查找磁盘上的自由空间和已有的文件。
可动态的分配索引而无须在文件系统中创建固定的索引节。有助于文件系统更灵活的适应各种存储需要。

十三、shell编程中单引号和双引号的区别

以单引号:包围变量的值时,单引号里面是什么就输出什么,照原样输出
以双引号:包围变量的值时,输出时先解析里面的变量和命令,而不是照原样输出。

十四、怎么去配置定时任务

crontab -e:编辑任务(分 时 日 月 周 命令)

*   *  *  *  *  command(命令)
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令

查看用户下的定时任务:crontab -l

1.在设置之前我们需要先用systemctl status命令查看一下atd服务是否开启,…
2.接下来我们通过date命令来查看一下当前的时间,设置的定时任务时间是以系统时间为准的,…
3.接下来我们通过at命令进行定时,at命令后面跟的是时分
4.然后Linux系统会进入到任务创建的阶段,我们输入要执行的任务语句,
5.接下来我们按Ctrl+V组合键来终止当前的定时任务设置,
6.通过at命令+参数查看当前已经存在的任务

十五、无法连接互联网,怎么去安装软件包,部署一些服务

(1)找个网络环境下载源码包,比如,rpmfind上下载rpm包,官方网站上下载源包
(2)若是开源包交给公司安全审计部门做安全审计
(3)升级通过,使用rpm或者 yum loacalinstall,或者,源码编译的方式安装
(4)将通过审计的该资源收集起来,用ftp等工具做资源共享,以免以后有人用到可直接使用

十六、TCP和UDP 在Linux下用的是什么端口

TCP-1433、UDP-1434

十七、ARP欺骗原理

1.通过冒充网关或其他主机使得到达网关或主机的流量通过攻击进行转发。通过转发流量可以对流量进行控制和查看,从而控制流量或得到机密信息。
2.ARP欺骗发送arp应答给局域网中其他的主机,其中包含网关的IP地址和进行ARP欺骗的主机MAC地址;
并且也发送了ARP应答给网关,其中包含局域网中所有主机的IP地址和进行arp欺骗的主机MAC地址。
当局域网中主机和网关收到ARP应答跟新ARP表后,主机和网关之间的流量就需要通过攻击主机进行转发。冒充主机的过程和冒充网关相同。

处理ARP欺骗攻击最一般的方法就是IP-MAC绑定,可以在客户端主机和网关路由器上双向绑定IP-MAC来避免ARP欺骗导致无法上网。

十八、TCP/IP工作原理

当HTTP发起一个消息请求时,应用层、传输层、网络层和链路层的相关协议依次对该消息请求附加对应的首部,这个首部标明了协议应该如何读取数据,最终在链路层生成以太网数据包,以太网数据包通过物理介质传输到目的主机,目的主机接收到以太网数据包以后,再一层一层采用对应的协议进行拆包,最后把应用层数据交给应用程序处理。简单来说,就是"发送请求时,封包,接收数据时,拆包。"

采用TCP/IP协议传送文件为例,说明TCP/IP的工作原理,其中应用层传输文件采用文件传输协议(FTP)。
TCP/IP协议的工作流程如下:
1.在源主机上,应用层将一串应用数据流传送给传输层。
2.传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。
3.在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。
4.链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。
5.在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。
6.网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。
7.传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。
8.在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样。

十九、LNMP架构总结

(Linux、Nginx、MySQL和PHP)
1.用户通过http协议发起请求,请求会先抵达LNMP架构中的nginx
2.nginx会根据用户的请求进行判断,这个判断是由Location完成的
3.判断用户请求的是静态页面,nginx直接进行处理4.判断用户的请求是动态页面,nginx会将该请求交给fastcgi协议下发
5.fastcgi会将请求交给php-fpm管理进程,php-fpm管理进程接收到后会调用具体的工作进程wrapper
6.wrapper线程会调用php进行解析,如果只是解析php代码,那么直接返回结果给客户端
7.如果有查询数据库的操作,则由php连接数据库(用户密码lR)然后发起查询的操作
8.最终数据由mysql->php->php-fpm->fastcgi->nginx->http->user

二十、LAMP和LNMP区别是什么?

1,软件组件不同:
lamp:Liunx、Apache、MySQL、php;
lnmp:Liunx、Nginx、MYSQL、php;
2,LAMP和LNMP最主要的区别在于:一个使用的是Apache,一个使用的是Nginx。
3,LNMP方式的优点:占用VPS资源较少,Nginx配置起来也比较简单,利用fast-cgi的方式动态解析PHP脚本。缺点:php-fpm组件的负载能力有限,在访问量巨大的时候,php-fpm进程容易僵死,容易发生502 bad gateway错误。
4,基于 LAMP 架构设计具有成本低廉、部署灵活、快速开发、安全稳定等特点,是 Web 网络应用和环境的优秀组合。若是服务器配置比较低的个人网站,当然首选 LNMP 架构。当然,在大流量的时候。把Apache和Nginx结合起来使用,也不失为一个不错选择。

二十一、安全类:对称加密和非对称加密有什么区别

1、对称加密中加密和解密使用的秘钥是同一个;非对称加密中采用两个密钥,一般使用公钥进行加密,私钥进行解密。
2、对称加密解密的速度比较快,非对称加密和解密花费的时间长、速度相对较慢。
3、对称加密的安全性相对较低,非对称加密的安全性较高。

二十二、公钥和私钥是干嘛的?

公钥和私钥是成对的,它们互相解密。公钥加密,私钥解密。私钥数字签名,公钥验证。

二十三、哈希算法

将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是哈希值(散列值)

MD5:以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
用于确保信息传输完整一致

SHA256:是SHA-2下细分出的一种加密算法,说白了,它就是一个哈希函数。
对于任意长度的消息,SHA256都会产生一个256bit长的哈希值,称作消息摘要。

Base64:是网络上最常见的用于传输8Bit字节码的编码方式之一

二十四、数据库

数据库共有3种类型:
关系数据库 —MySQL、Oracle数据库、FileMaker、Microsoft Access
非关系型数据库 —BigTable(Google)、Cassandra、MongoDB、CouchDB。
键值数据库 —Apache Cassandra(为Facebook所使用)、LevelDB(Google)

数据库模型:对象模型、层次模型、网状模型、关系模型、面向对象模型、半结构化模型、平面模型

数据库架构大致区分为三个概括从层次:内层、概念层、外层

二十五、数据库操作

创建数据库时指定字符集:
create database if not exists test03 default character set = 'utf8';

常用字符集:UTF8MB4 UTF8
UTF8MB4兼容UTF8,比UTF8能表示更多的字符,一般情况下UTF8就满足需求,当然如果考虑到以后扩展,比如考虑到以后存储emoji,就选择UTF8MB4,否则只是浪费空间。建议还是选择UTF8MB4,毕竟对于大部分公司而言空间不是什么大问题。

排序规则:
UTF8MB4常用的排序规则:utf8mb4_unicode_ci、utf8mb4_general_ci、utf8mb4_bin
utf8mb4_unicode_ci :校对速度快,但准确度稍差,不区分大小写
utf8_unicode_ci: 准确度高,但校对速度稍慢,不区分大小写
字符集与排序规则在db里需要统一

MySQL8.0和MySQL5的区别
1.从 MySQL 8.0 开始,新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式
2.从 MySQL 8 开始,使用 utf8mb4 作为 MySQL 的默认字符集。
3.对 OpenSSL 的改进、新的默认身份验证、SQL 角色、密码强度、授权。更安全。
4.在 MySQL 8.0 中,索引可以被“隐藏”和“显示”

MySQL数据库:
group by用法:
select 类别, sum(数量) as 数量之和
from A
group by 类别

二十六、三剑客sed、grep、awk

sed命令:
看替换后的结果,不真的替换:sed  's/原内容/新内容/g'  文件名
直接替换内容:sed  -i  's/原内容/新内容/g'   文件名
删除掉含有g的行:sed  '/g/d'  文件名
grep命令:
统计一个文件里的字段数量:grep -o '要统计的字段'  文件名 |wc -l
反向查找,不包含abc的 : grep -v "abc" 123      -v 显示不能被匹配到的行
查看那个程序占用了我的端口:netstat -tunpl |grep 端口号
查看进程详情信息:ps-ef |grep 进程号
查当前目录及子目录下面10天之前创建的文件  find  .  -type f -mtime +10
					-type f    --表示查找文件,排除目录(d)和连接(l)
					-mtime   --表示文件修改时间
查到并删除:find  .  -type f -mtime +10 | xargs rm -rf   (-exec)
查文件里一个东西的前三行和后三行:
收集文本统计数据wc:
wc -l :打印换行数
wc -w:显示单词计数
wc -c:打印字节数
wc -m:打印字符数
文本排序sort:
sort排序命令,格式sort [-t 分隔符] [-kn1,n2] [-nru]  n1、n2为数字。
-t 后边跟分隔符
-n表示用纯数字排序
-r表示反向排序
-u表示去重复
去重排序并统计:sort 文件名 |uniq -c

sed、grep和awk之间的区别

grep 主要用于搜索某些字符串
sed,awk 用于处理文本

二十七、apt-get 和rpm的区别

ap-get是ubuntu下的一个软件安装方式,它是基于debain。
yum是redhat、centos下的一个软件安装方式,它是基于Linux的
rpm: 软件管理,用于安装 卸载 .rpm软件

rpm:  软件管理;   redhat的软件格式 rpm     r=redhat  p=package   m=management
	用于安装 卸载 .rpm软件
apt-get:适用于deb包管理式的操作系统,
	主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。

二十八、Linux下useradd与adduser的区别

1.adduser会提示设置密码,而useradd不会
2.使用useradd时,如果后面不添加任何参数选项,
例如:#sudo useradd test创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统Shell。
3.adduser会创建用户目录,比如/home/freebird freebird是用户,useradd不会
4.adduser会询问全名,房间号码,电话号码等用户信息,useradd不会

二十九、CI/CD 是什么

CI(Continuous integration)持续集成
CD(Continuous Delivery)持续交付

三十、shell脚本

for循环:				       while<条件表达式>		if<条件表达式>
for 变量名 in 【变量取值列表】		do			      then
do					                   指令···		       指令
循环体				                done			fi
done

三十一、数据结构

深度优先遍历是采用 栈
广度优先遍历是采用 队列
广度优先遍历:从上往下对每一层依次访问,在每一层中,从左往右(也可以从右往左)访问结点,访问完一层就进入下一层,直到没有结点可以访问为止。

深度优先搜素算法:不全部保留结点,占用空间少;有回溯操作(即有入栈、出栈操作),运行速度慢。
广度优先搜索算法:保留全部结点,占用空间大; 无回溯操作(即无入栈、出栈操作),运行速度快。

三十二、版本管理工具

SVN —集中式的版本控制系统,只有一个中央数据仓库,如果中央数据仓库挂了或者访问不可访问,所有的使用者无法使用SVN,无法进行提交或备份文件。

git —分布式的版本控制系统,在每个使用者电脑上就有一个完整的数据仓库,没有网络依然可以使用Git。
SVN和Git的区别
第一: 最核心的区别Git是分布式的,而Svn不是分布的。Git跟Svn一样有自己的集中式版本库和Server端,但Git更倾向于分布式开发。 git是分布式的scm,svn是集中式的。(最核心)
第二:Git把内容按元数据方式存储,而SVN是按文件:因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。.git目录的体积大小跟.svn比较,你会发现它们差距很大。
第三:git可离线完成大部分操作,svn则不能。
第四:git有着更优雅的分支和合并实现,Git创建分支要比SVN快的多得多。
第五:git有着更强的撤销修改和修改历史版本的能力。
第六:git速度更快,效率更高。

三十三、怎么查询日志

tail 
-f   --循环读取
tail -n 100 test 查询日志尾部最后100行
tail -n +100 test  查询100行之后的所有日志
tail -fn 10 test  循环实时查看最后10行记录

head
head -n   1000  test   查询日志中的头10行日志
head -n  -1000  test   查询日志除了最后10行的其他所有日志

cat 命令 、vim命令(编辑模式、末行模式、命令模式)---?:搜索关键字

三十四、linux日志文件说明

/var/log/message :几乎所有的开机系统发生的错误都会在此记录;
/var/log/secure :记录登录系统存取数据的文件;例如:pop3,ssh,telnet,ftp等都会记录在此
/var/log/maillog :记录邮件的存取和往来;
/var/log/cron :用来记录crontab这个服务的内容;
/var/log/spooler :与UUCP和news设备相关的日志信息
/var/log/boot.log :记录一些开机或者关机启动的一些服务显示的启动或者关闭的信息;
/var/log/wtmp :记录登录这的信息记录,被编码过,所以必须以last解析;

三十五、linux的开机启动顺序概述

1、 主机加电自检,加载 BIOS 硬件信息。
2、 读取 MBR 的引导文件(GRUB、LILO)。
3、 引导 Linux 内核。
4、 运行第一个进程 init (进程号永远为 1 )。
5、 进入相应的运行级别。
6、 运行终端,输入用户名和密码。

三十六、Linux系统的优化

更新yum源     

清空iptables    

关闭selinux和防火墙
关闭selinux:
临时关闭:setenforce 0
永久关闭:vim /etc/selinux/config
关闭防火墙:
systemctl disable  firewalld   

对于普通用户的授权管理  等

三十七、docker与虚拟机的区别是什么

1、docker启动快速属于秒级别,而虚拟机通常需要几分钟去启动;
2、性能损耗不同,docker需要的资源更少;
3、隔离性不同,docker属于进程之间的隔离,隔离性较弱,而虚拟机可以实现系统级别的隔离。

1、启动速度不同
docker 启动快速属于秒级别。虚拟机通常需要几分钟去启动。

2、性能损耗不同
docker 需要的资源更少,docker 在操作系统级别进行虚拟化,docker 容器和内核交互,几乎没有性能损耗,性能优于通过 Hypervisor 层与内核层的虚拟化。

3、系统利用率不同
docker 更轻量,docker 的架构可以共用一个内核与共享应用程序库,所占内存极小。同样的硬件环境,Docker 运行的镜像数远多于虚拟机数量,对系统的利用率非常高。

4、隔离性不同
与虚拟机相比,docker 隔离性更弱,docker 属于进程之间的隔离,虚拟机可实现系统级别隔离。

5、安全性不同
虚拟机的安全性比容器好一些,docker 的安全性更弱。Docker 的租户 root 和宿主机 root 等同,一旦容器内的用户从普通用户权限提升为 root 权限,它就直接具备了宿主机的 root 权限,进而可进行无限制的操作。虚拟机租户 root 权限和宿主机的 root 虚拟机权限是分离的,并且虚拟机利用如 Intel 的 VT-d 和 VT-x 的 ring-1 硬件隔离技术,这种隔离技术可以防止虚拟机突破和彼此交互,而容器至今还没有任何形式的硬件隔离,这使得容器容易受到攻击。docker与宿主机共享内核、文件系统等资源,更有可能对其他容器、宿主机造成影响。

6、可管理性不同
docker 的集中化管理工具还不算成熟。各种虚拟化技术都有成熟的管理工具,例如 VMware vCenter 提供完备的虚拟机管理能力。

7、可用和可恢复性不同
docker 对业务的高可用支持是通过快速重新部署实现的。虚拟化具备负载均衡,高可用,容错,迁移和数据保护等经过生产实践检验的成熟保障机制,VMware 可承诺虚拟机 99.999% 高可用,保证业务连续性。

8、创建、删除速度不同
虚拟化创建是分钟级别的,Docker 容器创建是秒级别的,Docker 的快速迭代性,决定了无论是开发、测试、部署都可以节约大量时间。

9、交付、部署速度不同
虚拟机可以通过镜像实现环境交付的一致性,但镜像分发无法体系化;Docker 在 Dockerfile 中记录了容器构建过程,可在集群中实现快速分发和快速部署;

相关文章:

  • 【小程序websocket前后端交互】uniapp写微信小程序聊天功能功能,websocket交互功能,心跳重连【详细注释,复制即用】
  • 四线法与电桥
  • Linux文件属性与权限
  • https://app.hackthebox.com/machines/Inject
  • Spring —— Spring简单的读取和存储对象 Ⅱ
  • 渗透测试之冰蝎实战
  • Mybatis、TKMybatis对比
  • Microsoft Office 2019(2022年10月批量许可版)图文教程
  • 《谷粒商城基础篇》分布式基础环境搭建
  • 哈希表题目:砖墙
  • Vue 3.0 选项 生命周期钩子
  • 【车载嵌入式开发】AutoSar架构入门介绍篇
  • 【计算机视觉 | 目标检测】DETR风格的目标检测框架解读