上一篇:Linux学习笔记 #2
Linux学习笔记 #3
下一篇:Linux学习笔记 #4
8 进程
8.1 基本介绍
- 在Linux中,每个执行的程序都称为一个进程。每一个进程都会被分配一个ID号,称为进程号(pid)。
- 进程的存在方式:前台和后台。
- 前台:用户目前的屏幕上可以进行操作的。
- 后台:实际在操作,但屏幕上无法看到的。
一般系统服务都会以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
8.2 查看进程
- 【命令】查看进程:
ps [选项]
8.2.1 ps -aux指令
-
常用选项-1:
-a
:显示当前终端的所有进程信息-u
:以用户的格式显示进程信息-x
:显示后台进程运行的参数
-
一般使用
ps -aux
来查看进程信息:
USER:进程执行用户
PID:进程号
%CPU:当前进程占用CPU的百分比
%MEM:当前进程占用物理内存的百分比
VSZ:当前进程使用的虚拟内存量(KB)
RSS:当前进程占用的固定内存量(KB)
TTY:该进程在那个终端上运行,若与终端无关,则显示?; 若为pts/0等,则表示由网络连接主机进程。
STAT:当前进程的运行状态
START:该进程被触发启动时间
TIME:该进程实际使用CPU运行的时间
COMMAND:进程名,或启动该进程所用的命令或参数STAT的状态:
- S:睡眠
- s:该进程是会话进程的先导进程
- N:进程拥有比普通优先级更低的优先级
- R:正在运行
- D:短期等待
- Z:僵死进程
- T:被跟踪或者被停止
-
可以配合
grep
指令和管道符来筛选特定进程:ps -aux | grep xxx
。
8.2.2 ps -ef指令
- BSD风格的呈现。
- 常用选项-2:
-e
:显示所有进程-f
:以全格式显示
- 一般使用
ps -ef
来查看进程:
UID:用户名
PID:进程的ID
PPID:父进程ID
C:进程占用CPU的百分比
STIME:进程启动到现在的时间
TTY:该进程在那个终端上运行,若与终端无关,则显示?; 若为pts/0等,则表示由网络连接主机进程。
CMD:命令的名称和参数
8.3 终止进程
当某个进程需要被中止时,可对其使用kill命令。
-
【指令】通过进程号终止进程:
kill [选项] 进程号
。 -
【指令】通过进程名终止进程:
killall 进程名称
。也支持通配符。
-
常用选项:
-9
:表示强迫进程立即停止
上一篇:Linux学习笔记 #2
下一篇:Linux学习笔记 #4
8.4 查看进程树
- 【指令】直观地查看进程信息:
pstree [选项]
- 常用选项:
-p
:显示进程的PID-u
:显示进程的所属用户
8.5 动态监控进程
top与ps命令很相似,它们都用来显示正在执行的进程。top与ps最大不同之处在于,top在执行一段时间后,可以对正在运行的进程进行更新。
-
【命令】
top [选项]
- 常用选项:
-d 秒数
:指定top每隔几秒更新(默认3秒)-i
:使top不显示任何闲置或者僵死的进程-p
:通过指定进程ID来仅仅监控某个进程的状态
- 常用选项:
-
top命令说明:
17:05:23
——当前时间
1:46
——系统运行时长
2 users
——用户数
load average
——负载值
Tasks
——系统任务数
%Cpu(s)
——cpu使用情况us
——用户占用
sy
——系统占用
id
——空闲Mem
——内存使用情况
Swap
——交换分区使用情况在此界面进行交互:
操作 功能 P 以CPU使用率排序(默认此项) M 以内存的使用率排序 N 以PID进行排序 q 退出top界面 -
示例
- 查看特定用户的进程(监控特定用户):
- 输入u,回车;
- 输入用户名。
- 终止指定的进程(如结束wzs的登录):
- 输入k,回车;
- 输入要结束的进程ID号;
- 输入signal:9。
- 查看特定用户的进程(监控特定用户):
8.6 监控网络状态
-
【指令】查看系统网络状态:
netstat [选项]
- 常用选项
an
:按照一定的顺序排序输出-p
:显示哪个进程在调用
Proto:网络协议
Local Address:本地地址(Linux的地址)
Foreign Address:外部地址例如Windows通过xshell和Linux的SSHD服务连接:
Linux的本地地址是192.168.219.129,SSHD服务在22号端口进行监听
Windows上的xshell使用的外部地址192.168.219.1,通过端口3472与Linux的SSHD的端口22连接
此时如果有新用户通过xshell连接Linux,就会通过另一个端口与Linux的SSHD的端口22连接 - 常用选项
9 服务管理
9.1 基本介绍
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求(比如mysql,sshd防火墙等),因此又称为守护进程。
9.2 service管理指令
CentOS8.4中似有许多指令做出了更改,以下内容部分不再适用
-
【指令】服务管理:
service 服务名 [start | stop | restart | reload | status]
在CentOS7.0之后,很多服务不再使用service,而是systemctl进行管理。
- service指令管理的服务在/etc/init.d/查看。
- 示例:使用service指令——查看、关闭、启动network。
-
【指令】查看全部服务:
setup
9.3 服务的运行级别
9.3.1 Linux的运行级别
- Linux有7种运行级别(runlevel)。其中常用的是级别3和5。
9.3.2 默认运行级别的查看和设置
- 在CentOS7之后,运行级别的设置进行了简化。
在/etc/initab中:- multi-user.target: analogous to runlevel 3
- graphical.target: analogous to runlevel 5
- 【指令】查看默认运行级别:
systemctl get-default
- 【指令】设置默认运行级别:
systemctl set-default TARGET.target
9.3.3 设置服务的运行级别
- 【指令】查看服务:
chkconfig --list [| grep xxx]
- 【指令】设置某个服务在某个运行级别时的启动或关闭:
chkconfig --level 5 服务名 on/off
9.4 Linux的开机流程
- 开机;
- 进入BIOS;
- 进入程序引导/boot;
- 执行进程1:systemd;
- 确定运行级别;
- 把运行级别对应的服务启动。
9.5 systemctl管理指令
-
语法:
systemctl [start | stop | restart | status] 服务名
systemctl指令管理的服务在/usr/lib/systemd/system查看
指令控制了3和5两个运行级别 -
【指令】查看服务开机启动状态:
systemctl list-unit-files [| grep 服务名]
-
【指令】设置服务的开机启动:
systemctl enable 服务名
-
【指令】关闭服务开机启动:
systemctl disable 服务名
-
【指令】查询某个服务是否是自启动的:
systemctl is-enabled 服务名
-
示例:查看当前防火墙的状态,关闭防火墙和重启防火墙
systemctl status firewalld
systemctl stop firewalld
/systemctl start firewalld
systemctl中,start和stop指令只是临时开启和关闭;要永久启动和关闭(即是否开机启动),需要用enable和disable指令。
9.6 端口
应用场景:防火墙打开的情况下,通过打开指定端口进行通讯。
- firewall指令
- 【指令】打开端口:
firewall-cmd --permanent --add-port=端口号/协议
- 【指令】关闭端口:
firewall-cmd --permanent --remove-port=端口号/协议
- 【指令】重新载入端口使之生效:
firewall-cmd --reload
- 【指令】查询端口是否开放:
firewall-cmd --query-port=端口/协议
- 【指令】打开端口:
10 rpm包
10.1 基本介绍
- rpm:RedHat Package Manager。用于互联网下载包的打包及安装工具,生成具有.RPM扩展名的文件。包含在某些Linux的分发版中。类似Windows的setup.exe。
10.2 rpm包的查询
- 【指令】查询已安装所有rpm软件包:
rpm -qa [| grep xxx]
- 【指令】查询软件包是否安装:
rpm -q 软件包名
- 【指令】查询软件包信息:
rpm -qi 软件包名
- 【指令】查询软件包安装的文件:
rpm -ql 软件包名
- 【指令】查询文件所属的软件包:
rpm -qf 文件全路径名
- 示例:查询火狐的rpm包:
rpm -qa | grep firefox
rpm包的基本格式
名称:firefox
版本号:78.9.0-1
适用操作系统:el8_3.x86_64(表示centos8.x的64位系统)
10.3 rpm包的管理
-
【指令】卸载rpm包:
rpm -e rpm包的名称
示例:卸载火狐的rpm包:
rpm -e firefox
-
【指令】安装rpm包:
rpm -ivh rpm包的全路径名称
参数说明:
i = install(安装)
v = verbose(提示)
h = hash(进度条)
10.4 yum
- yum是一个shell前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且以此安装所有以来的额软件包。
- 【指令】查询yum服务器是否有需要安装的软件:
yum list | grep xxx
- 【指令】安装指定的yum包:
yum install xxx