Linux从入门到精通——Vim及输入输出管理
Posted 对方正在输入你的
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux从入门到精通——Vim及输入输出管理相关的知识,希望对你有一定的参考价值。
一.vim的常用功能
vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器
vim的模式有以下几种:
(1).命令模式: 浏览文件,临时更改vim的工作方式,对字符批量处理
(2).插入模式:对文件内容进行编辑
(3).退出模式:退出vim程序
1.命令模式
1)
调整vim的工作方式
在vim程序中
:set 调整参数
示例:
:set nu ##在每一行前显示行号
:set nonu ##取消行号显示
:set mouse=a ##显示鼠标
:set cursorline ##显示行线
:set hlsearch ##高亮显示关键字
:set nohlsearch 或 :noh ##取消高亮显示
注意:
在vim程序中设定的vim工作方式是临时的,在vim关闭后会还源
如果要永久保存vim的工作方式需要编辑vim的配置文件:/etc/vimrc
2) 字符的搜索
/关键字 n向下匹配 N向上匹配
3) 字符的管理
y ##复制
yl ##复制一个字母
y3l ##复制3个字母
yw ##复制一个单词
y3w ##复制3个单词
yy ##复制1行
y3y ##复制3行
d ##删除
dl ##删除一个字母
d3l ##删除3个字母
dw ##删除1个单词
d3w ##删除3个单词
dd ##删除1行
d3d ##删除3行
c ##剪切
cl ##剪切1个字母
c3l ##剪切3个字母
cw ##剪切1个单词
c3w ##剪切3个单词
cc ##剪切1行
c3c ##剪切3行 注意:在剪切之后vim会进入插入模式,如果要粘贴需要按【esc】退出插入模式然后按p粘贴"
p ##粘贴
u ##撤销
ctrl+r ##恢复撤销
4) vim可视化模式
ctrl + v ##在这个模式下可以选择区域操作
如批量添加字符:
ctrl + v 选中要加入字符所在的列
按大写的I
加入字符
按【esc】
5) 字符的替换
:%s/要替换的字符/替换成的字符/g
:%s/:/@/g ##替换全文的:为@
:1,5s/:/@/g ##替换1-5行的:为@
注意: %s标示所有的行,g标示所有的列
6) vim 的分屏功能
ctrl+w s ##上下分屏
ctrl+w v ##左右分屏
ctrl+w c ##关闭光标所在屏幕
ctrl+w 上下左右 ##光标移动到指定屏幕
:sp file2 ##同时编辑当前文件和file2
7) 在命令模式下光标的移动
gg ##光标移动到文件的第一行
G ##光标移动到文件的最后
:数字 ##光标移动到到指定的行
2.插入模式
插入模式下光标的移动
i ##光标所在位置插入
I ##光标所在行行首插入
o ##光标所在行下一行插入
O ##光标所在行的上一行插入
a ##光标所在字符的下一个字符插入
A ##光标所在行的行尾插入
s ##光标所在字符删除并插入
S ##光标所在行删除并插入
3.vim的退出模式
:q ##退出,在文件内容没有被改变时使用
:wq ##退出保存
:q! ##强制退出不保存,在改变文件后不想保存时使用
:wq! ##强制退出保存
##在对只读文件编写时使用注意,所编辑的只读文件必须时当前用户的文件或者当前操作的用户时root
二.系统中输入输出的管理
1.理解系统的输入输出
Linux系统中,编号为1的管理正确输出,编号为2的管理错误输出。
2.管理输入输出的符号
(1)输出重定向
> ##重定向正确输出
2> ##重定向错误输出
&> ##重定向所有输出
注意:重定向会覆盖源文件的内容
示例:
注意:以下实验必须在普通用户下完成
1 find /etc/ -name passwd > file ##定向正确输出到file 2 find /etc/ -name passwd 2> file.err ##定向错误输出到file 3 find /etc/ -name passwd &> file.all ##定向所有输出到file 4 > file ##清空file
输出追加
>> ##追加正确输出到文件最后
2>> ##追加错误输出到文件最后
&>> ##追加所有输出到文件最后
注意:追加不会覆盖源文件内容
示例:
find /etc/ -name passwd >> file ##追加正确输出到file
find /etc/ -name passwd 2>> file.err ##追加错误输出到file
find /etc/ -name passwd &>> file.all ##追加所有输出到file
1 find /etc/ -name passwd >> file ##追加正确输出到file 2 find /etc/ -name passwd 2>> file.err ##追加错误输出到file 3 find /etc/ -name passwd &>> file.all ##追加所有输出到file
(2)输入重定向
cat >file <<EOF ( cat 命令具有交互界面, EFO后面的输出当做是给cat的输入,EOF也可用别的字符替换可自定义,然后cat的输出再存入到file文件中 )
HELLO
WORLD
EOF
********管道的应用********
1.管道的作用
“ | ” 管道的作用是把前一条命令的输出变成后一条命令的输入,管道符前后都是命令,例如find /etc/ -name passwd | file 这个是错误的,因为file在此是一个文件名
注意:
(1)管道只允许正确输出通过
(2)通过管道的输入将会变成输入,而变成输入的这些输出是会被第二条命令处理的
如果需要保存输出内容,那么需要复制一份输出,用到的命令是“tee”
示例:此实验在普通用户下操作:
find /etc/ -name passwd | wc -l ##会看到的结果为2,因为错误输出不能通过管道
find /etc -name passwd 2>&1|wc -l ##会看到19,因为编号为2的输出被“2>&1”转换为编号1
find /etc -name passwd 2>&1|tee file |wc -l ##保存一份输出到file再统计行数
1 find /etc/ -name passwd | wc -l ##会看到的结果为2,因为错误输出不能通过管道 2 find /etc -name passwd 2>&1|wc -l ##会看到19,因为编号为2的输出被“2>&1”转换为编号1 3 find /etc -name passwd 2>&1|tee file |wc -l ##保存一份输出到file再统计行数
以上是关于Linux从入门到精通——Vim及输入输出管理的主要内容,如果未能解决你的问题,请参考以下文章
『Linux从入门到精通』第 ⑥ 期 - Linux编辑器——vim(最小集+指令集+自动化配置)