vi

vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。

Linux中一般默认安装的的编辑器叫vi,而vimvi的增强版(vi Improved),很多发行版需要用户自己安装,但是vimvi编辑器完全兼容,但是vim实现了更多的增强功能。

这里如果详细的讲解vi的话,估计可以出一本书了,所以我们这里只给vi命令开个入门的教程

vi命令使用介绍:
命令格式:vi [选项] [参数]
命令功能:编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令
命令的常用参数选项说明:
+   从指定行号的行开始先是文本内容
-b   以二进制模式打开文件,用于编辑二进制文件和可执行文件
-c    在完成对第一个文件编辑任务后,执行给出的指令
-d    以diff模式打开文件,当多个文件编辑时,显示文件差异部分
-l     使用lisp模式,打开lisp和showmatch
-m   取消写文件功能,重设“write”选项
-M   关闭修改功能
-n    不实用缓存功能
-o    指定同时打开指定数目的文件
-R    以只读方式打开文件
-s    安静模式,不现实指令的任何错误信息

一般的用途基本就是在编辑文本上

a.比如我们要编辑一个httpd.conf文件

vi /etc/httpd/conf/httpd.conf

执行完这个之后,你就会全屏进入一个界面,我们按i来进入输入模式开始输入内容,然后按esc返回命令模式,最后在命令模式下用如下命令保存修改并退出

:wq

b.或者当你只想查看这个文件,并不想改变它,当然,最后的建议是用catmore指令,但是我们已经可以用vi做到这一点

vi -R /etc/httpd/conf/httpd.conf

退出是一样的

esc
:q

这个命令大概就只讲到这里了,深入的讲解看哪天有时间,因为vi本身就是一个相当大的操作指南

head&tail

headtail就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而tail想当然尔就是看档案的结尾。

这里我们把两个命令合在一起介绍了,因为都差不多

head & tail命令使用介绍:
命令格式:
head [参数] [文件]
tail    [参数] [文件]
命令功能:用来显示开头或结尾某个数量的文字区块
命令的常用参数选项说明:
-q  隐藏文件名
-v  显示文件名
-c  显示字节数
-n  显示的行数
-f   循环读取(tail专用)

一般用途就是你不想在你的屏幕上都输满了所有的内容,只想查看那么几行内容的时候

a.我们想查看文件的前5行

head -n 5 index.php
或者文件的后5行数据
tail -n 5 index.php

b.或者你只想查看前10个字符的内容

head -c 10 index.php

或者文件的后10个字符串

tail -c 10 index.php

c.其中,tail还有个有趣的用法,就是-f选项

比如我们正在运行调试着某个程序,而这个程序是将log文件输出到某个文件,假设为test.log中,我们如果用vi或者cat之类的命令的话,如果有新的log写入文件中的时候,我们就没法实时获得最新的log信息,除非你关闭这个文件然后再次打开

这时候我们就可以用这个-f选项了

我们如下使用

tail -f test.log

tail命令就会一直循环输出这个文件的内容,即使有新的内容进来,也可以马上就显示在屏幕上

more

more命令,功能类似cat

cat命令是整个文件的内容从上到下显示在屏幕上。

more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空格键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字串的功能。

需要注意的是,more命令从前向后读取文件,因此在启动时就加载整个文件。

如果你的文件很大,很有可能造成系统的死机。


more命令使用介绍:
命令格式:more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]
命令功能:可以按页来查看文件的内容
命令的常用参数选项说明:
+n   从笫n行开始显示
-n    定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示  
-c     从顶部清屏,然后显示
-d     禁用响铃功能
-l      忽略Ctrl+l(换页)字符
-p     通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s      把连续的多个空行显示为一行
-u     把文件内容中的下画线去掉

more常用的操作:
enter    向下n行,需要定义,默认为1行
ctrl+f   向下滚动一屏
space   向下滚动一屏
ctrl+b  返回上一屏
=          输出当前行的行号
:f        输出文件名和当前行的行号
v          调用vi编辑器
!command     调用shell,并执行命令 
q           退出more

常用的命令如下

a.显示第三行起的文件

more +3 httpd.conf

b.在文件中查找出现allow并且显示在前两行

more +/allow httpd.conf

c.有时候我们执行ls时候,一个目录下面的文件太多,瞬间就刷新了好多次屏幕,但是我们想看目录中的第一个文件是什么,我们可以这样

ls -il | more
中间那个 | 是管道符,用于将 第一个命令 的输出结果作为输入给 第二个命令

更多推荐

Hacker基础之Linux篇:基础Linux命令五