​​io指的是input和output 将程序或者文件的内容输出到屏幕或者文件内
标准的输入和输出进程IO通道(文件描述符)
——————————————————————————————————————
编 号 通过名称 描述 默认设备 用法
——————————————————————————————————————
0 stdin 标准输入 键盘 仅读取
——————————————————————————————————————
1 stdout 标准输出 显示器 仅写入
——————————————————————————————————————
2 stderr 标准错误输出 显示器 仅写入
——————————————————————————————————————
3+ filename 其他文件 无 读取或者写入
——————————————————————————————————————
输出重定向操作符>file 重定向stdout以覆盖文件
>>file 重定向stdout以追加到文件
2>file 重定向stderr以覆盖文件
2>/dev/null 重定向stder到/dev/null
&>file 重定向stdout和stderr以覆盖同一个文件 等同于>file2>&1
&>>file重定向stdout和stderr以追加同一个文件 等同于>>file2>&1
输出:标准输出(正确输出)
错误输出
全部输出
输入:标准输入(从键盘读取内容)
ehco redhat|passwd --stdin
​
输出重定向:cat 1.txt > 覆盖
/echo >> 追加
2 > 错误输出
&> 全部输出
​
/dev/null 空文件 linux黑洞
重定向输出到文件-示例以下命令不做为root用户运行时,产生输出错误:
$ find /etc - name passwd
可以执行以下操作保存输出和错误信息
$ find /etc - name passwd > find.out
$ find /etc - name passwd 2> /dev/null
$ find /etc - name passwd > find.out 2 >find.err
less:一次查看一个页面的输入
$ ls -l /etc|less
mail:发送输入通过email
lpr:发送输入到打印机
$ echo “test print" |lpr
$ echo "test print" |lpr -P print_name
():结合多个应用程序的STDOUT
$(cal 2007 ;cal 2008)|less
管道符 command1 | command2 | command3...等
将commmand1的标准输出作为command2的标准输入,而不输出到屏幕
错误的输出不能通过管道
将管道前面的命令的输出结果作为管道后面的输入参数 只能接收正确输出
三通管道做用户提醒 也是接收正确的用户
tee用法
$ command1 | tee filename | command2
存储command1的stdout在filename里,然后通过管道传给command2
使用:
故障诊断复杂的管道
同时查看和记载输出
stdin的使用从文件重定向stdin
使用 < 重定向标准输入
某些命令能接收数据的重定向从文件到标准输入:
$ tr 'A-Z' 'a-z'<.bash_profile
以上命令将把bash_profile文件中的大写字符全部转换成小写字符
等效于:$ cat .bash_profile | tr 'A-z' 'a-z
发送多行到stdin
使用 << word 从键盘重定向多行到stdin
接收所有的标准输入直到输入word字符
例如:
> hello redhat
> hello huawei
> hello weibo
> END
vim介绍vim是增强的文本编辑器
vim具有语法纠正的功能
vim是vi的高级版本,由vim-enhanced软件包提供
gvim:vim的图形化版本 提供在vim-x11包里
优点:
速度:操作键盘次数减少(通过快捷键来操作文本)
简单:不依赖鼠标/图形(最小化运行)
可用:可适应于多种类unix系统(兼容unix和各种发行版本的linux)
缺点:
入门难 着重在于键盘的操作速度
vim的三种工作模式命令模式:这种模式是用于文件的导航,剪切和粘贴,和简单的命令。打开文件的第一个模式就算命令模式
插入模式:这种模式是用于正常的文本编辑。
退出模式:这种模式是用来保存,退出,并打开文件,以及搜索和替换和其他更复杂的操作。
用vim打开一个文件运行vim:
vim filename
如果文件存在则该文件被打开并显示内容
如果文件不存在,则vim在第一次编辑并保存的时候创建这个文件
插入模式-修改文件在命令模式下按以下键进入插入模式:
i 光标左边插入文本
a 在光标右边插入文本
o 在光标所在行的下一行插入新行
I 在行首插入文本
A 在一行的结尾处添加文本
O 在光标所在行的上一行插入新行
命令模式 - 移动光标——————————————————————————————————————————
操作类型 操作键 功能
——————————————————————————————————————————
光标方向移动 ↑ ↓ ← → 上,下,左,右
——————————————————————————————————————————
翻页 Page Down或Ctrl + F 向下翻动一整页内容
——————————————————————————————————————————
翻页 Page UP或Ctrl + B 向上翻动一整页内容
——————————————————————————————————————————
行内快速跳转 Home键, ^ , 数字"0” 和 end键 , “$”键 跳转至行首 和 跳转至行尾
——————————————————————————————————————————
行间快速跳转 1G,gg 和 G 和 #G 跳转到文件的首行 和 末尾行 和第#行
——————————————————————————————————————————
行号显示 :set nu 和 set nonu 在编辑器中显示行号和取消编辑器中的行号显示
——————————————————————————————————————————
命令模式-复杂,剪切和粘贴删除:
x或Del 删除光标处的单个字符
dd 剪切当前光标所在行
Ndd 剪切前光标所在行以及下面N-1行
cc 替换改行,并进入插入模式
d^ 删除当前光标之前到行首的所有字符
d$ 删除当前光标处到行尾的所有字符
dw 删除当前光标处到词尾的所有字符
复制:
Nyy 复制当前N行整行的内容到剪切板
:Start,end copy dest 将start到end行的内容复制到dest行以下
移动:
;Start,end m dest 将start到end行的内容移动到dest行以下
粘贴:
p 将缓冲区中的内容粘贴到光标位置处之后
P(大写) 粘贴到光标位置处之前
命令模式文件内容查找
/word 从上而下在文件中查找字符串“word”
?word 从下而上在文件中查找字符串“word”
n 定位下一个匹配的被查找字符串
N 定位上一个匹配的被查找字符串
撤销
u 按一次取消最近的一次操作多次重复按u键,恢复已进行的多步操作
U 撤销光标所在行的更改
Ctrl-r 取消最后一次“撤销”
. 重复操作
退出模式保存退出
保存文件:
:w 保存当前文件
:w /root/newfile 另存为其他文件
:m,nw 文件名 把m到n行内容另存到指定文件中
退出vim:
:q 未修改退出
:q! 放弃对文件内容的修改,并退出vim
:wq 保存文件退出
:wq! 强制保存文件退出
查找替换
:s /old/new 将当前行中查找到的第一个字符“old” 串替换为 “new”
:s /old/new/g 将当前行中查找到的所有字符串“old”替换为“new”
:m,n s/old/new/g 在行号“m,n”范围内替换所有的字符串”old“为”new“
:% s/old/new/gi 在整个文件范围内替换所有的字符串”old“为”new“
:s /old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认
可视化模式允许选择文本块:
- v开始字符高亮选定
- V开始行高宽
- ctrl+v列方向高亮选定
高亮显示的文本能被删除d,拷贝y,替换c,搜索/替换:s/old/new等
多行注释
- ctrl+v 进入列编辑模式
- 向下或向上移动光标
- 把需要注释的行的开头标记起来
- 然后按大写的I
- 再插入注释符,比如”#“
- 再按Esc,就会全部注释了。
多窗口模式在单个vim屏幕中多个文档能被查看
Ctrl w ,s:横向分割屏幕
Ctrl w ,v:纵向分割屏幕
Ctrl w ,方向键:在窗口间移动
退出模式的指令只影响当前窗口
:sp file 在同一个窗口打开其他文件
:help windows :显示更多窗口命令