插入模式操作
在命令模式下用户输入的任何字符都被vi当做命令加以解释和执行,如果用户要将输入的字符当做是文本内容时,则首先要将vi的工作模式从命令模式切换到文本输入模式,在插入模式下,可直接使用键盘上的4个方向键移动光标。插入模式下文本编辑器状态为INSERT.在该模式下进入编辑状态,可以输入任意的文本内容。vi提供了两个插入命令“I”和“i”,两个附加插入命令“a”和“A”,打开命令“a”和“A”,打开命令“o”和“O”
1.“i”命令
插入文本从光标所在位置开始,插入过程中可以删除错误输入。此时vi处于插入状态
2.“I”命令
该命令是将光标移到当前行的行首,然后在其前插入文本
3.“a”命令
该命令用于在光标当前位置之后追加新文本。新输入的文本放在光标之后,在光标后的原文本将相应地向后移动。光标可在一行的任何位置
4.“A”命令
该命令与“a”命令不同的是,“A”命令将把光标移到所在行的行尾,从那里开始插入新文本。当输入“A”命令后,光标自动移到行的行尾
5.“o”命令
该命令将在光标所在行的下面新开一行,并将光标置于该行的行首,等待输入文本。当使用删除字符时只能删除从插入模式开始的位置以后的字符,对于以前的字符不起作用,而且还可以在文本方式下输入一些控制字符。
6.“O”命令
和“o”命令相反,“O”命令是在光标所在行的上面插入一行,并将光标置于该行的行首,等待输入文本
末行操作模式
在末行模式下的文本编辑器状态的直接进入窗体末行,显示“:”符号。当编辑完文件,准备退回vi返回shell时,可以使用下列几种方法之一:
·在命令模式中连按两次大写字母Z时,若当前编辑的文件被修改过,则vi保存该文件后退出,返回到shell;若当前文件没有被修改过,则vi直接退出,返回到shell
·在末行模式下输入“w”时,vi保存当前编辑的文件,但并不退出,而是继续等待用户输入命令。在使用“w”时,可以在给编辑的文件起一个新名字。如:
: w newfile
此时vi将把当前文件的内容保存到指定的newfile中,而原文件内容保持不变,若newfile是一个已存在的文件,则vi在显示窗口的状态行给出提示信息:
file exits (use ! override)
此时,若用户真的希望用文件的当前内容替换newfile中原有的内容,可使用命令:w!newfile,否则可选择另外的文件名来保存当前文件
·在末行模式下输入“wq”时,vi将先保存文件,然后退出vi返回到shell
·在末行模式下输入“q”时,系统退出vi返回到shell,若在用此命令退出vi时,编辑文件没有被保存,则vi在显示窗口的最末行显示如下信息:no write since last change(use ! to overrides),提示用户该文件被修改后没有保存,然后vi并不退出,继续等待用户口令。若用户不想保存被修改后的文件而要强行退出vi时,可以使用“q!”命令,vi放弃所做修改直接退回到shell下。
·在末行模式下输入“q!”时,放弃对文本所做的修改直接退出到shell
·在末行模式下输入“x”时,该命令的功能同命令模式下“ZZ”命令功能相同
桌面环境下的文本编辑工具
gedit是一个图形化文本编辑器,可以打开、编辑并保存纯文本文件,并可以从其他图形化桌面程序中剪切和粘贴文本,以及打印文件。
gedit桌面简单,它使用活页标签,因此用户可以不必打开多个gedit窗口而同时打开多个文件。
要启动gedit,则单击“主菜单”-“附件”-“文本编辑器”,或在shell提示下输入“gedit”来启动。gedit运行后会看到一个空白的编辑区域。
也可以通过单击“打开”按钮,来定位希望编辑的纯文本文件,当我们打开界面的时候,可以单击并按住右侧的滚动条,上下移动鼠标来前后查看文件;或使用下方向键一行一行地滚动文本文件,或使用<page up>和<page down>键一页一页地滚动文件。
gedit允许用户使用分开的活页标签在一个窗口中打开多个文件。
用户可通过单击工具栏上的“保存”按钮,或从文件菜单中选择“文件”-“保存”来保存文件。如果编辑的是一个新文本文件,则会弹出另存为对话框。
通配符
通配符是一类键盘字符,有星号(*)和问号(?)。当查找文件或文件夹时,可以使用它来代替一个或多个真正字符或者不想键盘输入完整名字时,尝尝使用通配符代替一个或多个真正字符。
星号(*):可以使用星号代替0个或多个字符。如果正在查找以“AEW”开头的一个文件,但不记得文件名其余部分,可以输入“AEW*”,查找以“AEW”开头所有文件类型的文件,如AEWT.txt、AEWU.exe、AEWI.dll等。要缩小范围可以输入AEW*.txt,查找以“AEW”开头的以.txt为扩展名的文件,如AEWIP.txt、AEWDF.txt
问号(?):可以使用问号代替一个字符。如果输入“love?”,查找以“love”开头的文件名为5个字符的所有类型的文件,如lovey、lovei等。要缩小范围可以输入“love?.doc”,查找以“love”开头的文件名为5个字符并以.doc为扩展名的文件,如lovey.doc、loveh.doc
更多类型的通配符如下
模式串 意义
* 当前目录下所有文件的名称
*Text* 当前目录下所有文件名包含Text的文件的名称
[ab-dm]* 当前目录下所有以a、b、c、d、m开头的文件的名称
[ab-dm]? 当前目录下所有以a、b、c、d、m开头且后面只跟一个字符的文件的名称
/usr/bin/?? 目录/usr/bin/下所有名称为两个字符的文件的名称
1.单引号
由单引号括起来的字符都作为普通字符出现,特殊的字符用单引号括起来以后,也会失去原有的意义,只作为普通字符解释
string='$path' //给字符串赋值 可见$保持了其本身的含义,作为普通字符出现
echo $string //显示字符串的内容
2.双引号
由双引号括起来的字符,除$、'和"这几个字符仍是特殊字符并保留其特殊功能外,其余字符都作为普通字符对待。$是用其后制定的变量的值来代替这个变量和$
a=love //给字符串赋值
echo " I $a you " //在双引号中$作为特殊字符,输出的是a的内容而不是a本身
I love you //输出结果
3.反引号
反引号(`)对应的键一般位于键盘的左上角,不要将其同单引号'混淆,反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括反引号)部分
pwd
/home/xyz
string="current directory is `pwd`" //反引号括起来的pwd作为命令执行,输出当前路径
echo $string
current directory is /home/xyz