Linux-vim编辑器与shell的简介
VIM编辑器
vi是Visual interface的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作。
用户可以根据自己的需要对vim进行定制,这是其他编辑程序所没有的。 vim不是一个排版程序,它不像WORD或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
vim是全屏幕文本编辑器,它没有菜单,只有命令。
vim的启动与退出
在系统提示符后输入vim和想要编辑(或建立)的文件名,便可进入vim 如果只输入vim,而不带文件名,也可以进入vim
要退出vim,在命令模式下键入如图所示命令。
vim的工作模式
vim有3种基本工作模式:编辑模式、插入模式和命令模式。
进入vim之后,首先进入的就是编辑模式,进入编辑模式后vim等待编辑命令输入而不是文本输入,也就是说这时输入的字母都将作为编辑命令来解释。
在编辑模式下输入插入命令i、附加命令a、打开命令o、修改命令c、替换命令s都可以进入插入模式。在插入模式下,用户输入的任何字符都被vim当作文件内容保存起来,
并将其显示在屏幕上。在文本输入过程中(插入模式下),若想回到命令模式下,按ESC键即可。 在编辑模式下,用户按“:”键即可进入命令模式,
此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为命令模式的提示符,等待用户输入命令。
使用vim命令
在编辑模式下,输入如表所示的命令均可进入插入模式
文件相关命令
使用下表中的命令可以在Vi中进行文件相关的操作
文本的复制、删除和移动
使用下表中的命令,可以进行文本的相关操作
了解shell的基本概念
Shell就是用户与操作系统内核之间的接口,起着协调用户与系统的一致性和在用户与系统之间进行交互的作用。
Shell最重要的功能是命令解释,从这种意义上来说,Shell是一个命令解释器。
Linux系统中的所有可执行文件都可以作为Shell命令来执行。
将可执行文件作一个分类,如表所示
Shell完成命令的解释过程
当用户提交了一个命令后,Shell首先判断它是否为内置命令,如果是就通过Shell内部的解释器将其解释为系统功能调用并转交给内核执行。
若是外部命令或实用程序就试图在硬盘中查找该命令并将其调入内存,再将其解释为系统功能调用并转交给内核执行。
在查找该命令时分为两种情况: 用户给出了命令路径,Shell就沿着用户给出的路径查找,若找到则调入内存,
若没有则输出提示信息 用户没有给出命令的路径,Shell就在环境变量PATH所制定的路径中依次进行查找,若找到则调入内存,若没找到则输出提示信息
Shell的主要版本
Shell支持具有字符串值的变量。
Shell变量不需要专门的说明语句,通过赋值语句完成变量说明并予以赋值。
在命令行或Shell脚本文件中使用$name的形式引用变量name的值。
在Shell中,变量的赋值有下列句法格式:
name=string name是变量名,它的值就是string,“=”是赋值符号。变量名是以字母或下划线开头的字母、数字和下划线字符序列。
通过在变量名(name)前加$字符(如$name)引用变量的值,引用的结果就是用字符串string代替$name。
在定义变量时,若string中包含空格、制表符和换行符,则string必须用’string’或者”sting”的形式,即用单(双)引号将其括起来。
双引号内允许变量替换,而单引号内则不可以。
shell变量的定义和引用
Shell变量的作用域
与程序设计语言中的变量一样,Shell变量有其规定的作用范围。
Shell变量分为局部变量和全局变量: 局部变量的作用范围仅仅限制在其命令行所在的Shell或Shell脚本文件中 全局变量的作用范围则包括本Shell进程及其所有子进程 可以使用export内置命令将局部变量设置为全局变量
Shell变量作用域举例
在当前Shell中定义变量var1
在当前Shell中定义变量var2并将设为全局
引用变量的值
显示当前Shell的PID
Shell变量作用域举例
调用子Shell ,并显示子Shell的PID
由于var1没有被export,在子Shell中已无值
由于var2被export,所以在子Shell中仍有值
返回主Shell,并显示变量的值
Shell变量作用域举例(综合)
Shell变量作用域举例(综合)
Shell的环境变量
环境变量是指由Shell定义和赋初值的Shell变量。
Shell用环境变量来确定查找路径、注册目录、终端类型、终端名称、用户名等。
所有环境变量都是全局变量,并可以由用户重新设置。
在Bash中,设置环境变量用set命令,命令的格式是:set 环境变量=变量的值
Shell的环境变量举例
设置用户的主目录为/home/john,可以用以下命令:
不加任何参数地直接使用set命令可以显示出用户当前所有环境变量的设置,如: