文本文件查看
在Linux中一切皆文件,说的就是Linux利用文本文件来保存系统所有的设置。
我们在Linux中想实现一个功能,不可避免的需要查看文本文件,修改文本文件。
cat
用于打开文本文件并显示出来
cat [选项]... [文件]...
选项
-
-n:由 1 开始对所有输出的行数编号
-
-b:和 -n 相似,只不过对于空白行不编号。
-
-s:当遇到有连续两行以上的空白行,就代换为一行的空白行。(不改变内容,方便查看)
-
-A:显示控制字符。(用于从其他格式文件复制代码时,检测不显示的特殊字符)
实例
查看anaconda-ks.cfg文件
[root@localhost ~]# cat anaconda-ks.cfg
查看anaconda-ks.cfg文件,并且显示行号
[root@localhost ~]# cat -n anaconda-ks.cfg
less
可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页
实例
[root@localhost ~]# less anaconda-ks.cfg
从阅读状态中退出(:q)
more
head
查看文件的开头部分的内容
head [选项]... [文件]...
参数
-
-q:隐藏文件名,默认是隐藏
-
-v:显示文件名
-
-c<数目>:显示的字节数。
-
-n<行数>:显示的行数。
实例
-
查看文件的前6行
[root@localhost ~]# head -n 6 anaconda-ks.cfg
tail
会把文本文件里的最尾部的内容显示在屏幕上
tail [选项]... [文件]...
参数
-
-f:循环读取(在文件中的修改会同时显示在屏幕上)
-
-q:隐藏文件名,默认隐藏
-
-v:显示文件名
-
-c<数目>:显示的字节数
-
-n<行数>:显示文件的尾部 n 行内容
-
-s:与-f合用,表示在每次反复的间隔休眠S秒
实例
-
查看文件anaconda-ks.cfg尾部的3行
[root@localhost ~]# tail -n 3 anaconda-ks.cfg
-
查看日志的实时更新情况
[root@localhost ~]# tail -f /var/log/messages # ctrl+c退出
-
查看文件anaconda-ks.cfg从第10行到结尾
[root@localhost ~]# tail -n +10 anaconda-ks.cfg
grep
针对文件内容进行过滤,本工具属于文本三剑客,后续会详细讲解,目前只要求初学者掌握最基本的实例即可\
-E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE) -F, --fixed-strings PATTERN 是一组由断行符分隔的定长字符串。 -G, --basic-regexp PATTERN 是一个基本正则表达式(缩写为 BRE) -P, --perl-regexp PATTERN 是一个 Perl 正则表达式 -e, --regexp=PATTERN 用 PATTERN 来进行匹配操作 -f, --file=FILE 从 FILE 中取得 PATTERN -i, --ignore-case 忽略大小写 -w, --word-regexp 强制 PATTERN 仅完全匹配字词 -x, --line-regexp 强制 PATTERN 仅完全匹配一行
实例
[root@xwz ~]# grep 'root' /etc/passwd # 在/etc/passwd的文件中找出有root的行 [root@xwz ~]# grep '^root' /etc/passwd # 在检索词前加^,可以在/etc/passwd中找出root开头的行 [root@xwz ~]# grep 'bash$' /etc/passwd # 在检索词后加$,可以在/etc/passwd中找出bash结尾的行
文本文件编辑
在Linux中只掌握文本查看是远远不够的,我们还需要掌握编辑文本文件。
Linux上也有图形化的文本编辑器,类似于windows的记事本,但是很多时候我们只能用命令行来管理Linux操作系统,所以必须要掌握命令行的文本编辑器软件。
目前常见的命令行文本编辑器
-
nano:在debain系列的系统上会比较常见,但是其他的Linux发行版也都可以安装
-
vi:所有的 Unix Like 系统都会内建 vi 文本编辑器,其他的文本编辑器则不一定会存在。
-
vim:具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
目前vim是使用的最多的,也是比较推荐的,下面就来讲一下vim
什么是 vim?
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
连 vim 的官方网站 (welcome home : vim online) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
vim是一个纯命令行文本编辑器,很多文本编辑的功能都是通过键盘快捷键的方式完成,所以我们需要记住常用的键位,在vim官方网站上我们可以找到vim键盘图的完整版,不过对于初学者来说,我们只需要知道常用的就可以了。
vi/vim 的使用
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和末行模式(Last line mode)。 这三种模式的作用分别是:
命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i
,并不会输入一个字符,i
被当作了一个命令。
以下是常用的几个命令:
-
i切换到输入模式,以输入字符。
-
x删除当前光标所在处的字符。
-
:切换到末行模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠末行模式输入更多命令。
输入模式
在命令模式下按下i
就进入了输入模式。
在输入模式中,可以使用以下按键:
-
字符按键以及Shift组合,输入字符
-
ENTER,回车键,换行
-
BACK SPACE,退格键,删除光标前一个字符
-
DEL,删除键,删除光标后一个字符
-
方向键,在文本中移动光标
-
HOME/END,移动光标到行首/行尾
-
Page Up/Page Down,上/下翻页
-
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
-
ESC,退出输入模式,切换到命令模式
末行模式
在命令模式下按下:
(英文冒号)就进入了末行模式。
末行模式可以输入单个或多个字符的命令,可用的命令非常多。
在末行模式中,基本的命令有:
-
:q退出程序
-
:w保存文件
-
:wq保存并退出
-
:q 之后 按!强制退出不保存输入内容
按ESC键可随时退出末行模式。
简单的说,我们可以将这三个模式的关系用下图来表示:
vi/vim使用实例
有些linux发行套件上并没有安装vim,我们可以安装一下,下面提供了centos的安装命令
[root@localhost ~]# yum -y install vim # yum是在线安装软件的命令,后面会有详细的介绍,这边直接使用
vi和vim大部分的操作完全一模一样,所以会使用vim自然也会使用vi
编辑一个文档
直接输入vim 文件名
就能够进入 vim 的一般模式了。请注意,记得 vim 后面一定要加文件名,不管该文件存在与否!
[root@localhost ~]# vim file.txt
输入这条命令之后,会看到如下画面
按下i
进入输入模式(也称为编辑模式),开始编辑文字
在命令模式之中,只要按下i
,o
,a
等字符就可以进入输入模式了!
在编辑模式当中,你可以发现在左下角状态栏中会出现--INSERT--
的字样,那就是可以输入任意字符的提示。
这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。
好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角--INSERT--
的不见了!
输入:wq后回车即可保存离开,注意其中的冒号必须是英文输入法下的冒号!
现在我们就成功创建了一个文件,查看文件的内容
[root@localhost ~]# ls -lh file.txt [root@localhost ~]# cat file.txt