##################### vim ##############################
vim的工作模式
#命令模式
#插入模式
#退出模式
#####################命令模式#######################
vim帮助方法
vimtutor
vim工作参数设定
#临时设定
打开一个vim,以/etc/passwd为例
:set nu 首部显示数字
:set nonu 取消显示数字
:set mouse=a 显示鼠标(意思是鼠标可以在vim里点选)
:set cursorline 显示行线
注意: 以上设定方式在vim退出后会还原默认
#永久设定打开vim /etc/vimrc
在末尾写
set nu
set mouse=a
set cursorline
退出后再打开一个vim
#3.字符管理
y ##复制
yl ##复制一个字母
y3l ##复制3个字母
yw ##复制一个单词
y3w #复制三个单词
yy ##复制一整行
y3y #复制三行
c ##剪切
cl #剪切一个字母
c3l #剪切三个字母
cw #剪切单词
c3w #剪切三个单词
cc #剪切一行
c3c #剪切三行
注意: 当用c做剪切动作后,vim会进入插入模式 如果需要粘贴那么要按退出插入模式 然后按p粘贴
d ##删除
dl #删除一个字母
d3l #删除三个字母
dw #删除一个单词
d3w #删除三个单词
dd #删除一整行
d3d #删除三行
p ##粘贴
u ##撤销
ctrl+r ##恢复
以上要进入vim的可视化模式才能完成
ctrl+v ##进入可视化模式
#可视化模式的批量添加以/etc/passwd为例,VISUAL BLOCK就表示进入该模式
ctrl+v 进入可视化模式只能用方向键选中要添加字符所在位置
按"I"进入插入模式写入字符例如asd
按批量添加字符出现
#5.字符的替换
以替换r为例/r
:%s/源字符/替换后字符 ##只能替换每一行出现的第一个关键字
下图为r换b
:%s/源字符/替换后字符/g ##全文替换
s所有行,g表示所有列
:18,21s/源字符/替换后字符/g ##替换第18行到第21行的关键字
:/lp/,/halt/s/sbin/hello/g ##替换lp字符和halt字符之间的所有关进字
例如替换21行Agont到nologin的r为hello
#6.在vim中编写多个文件vim file
:sp file1 在该窗口打开一个file1
ctrl+w 上|下|左|右 ###光标在窗口之间的移动
ctrl+v左右分屏
ctrl+左右 #光标左右移动
#7.光标移动及字符搜索
#光标的移动
:数字 ##光标移动到指定的行
##光标移动到行首
##光标移动到行尾
G ##光标移动到最后一行
gg ##光标移动到第一行
#搜索字符
/关键字
n #向下匹配
N #向上匹配
##############插入模式#############
##光标所在位置插入
I ##光标所在行的行首插入
A ##光标所在行行尾插入
a ##光标所在字符的下个字符插入
s ##删除光标所在字符插入
S ##删除光标所在行插入
o ##光标所在行的下一行插入
O ##光标所在行的上一行插入
############退出模式#######
:q #退出,在打开文件后没有对文件做任何修改时可使用
:wq #退出保存,在对文件修改后并保存内容时使用
:q! #强制退出,在对文件做修改后要放弃修改时使用
:wq! #强制退出保存,在对属于自己的文件或你时root用户时使用
不规范退出如下
此操作后再进入这个文件时会显示
此时按d删除孤儿进程举行了
################linux中管理输入输出#################
#输出重定向
#> 重定向正确输出
2> ##重定向错误输出
&> ##重定向所有输出
“注意:重定向动作会覆盖源文件内容”
例子:用student用户登陆系统
find /etc/ -name passwd ##此命令在student用户下执行因为权限问题会报错
find /etc/ -name passwd > file
再输入一边该命令可知文件内容已被覆盖
find /etc/ -name passwd 2> file
find /etc/ -name passwd &> file
#输出追加
“追加会把定向的输出放到原文件最后不会覆盖原文件”
#>>
2>>
&>>
find /etc -name passwd >> file
find /etc -name passwd 2>> file.err
find /etc -name passwd &>> file.all
#输入管理
<<EOF
内容
EOF
cat > westos <<EOF
Q
W
E
EOF
管道 | ##把第一条命令的正确输出变成第二条命令的输入
2>&1 ##将编号位2的错误输出转换成编号为1
ls /bin | wc -l ##统计/bin中有多少文件
用一条命令统计find /etc -name passwd所有输出结果数
find /etc -name passwd 2>&1 | wc -l find /etc/ -name passwd 2>&1 |wc -l cat file
如果想把结果显示在shell上的话需要tee命令
tee ##将输出复制一份到指定位置。
tee的用法是tee+要临时显示的文件
例如shell的话要选定其临时文件
换个命令,统计正确输出
find /etc -name passwd 2>&1 | wc -l find /etc/ -name passwd | tee /etc/pts/0 |wc -l cat file