欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Linux系统学习笔记

程序员文章站 2022-04-07 11:03:04
1.简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接: 第一次握手:建立连接时,客户端发送sy...

1.简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接:

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据。

通过四次挥手来关闭TCP连接:

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。

2.进程和线程的区别是什么

线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位;
线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源;
一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。

3.查询file.txt以abc结尾的行

cat file.txt |grep 'abc$'
4.删除file.txt文件中的空行
sed -i '/^$/d' file.txt

5.打印file.txt文件中的第10行

sed -n '10p' file.txt
备份:mysqldump -uroot -ppassword test > /data/backup`date +%Y-%m-%d`.sql
恢复:mysqldump -uroot -ppassword  < /data/backup`date +%Y-%m-%d`.sql

7.用netstat统计系统当前tcp连接的各种状态的连接数。

netstat -t|wc -l

8.linux下如何将GBK编码格式的test_gbk.txt文件转换成UTF-8编码格式,转化后的文件名为 test_utf8.txt

iconv -f GBK -t UTF-8 test_gbk.txt -o test_utf8.txt

9.说说你用过哪些监控软件,并简述其原理及适用场景

Cacti 是一个用 rrdtool 来画图的网络监控系统,多用于网络流量监控;Nagios 适合监视大量服务器计算环境,图形界面很弱,报警机制很强;zabbix属于商业开源软件,功能强大,机制较复制。

10.写出查看linux系统性能的命令,如cpu、内存、流量、io等

iostat top mpstat sar iftop

11.说说nginx的upstream支持的分配策略,并简述其原理

轮询是upstream的默认分配方式,即每个请求按照时间顺序轮流分配到不同的后端服务器,如果某个后端服务器down掉后,能自动剔除。 weight轮询的加强版,即可以指定轮询比率,weight和访问几率成正比,主要应用于后端服务器异质的场景下。 ip_hash每个请求按照访问ip(即Nginx的前置服务器或者客户端IP)的hash结果分配,这样每个访客会固定访问一个后端服务器,可以解决session一致问题。 fair fair顾名思义,公平地按照后端服务器的响应时间(rt)来分配请求,响应时间短即rt小的后端服务器优先分配请求。 url_hash 与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。

12.crontab定时:在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh 怎么实现

0 6-12/2 * 11 *  root /usr/bin/httpd.sh

13.iptables禁止 ip 10.10.10.1 访问本地80端口

iptables -t filter -I INPUT -s 10.10.10.1 -p tcp –dport 80 -j DROP

14.找出在文件a中但不在文件b中的内容,用命令后编写脚本实现

diff a b |grep "<" |awk '$1=" "'

15.编写shell循环创建100个用户,用户名格式user_[0~99]

for i in {0..99};do

    useradd user_$i

done