sed
语法格式: # sed [选项] ‘编辑指令’ 文件名
选项:
-n : 屏蔽默认输出 # sed -n '/^root/p' passwd
-i :直接修改文件内容
-r :启用扩展的正则表达式
不加-n时,将会显示所有文件
加上-n时,屏蔽默认输出
编辑指令:条件+指令
条件:行号
/正则/
指令:
1. 输出(print)指令:p
打印第一行:
[root@zhang ~]# sed -n '1p' passwd
打印第一到第四行:
[root@zhang ~]# sed -n '1,4p' passwd
打印第三行,第五行
[root@zhang ~]# sed -n '3p;5p' passwd
打印第三行之后的十行:
[root@zhang ~]# sed -n '3,+10p' passwd
打印奇数行:
[root@zhang ~]# sed -n '1~2p' passwd //2表示步长
打印偶数行:
[root@zhang ~]# sed -n '2~2p' passwd //第二行开始打印
2:正则
包含root的行:
[root@zhang ~] # grep root passwd 或者 [root@zhang ~]# sed -n ‘/root/p’ passwd
以root开头的行:
[root@zhang ~]# sed -n ‘/^root/p’ passwd
以bash结尾的行:
[root@zhang ~]# sed -n ‘/bash$/p’ passwd
2. 删除指令:d
删除最后一行:[root@zhang ~] # sed -n ‘$d’ passwd
删除空行 : [root@zhang ~] # sed -n ‘/^$/d’ passwd
3.替换指令: s
语法格式:
's/old/new/' 替换第一个
's/old/new/3' 替换第三个
's/old/new/g' 替换所有
/ 分隔符也可用 # 、$
输出行数:[root@zhang ~]# sed '$=' passwd
删除最后一行:[root@zhang ~]# sed -n '$d' passwd
文件共享:ftp、http、samba
文本行操作:
i:行前添加文本
a:行后添加文本
c:替换指定行
修改主机名:
[root@zhang ~]#vim modify_username.sh
!/bin/bash
hostname zhangyx.com(脚本文件)
[root@zhang ~]# sed -i "lc zhangyx.com" /etc/hostname
hosts文件:
本地域名解析文件
[root@zhang ~]# sed -i '1a 127.0.0.1 tedu.cn' /etc/hosts
注:a表示添加 此命令表示在第一行后添加新字符串
[root@zhang ~]# ping tedu.cn
[root@zhang ~]# cat /etc/hosts
用户管理:
命令:
useradd:创建一个用户
group :创建一个组
userdel:删除一个用户
groupdl:删除一个组
文件:/etc/passwd //用户详细信息
root:x:0:0:root:/root:/bin/bash
1.用户名
2.密码占位符
3.UID
4.GID
5.描述信息
6.家目录
7.登录shell ( 选项 -s)
/bin/bash :默认登录shell,可以作为登录用户
/sbin/nologin:非登录shell
/etc/shadow //用户密码文件
# head /etc/shadow