Linux进阶篇--字符处理和进程管理

本博目录:

  • 一 字符处理
  • 二 进程管理

继上篇Linux进阶篇—文件系统 后,来简单了解一下Linux简单的字符处理和进程管理。

一、 字符处理

1.1 管道的概念

在Linux中,管道是一个固定大小的缓冲区,该缓冲区的大小为4KB。管道是一种使用非常频繁的通信机制,我们可以使用管道符“|”连接进程,由管道连接的进程可以自动运行,管道可以把一个命令的输出内容当做下一个命令的输入内容,两个命令之间只需要使用管道符连接即可。

1.2 使用grep搜索文本

grep [-ivnc] '需要匹配的字符' 文件名
-v 反向匹配
-i 不区分大小写
-c 统计包含匹配的行数
-n 输出行号

我们建立一个文件swc.txt作为搜索文件,如下内容:

what is your name?
Myname is swc.
My First Name is song.
hello,my firends!

Linux进阶篇--字符处理和进程管理_第1张图片

1.3 使用sort排序

sort [-ntkr] 文件名 
-n 采取数字排序
-t 指定分隔符
-k 指定第几列
-r 反向排序

新建一个sort.txt,内容如下:

a.2
c.4
g.5
e.9
b.6
k.0
k.22

Linux进阶篇--字符处理和进程管理_第2张图片

1.4 使用uniq删除重复内容

uniq命令只会对比相邻的行,如果有连续相同的若干行则删除重复内容,仅输出一行。一般和sort一起使用。

uniq [-ic]
-i 忽略大小写
-c 计算重复行数

新建文件uniq.txt,内容如下:

adcde
12345
abcde
12345
12345
abcde

Linux进阶篇--字符处理和进程管理_第3张图片

1.5 cut 截取文本

cut -f 指定的列 -d '分隔符'
cut -c 指定列的字符

Linux进阶篇--字符处理和进程管理_第4张图片

cut还可以打印指定的字符

Linux进阶篇--字符处理和进程管理_第5张图片

1.6 使用tr做文本转换或者删除

Linux进阶篇--字符处理和进程管理_第6张图片

1.7 使用paste做文本合并

paste的作用在于将文件按照行进行合并,中间使用tab隔开,也可指定分隔符。

Linux进阶篇--字符处理和进程管理_第7张图片

1.8 使用split分割大文件

split 分割大文件,可以按照行数进行分割,也可以按照大小进行分割。按照行数分割后形成如图所示的许多小文件。

split -l 2 swc.txt small_file_     //按行分割
split -b 64m swc.txt small_file+*  //按大小分割

Linux进阶篇--字符处理和进程管理_第8张图片

二、 进程管理

2.1 什么是进程

在Linux操作系统系统中,进程是一个非常重要的概念。进程表示程序的一次执行过程,是当前操作系统运行的程序。唯一标示进程的是进程描述符(PID)

所有的进程可能存在3种状态:运行、阻塞、就绪。

进程之间存在互斥和同步的关系。

2.2查看进程:ps

ps 常用参数如下:

-A 列出所有的进程
-a 列出不和本终端有关的进程
-w 显示加宽可以显示较多的信息
-u 显示有效使用者相关的进程
aux 显示所有包含其他使用者的进程

Linux进阶篇--字符处理和进程管理_第9张图片

图中参数说明:

# USER 进程以什么用户身份运行  
# PID 进程描述符 具有唯一性  
# %CPU 进程运行时所占的cpu百分比  
# %MEM 进程运行时内存所占的百分比  
# VSZ Virtual memory SiZe 虚拟内存使用大小  
# RSS 占用的内存大小 
# STAT 进程状态,常用的状态有:   
#      S:休眠
#      R:运行态  
#      D:不可中断
#      T:暂停  
#      Z:僵尸进程          
#      W:没有足够的内存可分配
#      s:session leader 所谓进程的领导者  
#      +:表示是前台进程  
#      l:多线程进程  
#      N:低优先级进程  
#      <:高优先级进程  
# TTY 用来表示终端 显示为“?”的说明是与终端无关的进程  
# START 进程开始时间  
# TIME 进程运行时间  
# COMMAND 执行进程的命令 如果命令被 "[]"包围,说明是内核线程

ps命令只能查询当前状态下进程瞬间的状态信息,如果要想及时的查看进程信息,就需要使用top命令了,top提供了实时的的系统状态监控。

Linux进阶篇--字符处理和进程管理_第10张图片

2.3进程的终止 : kill/killall

一般来说,kill命令要和ps命令联合使用,典型用法使用ps查出进程的PID,然后使用kill将其终止。

kill [信号代码] 进程ID

kill后可以跟的信号代码一共有64种,使用个kill -l 可以查看。一般常用的有三个:HUP(1)、KILL(9)、TERM(15),分别代表重启、强行杀掉、正常结束

killall 是使用进程的名字直接停止进程。

killall httpd

2.4 查询进程打开的文件:lsof

lsof(list open files)是一个列出当前系统中所有文件的工具

lsof  [options] filename
lsof filename 显示打开指定文件的所有进程
lsof -c string 显示command列中包含指定字符的进程所打开的文件
lsof -u username 显示所属于user进程打开的文件
lsof -g gid 显示归属于gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件
lsof +D /DIR/ 显示目录下被进程打开的文件
lsof -d FD 显示指定文件描述符的进程
lsof -n 不将IP转换为hostname,默认是不加-n参数
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
            46 --> IPv4 or IPv6
            protocol --> TCP or UDP
            hostname --> Internet host name
            hostaddr --> IPv4地址
            service --> /etc/service中的 service name (可以不只一个)
            port --> 端口号 (可以不只一个)

2.5进程优先级调整:nice/renice

nice 在进程启动的时候设置优先级。

# 常用参数:  
# -n NICE 例如:nice -n 3 httpd  
# 一般情况下,nice值是负值的设定一般有管理员来设定。普通用户只能设置nice为正值。  
# 如果不指定 -n 参数,默认的nice值是10 

renice 重新设置已启动进程的优先级。

# 常用选项是:  
# -n NICE 重新设定nice的值   
# -p PID  设定进程的PID 

你可能感兴趣的:(linux)