Linux——/etc/passwd文件含义,grep,cut

/etc/passwd文件含义

 作用

- 记录用户账户信息:共分为7段,使用冒号分割

含义

- 文件内容意义:账户名:密码代号x:UID:GID:注释:家目录:SHELL

- 第7列/sbin/nologin:不允许登录

#### 示例

```shell

# 在passwd中检索包含root的行信息

[root@server ~]# grep   -n  “root”   /etc/passwd

# 在passwd检索不能登录的信息

[root@server ~]# grep  -n   "/sbin/nologin"   /etc/passwd

# 在passwd中检索可以登录的账户信息

[root@server ~]# grep  -nv   "/sbin/nologin"   /etc/passwd (反向)

# 检索包含“halt”的行及下3行信息

[root@server ~]# grep  -nA3  "halt"  /etc/passwd

# 检索包含“sshd”的行及上5行信息

[root@server ~]# grep  -nB5   “sshd”  /etc/passwd

# 检索包含“ftp”的行及上下2行

[root@server ~]# grep   -nC2   “ftp”   /etc/passwd

# 检索不能登录的账户个数

[root@server ~]# grep   -c   “/sbin/nologin”  /etc/passwd  

# 相当于 grep  -n  “/sbin/nologin”  /etc/passwd | wc  -l

# 检索包含大小写字母d的行信息

[root@server ~]# grep  -ni  "d"  /etc/passwd

```

#### 使用特殊符号匹配

 匹配模式                            说明                                    

  

 grep  h  文件名                查找文件里有字符h的行                   

 grep  ^[q]  文件名            匹配以q开始的行                         

 grep  ^[qf]  文件名           匹配以q或者f开头的行                    

 grep  ^[ ^qf ]  文件名       不匹配以q或者f开头的行                  

 grep ^[0-9]  文件名         匹配以数字开头的行                      

 grep  q$  文件名             匹配以q结束的行                         

 grep  ^$                          过滤空白行                              

 grep  -r  h  ./*                  如果要明确搜索当前目录中的子目录有h的行 

 grep  -d s kip  h  ./*        忽略当前目录下的子目录下的普通文件      

bash

[root@server ~]# grep  ^a /etc/passwd

[root@server ~]# grep  -n  “^root” /etc/passwd

[root@server ~]# grep  -n  "^#"  /etc/sos/sos.conf          找注释行

[root@server ~]# grep  -n  [0-9]$  /etc/sos/sos.conf

[root@server ~]# grep  -n  ^$  /etc/sos/sos.conf

 切割显示-cut

 作用

- cut命令用于按列提取文本内容

格式

```bash

cut  -d  "分隔符"  -f列数字  文件名

```

### 示例

- /etc/passwd文件在保存用户数据信息时,每一项值之间是采用冒号来间隔的,如:

```bash

[root@server ~]# head  2 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

```

- 基于“行”的方式来提取数据是比较简单的,只需要设置好要搜索的关键词即可,但如果按列搜索,不仅要使用-f参数来设置需要看的列数,还需要使用-d参数来设置间隔符号。

```shell

[root@kongd ~]# cut -d : -f1 /etc/passwd

root

bin

daemon

adm

lp

```

- 例:提取内核版本号

```bash

[root@server ~]# uname -a | cut -d " " -f3

```

- 例:提取IP地址

```bash

[root@server ~]# ip a | grep ens160 | grep inet | cut -d "/" -f1 | cut -d " " -f6

# 注意空格

```

- 例:提取mac地址

```bash

[root@server ~]# ip a | grep link/ether | cut -d " " -f6

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值