以静态保存在硬盘、光盘等介质中能被计算机识别的可执行代码和数据。vim
进程是程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操做系统结构的基础,是在CPU及内存中运行的动态车程序代码,一个进程能够建立一个或多个子进程,而这个进程就是它子进程的父进程,每一个进程还包含多个线程。
进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;任何进程均可以同其余进行一块儿并发执行;进程是系统进行资源分配和调度的一个独立单位;进程由程序,数据和进程控制块三部分组成。缓存
在早期的操做系统中并无线程的概念,进程是拥有资源和独立运行的最小单位,也是程序执行的最小单位。可是,因为计算机的发展,对CPU的要求愈来愈高,进程之间的切换开销较大,已经没法知足愈来愈复杂的程序的要求了。因而就发明了线程,线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。并发
- 线程是程序执行的最小单位,而进程是操做系统分配资源的最小单位;
- 一个进程由一个或多个线程组成,线程是一个进程中代码的不一样执行路线
- 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其余进程不可见;
- 线程上下文切换比进程上下文切换要快得多。
咱们能够看到下图,首先我们的电脑是由硬件组成,如:主板、CPU、内存、硬盘、显卡等;而后咱们会在硬件的基础上给电脑装上一个系统,它至关于计算机的管理者,它负责任务的调度,资源的分配和管理,统领整个计算机硬件;有了系统咱们才能在电脑上安装一些不一样功能的应用程序。而咱们用的VMware虚拟机就是一个运行程序,当咱们运行虚拟机时系统就会建立相关的多个进程,而进程中又分为多个不一样的线程。如图中的VIO、VPU、VMEM的即是不一样的线程,而这些线程一块儿组成了一个进程。编辑器
咱们使用不一样的查看命令所查看到的进程状态也不一样。ide
ps命令:----------查看静态的进程统计信息操作系统
经常使用的命令选项组合:命令行
1.ps aux 命令。线程
a:----------显示当前终端下的全部进程信息,包括其余用户的进程。 u:----------使用以用户为主的格式输出进程信息。 x:----------显示当前用户在全部终端下的进程,tty本地终端,ps/0远程终端。
下面我来解释一下输出的进程信息的含义:3d
USER:启动该进程的用户帐号名称 PID:该进程的ID号,在当前系统中是惟一的 TTY:该进程在哪一个终端上运行。“?”表示未知,通常当前终端都是“?” %CPU:该进程占用CPU的百分比 %MEM:该进程占用内存的百分比 VSZ:占用虚拟内存(swap空间)的大小 RSS:占用常驻内存(物理内存)的大小 STAT:显示了进程当前的状态,如S(可中断休眠)、s(父进程)、D(不可中断休眠)、R(运行)、l(多线性进程)Z(僵尸进程)、<(高优先级)、N(低优先级)、+(前台进程)。 START:该进程启动的时间 TIME:该进程占用CPU时间 COMMAND:启动该进程的命令的名称
2.ps -elf命令。code
-e:---------显示系统内的全部进程信息。 -l:----------使用长(long)格式显示进程信息。 -f:----------使用完整的(full)格式显示进程信息。
下面我来解释一下输出的进程信息的含义:
UID:该进程用户ID PID:该进程的ID号 PPID:该进程的父进程的ID号 C:该进程的CPU占用率,以整数表示 PIR:该进程用户态的优先级 NI:该进程的内核态的优先级(数值范围-20到19) ADDR:“-”表示进程正在运行 SZ:该进程占用swap交换分区的总量 WCHAN:该进程在内核中的名称 STIME:进程的启动时间 TTY:与进程关联的终端 TIME:进程占用CPU的累计时间 CMD:启动该进程的命令的名称
3.ps aux | grep login,ps命令用管道操做加上“grep”过滤命令能够查看指定进程的信息。
top命令:----------查看动态的进程排名信息(3s刷新一次)
下面我解释一下输出进程信息所表明的含义:
Tasks(系统任务)信息:total(总进程数),running(正在运行进程数),sleeping(休眠进程数),stopped(停止进程数),zombie(僵尸进程数)。
%CPU信息:us(用户占用),sy(内核占用),ni(优先级调度占用),id(空闲CPU),wa(I/O等待占用),hi(硬件中断占用),si(软件中断占用),st(虚拟化占用)。
KiB(单位) Mem(内存)信息:total(总内存空间),free(可以使用内存),used(已用内存),buff/cache(缓存区域)
KiB(单位)Swap(交换空间)信息:total(总交换空间),free(可以使用交换空间),used(已用交换空间),avail Mem(内存使用量)。
在top命令的全屏操做界面中,按[C]键根据CPU占用状况对进程列表进行排列,或按[M]键根据内存占用状况进行排列,按[N]键根据启动时间进行排序,按[h]键得到top程序的在线帮助信息,按[q]键能够退出top程序。按[k]键,而后在列表上方将会出现“PID to kill”的提示信息,根据提示输入指定进程的PID号可终止对应的进程。
pgrep命令:----------根据特定条件查询进程PID
经常使用选项:
-l:------------显示进程名 -U:----------指定特定用户 -t:-----------指定终端
pstree命令:----------以树形结构列出进程信息
经常使用选项:
-a:----------显示详细信息 -u:----------显示进程对应的用户名 -p:----------显示进程的PID
查看指定用户进程“树”,直接用命令“pstree -ap 用户名”便可。
1.当咱们用前台启动复制一个较大的文件时,咱们须要等待操做完成才能进行其它命令的输入。
2.当咱们后台启动时任然能够进行命令输入。
at命令:----------设置一次性计划任务
格式:at ...[HH:MM]...[yyyy-mm-dd] 例如:at 18:00 2019-08-24
[Ctrl+D]键:----------------提交计划任务 atq命令:-------------------查看全部等待执行计划任务 atrm命令:-----------------删除等待执行的计划任务
1.设置一条计划任务,而后等待执行,时间到达后自动执行成功。
2.设置两个计划任务,而后用“atq”命令查看,再用“atrm”命令删除一个任务。
crontab命令:----------设置周期性计划任务
经常使用选项:
-e [-u 用户名] ----------编辑某个用户的cron服务 -l [-u 用户名]-----------列出某个用户cron服务的详细内容 -r [-u 用户名]-----------删除某个用户的全部cron服务
crontab任务配置的格式:
每一个字段的取值范围:
时间数值的特殊表示方法:
“ * ” :表示该范围内的任意时间 “ ,”:表示间隔的多个不连续时间点 “ - ” :表示一个连续的时间范围 “ / ” :指定间隔的时间频率
例子:
1.编辑root用户的cron服务,不指定用户则是当前用户。
2.进入cron服务编辑界面,用法与vim编辑器相似。添加一条cron任务后,“wq”保存退出。
3.等到时间到了后,查看/opt/目录,zhangsan目录已经复制到/opt/目录下了。
4.用“-l”选项查看cron任务列表,再用“-r”选项删除全部cron任务。
(1)[Ctrl+Z]组合键:将当前进程挂起,即调入后台并中止执行。
(2)jobs命令:查看处于后台的任务列表,结合“-l”选项能够显示PID。
(3)fg命令:将后台进程恢复到前台运行,可指定任务序号。
(4)bg命令:将后台中止的任务恢复运行,且继续在后台运行。
(1)[Ctrl+C]组合键:强制中断正在执行的命令
(2)kill命令:用于终止指定PID号的进程,须要使用进程的PID号做为参数,结合“-9”选项能够强制终止进程。慎用,可能会致使数据丢失。
(3)killall命令:用于终止指定名称的全部进程,killall命令也有“-9”选项
(4)pkill命令:根据特定条件终止相应的进程
经常使用选项:(大部分选项与pgrep命令基本相似)
-U:-------------根据进程所属的用户名终止相应进程 -t:--------------根据进程所在的终端终止相应进程 -9:-------------强制终止进程
1.能够看到咱们再终端用zhangsan用户登陆。
2.此时咱们在远程终端用pkill命令强制关闭zhangsan用户的全部进程。
3.而此时终端上的zhangsan用户已经被强制注销了。