sed介绍
- sed(Stream EDitor) 是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ),接着用sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed 主要用来自动编辑一个或多个文件, 简化对文件的反复操作
- sed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像。sed按顺序逐行读取文件。然后,它执行为该行指定的所有操作,并在完成请求的修改之后的内容显示出来,也可以存放到文件中。完成了一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到它完成该文件。在这里要注意一点,源文件(默认地)保持不被修改。sed 默认读取整个文件并对其中的每一行进行修改。说白了就是一行一行的操作
- 利用被称为管道操作符的
|
,多个命令由管道连成了管道线。在UNIX或Linux系统中,流过管道线的信息(数据)就叫做流(stream)。为了编辑或修改一条管道中的信息,就使用流编辑器(stream editor),这也正是sed这个命令名字的由来。其中,s是stream的第一个字母,而ed是editor(编辑器)的头两个字母
- sed用法
- 格式
sed [OPTION]...... 'script' inputfile....
-
OPTION
是选项
-
script
地址命令
-
inputfile
输入文件 (文件可以有多个输入以后会处理第二个)、
- 这是最简单的格式
-
sed
选项
- 常用选项:
-
-n
:不输出模式空间内容到屏幕,即不自动打印
-
-e
: 多点编辑
-
-f :/ PATH/SCRIPT_FILE :
从指定文件中读取编辑脚本
-
-r:
支持使用扩展正则表达式
-
d:
删除模式空间匹配的行
-
p:
显示模式空间中的内容
-
a [\]text
:在指定行 后面 追加文本
- 支持 使用
\n
实现多行追加
-
i [\]text
:在行前面 插入文本
-
c [\]text
:替换行为单行或多行文本
-
w /path/somefile
: 保存模式匹配的行至指定文件
-
r /path/somefile
:读取指定文件的文本至 模式空间中
- 匹配 到的行后
-
=:
为模式空间中的行打印行号
-
!:
模式空间中匹配行取反处理
sed选项详解
-n
选项
- 不输出模式空间内容到屏幕,即不自动打印
- 区别
p
可以理解为打印,后面还会详细讲解p
的用途
[root@localhost app]# sed -n 'p' passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
[root@localhost app]# sed 'p' passwd
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
d选项
- 删除模式空间匹配的行
- 删除第2行,但是磁盘里面的文件还没删除哦,想要删除就用
-i
,稍后介绍
[root@localhost app]# cat -n passwd|sed '2d'
1 root:x:0:0:root:/root:/bin/bash
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
- 删除奇数行,偶数行用
cat -n passwd|sed '2~2d'
[root@localhost app]# cat -n passwd|sed '1~2d'
2 bin:x:1:1:bin:/bin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
8 halt:x:7:0:halt:/sbin:/sbin/halt
10 operator:x:11:0:operator:/root:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
14 systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
16 dbus:x:81:81:System message bus:/:/sbin/nologin
18 abrt:x:173:173::/etc/abrt:/sbin/nologin
20 tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
22 usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
24 saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin
26 rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
28 chrony:x:991:988::/var/lib/chrony:/sbin/nologin
30 qemu:x:107:107:qemu user:/:/sbin/nologin
a选项
-
a [\]text
:在指定行 后面 追加文本
- 意思就是在匹配行的后面追加文本
[root@localhost app]# cat -n passwd|sed '5aasdasdasdasdasdasdasdasd'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin << 我追加的行
asdasdasdasdasdasdasdasd
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
[root@localhost app]# cat -n passwd|sed '5a\asdasdas\ndfdsdsd\nsdsdsdsd'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
asdasdas
dfdsdsd
sdsdsdsd
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
i选项
[root@localhost app]# cat -n passwd|sed '5i\asdasdas\ndfdsdsd\nsdsdsdsd'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
asdasdas
dfdsdsd
sdsdsdsd
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
c选项
- c []text :替换行为单行或多行文本
- 就是把中间的行替代
[root@localhost app]# cat -n passwd|sed '5c\asdasdas'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
asdasdas
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost app]# cat -n passwd|sed '5,7c\asdasdas'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
asdasdas
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
w选项
- w /path/somefile: 保存模式匹配的行至指定文件
- 意思就是把他匹配到的行另存为一个文件里面
[root@localhost app]# cat -n passwd|sed '11,21w /app/qqq'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
14 systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
15 systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
16 dbus:x:81:81:System message bus:/:/sbin/nologin
17 polkitd:x:997:996:User for polkitd:/:/sbin/nologin
18 abrt:x:173:173::/etc/abrt:/sbin/nologin
19 unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
20 tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
21 colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
[root@localhost app]# cat /app/qqq
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
14 systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
15 systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
16 dbus:x:81:81:System message bus:/:/sbin/nologin
17 polkitd:x:997:996:User for polkitd:/:/sbin/nologin
18 abrt:x:173:173::/etc/abrt:/sbin/nologin
19 unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
20 tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
21 colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
r选项
- r /path/somefile ,读取指定文件的文本至 模式空间中匹配 到的行后
- 意思就是说把文件内容读到本文件里面
[root@localhost app]# cat -n passwd|sed '5r /etc/issue'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
\S
Kernel \r on an \m <<<意思是把他读到第5行下面
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost app]# cat -n passwd|sed '5,7r /etc/issue'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
\S
Kernel \r on an \m
6 sync:x:5:0:sync:/sbin:/bin/sync
\S
Kernel \r on an \m
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
\S
Kernel \r on an \m
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
=号选项
[root@localhost app]# sed '=' passwd
1
root:x:0:0:root:/root:/bin/bash
2
bin:x:1:1:bin:/bin:/sbin/nologin
3
daemon:x:2:2:daemon:/sbin:/sbin/nologin
4
adm:x:3:4:adm:/var/adm:/sbin/nologin
5
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6
sync:x:5:0:sync:/sbin:/bin/sync
7
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8
halt:x:7:0:halt:/sbin:/sbin/halt
9
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10
operator:x:11:0:operator:/root:/sbin/nologin
11
!选项
[root@localhost app]# cat -n passwd |sed -n '10!p'
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
14 systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
15 systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
16 dbus:x:81:81:System message bus:/:/sbin/nologin
17 polkitd:x:997:996:User for polkitd:/:/sbin/nologin
18 abrt:x:173:173::/etc/abrt:/sbin/nologin
sed工具
- s/// :查找替换, 支持使用其它分隔符,s@@@ ,s###
- 替换标记:
- g: 行内全局替换
- p: 显示替换成功的行
- w /PATH/TO/SOMEFILE :将替换成功的 行 保存至文件中
s/// :查找替换,#
- 替换大写ROOT,但是只替换一行里面得到第一个,第二行不会替换
[root@localhost ~]# sed 's/root/ROOT/' qqq
ROOT root root root
ROOT
ROOT
ROOT
ROOT
ROOT
ROOT
ROOT
ROOT
ROOT
[root@localhost ~]# sed '2~2s/root/ROOT/' qqq
root root root root
ROOT
root
ROOT
root
ROOT
root
ROOT
root
ROOT
[root@localhost ~]# sed '2~2s@root@ROOT@' qqq
root root root root
ROOT
root
ROOT
root
ROOT
root
ROOT
root
ROOT
p选项
[root@localhost ~]# sed '2~2s@root@ROOT@gp' qqq
root root root root
ROOT
ROOT <<<把匹配成功的行在打印一遍
root
ROOT
ROOT
root
ROOT
ROOT
root
ROOT
ROOT
root
ROOT
ROOT
地址定界
- 单地址:
-
#:
指定的行
- /pattern/ :被此处模式所能够匹配到的每一行
[root@localhost app]# sed '2p' passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin 把第2行显示2次
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
[root@localhost app]# sed -n /^r/p passwd
root:x:0:0:root:/root:/bin/bash
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
地址范围详解(1)
[root@localhost app]# sed -n 3,6p passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
[root@localhost app]# sed -n 3,10p passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost app]# cat -n /etc/passwd
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
- 还可以用
+
号来表示加行号,意思是在3的基础之上加10行
[root@localhost app]# sed -n 3,+10p passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
地址范围详解(2)
- 第二个地址范围作用
-我搜索的是以h和s开头的行,看见没他是一行一行的搜索的
[root@localhost app]# sed -n '/^h/,/^s/p' passwd
halt:x:7:0:halt:/sbin:/sbin/halt <<<<<<<这是开头
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin <这是结尾
地址范围详解(3)
[root@localhost app]# sed -n '3,/^s/p' passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
步进
[root@localhost app]# cat -n passwd|sed -n '1~2p'
1 root:x:0:0:root:/root:/bin/bash
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
15 systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
17 polkitd:x:997:996:User for polkitd:/:/sbin/nologin
19 unbound:x:996:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin
21 colord:x:995:993:User for colord:/var/lib/colord:/sbin/nologin
23 geoclue:x:994:991:User for geoclue:/var/lib/geoclue:/sbin/nologin
25 libstoragemgmt:x:992:990:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
27 rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
29 radvd:x:75:75:radvd user:/:/sbin/nologin
31 ntp:x:38:38::/etc/ntp:/sbin/nologin
[root@localhost app]# cat -n passwd|sed -n '2~2p'
2 bin:x:1:1:bin:/bin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
8 halt:x:7:0:halt:/sbin:/sbin/halt
10 operator:x:11:0:operator:/root:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
14 systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
16 dbus:x:81:81:System message bus:/:/sbin/nologin
18 abrt:x:173:173::/etc/abrt:/sbin/nologin
20 tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
22 usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
24 saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin
26 rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
28 chrony:x:991:988::/var/lib/chrony:/sbin/nologin
30 qemu:x:107:107:qemu user:/:/sbin/nologin