保存在硬盘、光盘等介质中的可执行的代码和数据
静态保存的代码
在CPU及内存中运行的程序代码
动态执行的代码
父、子进程
每个程序可以创建一个或多个进程
线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一个进程至少有一个执行线程;
线程也被称为轻量级进程;
线程是进程内部的一部分;
方法一:
[root@localhost ~]# ps aux
-a:显示当前终端下的所有进程信息,包括其他用户的进程。
-u:使用以用户为主的格式输出进程信息。
-x:显示当前用户在所有终端下的进程信息。
上述输出信息中,第一行为列表标题,其中各字段的含义描述如下。
USER:启动该进程的用户账号的名称。
PID:该进程在系统中的数字ID号,在当前系统中是唯子的。
%CPU:CPU占用的百分比。
%MEM:内存占用的百分比。
VSZ:该进程使用的虚拟内存量(KB)。
RSS:该进程占用的物理内存量(KB)。
TTY:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?
STAT它们含意如下:
进程状态。常见的状态有以下几种:
-D:不可被唤醒的睡眠状态,通常用于I/o情况。系统守护进程
-R:该进程正在运行,可被运作
-S:该进程处于唾眠状态,可被唤醒。
-T:停止状态,可能是在后台暂停或进程处于除错状态。调试程序执行
-W:内存交互状态(从2.6内核开始无效)。
-x:死掉的进程(应该不会出现)。
-Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。
-<:高优先级(以下状态在BSD格式中出现)。
-N:低优先级。
-L:被锁入内存。
-s:包含子进程。
-l:多线程(小写L)。
+:位于后台。
-C:进程占用CPU的百分比
方法二:
ps -elf #将以长格式显示系统中的进程信息
-e :显示系统内的所有进程信息。
-l:使用长格式显示进程信息。
-f:使用完整的格式显示进程信息。
.各列的解释
F:内核分配给进程的系统标记。
s:进程的状态。
UID:启动这些进程的用户’。
PID: 进程的进程ID.
PPID:父进程的进程号(如果该进程是由另一"个进程启动的)
c:进程生命周期中的cPU利用率。占用率高的疑似程序可杀
PRI:进程的优先级(越大的数字代表越低的优先级)。
NI :谦让度值用来参与决定优先级。
ADDR:进程的内存地址。
sZ:假如进程被换出,所需交换空间的大致大小。
wCHAN:若该进程在睡眠,则显示睡眠中的系统函数名。
STIME:进程启动时的系统时间。
TTY:进程启动时的终端设备。
pts/0255代表虚拟终端,一般是远程连接的终端;
ttyltty7代表本地控制台终
TIME:运行进程需要的累计ceu时间。
CMD:进程的启动命令。
top命令
[root@localhost ~]#top 查看动态的进程排名信息
pgrep命令
根据特定条件查询进程PID信息
-l 长格式显示进程
[root@localhost ~]# pgrep -l "log" 424 xfs-log/dm-0 639 xfs-log/sda1 665 xfs-log/dm-3 672 xfs-log/dm-2 753 abrt-watch-log 754 abrt-watch-log 755 rsyslogd 758 systemd-logind
-u 显示指定用户的进程
[root@localhost ~]# pgrep -l -u zy 3639 bash
pstree命令
以树形结构列出进程信息
[root@localhost ~]# pstree -aup
-p:列出对应PID号
-u:列出对应用户名
-a:显示完整信息
[root@localhost ~]# pstree -ap zy bash,3639 └─vim,3792 /opt/passwd
可不影响其他命令操作
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&”符号
[root@localhost opt]# cp -r /mnt/* /opt/zy & [1] 3912
输出信息中包括后台任务序号、PID号
at [HH:MM] [yyyy-mm-dd]
[root@localhost ~]# at 13:28 at> reboot at> <EOT> job 1 at Sat Sep 11 13:28:00 2021 [root@localhost ~]# Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(linux) at 13:28:01. Type `help' to learn how to use Xshell prompt. [C:\~]$
[root@localhost ~]# atq 3 Sat Sep 11 13:32:00 2021 a root
查看任务后
[root@localhost ~]# atrm 3 [root@localhost ~]# atq
使用crontab命令,设置周期性计划任务
时间周期格式,后面跟命令
/etc/crontab
# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed
如果没有方括号就是默认当前用户
编辑计划任务
crontab -e [-u 用户名]
查看计划任务
crontab -l [-u 用户名]
删除计划任务
crontab -r [-u 用户名]
分、时、日、月、周 任务内容
字段 | 说明 |
---|---|
分钟 | 取值为从0到59之间的任意整数 |
小时 | 取值为从0到23之间的任意整数 |
日期 | 取值为从1到31之间的任意整数 |
月份 | 取值为从1到12之间的任意整数 |
星期 | 取值为从0到7之间的任意整数,0或7代表星期日 |
命令 | 要执行的命令或程序脚本 |
将当前进程挂起,即调入后台并停止执行
查看处于后台的任务列表
[root@localhost opt]# jobs [1]+ 运行中 cp -i -r /mnt/* /opt/zy
将后台进程恢复到前台运行,可指定任务序号
中断正在执行的命令
kill用于终止指定PID号的进程
[root@localhost ~]# pgrep -l "sshd" 1149 sshd 3588 sshd 4011 sshd [root@localhost ~]# kill 1149 [root@localhost ~]# pgrep -l "sshd" 3588 sshd 4011 sshd
kilall用于终止指定名称的所有进程
后台程序没法杀,用9选项用于强制终止
根据特定条件终止相应的进程
pkill -U “用户名”
常用命令选项
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
-9:强制杀掉进程
程序、进程、线程
查看进程命令
ps aux -elf
top
pgrep
pstree
查看子进程
1.pstree -ap
2.查看 /proc/进程号/stat
启动进程
前台 直接写命令
后台 末尾加&
jobs 查看后台的任务列表
fg 加任务序号 后台调出
ctrl+z挂起
kill -9 PID
pkill -9 PID
killall 杀掉全部进程
at 小时:分钟 年-月-日
命令
ctrl+d 运行
atq 序号查看
atrm 序号 删除任务
cronttab -elr -u 用户
编辑中的路径要写绝对路径,可用which查询