vim文本编辑器及shell脚本文件

一 vim文本编辑器

在正式开始介绍vim之前,先思考一个问题:学编程语言,前前后后装了这么多东西,这些东西都是做什么的?

1.1 python“随从”们

语言怎么运行的

无论脚本语言还是编译型语言,编码的时候,我们都需要使用人类语言进行编写,但运行的时候都需要转化为二进制。脚本语言是在每次运行时,由解释器将人类语言(代码)转化为二进制的。python就属于脚本类语言。
在学习python时,我们都安装了哪些东西?学python,至少会安装两个东西:

  1. python官网下载一个python安上

    python

  2. 找个pycharm或者vscode其他的安装上

    pycharm

作用:

  1. 官网下载的python
    你安装python时,并不是安装了一门语言叫python。编程语言本身是不需要安装的。你安装python时,其实是安装的我们上文所说的\color{red}{解释器(翻译官)}。而python官方主要的工作,就是开发这个解释器、以及制定语言的语法。
  2. pycharmvscode
    python并不是必须使用pycharmvscode才能编写,也不是必须基于某个特别开发的软件才能编写;基于任何文本编辑器都可以写python。区别在哪?区别在文本编辑器提供的插件功能,是不是具有python语法的支持,如果有支持,那么可以自动补全,可以帮我们检查我们是不是写错了;如果没有语法支持,也可以写,但就需要自己从头写到尾,并且自己检查自己是不是写错了,否则就只能等着执行的时候看看是不是错了。
    执行的时候错了,就是第一步,python解释器给报出来的错了;书写的时候,是文本编辑器给检查和提示的错误

1.2 奉若神明的Vim

Vim的作者刚刚去世(2023-08-03)。去世当天社区很多人发表纪念。vim编辑器在linux中是经常使用的编辑器,也是类UNIX系统中,普遍随系统自带的编辑器。初学的时候有人会对它各种鄙视、甚至恨之入骨;但遇到一些极端情况后,就会庆幸系统里还有Vim

Bram Moolenaar(布萊姆·米勒)

Vim的缺点是,真正想用熟练比较难,因为有好多需要记忆的东西。快捷操作比较多,不太会的人一通乱按,很可能不知道进了哪个模式,把文件搞乱。显示的也不像现代编辑器那样美观。
优点:

  1. 有很多快捷键,几乎不需要鼠标的参与。当我们为专业人士设计软件时,如果讲究操作速度,都会提出无鼠标化操作。比如某些财务软件。当追求快速操作时,拿鼠标一下一下点,很让人崩溃。
  2. 无需GUIGUI可以理解为界面。Vim是使用全命令行操作的,这就代表了它可以运行在全命令行(server)linux上。这在某些情况下是非常重要的,比如小型嵌入式linux系统(性能不足以长时间支撑桌面环境)、需要远程连接和操作服务器时、桌面环境无法打开的情况。

1.3 ubuntu使用Vim

1.3.1 安装

系统安装完成后,自带的编辑器是vi,viVim的精简版本(毕竟少了个m);我们需要安装一下vim

未安装vim

当在windows下,我们说个安装软件,有些时候会头疼,但这个过程在linux下,很多时候要简单很多。运行命令如下,注意:确保系统可以连接网络。

sudo apt update && sudo apt install vim -y
安装成功

1.3.2 使用

启动命令:

# vim <文件名>
vim ./test.txt

要编辑的文件可以不存在,不存在的话,当你退出编辑并保存时,会自动创建一个文件。当刚刚打开一个文件\color{red}{不按下任何按键}时。显示信息如下:

  1. 底部从左到右,依次是文件名文件包含的行数文件的大小
  2. 上部空白区域,为文件内容的显示区域,如果没内容是空白的。


    打开一个文件

三种模式:
Vim提供了三种模式,每种有它自己的功能:命令模式、输入模式、末行模式。这三种模式中,我们对文本内容的主要编辑操作,是在输入模式下完成的,其他两种模式,主要是为了提供一些快捷操作、必要操作设置的。快捷操作主要集中在命令模式下,也是Vim难学难记的核心。但我们只需要几个简单的命令即可。
打开文件,什么也不按下的情况下,是在命令模式。
三种模式,通过不同的操作进行切换。命令模式相当于父节点,输入模式末行模式相当于子节点,子节点都是和父节点进行来回切换的。所以

  1. 能由命令模式进入输入模式(按i,oa),由输入模式返回命令模式(按Esc)
  2. 能由命令模式进入末行模式(按:),由末行模式返回命令模式(按Esc)
  3. 输入模式末行模式无法直接切换

三种模式的截图如下:
命令模式下,无法对文本进行编辑


命令模式

按下i,oa进入编辑模式,此时可以对文件进行编辑。成功进入编辑模式的特征,是底部会有一个--INSERT--的提示

编辑模式

在编辑模式下,按Esc,返回命令模式,再次变成无法编辑文本的模式,底部--INSERT--提示消失

回到命令模式

在命令模式下,按下:,进入末行模式。在末行模式下:

  1. 输入q!会放弃所有更改直接退出
  2. 输入wq会保存并退出
    末行模式

进入编辑模式各有不同

按键 进入编辑模式的状态 示意图
i(不区分大小写) 在光标当前位置进入编辑模式,新写入时从光标当前位置前写入
i进入编辑模式光标位置
a(不区分大小写) 在当前光标的下一个字符开始编辑
a进入编辑模式光标位置
o(不区分大小写) 在当前光标的下一行插入一个新行
o进入编辑模式光标位置

一点快捷操作

  1. 显示行号
    :,需要进入末行模式。输入set number。 可以看到出现了行号。当我们进行代码修改的时候,有行号会方便很多。

    显示行号

  2. 不显示行号也可以,显示后跳转方便一些。命令模式下,直接输入nG,可以跳转到第n行。G得大写。

    6G
    

二 shell脚本文件

前面我们已经讲到过shell脚本,但我们前面的文章里,shell脚本都是在命令行里一条一条的敲进去的。那么,当我们实际需要运行多条指令、要每个周期执行重复的指令时,应该如何解决?

我们可以把脚本写入文件中,需要运行时,直接调用脚本文件即可。Linux中,脚本文件后缀为.sh,windows中为.bat。因为是每次需要处理一批指令,而不是一条,所以也叫做批处理文件

vim ./test.sh
#!/bin/bash
ls
echo $PATH
sudo chmod +x ./test.sh
./test.sh

习题

请使用shell脚本文件,一次性分行输出你的:

  1. 用户名
  2. 主目录路径
  3. 默认的shell版本
习题样式
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容