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


相关文章
|
3月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
25天前
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
58 3
|
3月前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
231 73
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
机器学习/深度学习 Linux 编译器
Linux入门3——vim的简单使用
Linux入门3——vim的简单使用
58 1
|
2月前
|
Linux Shell Windows
Linux入门1——初识Linux指令
Linux入门1——初识Linux指令
31 0
Linux入门1——初识Linux指令
|
3月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
3月前
|
Linux Shell
Linux系统编程:掌握popen函数的使用
记得在使用完 `popen`打开的流后,总是使用 `pclose`来正确关闭它,并回收资源。这种做法符合良好的编程习惯,有助于保持程序的健壮性和稳定性。
120 6
|
2月前
|
存储 数据可视化 Linux
Linux 基础入门
Linux 基础入门
|
2月前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
28 0