1.进程管理
一、进程管理
1.进程简介
首先我们要了解,什么是进程?
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态。
程序: 二进制文件,静态 /usr/bin/passwd ,/usr/sbin/useradd
进程: 是程序运行的过程, 动态,有生命周期及运行状态。
进程的含义为正在运行的程序,包括这个运行的程序所占用的系统资源。进程是具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的一个独立单位。同一个程序,同一时刻被两次运行了,它们就是两个独立的进程。
进程的生命周期是指父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。
每个新进程分配一个,唯一的进程 ID (PID),满足跟踪安全性之需。任何进程都可以创建子进程。所有进程都是第一个系统进程的后代。
进程的状态:1.就绪态:进程已经具备运行的条件,但是CPU还没分配过来。
2.运行态:进程占用CPU,并在CPU上运行。
3.阻塞态:进程因等某件事发生而暂时不能运行。
不同的进程对系统资源的需求是不一样的,有些进程属于IO密集型,有些进程属于CPU密集型,等等。
进程状态产生的原因:
在多任务处理操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程。在进程运行时,它对CPU 时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。
二、查看进程
2.1 静态查看进程
- PS,相当于windows系统里的进程管理
- ps aux 输出的字段含义 如下图所示:
动态查看进程top 、使用信号控制进程kill 、进程优先级nice
- 进程排序
语法:
ps aux – sort %cpu 以CPU占比升序排列
ps aux – sort -%cpu 以CPU占比降序排列
- 进程的父子关系
通过 ps -ef 查看进程的父子关系。 观察PID和PPID
动态查看精彩Top
常用内部指令
h|?帮助
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序
< 向前 >向后 z 彩色,Z设置彩色,使用数字调整
在top中显示的优先级有两个,PR值和nice值
NI: 实际nice值
PR(+20): 将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39
nice 值越大: 表示优先级越低,例如+19
nice 值越小: 表示优先级越高,例如-20
3.作业控制jobs
3.1简介
作业控制是一个命令行功能,也叫后台运行。
关键词介绍:
-
foreground fg 前台进程:是在终端中运行的命令,占领终端。
-
background bg 后台进程:没有控制终端,它不需要终端的交互。看不到,但是在运行
4.管理远程主机
Screen是一款用于会话终端切换的多重视视窗管理软件。用户可以通过该软件同时连接多个本地或远程主机。当远程连接一台主机时,如果出现连接非正常中断,只要Screen没有终止运行,再次登录到主机上执行“screen-r”命令,就可以恢复此前在其内部运行的会话。使用yum 安装 Screen,显示完毕即成功安安装,具体如下所示。
2.I/O重定向与管道
一、标准输入和标准输出
1.程序:指令+数据;
数据:
读入数据:Input
输出数据:Output
2.打开的文件都有一个fd:file descriptor(文件描述符)
3.Linux给程序提供的三种I/O设备:
标准输入:0,默认接受来自键盘的输入;
标准输出:1,显示器(默认输出到终端窗口)
标准错误输出:2,显示器(默认输出到终端窗口)
二、把标准输出和标准错误输出重定向到文件
1.标准输出和标准错误输出可以被重定向到文件:
格式:命令 操作符号 文件名;
支持的操作符号:
>:把标准输出重定向到文件;
2>:把标准错误输出重定向到文件;
&>:把标准输出和标准错误输出重定向到文件;
2.输出重定向:COMMAND > NEW_POS,COMMAND >> NEW_POS;
>:覆盖重定向:文件不存在,则会自动创建;文件如果有内容,则会覆盖;
>>:追加重定向,在原有内容基础上,追加内容;新内容会追加至目标文件尾部;
set -C:禁止将内容覆盖已有文件,但可追加;强制覆盖:>|;
set +C:允许覆盖;
2>:覆盖重定向标错误输出数据流;
2>>:追加重定向错误输出数据流;
标准输出和错误输出各自定向至不同位置:
COMMAND > /path/to/somfile 2> /path/to/err.out
eg:ls /boot /ddddd /testdir/f1 2> /testdir/f2
合并标准输出和错误输出为同一个数据流进行重定向:
&>:覆盖重定向;
&>>:追加重定向;
3.():合并多个程序的标准输出
eg:(pwd;ls) > /testdir/all.log
三、输入重定向:<
1.tr命令
tr:转换或删除字符;
语法:tr [OPTION]...SET1 [SET2]
字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
字符集2:指定要转换成的目标字符集。
OPTION:
-c:取字符集的补集(也就是取反);
-d:删除所有属于第一字符集的字集;
-s:把连续重复的字符以单独一个字符表示;也可以用-s来转换字符(等同于tr [a-z] [A-Z] < /etc/issue);
-t:将第一个字符集对应字符转化为第二字符集对应的字符;
字符集表示方法:
[:lower:]:任意小写字母;
[:upper:]:任意大写字母;
[:alpha:]:任意大小写字母(不区分大小写);
[:alnum:]:任意数字和字母;
[:blank:]:水平空白字符;
[:space:]:水平或垂直空白字符;
[:punct:]:标点符号;
[:print:]:可打印字符;
[:cntrl:]:控制(非打印)字符;
[:graph:]:图形字符;
[:xdigit:]:十六进制字符;
速记符含义八进制方式
\b Ctrl-H 退格符\010
\f Ctrl-L 走行换页\014
\n Ctrl-J 新行\012
\r Ctrl-M 回车\015
\t Ctrl-I tab键\011
四、多行标准输入重定向
1.使用“<<终止词”命令从键盘把重导向给标准输入;
五、管道
1.管道(使用符号“|”表示)用来连接命令;
命令1 | 命令2 | 命令3 | ...
六、重定向到多个目标(tee)
tee命令:从标准输入读取并写入标准输出和文件
1.命令1 | tee 文件名 | 命令2
把命令1的标准输出保存在文件名中,然后管道输入给命令2;
2.使用:
2.1.保存不同阶段的输出;
2.2.同时查看和记录输出;
标签:输出,重定向,字符集,标准,管道,Linux,进程,CPU From: https://www.cnblogs.com/Huan07/p/17860365.html