linux 文件操作

来源:互联网 发布:建筑学研究生忙吗 知乎 编辑:程序博客网 时间:2024/06/13 00:59

1 cat 打开文件

$ cat name.txt 打开文件name.txt

$ cat 1.txt 2.txt 打开2个文件

$ cat -n name.txt 打开文件后显示行号

2 vi 输出,删除,查找,替换,块操作 等文本操作

vi 的三种基本工作模式:命令行模式,文本输入模式,末行模式

命令行模式:

不管用户处于何种模式按一下ESC 键即可使vi 进入命令行模式,当在shell 环境下输入vi 命令启动vi 编辑器时也是处于该模式下

文本输入模式:

在命令模式下输入 插入命令 i, 附加命令a, 打开命令 o, 修改命令c, 取代命令r, 或替换命令s  都可以进入文本输入模式

末行模式:

在命令模式下用户按: 键即可进入末行模式下

3 vi 的进入与退出

进入

$ vi n.txt 打开文档,进入vi

$ vi +9 n.txt 打开文档后,光标处于文档的第9行

退出

在末行模式下输入退出命令

ESC 后进入命令行模式,: 后进入末行模式

:q 直接退出,如果在文本输入模式下修改了文档内容则不能退出
:wq 保存后退出
:x 同 wq
:q! 不保存内容,强制退出

4 vi中显示行号

在末行模式下输入 set number 可使 vi 在编辑界面中显示行号;输入nu(number 的简写)来显示光标所在行的行号及该行的内容

5 移动光标

h 光标左移,如果在按h 命令前输入数字n 则光标左移n 个字符

l 光标右移,如果在按l 命令前输入数字n 则光标右移n 个字符

j 光标上移,如果在按j 命令前输入数字n 则光标上移n 个字符

k 光标下移,如果在按k 命令前输入数字n 则光标xia 移n 个字符

0 零光标移到行首

$ 光标移到行尾

H 光标移到屏幕上显示的第一行,并不一定是文件头

L 光标移到屏幕上显示的最后一行,并不一定是文件尾

M 光标移到屏幕的中间一行

nG 光标移到第 n 行

w或W 将光标右移至下一个单词的词首

e 或E 如果光标起始位置处于单词内,即非单词尾处,则该命令将把光标移到本单词词尾;如果光标起始位置处于单词尾,则该命令将把光标移动到下一个单词的词尾

b 或B 如果光标处于所在单词内,即非单词首,则该命令将把光标移至本单词词首;如果光标处于所在单词的词首,则该命令将把光标移到上一个单词的词首

Ctrl+G 状态命令,显示当前编辑文档的状态,包括正在编辑的文件名是否修改过当前行号,文件的行数,以及光标之前的行占整个文件的百分比

 

末行模式下的命令完成光标在整个文件中的移动操作:
:n 光标移到文件的第n 行
:$ 光标移到文件的最后一行

5 文本插入操作

插入命令:

i 命令,插入文本从光标所在位置前开始

I 命令,将光标移到当前行的行首,然后在其前插入文本

附加命令

a 命令,用于在光标当前所在位置之后追加新文本

A 命令,将把光标挪到所在行的行尾

打开命令

o 命令 将在光标所在行的下面新开一行,并将光标置于该行的行首等待输入文本

O 命令 在光标所在行的上面插入一行,并将光标置于该行的行首等待输入文本

6 文本修改操作

文本删除/移动

x 删除光标处的字符,若在x 之前加上一个数字n, 则删除从光标所在位置开始向右的n 个字符

X 删除光标前面的那个字符,若在X之前加上一个数字n, 则删除从光标前面那个字符开始向左的n 个字符

dd 删除光标所在的整行,在dd 前可加上一个数字n 表示删除当前行及其后n-1 行的内容

D 或d$ 两命令功能一样,都是删除从光标所在处开始到行尾的内容

d0 删除从光标前一个字符开始到行首的内容

dw 删除一个单词,若光标处在某个词的中间则从光标所在位置开始删至词尾,在dw之前加一个数字n, 表示删除n 个指定的单词

yy 复制光标所在的整行,在yy 前可加上一个数字n, 表示复制当前行及其后n-1 行的内容

np(n是复制次数)可以将复制或者剪贴(dd)的内容粘贴到任何位置

U 恢复前一个操作状态,按两次后等于什么都没有做

u 恢复前面的操作,可以恢复多次

. 重复进行某个命令的操作,以减少机械的命令重复

7 搜索/替换

搜索

/ 从光标当前所在位置向文件尾部搜索,n 匹配下一个,N匹配上一个

? 由光标当前所在位置向文件头部搜索

替换

文本替换操作需要使用末行模式进行操作

文本替换命令的格式为

:s/txt1/txt2 用于将光标所在段落搜索到的第一个 txt1 替换为txt2

:s/txt1/txt2/g 用于将光标所在段落的所有 txt1 替换为txt2

:m,ns/txt1/txt2/g 用于将从 m行开始至n 行结束的所有搜索到的txt1替换为txt2, 其中可以使用$表示末行即1,$ 表示替换文档中的所有符合条件的字符

8 头尾文本快速查看

$ head 1.txt 显示文件的前十行内容

$ head -n 20 1.txt 显示文件的前二十行内容
$ tail 1.txt 显示文件的后十行内容
$ tail -n 20 1.txt 显示文件 1.txt 的后二十行内容
$ tail -f 1.txt 显示文件 1.txt 的后十行内容,并自动显示文件新增的内容

原创粉丝点击