第四章
输出重定向
> 覆盖性重定向 例如 cal > aa
若aa 开始的时候不存在,则系统会创建aa,并且把之前命令的结果写进去
若aa是存在的,则系统清空aa,然后把前边命令的结果再写入aa
>> 追加性重定向,cal >> aa
不清空aa内容,接着往后写内容
清空aa cat /dev/null > aa
/dev/null 是一个黑洞,所有接受到的数据均会清空,就像一个垃圾桶。是一个空文件
> >> 只能重定向正确的结果,不能重定向错误的返回信息
如果此时用的是> 文件内容同样会被清空
2>
2>> 只能重定向错误的结果,不能重定向正确的结果
&>
&>> 无论正确的错误的都进行重定向
可以一块使用
例如 cal >> aa 2>>bb 如果cal是正确命令,则重定向到aa中,若是错误的命令,则重定向到bb中
cal 2> aa 1>&2 cal 是正确的命令 本不可以2>重定向,但是后边2>&1的意思就是把错误的当做正确重定向,这样就可以重定向到aa中了
xx > aa 2>&1 与上边相反
输入重定向
<
例: tr 'a-z' 'A-Z' < /etc/hosts
对一个文件不能同时进行写入和输出操作
<< 一般用于HEAR文档
cat <<EOF > aa 或者 cat > aa << EOF
>ssfdfsdf
>dfsdfsdf
>EOF
会将EOF中间的文本重定向到aa中去。
grep 关键字 file 从file 中查找含有关键字的行
例 : grep root /etc/passwd
-n 显示行号
-i 不区分大小写
-v 反向过滤
-A3 找到关键字的行,并且显示其下3行
-B3 找到关键字的行,并且显示前边的3行
管道 com1| com2 | com3
com1 的结果,通过| 传递给com2 ,作为com2 的参数
tee 命令的使用 跟 > 意思差不多 覆盖重定向
加 -a 选项后,就不覆盖
编辑器的使用
图形化编辑器 gedit 也可以在cl 中打开 gedit passwd
命令行编辑器 vi vim
命令模式 刚进入vim时候,默认的模式为命令模式
插入模式
i 当前光标位置插入
a 当前光标后一个位置插入
o 当前光标行的下一行生成空白行,并进入插入模式
I 跳到当前光标行的开头,进入插入模式
A 跳到当前光标行的末尾,进入插入模式
O 在当前光标行的上一行生成空白行,进入插入模式
按ESC 退出到命令模式
末行模式
1.命令模式下按 / 进入末行模式
一般用于查找
\c 忽略前边要查找内容的大小写
查找后的内容会被高亮显示,如果完事不想让高亮显示了,
可以/xxxxxx,随便再查找一个不存在的东西,上一个查找的高亮内容就不显示了
2.命令模式下按 :进入末行模式
: 进入末行模式
保存 :w 另存为 :w 名称
退出:q 不保存退出:q! 保存退出:wq 或者 x (小写)
设置密码 :X(大写) 密码 设置密码后,如果别的用户想编辑,必须输出密码
显示行号 :set nu 不显示行号:set nonu
编辑器永久显示行号方法,
1.在用户的家目录创建一个隐藏文件 .vimrc 内容保存为set nu
然后此用户打开文件就会显示行号
2.编辑/etc/vimrc 添加set nu 属性,所有用户打开文件就会都显示行号
跳到第n行 :n
替换 当前行的第一个: s/old/new/
替换 当前行的所有 : s/old/new/g
替换 指定行 :m,ns/old/new/s m到n行所有
替换 当前行到 倒数第2行 .,$-2s/old/new/g
替换全文 1,$s/old/new/g 或者 %s/old/new/ %=1,$
替换带有/的内容时候,需要在内容/前加转义符\
或者用s#old#new#g
:r /etc/hosts 读入一个文件内容
:.! 命令 执行命令将结果写入进来
分屏 : sp 上下分屏 还有其他分屏方式,以及多文档分屏编辑
ctrl +w按两次可以在两个部分里跳转
命令模式里的编辑操作
1,定位行 nG 切换到n行 G 切换到最后一行 gg切换到第一行
2,删除(剪切) 删除当前光标单个字符 x 删除当前行dd 删除包括当前行的向下三行 3dd
3.粘贴 p
5,替换 替换当前光标字符 r + 新字符 连续替换 R
6,复制 复制包括当前行的以下4行 4yy
7,视图模式 选好起始点 ,然后 ctrl + v , 然后上下左右调整块大小,然后对选中的视图块进行操作 y 复制,x 删除 I本行插入等
命令模式中
u 撤销, ctrl + r 前进
vimtutor vim 教程
输出重定向
> 覆盖性重定向 例如 cal > aa
若aa 开始的时候不存在,则系统会创建aa,并且把之前命令的结果写进去
若aa是存在的,则系统清空aa,然后把前边命令的结果再写入aa
>> 追加性重定向,cal >> aa
不清空aa内容,接着往后写内容
清空aa cat /dev/null > aa
/dev/null 是一个黑洞,所有接受到的数据均会清空,就像一个垃圾桶。是一个空文件
> >> 只能重定向正确的结果,不能重定向错误的返回信息
如果此时用的是> 文件内容同样会被清空
2>
2>> 只能重定向错误的结果,不能重定向正确的结果
&>
&>> 无论正确的错误的都进行重定向
可以一块使用
例如 cal >> aa 2>>bb 如果cal是正确命令,则重定向到aa中,若是错误的命令,则重定向到bb中
cal 2> aa 1>&2 cal 是正确的命令 本不可以2>重定向,但是后边2>&1的意思就是把错误的当做正确重定向,这样就可以重定向到aa中了
xx > aa 2>&1 与上边相反
输入重定向
<
例: tr 'a-z' 'A-Z' < /etc/hosts
对一个文件不能同时进行写入和输出操作
<< 一般用于HEAR文档
cat <<EOF > aa 或者 cat > aa << EOF
>ssfdfsdf
>dfsdfsdf
>EOF
会将EOF中间的文本重定向到aa中去。
grep 关键字 file 从file 中查找含有关键字的行
例 : grep root /etc/passwd
-n 显示行号
-i 不区分大小写
-v 反向过滤
-A3 找到关键字的行,并且显示其下3行
-B3 找到关键字的行,并且显示前边的3行
管道 com1| com2 | com3
com1 的结果,通过| 传递给com2 ,作为com2 的参数
tee 命令的使用 跟 > 意思差不多 覆盖重定向
加 -a 选项后,就不覆盖
编辑器的使用
图形化编辑器 gedit 也可以在cl 中打开 gedit passwd
命令行编辑器 vi vim
命令模式 刚进入vim时候,默认的模式为命令模式
插入模式
i 当前光标位置插入
a 当前光标后一个位置插入
o 当前光标行的下一行生成空白行,并进入插入模式
I 跳到当前光标行的开头,进入插入模式
A 跳到当前光标行的末尾,进入插入模式
O 在当前光标行的上一行生成空白行,进入插入模式
按ESC 退出到命令模式
末行模式
1.命令模式下按 / 进入末行模式
一般用于查找
\c 忽略前边要查找内容的大小写
查找后的内容会被高亮显示,如果完事不想让高亮显示了,
可以/xxxxxx,随便再查找一个不存在的东西,上一个查找的高亮内容就不显示了
2.命令模式下按 :进入末行模式
: 进入末行模式
保存 :w 另存为 :w 名称
退出:q 不保存退出:q! 保存退出:wq 或者 x (小写)
设置密码 :X(大写) 密码 设置密码后,如果别的用户想编辑,必须输出密码
显示行号 :set nu 不显示行号:set nonu
编辑器永久显示行号方法,
1.在用户的家目录创建一个隐藏文件 .vimrc 内容保存为set nu
然后此用户打开文件就会显示行号
2.编辑/etc/vimrc 添加set nu 属性,所有用户打开文件就会都显示行号
跳到第n行 :n
替换 当前行的第一个: s/old/new/
替换 当前行的所有 : s/old/new/g
替换 指定行 :m,ns/old/new/s m到n行所有
替换 当前行到 倒数第2行 .,$-2s/old/new/g
替换全文 1,$s/old/new/g 或者 %s/old/new/ %=1,$
替换带有/的内容时候,需要在内容/前加转义符\
或者用s#old#new#g
:r /etc/hosts 读入一个文件内容
:.! 命令 执行命令将结果写入进来
分屏 : sp 上下分屏 还有其他分屏方式,以及多文档分屏编辑
ctrl +w按两次可以在两个部分里跳转
命令模式里的编辑操作
1,定位行 nG 切换到n行 G 切换到最后一行 gg切换到第一行
2,删除(剪切) 删除当前光标单个字符 x 删除当前行dd 删除包括当前行的向下三行 3dd
3.粘贴 p
5,替换 替换当前光标字符 r + 新字符 连续替换 R
6,复制 复制包括当前行的以下4行 4yy
7,视图模式 选好起始点 ,然后 ctrl + v , 然后上下左右调整块大小,然后对选中的视图块进行操作 y 复制,x 删除 I本行插入等
命令模式中
u 撤销, ctrl + r 前进
vimtutor vim 教程