vi的扩展版本,它比vi更人性化,或者更多的考虑到了那些习惯了windows操作系统中文本编辑方式的人。一般情况下,现代linux操作系统中使用vi或vim都是打开的vim这个版本的编辑器。但是,为了表述简洁,并更为容易接受,后面都表述为vi编辑器。
2.3.2 vi编辑器的三种模式:
1. 指令模式(Command mode):
vi编辑器打开后进入的模式,这个模式下,通过相关命令可以进去另外两个模式。 2. 文本输入模式(Input mode):
在指令模式下按下i(在当前字符前插入)、o(在当前行下新建一行)等键都会使的vi编辑器进入文本输入模式。当在文本输入模式下,就不能再接受命令了,只有按下Esc键后,进入指令模式下,才能再次接受命令。 3. 末行模式(Last line mode):
末行模式,是在指令模式下,按下“:”键,这时会在vi编辑窗口的最末行,出现一个“:”和提示光标,等待用户输入诸如:q(退出)、w(保存)、q!(强制退出)等命令。如果要退出末行模式,同样也需要按下Esc键,进入指令模式。
vi编辑基础命令:
1.光标移动:(命令模式下输入)
(k或↑)= 上 (j或↓)= 下 (h或←)= 左 (l或→)= 右 0 $ b khjl 将光标移至当前行的行首 将光标移至当前行的行尾 当光标不在单词第一个字符时,将光标移至单词的第一个字符;如果光标在单词的一个字符上,光标将移至上一个单词的第一个字符上。 当光标不在单词最后一个字符时,将光标移至本单词的最后一个字符;如果光标在单词的最后一个字符上,光标将移至下一个单词的最后一个字符上。 将光标移至下一个单词的第一个字符 将光标移至上一行的开头 将光标移至下一行的开头 将光标移至上一句的开头 将光标移至上一段的开头 将光标移至下一句的开头 将光标移至下一段的开头 将光标移至当前窗口的最左上角位置 e w - 回车键 或 + ( { ) } H
26
M L ctrl+d ctrl+u ctrl+f ctrl+b gg shift+g ctrl+g 将光标移至当前窗口显示的文本中间行的开头 将光标移至当前窗口显示文本的最下行 当前屏幕的文本向下滚半屏 当前屏幕的文本向上滚半屏 当前屏幕的文本向下滚一屏 当前屏幕的文本向上滚一屏 移动到整个文档的第一行文本 移动到整个文档的最后一行文本 查看当前行的行号 2.进入文本输入模式:(命令模式下输入)
i I a A o O r R 在光标前开始插入字符 在光标当前行开头插入字符 在光标后开始插入字符 在光标所在行行尾插入字符 在光标所在行下插入新行 在光标所在行上插入新行 替换光标处的字符 替换光标后的字符,直到按下Esc键 3.删除、复制、粘贴:(命令模式下输入)
x 或 dl X nx nX dd ndd d$ 或D d0 d^ dw ndw yy nyy y0 y$ ygg yG p(小写) P(大写) 删除当前光标所在位置的一个字符 删除当前光标所在位置前面的一个字符 n为数值,表示要删除当前光标开始及之后的n个字符 表示要删除当前光标开始前面的n个字符 删除光标所在的一整行 删除光标所在及向下的n行 删除光标及之后至当前行尾的所有字符 删除光标之前直至当前行首的所有字符 删除光标之前到当前行第一个字符(不包括空格或tab符) 删除光标所在及之后直到词尾的字符 删除光标所在及之后的n个词 复制当前光标所在行的内容 复制当前光标所在行及之后的n行内容 复制当前光标所在位置的字符之前直至行首的字符 复制当前光标所在位置的字符及之后直至行尾的字符 复制当前光标所在行及之前直至文档第一行的所有行 复制当前光标所在行及之后直至文档最后一行的所有行 在当前光标所在行之上,粘贴复制的内容 在当前光标所在行之下,粘贴复制的内容
27
4.撤销与重做:(命令模式下输入)
u ctrl+r . 撤销上一步的操作,可以反复使用,直至第一步 重做撤销的操作 重复前一步的操作 5.查找(命令模式下输入)
/word ?word n N 查找当前光标之后,名为word的字符串 查找当前光标之前,名为word的字符串 重复向下查找 重复向上查找 6.替换:(末行模式下输入)
n1,n2s/word1/word2/g 将第n1行至第n2行的所有word1字串用word2字串替换 1,$s/word1/word2/g 将第一行至最后一行的所有word1字串用word2字串替换 1,$s/word1/word2/gc 将第一行至最后一行的所有word1字串用word2字串替换,替换之前进行询问是否替换 7.末行模式使用的一些命令:(以下命令,请按“:”进入末行模式后使用)
w q q! wq w [filename] n1,n2 w [filename] r [filename] !command set nu set nonu n1,n2 co n3 n1,n2 m n3 n1,n2 d r!command 将编辑的文本写入到磁盘 退出编辑器 强制退出编辑器 写磁盘,然后退出 将编辑的文本以名为filename的文件保存(另存为) 将第n1行至第n2行的内容保存到文件filename 读入名为filename的另外一个文件(打开多个文件) 执行shell命令 为每行设置行号 取消行号 将n1行到n2行之间的内容拷贝到第n3行下 将n1行到n2行之间的内容移至到第n3行下 将n1行到n2行之间的内容删除 将命令command的输出结果放到当前行 8.在命令模式下,按下v键,可以进入可视操作状态
aw iw as is 选择单词 内部单词(无空格) 选择句子 选择句子(无空格)
28
ap ip D x,y 选择段落 选择段落(无空格) 删除到行尾 删除与复制包含高亮区 cat(catenate):串链接文件,并输出文件内容
cat命令最通常的用法是,查看文件的内容。例如:“cat filename”命令会在标准输出,将文件filename的内容完全输出。结合shell数据重定向符完成更多的功能。 参数:
-n:为文件内容每行加上行号; 示例: cat filename 在stdout中显示filename文件内容 cat –n filename 为filename文件内容加上行号,显示与stdout cat filename > filename2 将filename文件内容写入到filename2文件中 cat filename >> 将filename文件内容追加到filename2文件中 filename2 more:屏显文本内容
在文件内容比较多,一屏显示不完的情况下使用more可以避免刷屏。按空格显示下一页;按b显示上一页。
less:屏显文本内容
与more命令类似,具体差别,亲自使用后体会。
head:显示文件开头部分
显示文件前面部分的内容,默认显示10行,可以自定义行数。
tail:显示文件尾部的部分
显示文件尾部的部分内容,默认显示10行,可以自定义行数。
uniq:显示或忽略文件中重复行
-u:只显示不重复的行 -d:只显示重复的行
29
sort:将文件内容排序后显示
-b:忽略行首的空白符 -d:以字典序排序 -f:忽略大小写
-g:以一般数值序排序 -r:以指定序的倒序输出
linux系统管理 用户及用户组管理
要登录Linux系统,一定要有账号与密码。不同的用户拥有不同的权限。
相关文件
/etc/passwd:
该文件的部分内容如下图所示:
每一行记录代表一个用户账号,该文件中有多少行,就代表系统中有多少个用户账号。该文件每行记录由“:”分隔成7个部分,分别是: 1) 账户名称:账户助记标识,均对应一个UID;
2) 密码:这里x表示用户设置了密码,密码被加密后保存于/etc/shadow中;
3) UID:用户识别码,0代表是系统管理员。1~499给系统保留,500~65535一般用户
使用;
4) GID:用户组的识别码,对应信息在/etc/group文件中;
5) 账户信息说明:无重要用途,finger命令可查看跟多信息,如果设置了的话; 6) 家目录:用户的家目录,默认家目录/home/usercountname 7) shell:指明该用户默认使用的shell类型;
/etc/shadow:
该文件的部分内容如下图所示:
与/etc/passwd文件相同,/etc/shadow文件中每一行记录,也由“:”分隔,共9列:
30