2.2. 常用命令
Linux刚面世时并没有图形界面,所有的操作全靠命令完成,形成了对应的操作习惯。在职场中,大量的服务器维护工作都是在远程通过SSH客户端 来完成的, 并没有图形界面, 所有的维护工作都需要通过命令来完成。作为后端程序员,掌握常见Linux命令已经成为一项必备技能,必须要或多或少的掌握一些Linux常用的终端命令。
2.2.1. 命令格式
格式:
命令名称 可选项 参数
命令名称:相应功能的英文单词或单词的缩写
可选项:可用来对命令进行控制, 也可以省略
参数:传给命令的参数, 可以是 零个、一个 或者 多个
2.2.2. 查看文件列表
ls 是英文单词list的简写, 其功能为列出目录的内容,是用户最常用的命令之一
常用可选项说明:
只使用ls命令就只能看到当前目录下非隐藏 文件。
选项 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件, 包含隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人性化的方式显示文件大小 |
常见使用方式:
ls 查看当前目录内容 (缺点: 隐藏文件看不到)
ls -a 查看当前目录内容 ,包括隐藏文件
ls -al 查看目录内容的详细信息(查看文件类型、权限、大小等)
ls -lh 查看目录内容的详细信息,以K,M,G方式显示文件大小
ls /root 查看/root目录下内容
[root@node01 ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc .config .dbus .ICEauthority .local .tcshrc 模板 图片 下载 桌面
.. .bash_history .bash_profile .cache .cshrc .esd_auth initial-setup-ks.cfg .mozilla 公共 视频 文档 音乐
2.2.3. 目录查看、目录创建和目录删除命令
目录查看命令 pwd
查看当前所在目录
[root@node01 ~]# pwd
/root
目录创建命令mkdir
注意: 新建目录的名称 不能与当前目录中 已有的目录或文件同名
1)创建没有层级关系的目录
[root@node01 ~]# mkdir test
[root@node01 ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg test 公共 模板 视频 图片 文档 下载 音乐 桌面
2)创建有层级的目录
mkdir -p 目录1/目录2/目录3
[root@node01 ~]# mkdir -p test02/aa/bb
目录删除命令rm
常用可选项说明:
参数 | 含义 |
---|---|
-f | 强制删除,忽略不存在的文件或目录, 无需提示 |
-r | 递归地删除目录下的内容, 删除目录时必须加此参数 |
rm -r 目录 #删除目录有提醒
[root@node01 ~]# rm -r test
rm:是否删除目录 "test"?
rm -fr 目录 #直接删除目录(不管有没有内容)
[root@node01 ~]# rm -fr test
[root@node1 ~]#
2.2.4. 目录切换命令
cd 是英文单词 change directory 的缩写, 其功能为 更改当前的工作目录, 也是用 户最常用的命令之一
注意: linux的所有 目录 和 文件名 都是大小写敏感的
命令 | 含义 |
---|---|
cd | 切换到用户主目录(root用户主目录是/root,其他用户是/home/用户名) |
cd 目录 | 切换到指定目录下 |
cd … | 切换到上级目录 |
cd - | 可以在最近的两次目录之间切换 |
常见使用方式:
cd #回到用户主目录
cd test #切换到当前目录下的test目录(相对路径)
cd **/root/**test #切换到指定目录(绝对路径)
cd … #回到上一级目录
cd …/… #回到上上一级目录
cd **…/**dir #回到上一级的dir目录
2.2.5. 文件操作命令
2.2.5.1. touch
touch命令创建文件
常见使用方式:
touch a.txt #在当前目录创建a.txt文件
touch **/root/**a.txt #在/root目录创建a.txt文件
2.2.5.2. mv
通过mv 命令可以用来移动文件或目录, 也可以给文件或目录重命名
将文件移动另一个目录中:
mv 文件 目录/
touch a.txt
mkdir dir
mv a.txt dir
ls dir
重命名
mv 旧文件名 新文件名
mv a.txt b.txt #重命名文件
mv dir1 dir2 #重命名目录
将目录移动 到 另一个目录中:
mv 被移动目录 目标目录
mv dir1 /
文件删除rm:
rm -f 文件名
rm -f a.txt #强制删除一个文件
2.2.5.3. cat
查看文件内容
cat /root/initial-setup-ks.cfg
2.2.5.4. more
分屏显示长文件内容
常用参数说明:
-num 一次显示的行数
-d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
-l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
逐页显示 file1 文档内容,如有连续空白行则以一行空白行显示
#more -s file1
This is a test file.
Welcome to linuxdaxue.com!
This is cat command test.
从第二行开始显示file1文档的内容
#more +2 file1
Welcome to linuxdaxue.com!
This is cat command test.
设定每屏显示的行数
#more -2 file1
This is a test file.
Welcome to linuxdaxue.com!
--More--(64%)
常用操作说明:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键(space) 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
2.2.5.5. cp
复制文件
cp a.txt dir1 #将a.txt复制到dir1目录
cp a.txt b.txt #将a.txt复制到b.txt
2.2.5.6. less
通过 less [参数] 文件名
命令可以用于分屏显示文件内容, 每次只显示一页内容
通常用于分屏显示文件内容 或者 根据关键词搜索内容
分屏显示文件内容
less -N 文件名 显示文件内容 且 显示行号
操作键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏幕 |
Enter 键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 向前一屏 |
q | 退出 |
/word | 搜索word字符串 |
根据关键词 搜索
# 根据关键词搜索
/word
操作键 | 功能 |
---|---|
n | 向下找 |
N | 向上找 |
2.2.5.7. head
查看文档的前几行内容
head -n 数字 文件
[root@node01 ~]# head -n 5 test01.data
aaa
2.2.5.8. tail
查看文档(日志)的后几行内容
查看文档的最后10行内容
tail -10 文件
动态显示文档的最后内容,一般用来查看日志
tail -f 文件名
动态显示文档的最后100行内容
tail -100f 文件名
2.2.6.压缩和解压缩
常用可选项说明:
参数 | 解释 |
---|---|
-c | 创建一个新tar文件 |
-v | 显示运行过程的信息 |
-f | 指定文件名 |
-z | 调用gzip压缩命令进行压缩 |
-t | 查看压缩文件的内容 |
-x | 解开tar文件 |
2.2.6.1. 解压缩
tar -zxvf 压缩文件 [-C] [指定解压目录]
tar -zxvf redis-3.2.8.tar.gz #将文件解压到当前目录
tar -zxvf redis-3.2.8.tar.gz -C /root/dir #将文件解压到指定目录
2.2.6.2. 压缩
tar -c[z]vf 压缩文件 目录
tar -cvf test.tar /root/test #打包
tar -czvf test.tar.gz /root/test #打包并压缩
2.2.7. 文件查找
2.2.7.1. find
用于查找符合条件的文件
find -name 'ins*' #查找/目录下以文件名ins开头的文件
find -type f -size +100M #查找/目录下文件大小大于100M的文件
2.2.7.2. grep
搜索存在 关键字 的行
搜索 存在关键字的行
grep 关键字 文件名
搜索 存在关键字的行且显示行号
grep -n 关键字 文件名
忽略大小写搜索存在关键字的行
grep -i 关键字 文件名
搜索不存在关键字的行
grep -v 关键字 文件名
搜索以关键字开始的行或以关键字结尾的行
grep 正则 文件名
参数 | 含义 |
---|---|
^a | 行首,搜索以a开头的行 |
b$ | 行尾,搜索以b结束的行 |
2.2.7.3. which
查看可执行文件的位置。
which pwd #查找pwd命令的路径
2.2.8. 系统管理命令
2.2.8.1. ps
列出所有在内存当中的进程
ps aux
ps命令用来列出系统中当前运行的那些进程
ps -ef #查看所有进程
2.2.8.2. kill命令
用于终止执行中的程序
kill -9 12345 #杀死pid为12345的进程
2.2.8.3. 管道命令
是将一个命令的输出用作另一个命令的输入
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ulETU4n-1630232657698)(.\images\管道命令.png)]
ps -ef | grep java #查询名称中包含java的进程
2.2.9. 用户的创建和删除命令
2.2.9.1. 用户创建和密码设置
useradd user01 #创建新用户kkb
passwd user01 #设置用户kkb密码
2.2.9.2. 删除用户
userdel -r user01 #删除用户kkb
2.2.10. 权限管理命令
2.2.10.1. 权限概述
在Linux操作系统中,每当我们使用用户名登录操作系统时,Linux都会对 该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是 UID。
用户组就相当于多个用户的容器;在Linux系统中,用户组也有一个ID,GID。
在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限, 能执行任何命令和操作,而其他用户都是普通用户。
Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。
2.2.10.2. 文件权限说明
对 文件 / 目录 的权限包括:
序号 | 权限 | 英文 | 缩写 | 数字序号 |
---|---|---|---|---|
01 | 读 | read | r | 4 |
02 | 写 | write | w | 2 |
03 | 执行 | execute | x | 1 |
04 | 无权限 | - | 0 |
r: 对文件是指可读取内容 对目录是可以ls
w: 对文件是指可修改文件内容,对目录 是指可以在其中创建或删除子节点(目录或文件)
x: 对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录
2.2.10.3. chmod
用来变更文件或目录的权限
chmod 666 a.txt
chmod u+x a.txt
chmod u=rwx,g=rw,o=x a.txt
2.2.10.4. su
用于切换用户,普通用户不能使用某些权限, 所以需要切换用户。
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
01 | su - 用户名 | 切换用户, 并且企划目录 | - 可以切换到用户家目录, 否则保持位置不变 |
02 | exit | 退出当前登录用户 |
[zhangsan@node01 ~]$ whoami
zhangsan
[zhangsan@node01 ~]$ su - root
Password:
[root@node01 ~]# whoami
root
[root@node01 ~]# exit
logout
[zhangsan@node01 ~]$ whoami
zhangsan
sudo
虽然通过 su -u root
可以切换到root用户,但是存在严重的安全隐患。在大多数版本的Linux中, 都不推荐直接只用 root 账号登录系统。
sudo
命令用来以其他身份来执行命令,预设的身份为 root
;用户使用 sudo
时, 必须先输入密码,之后5分钟的有效期限,超过期限则必须重新输入密码。
2.2.11. 网络和服务管理命令
2.2.11.1. hostname
查看主机名
[root@node01 ~]# hostname
node1
2.2.11.2. ifconfig
查看主机ip地址
[root@node01 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.108.130 netmask 255.255.255.0 broadcast 192.168.108.255
inet6 fe80::9083:b166:48a8:aad6 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:51:76:a8 txqueuelen 1000 (Ethernet)
RX packets 1768 bytes 151002 (147.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1334 bytes 121420 (118.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2.2.11.3. service
用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
service network status #查看网络服务状态
service network stop #停止网络服务
service network start #启动网络服务
service network restart # 重启网络服务
2.2.12. 其它
2.2.12.1. man
是manual的缩写,是Linux提供的一个手册,包含了绝大部分的命令、函数的详细使用说明。
常用操作键:
操作键 | 功能 |
---|---|
空格键 | 显示手册的下一屏 |
Enter键 | 一次滚动首页也得一行 |
b(back) | 回滚一屏 |
f(forward) | 前滚一屏 |
q (quit) | 退出 |
/word | 搜索word字符串 |
n(next) | 搜索下一个 |
N | 搜索上一个 |
[root@node01 ~]# man ls
2.2.12.2. echo
将字符串输出到控制台 , 通常会和重定向联合使用
[root@node01 ~]# echo 'hello'
hello
2.2.12.3. 重定向 >
(覆盖) 和 >>
(追加)
重定向 >
(覆盖)
[root@node01 ~]# echo 'hello01'>test02.data
[root@node01 ~# cat test02
test02/ test02.data
[root@node01 ~]# cat test02.data
hello01
>>
(追加)
[root@node01 ~]# echo 'hello02' >> test02.data
[root@node01 ~]# cat test02.data
hello01
hello02
2.2.12.4. && 和 ||
&&
如果命令1执行成功,才会执行命令2
mkdir -p 正确目录 && echo "提示创建目录成功"
||
如果命令1执行失败,才会执行命令2
mkdir 错误目录 || echo "提示创建目录失败"
2.2.12.5. ln
可以用来创建软连接,类似于创建快捷方式
[root@node01 ~]# ln -s test02.data test03.data
[root@node01 ~]# ll
总用量 16
-rw-------. 1 root root 1496 11月 13 11:57 anaconda-ks.cfg
-rw-r--r--. 1 root root 1544 11月 13 12:04 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 11月 15 16:17 test
-rw-r--r--. 1 root root 4 11月 15 17:10 test01.data
drwxr-xr-x. 3 root root 16 11月 15 16:19 test02
-rw-r--r--. 1 root root 16 11月 15 20:23 test02.data
lrwxrwxrwx. 1 root root 11 11月 15 21:06 test03.data -> test02.data
drwxr-xr-x. 2 root root 6 11月 13 14:14 公共
drwxr-xr-x. 2 root root 6 11月 13 14:14 模板
drwxr-xr-x. 2 root root 6 11月 13 14:14 视频
drwxr-xr-x. 2 root root 6 11月 13 14:14 图片
drwxr-xr-x. 2 root root 6 11月 13 14:14 文档
drwxr-xr-x. 2 root root 6 11月 13 14:14 下载
drwxr-xr-x. 2 root root 6 11月 13 14:14 音乐
drwxr-xr-x. 2 root root 6 11月 13 14:14 桌面
2.2.12.6. clear
清屏命令,还可以使用快捷方式:ctrl + l
2.2.12.8. 自动补全命令
-
自动补全命令
在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下
tab
键如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令
-
曾经使用过的命令
使用
上
/下
光标键可以在曾经使用过的命令之间来回切换如果想要退出选择, 并且不想执行当前选中的命令, 可以按
ctrl + c
2.3. vi编辑器
2.3.1. 概述
vi是visual interface的简称, 是Linux中最经典的文本编辑器
vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域, 就能完成所有编辑操作
vi的特点:
1.只能是编辑文本内容, 不能对字体段落进行排版
2.不支持鼠标操作
3.没有菜单
4.只有命令
2.3.2. 使用方式
vi a.txt #直接打开文件
vi a.txt +10 #直接打开文件,并定位到第10行
Vi编辑器三种模式:
- 命令模式
- 打开文件首先进入命令模式, 是使用vi的入口
- 通过 命令 对文件进行常规的编辑操作, 例如 定位 翻页 复制 粘贴 删除
- 在其他图形编辑器下, 通过 快捷键 或者 鼠标 实现的操作, 都在 命令模式 下实现
- 末行模式 – 执行 保存 退出等操作
- 要退出 vi 返回到控制台, 需要在莫行模式下输入命令
- 末行模式 是 vi 的出口
-
编辑模式 – 正常的编辑文字
2.3.3. 命令模式常用命令
命令 | 功能 |
---|---|
o | 在当前行后面插入一空行 |
O | 在当前行前面插入一空行 |
dd | 删除光标所在行 |
ndd | 从光标位置向下连续删除 n 行 |
yy | 复制光标所在行 |
nyy | 从光标位置向下连续复制n行 |
p | 粘贴 |
u | 撤销上一次命令 |
gg | 回到文件顶部 |
G | 回到文件末尾 |
/str | 查找str |
2.3.4. 底行模式常用模式
命令 | 功能 |
---|---|
:w 文件 | 另存为 |
:w | 保存(ctrl + s) |
:q | 退出, 如果没有保存,不允许退出 |
:q! | 强行退出, 不保存退出 |
:wq | 保存并退出 |
:x | 保存并退出 |
:set nu | 设置行号 |
:%s/旧文本/新文本/g | 文本替换 |
2.4. 文本操作常用命令
2.4.1. cut
根据条件 从命令结果中提取对应内容
截取出test02.data文件中前2行的第5个字符
参数说明:
参数 | 英文 | 含义 |
---|---|---|
-c | characters | 按字符选取内容 |
[root@node01 ~]# head -2 test02.data|cut -c 5
o
u
截取出test03.data文件中前2行以”:”进行分割的第1,2,3段内容
参数说明:
参数 | 含义 |
---|---|
-d '分隔符' | 指定分隔符 |
-f n1,n2 | 分割以后显示第几段内容, 使用 , 分割 |
显示范围控制:
范围 | 含义 |
---|---|
n | 只显示第n项 |
n- | 显示 从第n项 一直到行尾 |
n-m | 显示 从第n项 到 第m项(包括m) |
[root@node01 ~]# head -2 test03.data|cut -d ':' -f 2,3,4
aa:sgx:abc
bb:sgx0011:jkl
2.4.2. sort
针对文本文件的内容,以行为单位来排序
字符串排序
[root@node01 ~]# cat test04.data
apple
orange
banana
pear
[root@node01 ~]# cat test04.data|sort
apple
banana
orange
pear
字符串去重排序
使用参数说明:
参数 | 含义 |
---|---|
-u | 去掉重复的 |
[root@node01 ~]# cat test04.data
apple
orange
pear
banana
pear
[root@node01 ~]# sort -u test04.data
apple
banana
orange
pear
数值排序
使用参数说明:
参数 | 含义 |
---|---|
-n | 按照数值大小排序 |
-r | 使次序颠倒 |
按照默认顺序排序:
[root@node01 ~]# cat test05.data
1
2
4
3
10
5
9
11
[root@node01 ~]# sort test05.data
1
10
11
2
3
4
5
9
按照升序排序:
[root@node01 ~]# sort -n test05.data
1
2
3
4
5
9
10
11
按照倒序排序:
[root@node01 ~]# sort -n -r test05.data
11
10
9
5
4
3
2
1
[root@node01 ~]# sort -nr test05.data
11
10
9
5
4
3
2
1
2.4.3. wc
统计指定文件字节数、单词数、行数信息
常用参数说明:
参数 | 含义 |
---|---|
-c | 字节数 |
-w | 单词数 |
-l | 行数 |
显示文件字节数、单词数、行数
[root@node01 ~]# cat test04.data
apple
orange
pear
banana
pear
[root@node01 ~]# wc test04.data
5 5 30 test04.data //行数、单词数、字节数
仅显示文件行数
[root@node01 ~]# wc -l test04.data
5 test04.data
仅显示文件单词数
[root@node01 ~]# wc -w test04.data
5 test04.data
仅显示文件字节数
[root@node01 ~]# wc -c test04.data
30 test04.data
统计多个文件的行数、单词数、字节数
[root@node01 ~]# wc test02.data test04.data test05.data
2 2 50 test02.data
5 5 30 test04.data
8 8 18 test05.data
15 15 98 总用量
2.4.4. awk
实现模糊查询、按需提取字段、判断、运算等。
搜索zhangsan和lisi的成绩
命令格式:
awk ‘/搜索字符/’ score.txt 从score.txt 搜索含有 "搜索字符"的行
[root@node01 ~]# cat score.data
zhangsan 85 90 100
duyi 90 75 90
lisi 65 70 95
wangwu 75 80 90
[root@node01 ~]# awk '/zhangsan|lisi/' score.data
zhangsan 85 90 100
lisi 65 70 95
使用指定分隔符分割行,指定下标显示内容
命令格式:
awk -F ‘分隔符’ ‘{print $1, $2, $3}’ 按照指定分隔符分割文件中每行,并打印第一、二、三列
[root@node01 ~]# cat score.data|awk -F ' ' '{print $1,$2,$3}'
zhangsan 85 90
duyi 90 75
lisi 65 70
wangwu 75 80
使用指定分隔符分割行,指定下标显示内容,指定输出分隔符
命令格式:
awk -F ’ ’ ‘{OFS="==="}{print $1, $2, $3}’
使用空格分割每一行,输出第一、二、三列,每列间使用指定"==="分开
[root@node01 ~]# cat score.data|awk -F ' ' '{OFS="==="}{print $1,$2,$3}'
zhangsan===85===90
duyi===90===75
lisi===65===70
wangwu===75===80
使用函数
命令格式:
awk -F ’ ’ ‘{print toupper($1)}’
使用空格分割每一行,输出第一列内容,并把第一列内容转大写
[root@node01 ~]# cat score.data|awk -F ' ' '{print toupper($1)}'
ZHANGSAN
DUYI
LISI
WANGWU
条件选择筛选
命令格式:
awk -F ’ ’ ‘{if($4>60) print $1, $4 }’ score.data
使用空格分割每一行,如果分割后第4列成绩大于60分,则输出第一、四列内容
[root@node01 ~]# cat score.data
zhangsan 85 90 100
duyi 90 75 90
lisi 65 70 95
wangwu 75 80 56
[root@node01 ~]# cat score.data | awk -F ' ' '{if($4>60) print $1,$4}'
zhangsan 100
duyi 90
lisi 95
2.4.5. sed
对文件内容进行过滤和替换
完成查询功能
常用可选项说明:
可选项 | 含义 |
---|---|
p | 打印 |
$ | 代表 最后一行 |
-n | 仅显示处理后的结果 |
-e | 根据表达式进行处理 |
列出文本中3-5行内容
[root@node01 ~]# cat test05.data
1
2
4
3
10
5
9
11
[root@node01 ~]# cat test05.data|sed -n -e '3,5p'
4
3
10
列出文本中含有"an"的行
[root@node01 ~]# cat test04.data
apple
orange
pear
banana
pear
[root@node01 ~]# cat test04.data|sed -n -e '/an/p'
orange
banana
列出列出文本中含有"an"的行,不区分大小写,并显示行号
[root@node01 ~]# cat test04.data
apple
orange
pear
banana
pear
Animal
[root@node01 ~]# cat test04.data|sed -n -e '/an/Ip'
orange
banana
Animal
删除文本行
可选项 | 含义 |
---|---|
d | 删除指定内容 |
删除前3行内容
[root@node01 ~]# cat -n test04.data | sed -e '1,3d'
4 banana
5 pear
6 Animal
保留前3行内容
[root@node01 ~]# cat -n test04.data | sed -e '4,$d'
1 apple
2 orange
3 pear
修改文本内容
参数 | 含义 |
---|---|
i | 目标前面 插入内容 |
a | 目标后面 追加内容 |
在第二行后添加"aaa",并显示行号
[root@node01 ~]# cat -n test04.data|sed -e '2a aa'
1 apple
2 orange
aaa
3 pear
4 banana
5 pear
6 Animal
在第二行前添加"aaa",并显示行号
[root@node01 ~]# cat -n test04.data|sed -e '2i aaa'
1 apple
aaa
2 orange
3 pear
4 banana
5 pear
6 Animal
替换文本内容
把文本中apple替换成abc
[root@node01 ~]# cat -n test04.data|sed -e 's/apple/abc/'
1 abc
2 orange
3 pear
4 banana
5 pear
6 Animal
``