Linux基础8
RAID级别
RAID0:等量存储,至少由两块磁盘组成,同一个文档分散并行存储,提高数据的读写速度,没有冗余功能
RAID1:完整备份,至少由两块磁盘组成,同一个文档复制成多份分散存储,提高数据的安全性,没有提高读写速度
RAID5:至少由三块磁盘组成,同一份文档分散写入不同磁盘,每个磁盘中都有数据校验,允许坏一块磁盘的数据,校验数据会占用磁盘的三分之一存储空间
RAID10:至少由四块磁盘组成,先将4块磁盘组成两组RAID1,再讲两组RAID1组成一个RAID0,技能提高数据读写速度,还有冗余功能,可用容量是总容量的一半
实现RAID方式
- 实现RAID通常有三种方式,通过软件技术实现RAID功能(软RAID),不稳定
- 外接式磁盘阵列柜,被常用在大型服务器上,不过这类产品价格昂贵
- RAID磁盘阵列卡,分为服务器自带和额外安装,硬RAID比软RAID更安全稳定,RAID卡带有缓存功能可实现数据自动恢复,RAID卡有电池
进程管理
什么是程序:用计算机语音编写的命令序列集合,用来实现特定的目标或解决特定的问题,程序占用磁盘空间,程序是静态并且是永久的
什么是进程:正在运行中的程序叫进程,占用内存空间,进程是动态的,进程是有生命周期的,进程有自己的独立内存空间,每启动一个进程,系统就会为它分配内存空间并分配一个PID号。每个进程都会对应一个父进程,而父进程可以复制多个子进程,每种进程都有两种方式存在,前台与后台,一般进程都是以后台方式运行
什么是线程:线程也被称为轻量级进程,被包含在进程中,是进程的一个子集,是进程中的实际运作单位,一个进程中可以并发多个线程,每条线程执行不同的任务,每个线程都是独立的,线程之间共享进程的内存空间,在多线程的程序中,由于线程很“轻”,故线程的切换非常迅速且开销小
查看进程树
pstree以树状结构显示进程信息,包括进程之间的关系
常用选项
-p #显示进程PID
-a #显示完成的命令行
-u #列出每个进程所属账号名称
ps aux:Unix格式静态查看系统进程,查看系统所有进程信息
a #显示当前终端所有进程
u #以用户格式输出
x #当前用户在所有终端下的进程
ps -ef:Linux格斯静态查看系统进程,查看系统所有进程新题
-e #显示系统所有进程
-f #显示最完整的进程信息
-l #以长格式输出信息
top查看系统健康状态
常用选项
-d #指定刷新秒数,默认3秒刷新一次
交互界面显示指令
键盘上下键翻行
h #获取交互模式帮助
P #按照CPU使用资源排序
M #按照内存使用资源排序
q #退出
#第一行top每个字段含义如下:
第二列:21:22:04:当前系统时间
第三列:up 12:13:系统运行时间,该系统以运行12小时13分钟(up 10 day,12:13 代表运行10天12小时13分钟)
第四列:2 users:当前系统登录终端数量
第五列:load average: 0.00, 0.01, 0.05:CPU1分钟,5分钟,15分钟之前平均负载量,根据CPU核数判断系统CPU负载量,1核CPU若高于1代表负载过高,2核CPU若高于2代表负载过高,依次类推。。。
#第二行Tasks每个字段含义如下:
第二列:115 total:当前系统中进程的总数量
第三列:1 running:正在运行的进程数量
第四列:114 sleeping:正在睡眠的进程数量
第五列:0 stopped:正在停止的进程数量
第六列:0 zombie:僵尸进程数量,僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。
#查找僵尸进程与其父进程
ps -A -o stat,ppid,pid,cmd | grep "^Zz"
命令解释:
-A 参数列出所有进程
-o 自定义输出字段,我们设定显示字段为 stat(状态), ppid(父进程id), pid(进程id),cmd(命令)这四个参数,因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程
#杀死进程
kill -9 + 父进程号
#第三行%Cpu(s)每个字段含义如下
第二列:0.0 us:用户进程占用的CPU百分比
第三列:0.0 sy:系统进程占用的CPU百分比
第四列:0.0 ni:改变过优先级的用户进程占用的CPU百分比
第五列:100.0 id:空闲的CPU百分比(重点关注)
第六列:0.0 wa:等待输入/输出的进程的占用CPU百分比
第七列:0.0 hi:硬中断请求服务占用的CPU百分比
第八列:0.0 si:软中断请求服务占用的CPU百分比
第九列:0.0 st:虚拟时间百分比,当有虚拟机时,虚拟CPU等待实际CPU的时间百分比
#第四行KiB Mem每个字段含义如下:
第二列:1863224 total:物理内存总量,单位KB
第三列:1502516 free: 空闲内存总量,单位KB
第四列:108240 used: 以使用的内存总量,单位KB
第五列:252468 buff/cache:块设备与普通文件占用的缓存数量
#第五行KiB Swap每个字段含义如下:
第二列:2097148 total:交换空间总量,单位KB
第三列:2097148 free:可用空闲交换空间总量,单位KB
第四列:0 used::以使用的交换空间总量,单位KB
第五列:1565180 avail Mem:可用于进程下一次分配的物理内存数量
#第六行每个字段含义如下:
PID:进程PID号
USER:进程所有者的用户名
PR:进程优先级执行顺序,越小越优先被执行
NI:负值表示高优先级,正值表示低优先级,越小越优先被执行
VIRT:进程使用的虚拟内存总量,单位kb
RES:进程使用的、未被换出的物理内存大小,单位kb
SHR:共享内存大小,单位kb
S:进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU:进程使用的CPU百分比(重点关注)
%MEM:进程使用的物理内存百分比(重点关注)
TIME+:进程使用的CPU时间总计,单位1/100秒
COMMAND:命令名/命令行
检索进程
pgrep通过匹配其程序名,找到匹配的进程
常用选项
-l #输出进程名与PID
-U #检索指定用户进程
-t #检索指定终端进程
-x #精确匹配完成进程名
进程的前后台调度
& #将进程放入后台运行
jobs -l #查看后台进程列表
fg 进程编号 #将后台进程恢复至前台运行
ctrl+z #挂起当前进程并放入后台
bg 进程编号 #激活后台被挂起进程
杀死进程
kill [选项] PID
常用选项:-l #列出可用进程信号
常用信息: -1 重启进程,-9强制杀死进程,-15正常杀死进程(默认)
killall -9 进程名 #强制杀死进程
killall -9 -u 用户名 #强制杀死该用户所有进程
pkill -9 进程名 #强制杀死进程
常用选项:-t 终端号 #提出终端用户
用户登录分析
users who w #查看已登录的用户信息
last #显示登录成功的用户信息
lastb #显示登录失败的用户信息
RPM管理软件包
常用选项
-q #仅查询软件是否安装
-qa #列出所有已经安装在系统中的软件
-qi #列出软件包详细信息
-qf #查询配置文件由哪个软件包产生
-ql #列出与该软件包相关的所有文件与目录的存放位置
-ivh # i安装,v显示详细信息,h显示软件安装进度
-Uvh #升级安装软件包
-e #卸载软件包
--import #导入红帽签名
挂载iso镜像文件
mkdir /mnt/centos
mount /dev/cdrom /mnt/centos
yum软件包管理
常用命令:
yum repolist #列出仓库可用软件包
yum list 软件包名 #查看系统中提供的软件包,包含未安装
yum install软件包名 #安装软件包,-y自动回答yes
yum update 软件包名 #升级软件包版本
yum remove 软件包名 #卸载软件包(会卸载依赖,一般不用)
yum clean all #清除仓库缓存
yum provides 文件名 #查看文件由哪个软件包产生(蛀牙用于查找程序文件)
本地yum源配置
/etc/yum.repo.d/local.repo
[local] #仓库名称
name=local #仓库描述
baseurl=file:///mnt/centos #软件仓库地址
enabled=1 #软件仓库是否启动,0不启动,1启动
gpgcheck=0 #是否检测软件包签名,0不检测,1检测
priority=1 #优先级为1-99之间,数字越小越优先
生成yum仓库缓存:yum makecache
源码包安装方式
下载安装包----安装源码包依赖包----解压源码包并进入源码包路径----使用configure程序检车系统环境并指定安装参数----make将源码包转换成二进制----make install安装源码包
netstat|ss命令用于查看系统中启动的端口信息
-a 显示所有端口信息
-n 以数字格式显示端口号
-t 显示TCP连接的端口
-u 显示UDP连接的端口
-l 显示服务正在监听的端口信息
-p 显示监听端口的程序名
systemd管理服务
常用命令
systemctl start 程序名 #启动服务
systemctl restart 程序名 #重启服务
systemctl stop 程序名 #停止服务
systemctl enable 程序名 #设置服务随机自启
systemctl disable 程序名 #设置服务部随机自启
systemctl status 程序名 #查看服务状态
systemctl is-enabled 程序名 #查看服务是否被设置随机自启
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律