admin 管理员组文章数量: 887021
目录
【vim 编辑器】
【管道】
【文件内容浏览命令】
【练习】
【 vim 编辑器】
前言须知 :
1. vim 是个啥?
其实, vim 类似于 windows 上的记事本 : 能够编辑,保存,复制,粘贴,
搜索,替换等等。
在 linux 上叫 vim ,早些时候 unix 或者 linux 系统不会内置 vim 会内置一个
叫 vi 的。
2. vim 能干啥 ?
vim 本身就是一个 文本编辑器,自然用来编辑文本文件,是 vi 的增强版,使
用 vi 也可以编辑文件。
3. vim 与 linux
我们经常说,在 linux 中,一切皆是文件,而且大多数情况下以文本文件为
主,或者说,在 linux 中,我们很多程序的配置,服务的配置都是以配置文
件来完成的,而配置文件又都是配置文本文件,所以在配置的时候一定避
免不了需要编辑它,因此,vim 在 linux 的使用程度是非常高的。
4. vim 的使用
vim 是字符界面,不是图形界面,基本用不上鼠标。
三种模式 :
命令模式 : 控制光标 完成复制 粘贴 删除 查找的功能
编辑模式 : 编辑文本文件的内容
末行模式 : 保存,退出,设置环境
模式切换 :
使用 vim data.txt 进入 vim 中,默认进入命令行模式;也就是说,我们要进入到
vim 下,首先是默认的给我们显示的是 vim 三种模式下的 命令行模式。
那么命令行模式是怎样的呢?
示例 :
那么怎么又由 命令行模式 切换到 编辑模式呢?
切换 : 按下(输入) “a" 或 " i " 或 " o " 便进入到编辑模式 。
特点 : 编辑模式下会有一个特点,会让你知道此刻就在 编辑模式下,那便
是 在左下角会显示出 红色 --INSERT-- 字样。
示例 : 进入到编辑模式便可以输入东西了。
那么怎么由 编辑模式 切换到 命令行模式 呢?
切换 : 按下 " Esc " 键
示例 :会发现左下角的 红色 --INSERT-- 字样消失
那么怎么由 命令行 切换到 末行模式 ?
切换 : 输入 " : "
示例 : 左下角 是 " : " 即切换到 末行模式中。
那么怎么由 末行模式 切换到 命令行模式 ?
切换 : 按下 " Esc "
示例 : 这个切换后,前后差别不是很大,但 按下 " Esc " 就到 命令行模式
总结 :
注意 : 输入模式 和 末行模式 是相互切换不了的
命令行模式 :
常用命令 : 光标移动
注 : 行号显示是在 末行模式 下进行的。
常用命令 : 复制、粘贴、删除
常用命令 : 文件内容查找
注 : 查找可以分为两种方式去执行,一种是从上往下,一种从下往上
/ " 要查找的内容 " , 即 / 后跟的是你要查找的东西。执行完后, vim 会
将你要查找的内容 用背景颜色凸显出来,一眼就找到。
n 与 N 是 你将要查找的东西找出来之后,在所有被显示出的被查的内
容里去进行的操作。 按 n 光标就跑到下一个 被查的内容那里了。
常用命令 : 撤销编辑 保存退出
注 :
在使用 vim 编辑一个文件的时候,如果这个文件本身不存在,然而你编辑完成
之后保存并退出了,那就意味着创建了一个新的文本文件。
和 touch 的区别 : touch 创建的是一个空的新文件,并且没有指定一定是文本
文件
末行模式 :
常用命令 : 保存文件及退出vi编辑器
注 : 保存文件分为 保存 和 另存为。
其中,另存为是对文件重新命名, :w /root/newfile即为另存为
的新文件名。
常用命令 : 打开新文件或读入其他文件内容
注 :
: e 是 在已经打开的文件里面,再打开一个新的文件。
: r 是 在打开的这个文件里面去打开另一个文件并且把另一个文件的
内容装载进来。
常用命令 : 文件内容替换
注 :
# 上示表格中的所有的 old 代表的是 你要进行替换的东西,new 代表的是
替换后的新内容。
# " #,# " 这里面,第一个 # 代表的是起始行号,第二个 # 代表的是 结束行号
# 注意在 / 前是有空格的。
【 管道 】
管道 :
管道 : 由我们的 | 管道符隔开的若干条命令组成的序列。
作用 : 就是来传输的,起了一个连接的作用(有点像楼层与楼层之间的下水管。)
管道符
管道符 : “ | ” 就是根竖线。
管道符 | 的前后两个命令之间的关系 : 前一个命令的输出,使用管道符,进而作为后一
个命令的输入。 这就是管道的作用。
管道符使用格式 : 命令1 | 命令2 | 命令3 .......
注 :
# 上示图示,就是为了让大家方便理解 管道 的前后情况。
# process : 进程 / 程序 的意思
stdout : 标准输出 (一般就是指终端,就是把结果显示在屏幕上)
stdin : 标准输入
管道符的使用场合 :
当输出内容较多时,为方便浏览,可将输出内容,通过管道符,传递给 more 命
令来分页查看,也可传递给 grep 命令实现对指定对象的查看。
注 :
# 对两个命令 more ,grep 的解释 :
# more :
作用 : 用于文件内容的浏览,分页浏览,是按页去展示内容的(按空格跳
转下一页,按 q 退出,也可以进行搜索 / ,用 / 搜索)
示例 : more data.txt
more 与 管道符一起使用 :
[root@bogon ~]# ls -l | more
total 24
-rw-------. 1 root root 1402 Mar 23 20:07 anaconda-ks.cfg
-rw-r--r--. 1 root root 2381 Apr 7 21:41 baidu.html
-rw-r--r--. 1 root root 168 May 10 23:24 data.txt
drwxr-xr-x. 2 root root 6 Mar 23 22:23 Desktop
drwxr-xr-x. 2 root root 6 Mar 23 22:23 Documents
drwxr-xr-x. 2 root root 6 Mar 23 22:23 Downloads
-rw-r--r--. 1 root root 0 Apr 30 10:25 file1
-rw-r--r--. 1 root root 0 Apr 30 10:27 file2
-rw-r--r--. 1 root root 0 Apr 30 10:27 file3
-rw-r--r--. 1 root root 19 May 8 15:32 first_test.txt
-rw-r--r--. 1 root root 1557 Mar 23 22:19 initial-setup-ks.cfg
drwxr-xr-x. 4 root root 129 May 2 09:48 link_test
drwxr-xr-x. 2 root root 29 May 1 12:17 link_wenjian
drwxr-xr-x. 3 root root 17 Apr 17 17:03 loo
drwxr-xr-x. 2 root root 6 Mar 23 22:23 Music
drwxr-xr-x. 2 root root 6 Mar 23 22:23 Pictures
drwxr-xr-x. 2 root root 6 Mar 23 22:23 Public
drwxr-xr-x. 2 root root 6 Apr 3 11:11 tar_dir
drwxr-xr-x. 2 root root 6 Mar 23 22:23 Templates
drwxr-xr-x. 3 root root 17 Apr 30 11:15 text
drwxr-xr-x. 2 root root 6 Apr 30 10:29 text1
drwxr-xr-x. 2 root root 32 Apr 30 11:12 text3
--More--
# grep :
作用 :根据我们指定的字符串去匹配内容并展示内容,要是没有匹配到则
不展示。所谓匹配就是查询,搜索,就是搜索你所指定的字符串,
看看有没有这个你想找的字符串,如果有的话则会把你要找的字符
串高亮显示,要是没有就什么都不显示。
示例 :
grep 与 管道符一起使用 :
注 : grep 会把需要查找的 内容 给 高亮显示出来,如上示图中的 link_test。
注意事项 :
# 管道命令只处理前一个命令的正确输出,不处理错误输出。
# 管道符后边的命令,必须能够接收标准输入命令。
tee :
命令功能 : 用于读取标准输入的数据,并将其内容输出成文件和标准输出(终端)上。
命令格式 : tee [ - a / - i ] [ 文件.....]
注 :
其中, -a 代表 : 附加到既有文件的后面,而不是覆盖既有文件
- i 代表 : 忽略中断信号。
管道符 中的使用 :
格式 : 命令 | tee [ 文件 ]
注 :
# 上示图示即 表示了 tee 命令的用法, tee 命令会把从管道符传过来的
命令便成文件 并且 输出在屏幕也即终端上。
命令示例 :
[root@bogon ~]# echo "123" | tee tee_test.txt
123
# 上示命令便是 tee 命令在管道符中的运用,命令执行后,便可以看到在终
端上显示出 123 ,这便就是 tee 命令功能的一个体现,即将管道符传过
来的命令显示在 终端上。
[root@bogon ~]# more tee_test.txt
123
# 上示命令便是 tee 命令功能的 第二个体现,即会将管道符传过来的命
令保存至文件中,其文件名就是 tee_test.txt,我们使用 more 命令查
看,确实如此,在 tee_test.txt 中确实含有 123 。
[root@bogon ~]# echo "456" | tee tee_test.txt
456
[root@bogon ~]# more tee_test.txt
456
[root@bogon ~]# echo "123" | tee tee_test.txt
123
[root@bogon ~]# more tee_test.txt
123
[root@bogon ~]# echo "456" | tee -a tee_test.txt
456
[root@bogon ~]# more tee_test.txt
123
456
# 上示命令,想表明的就是 关于 -a 选项的作用。 如命令所示,当 456
被执行后,tee_test.txt 里含有的自然是 456。 可是,当 再次执行命
令,只是改了执行成 123 的命令时,在 tee_test .txt 的命令中显示的
却只有 123,说明什么? 说明当再次执行 tee 命令时,会将原先保存
的文件给覆盖掉,即 123 将 456 给覆盖掉了。 那么如何避免这种覆
盖呢? 这时,就需要用到 tee 命令的 -a 选项, 其作用就是追加但不
覆盖。因此,当我们使用 -a 选项后,在 tee_test.txt 文件中原先的
123 并没有被 456 所覆盖掉,这就是 -a 选项的作用。
【文件内容浏览命令】
cat
命令功能 : 查看浏览文本文件内容
命令格式 : cat [ 选项 ] 文件名列表( 意味着可以打开多个文件)
# 多个文件,将文件内容连接在一起输出。
常用选项 :
- n : 对输出内容中的所有行标注行号
- b : 对输出内容中的非空行标注行号
示例 :
# - n :效果显示, 对内容所有的行都进行了标注行号,所有的
行意味着,无论这行是否有内容,都会进行标注行号。
# - b : 效果显示, 可以看到 当内容中有空行时, - b 选项只对
有内容的行,也即 非空行 进行了 标注行号。
less / more :
命令功能 : 分页显示内容
命令格式 : less / more [ 选项 ] 文件名
常用选项 :
- 数字 : 仅适用于 more 命令,用来指定分页显示时每页的行数。
注 :
# 所谓显示每页的行数,就是只显示几行,上示 more -5
即代表只显示 5 行的内容。
+ 数字 : 从 数字行开始显示。
[root@bogon ~]# cat data.txt | less +3
注 :
# 上示命令的结果即如图所示,仔细对比, dfsfas 就是
第三行的内容,也即从第三行开始显示。
- N : 仅适用于 less 命令,其作用是在每行前添加输出行号 。
示例 :
[root@bogon ~]# less -N data.txt
注 : 图示为命令显示结果。
交互方法 :
# 按 enter 向下逐行滚动,按 空格 向下翻页,按 b 向上翻页。
# more 命令到文件结尾就自动退出, less 命令需要 输入 q 才可以退出。
head 和 tail :
head : 头部, 查看文件头部指定行数 : 默认是 10 行
tail : 尾部, 查看文件尾部指定行数 : 默认也是10 行
选项 :
- num : 指定查看的行数
示例 :
[root@bogon ~]# head -5 data.txt
dsad
sdaf
dfsfas
safsd
gfdfg
# 查看 data.txt 的前五行
[root@bogon ~]# tail -5 data.txt
4645
654
687fgr
dfgdg
fgdg
# 查看 data.txt 的后五行
注 :强调 tail 命令有一个用法 :
tail 可以动态刷新的查看某些文件的内容,假设要查看一个日志文件,你再查看日
志文件的时候,其它一些程序还在往日志文件中写内容。
假设 : 14 :00 查看的文件, 14 : 10 还在往文件里写内容,普通查看,只能查
看到 14 :00 ,看不到 14 :10 的内容。 因此就要使用 -f 选项。
- f : 是用来 动态刷新文件内容,并放在末尾。
语法格式 : tail -f [ 文件 ] ( 选项 f 前当然还可以 加数字来查看多少行)
【练习】
# 使用 ls -l 查看当前目录的内容,使用管道符将 ls -l 的内容输出,作为 grep 命令的
输入查找test
[root@bogon ~]# ls -l | grep test
-rw-r--r--. 1 root root 19 May 8 15:32 first_test.txt
drwxr-xr-x. 4 root root 129 May 2 09:48 link_test
-rw-r--r--. 1 root root 8 May 12 16:13 tee_test.txt
注 : 由于版本原因,其实,上示里,所有 test 的字样都是高亮突出现实的。
# tee 命令的使用 ls -l 查看当前目录的内容,然后使用管道,将 ls -l 的输出作为 tee
的输入,并保存到 result.txt 中。
[root@bogon ~]# ls -l | tee result.txt
[root@bogon ~]# cat result.txt
注 : 具体命令操作即如上示表示。内容太长,不展示。
版权声明:本文标题:基础三 * 下 【vim 编辑器】 【管道】【文件内容浏览命令】 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1724509680h753099.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论