Linux
Linux的体系结构
体系结构主要分为用户态(用户上层活动)和内核态
- 内核:本质是一段管理计算机硬件设备的程序
- 系统调用:内核的访问接口,是一种不能再简化的操作
- 公用函数库:系统调用的组合拳(系统调用封装)
- Shell:命令解释器,可编程
查找特定的文件
- find
find ~ -name "file"
:精确查找文件find ~ -name "file*"
:模糊查找文件find ~ -iname "file"
:不区分文件名大小写去查找文件
检索文件内容
- grep
对文件内容做统计
- awk
awk '{print $1,$4}' file
awk '$1=="tcp" && $2==1 {print $0}' file
批量替换文件内容
- sed
sed -i 's/^Str/String/' file
sed -i 's/\./\;/' file
sed -i 's/\./\;/g' file
top
- 显示,管理执行中的程序
ps
- 展示程序运行情况
meminfo
- 查看内存信息
cat /proc/meminfo
free
- 查看内存运行情况
vmstat
- 虚拟内存统计,监视操作系统的虚拟内存,进程,IO读写,CPU活动等
df
- 展示磁盘使用情况
du
- 显示目录或文件的大小
netstat
- 展示网络状态
route
- 显示和操作路由表
lsof
同步&异步&阻塞&非阻塞
- 同步阻塞:客户端发送请求给服务端,此时服务端处理任务时间很久,则客户端被服务端阻塞了,所以客户端会一直等待服务端的响应,此时客户端不能做事,服务端也不会接受其它客户端的请求。简单粗暴,但是效率不高
- 同步非阻塞:客户端发送请求给服务端,此时服务端处理任务时间很久,这个时候客户端会一直等待响应,但是服务端可以处理其它请求,过一会回来。高效,一个服务端可以处理很多请求,不会因为任务没有处理完而堵着
- 异步阻塞:客户端发送请求给服务端,此时服务端处理任务时间很久,但是客户端不会等待服务器响应,它可以做其它任务,等待服务器处理完毕后把结果发送给客户端的回调,客户端得到回调后再处理服务的响应。避免客户端一直处于等待状态,优化用户体验,类似ajax异步请求
- 异步非阻塞:客户端发送请求给服务端,此时服务端处理任务时间很久,这个时候的任务虽然处理时间很久,但是客户端可以做其它任务,通过回调函数处理响应;同时服务是非阻塞的,服务端可以处理其它任务。高效
- 异步的优势显而易见,优化用户体验;非阻塞使得系统资源开销远远小于阻塞模式,因为系统不需要创建新的进程(或线程),大大节省了系统开销,多出来的系统资源可以给其它中间件服务