Linux从入门到精通(九)——Linux编程 上

简介: Linux从入门到精通(九)——Linux编程 上

image.png

Linux编程

1. vi的工作方式

三种方式:命令方式、插入方式、末行方式

命令方式:用户一进入vi就进入命令方式,在该模式中任何键入的字符都被看成vi的命令,键入后立即执行。

插入方式:当用户需要输入文本时,使用某个命令,进入插入方式,才可开始输入文本。

末行方式:在命令方式中键入:就进入末行方式,在末行方式中输入命令,例如W(写)和回车,就可将编辑的内容存入文件。

三种工作方式之间转换:

1.在操作系统提示符下键入vi ,进入命令方式。

 1.命令方式 --> 插入方式,键入编辑命令,如插入命令i、 添加命令a、建立新行命令o等 。

 2.命令方式 --> 末行方式,只需键入:, 每次只执行一条,执行完毕立即回到命令方式。

 3.不论在什么方式,只要键入esc键,就可回到命令方式。

2.插入方式和末行方式之间不能直接切换,必须通过命令方式。

3.在命令方式,用两个ZZ (大写) 可以退出vi 。

4.在末行方式用q或q !,还可以用wq 。

2. 进入和退出vi

2.1 进入vi

1.vi [filename]

这是编辑一个新文件或编辑一个已存在文件的方法。

如果是新文件,系统会创建一个名为filename的文件。

如果你需要对一个存在的文件进行修改,系统会把文件的内容读入vi使用缓存区供你编辑,完成后用相关命令写入源文件或写入另一个新的文件。

2.vi

这是编辑一一个 新的文件的方法。

在编辑完成后必须用相关命令写入一个新的文件,杏则一切编辑的动作都无效。

进入vi后光标停留在文件的第一行行首,如希望停留在其他行,可以使用如下的命令:

vi +n [filename]: 进入vi后光标位于第n行

vi十[filename] :进入vi后光标位置为文件尾

vi +/string [filename]:进入vi后当前光标位置为字符串string所在行的首行。

2.2 退出vi

1.以原有的文件名保存编辑动作并退出。
在末行方式下退出,用以下命令:

:wq (保存并退出等价于:w 接 :q)
:x

在命令方式下退出,用两个大写ZZ即可。

2.以新文件名保存,必须进入末行方式,使用:

:w newfile (保存到新文件)
:q (退出)

3.不保存所做过的一切编辑动作,在末行方式下退出:

:q!

3. vi的编辑命令

3.1 移动光标

1.行号:

vi的工作是在文本缓冲区中实现的,为了帮助用户观看, 可为文本的行设置一个行号, 放在文本的左侧(行首前) 可以用末行命令set来设置和取消:

:set number (:set nu)
:set nonumber (:set nonu)

2.按字符移动:
四个带箭头的方向键:各自按方向移动一个字符k、j、h、l:各自按上下左右移动一个字符。

3.按行移动:

home # 光标移动到本行行首 
0 # 行首
^ # 第一个非空白字符
$或end # 光标移动到本行行尾
- # 光标移动到上一行的行首
[行号]G # 跳转到指定行,不指定具体行号跳到文件的最后一行
gg # 首行

4.按字移动光标:

w和W:将光标移动到下一个字的字首

e和E:将光标移动到下一个字的字尾

b和B:将光标移动到前一个字的字首

5.按句移动光标:

(:将光标移动到上一个句子的开头

):将光标移动到下一个 句子的开头

6.屏幕滚动:

ctrl+u :将屏幕向文件头方向翻滚半屏

ctrl+d: 将屏幕向文件尾方向翻滚半屏

ctrl+b:将屏幕向文件头方向翻滚一整屏

ctrl+f :将屏幕向文件尾方向翻滚一整屏

3.2 文本操作(命令方式下)

1.文本的插入:

i:插入当前字符前。

I:插入当前行头

a:插入当前字符后

A:插入当前行尾

o:插入当前行的下一行

O:插入当前行的上一行

2.文本的删除:

x:删除光标处的字符

nx:删除光标位置起的右n个字符

X:删除光标前的字符

nX:删除光标位置前的左n个字符

dd:删除当前行

ndd:删除当前行起的n行

D或d$:删除光标起到行尾的内容

d0:删除光标起前一个字符到行首的内容

dw:删除一个单词

ndw:删除n个单词

3.恢复删除:

u: 撤销上一次的编辑动作(可多次)

U:撤销在本行所有的编辑动作

.:再次执行刚执行过的命令

4.修改文本:

c 或 c$:改变光标位置起到行尾的内容

nC:改变光标位置起的n行内容。

cc:改变当前行的内容。

ncc:改变当前行起n行的内容。

5.文本替换:

文本替换是用新的文本替换原有的文本。

命令:r和R

rx:用x字符替换光标位置的字符

nrx:用x字符替换光标位置起的n个字符

R:进入替换模式,结束后按esc回到命令模式

6.复制与粘贴:

yy 和 Y:复制当前行。

nyy 和 nY:复制当前行以下n行。

dd:剪切当前行。

ndd:剪切当前行以下n行。

p、P:粘贴在当前光标所在行下或行上。

7.移动多行:

:n1,n2 m k # 从n1行到n2行的文本移动到k行处,其中m是移动命令

8.搜索和替换:

/string:向前搜索指定字符串。

搜索时忽略大小写:set ic

?string:向后搜索指定字符串。

n,N:向前向后搜索该字符串。

:%s/oldstr/newstr/g:全文替换指定字符串

:n1,n2s/oldstr/newstr/g:在n1行到n2行的范围内替换指定字符串。

4. 定义快捷键

:map 快捷键 命令 # 定义快捷键
:unmap 快捷键 # 删除快捷键

[例1]:

# 设置ctrl+O为注释当前行:
:map ^O I#<esc>   # ^使用ctrl+v
# 设置ctrl+D为取消当前行注释:
:map ^D 0x
:unmap ^O
:unmap ^D


相关文章
|
6天前
|
Linux
【Linux系统编程】基础指令(二)(下)
【Linux系统编程】基础指令(二)
|
6天前
|
Linux 芯片 Ubuntu
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯
|
6天前
|
Ubuntu Linux
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-2
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-2
|
6天前
|
Linux 芯片
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-1
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-1
|
6天前
|
Linux C语言 Ubuntu
Linux驱动入门——编写第一个驱动
Linux驱动入门——编写第一个驱动
Linux驱动入门——编写第一个驱动
|
6天前
|
Linux C语言 调度
|
6天前
|
Linux API
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
|
6天前
|
缓存 安全 Linux
Linux入门基本指令(2)
Linux入门基本指令(2)
13 0
|
6天前
|
Linux Windows
Linux入门基本指令(1)-2
Linux入门基本指令(1)
12 1
|
6天前
|
Linux 数据安全/隐私保护 Windows
Linux入门基本指令(1)-1
Linux入门基本指令(1)
16 1