红帽Linux — 创建、查看、编辑文本文件
文章目录
标准输入输出
-
STDIN:标准输入。默认是键盘输入,也可以是其他命令的处理结果,或是一个文件里的内容
-
STDOUT:标准输出。正确的结果,默认发送到终端窗口,可以输出给下一个命令或一个文件
-
STDERR:标准错误输出。警报信息,默认发送到终端窗口,可以输出给下一个命令或一个文件
输出重定向
覆盖式重定向
ls > right.txt #覆盖原有内容
附加式重定向
ls >> right.txt #附加到结尾
标准输出与标准错误输出的重定向
ls 1> right.txt #1可省略,表示标准输出的重定向
ls 1>> right.txt #
ls 2> error.txt #2不可省略,且2后不可有空格
ls 2>> error.txt #表示标准错误输出的重定向
将stdout、stderr一起写入文本文件
ls &> all.txt #stdout和stderr的重定向
#或
ls > all.txt 2>&1 #stdout重定向到 all.txt后,stderr输出重定向到stdout,即也重定向到all.txt
#2>&1 意为将stderr重定向到stdout中输出(覆盖式还是附加式,由stdout的决定)
ls 2>&1 > file.txt
不行,因为未执行 >file.txt前,标准输出为屏幕打印,所以报错信息只会屏幕打印出来,然后标准输出重定向到file.txt中
ls 2>&1 $(1>file.txt)
也不行,因为内层$()指令行完后,回到外层标准输出轨道又变回屏幕,指令的执行遵循递归规律
将标准错误丢弃(不显示)
ls 2> /dev/null #null是黑洞设备,相对于删除
输入重定向(了解)
仅在写脚本或一些高级操作时才用,
< #将文件作为命令的标准输入
<< EOF #从标准输入中读取,直到遇到EOF终止
mysqldump < 备份
命令 < 文件 > 文件2 #将文件当作命令的标准输入,并将执行结果输出到文件2
cat << 123 #输入到123就停止,输别的不停止输入(常用于脚本的编写)
cat 1.txt 等价于 cat < 1.txt,都是将1.txt输入到cat进程显示,cat进程的默认的是标准输出,所以屏幕打印
一些例子
#检查文件变化
diff previous-file current-file >> /tmp tracking-changes-made
管道符
“|” 管道符
作用:将前面进程的输出作为后面进程的输入
grep 筛选功能
<目录文本> grep a #筛选文本中含a字符的文件名和目录名
使用管道符与grep
ls /dev | grep a #显示/dev目录下含a的文件和目录
ls /dev | grep a | grep "1$" #显示/dev目录下含有a且以1结尾的结果
# 1$表示以1结尾
find -name / passwd 2>&1 |less
# find -name / passwd 这条错误指令(正确的是find / -name passwd),其STDERR重定向到STDOUT中,所以未在屏幕打印,而是参与了后续的管道指令中,进行分页显示。
“|tee” 管道符
作用:当既需要重定向到文件,又想输出结果能够通过管道流向写入一个进程时,使用tee
<command1> |tee [file]| <command2> #tee的分支管道必须接输出文件或屏幕打印
<command1> |tee [file] #若在指令末尾使用tee,保存到file后会屏幕打印
<command> |tee -a <file> #可在文本末尾写入内容
ls /dev |tee file1.txt > file2.txt #将ls结果通过tee管道复制一份到file1.txt,原来的继续重定向到file2.txt
小测验
习题
1.C 2.A 3.D 4.C 5.B
6.C 7.D
答案
VIM 编辑文本文件
vim是vi编辑工具的高级版本,提供内容检测功能,通过颜色进行展示
vim <file> #使用vim打开文本
优势
-
跨平台,不同系统均可用
-
安装包小,不依赖图形化界面
-
提供大量快捷功能
vim模式
- 编辑模式(插入模式)
- 命令模式(普通模式)
- 扩展命令模式(末行模式)
- 可视模式(用于选中内容)
- shift + v 、v:行模式
- ctrl + v:块模式
vim学习文档
-
vimtutor
vim普通模式(命令模式)
- 跳至首行:双击g
- 跳至末尾:G
- 清空行:cc
- 删除所选:x
- 复制(拖拉):y
- 粘贴(放置):p
- 剪切行:dd
- 撤销:u
- 列出行序号:set nu
- 查找:/
- 左、下、上、右:h、j、k、l
vim末行模式(扩展命令模式,按: 进入)
- w 保存
- q 退出
- wq 或 x 保存退出
- q! 强制退出不保存
- w! 强制保存(可能需要权限)
- r <file> 读入一个文件,在光标的下一行插入
- w <file> 将当前文件另存为到另一文件
- ! <command> 执行命令
- r ! <command> 将命令的执行结果插入
其它编辑器
gedit <file> #使用gedit编译器打开
参考资料:Red Hat Training and Certification