Skip to content

Commit bf8fb51

Browse files
committed
📝 Writing docs.
1 parent 81de79b commit bf8fb51

4 files changed

Lines changed: 104 additions & 157 deletions

File tree

docs/linux/03.Linux文件内容查看编辑.md

Lines changed: 28 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@ tags:
1010

1111
# Linux 文件内容查看编辑
1212

13-
> 关键词:`cat`, `head`, `tail`, `more`, `less`
13+
> 关键词:`cat`, `head`, `tail`, `more`, `less`, `sed`, `vi`, `grep`
1414
1515
<!-- TOC depthFrom:2 depthTo:3 -->
1616

1717
- [Linux 文件内容查看编辑要点](#linux-文件内容查看编辑要点)
1818
- [命令常见用法](#命令常见用法)
19-
- [cat](#cat)
20-
- [head](#head)
21-
- [tail](#tail)
22-
- [more](#more)
23-
- [less](#less)
24-
- [sed](#sed)
25-
- [vi](#vi)
26-
- [grep](#grep)
19+
- [cat](#cat)
20+
- [head](#head)
21+
- [tail](#tail)
22+
- [more](#more)
23+
- [less](#less)
24+
- [sed](#sed)
25+
- [vi](#vi)
26+
- [grep](#grep)
2727
- [参考资料](#参考资料)
2828

2929
<!-- /TOC -->
@@ -152,103 +152,8 @@ sed '/^test/'d file
152152
> vi 命令是 UNIX 操作系统和类 UNIX 操作系统中最通用的全屏幕纯文本编辑器。Linux 中的 vi 编辑器叫 vim,它是 vi 的增强版(vi Improved),与 vi 编辑器完全兼容,而且实现了很多增强功能。
153153
>
154154
> 参考:http://man.linuxde.net/vi
155-
156-
#### 补充说明
157-
158-
**vi 命令** 是 UNIX 操作系统和类 UNIX 操作系统中最通用的全屏幕纯文本编辑器。Linux 中的 vi 编辑器叫 vim,它是 vi 的增强版(vi Improved),与 vi 编辑器完全兼容,而且实现了很多增强功能。
159-
160-
vi 编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用 vi 编辑器就必须熟练掌握着两种模式的切换。默认情况下,打开 vi 编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。
161-
162-
vi 编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。常用内置命令如下:
163-
164-
```
165-
Ctrl+u:向文件首翻半屏;
166-
Ctrl+d:向文件尾翻半屏;
167-
Ctrl+f:向文件尾翻一屏;
168-
Ctrl+b:向文件首翻一屏;
169-
Esc:从编辑模式切换到命令模式;
170-
ZZ:命令模式下保存当前文件所做的修改后退出 vi;
171-
:行号:光标跳转到指定行的行首;
172-
:$:光标跳转到最后一行的行首;
173-
x 或 X:删除一个字符,x 删除光标后的,而 X 删除光标前的;
174-
D:删除从当前光标到光标所在行尾的全部字符;
175-
dd:删除光标行正行内容;
176-
ndd:删除当前行及其后 n-1 行;
177-
nyy:将当前行及其下 n 行的内容保存到寄存器?中,其中?为一个字母,n 为一个数字;
178-
p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
179-
P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
180-
/字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
181-
?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
182-
a,bs/F/T:替换文本操作,用于在第 a 行到第 b 行之间,将 F 字符串换成 T 字符串。其中,“s/”表示进行替换操作;
183-
a:在当前字符后添加文本;
184-
A:在行末添加文本;
185-
i:在当前字符前插入文本;
186-
I:在行首插入文本;
187-
o:在当前行后面插入一空行;
188-
O:在当前行前面插入一空行;
189-
:wq:在命令模式下,执行存盘退出操作;
190-
:w:在命令模式下,执行存盘操作;
191-
:w!:在命令模式下,执行强制存盘操作;
192-
:q:在命令模式下,执行退出 vi 操作;
193-
:q!:在命令模式下,执行强制退出 vi 操作;
194-
:e 文件名:在命令模式下,打开并编辑指定名称的文件;
195-
:n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
196-
:f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
197-
:set number:在命令模式下,用于在最左端显示行号;
198-
:set nonumber:在命令模式下,用于在最左端不显示行号;
199-
```
200-
201-
#### 语法
202-
203-
```
204-
vi(选项)(参数)
205-
```
206-
207-
#### 选项
208-
209-
```
210-
+<行号>:从指定行号的行开始先是文本内容;
211-
-b:以二进制模式打开文件,用于编辑二进制文件和可执行文件;
212-
-c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
213-
-d:以 diff 模式打开文件,当多个文件编辑时,显示文件差异部分;
214-
-l:使用 lisp 模式,打开“lisp”和“showmatch”;
215-
-m:取消写文件功能,重设“write”选项;
216-
-M:关闭修改功能;
217-
-n:不实用缓存功能;
218-
-o<文件数目>:指定同时打开指定数目的文件;
219-
-R:以只读方式打开文件;
220-
-s:安静模式,不现实指令的任何错误信息。
221-
```
222-
223-
#### 参数
224-
225-
文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。
226-
227-
#### 知识扩展
228-
229-
vi 编辑器有三种工作方式:命令方式、输入方式和 ex 转义方式。通过相应的命令或操作,在这三种工作方式之间可以进行转换。
230-
231-
**命令方式**
232-
233-
在 Shell 提示符后输入命令 vi,进入 vi 编辑器,并处于 vi 的命令方式。此时,从键盘上输入的任何字符都被作为编辑命令来解释,例如,a(append)表示附加命令,i(insert)表示插入命令,x 表示删除字符命令等。如果输入的字符不是 vi 的合法命令,则机器发出“报警声”,光标不移动。另外,在命令方式下输入的字符(即 vi 命令)并不在屏幕上显示出来,例如,输入 i,屏幕上并无变化,但通过执行 i 命令,编辑器的工作方式却发生变化:由命令方式变为输入方式。
234-
235-
**输入方式**
236-
237-
通过输入 vi 的插入命令(i)、附加命令(a)、打开命令(o)、替换命令(s)、修改命令(c)或取代命令(r)可以从命令方式进入输入方式。在输入方式下,从键盘上输入的所有字符都被插入到正在编辑的缓冲区中,被当做该文件的正文。进入输入方式后,输入的可见字符都在屏幕上显示出来,而编辑命令不再起作用,仅作为普通字母出现。例如,在命令方式下输入字母 i,进到输入方式,然后再输入 i,就在屏幕上相应光标处添加一个字母 i。
238-
239-
由输入方式回到命令方式的办法是按下 Esc 键。如果已在命令方式下,那么按下 Esc 键就会发出“嘟嘟”声。为了确保用户想执行的 vi 命令是在命令方式下输入的,不妨多按几下 Esc 键,听到嘟声后再输入命令。
240-
241-
**ex 转义方式**
242-
243-
vi 和 ex 编辑器的功能是相同的,二者的主要区别是用户界面。在 vi 中,命令通常是单个字母,如 a,x,r 等。而在 ex 中,命令是以 Enter;键结束的命令行。vi 有一个专门的“转义”命令,可访问很多面向行的 ex 命令。为使用 ex 转义方式,可输入一个冒号(:)。作为 ex 命令提示符,冒号出现在状态行(通常在屏幕最下一行)。按下中断键(通常是 Del 键),可终止正在执行的命令。多数文件管理命令都是在 ex 转义方式下执行的(例如,读取文件,把编辑缓冲区的内容写到文件中等)。转义命令执行后,自动回到命令方式。例如:
244-
245-
```
246-
:1,$s/I/i/g 按 Enter 键
247-
```
248-
249-
则从文件第一行至文件末尾($)将大写 I 全部替换成小写 i。vi 编辑器的三种工作方式之间的转换如图所示。
250-
251-
![vi.jpg](http://man.linuxde.net/wp-content/uploads/2013/11/vi.jpg)
155+
>
156+
> 引申阅读:[Vim 快速指南](https://github.com/dunwu/OS/blob/master/docs/vim.md)
252157
253158
### grep
254159

@@ -258,8 +163,24 @@ vi 和 ex 编辑器的功能是相同的,二者的主要区别是用户界面
258163
259164
示例:
260165

261-
```
166+
```sh
167+
# 在多级目录中对文本递归搜索(程序员搜代码的最爱):
168+
$ grep "class" . -R -n
169+
170+
# 忽略匹配样式中的字符大小写
171+
$ echo "hello world" | grep -i "HELLO"
172+
173+
# 匹配多个模式:
174+
$ grep -e "class" -e "vitural" file
175+
176+
# 只在目录中所有的.php和.html文件中递归搜索字符"main()"
177+
$ grep "main()" . -r --include *.{php,html}
178+
179+
# 在搜索结果中排除所有README文件
180+
$ grep "main()" . -r --exclude "README"
262181

182+
# 在搜索结果中排除filelist文件列表里的文件
183+
$ grep "main()" . -r --exclude-from filelist
263184
```
264185

265186
## 参考资料
Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Linux 文件压缩与解压命令
2+
title: Linux 文件压缩和解压
33
date: 2018/02/27
44
categories:
55
- linux
@@ -8,20 +8,30 @@ tags:
88
- command
99
---
1010

11-
# Linux 文件压缩与解压命令
11+
# Linux 文件压缩和解压
1212

1313
> 关键词:`tar`, `gzip`, `zip`, `unzip`
1414
15-
<!-- TOC depthFrom:2 depthTo:2 -->
15+
<!-- TOC depthFrom:2 depthTo:3 -->
1616

17-
- [压缩和解压 tar 文件 - tar](#压缩和解压-tar-文件---tar)
18-
- [压缩和解压 gz 文件 - gzip](#压缩和解压-gz-文件---gzip)
19-
- [压缩 zip 文件 - zip](#压缩-zip-文件---zip)
20-
- [解压 zip 文件 - unzip](#解压-zip-文件---unzip)
17+
- [Linux 文件压缩和解压要点](#linux-文件压缩和解压要点)
18+
- [命令常见用法](#命令常见用法)
19+
- [tar](#tar)
20+
- [gzip](#gzip)
21+
- [zip](#zip)
22+
- [unzip](#unzip)
2123

2224
<!-- /TOC -->
2325

24-
## 压缩和解压 tar 文件 - tar
26+
## Linux 文件压缩和解压要点
27+
28+
- 压缩和解压 tar 文件 - 使用 [tar](#tar)
29+
- 压缩和解压 gz 文件 - 使用 [gzip](#gzip)
30+
- 压缩和解压 zip 文件 - 分别使用 [zip](#zip)[unzip](#unzip)
31+
32+
## 命令常见用法
33+
34+
### tar
2535

2636
> tar 命令可以为 linux 的文件和目录创建档案。利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar 最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用 tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
2737
>
@@ -39,7 +49,7 @@ tar -zxvf log.tar.gz # 将 tar 包解压缩
3949
tar -zxvf log30.tar.gz log2013.log # 只将 tar 内的部分文件解压出来
4050
```
4151

42-
## 压缩和解压 gz 文件 - gzip
52+
### gzip
4353

4454
> gzip 命令用来压缩文件。gzip 是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出“.gz”扩展名。
4555
>
@@ -58,7 +68,7 @@ gzip -rv test/ # 递归的压缩目录
5868
gzip -dr test/ # 递归地解压目录
5969
```
6070

61-
## 压缩 zip 文件 - zip
71+
### zip
6272

6373
> zip 命令可以用来解压缩文件,或者对文件进行打包操作。zip 是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。
6474
>
@@ -71,7 +81,7 @@ gzip -dr test/ # 递归地解压目录
7181
zip -q -r html.zip /home/Blinux/html
7282
```
7383

74-
## 解压 zip 文件 - unzip
84+
### unzip
7585

7686
> unzip 命令用于解压缩由 zip 命令压缩的“.zip”压缩包。
7787
>

0 commit comments

Comments
 (0)