重定向/管道符/通配符/转义字符/VI/VIM
数据流
- 标准输入(standard input,简称stdin):默认情况下,标准输入指从键盘获取的输入
- 标准输出(standard output,简称stdout):默认情况下,命令执行所回传正确的信息会输出到屏幕上
- 标准错误输出(standard error output,简称stderr):默认情况下,标准错误输出可理解为命令执行失败后,所回传的错误信息会输出到屏幕上
- 不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是混乱的。所以就需要用数据流重定向将这两条数据分开。
数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去,而分别传送所用的特殊字符如下所示:
- 标准输入(stdin):代码为0
- 标准输出(stdout):代码为1
- 标准错误输出(stderr):代码为2
输入重定向
将文件中的内容导入到命令
1.命令 < 文件
将文件作为命令的标准输入
2.命令 << 分界符
从标准输入中读入,直到遇到分界符才停止
原本cat默认从键盘读取内容;使用< new.txt后,cat不再读键盘,而是读取new.txt内部所有文本,打印输出到屏幕。
直到遇到输入1234才停止
>的作用:把cat读取到的内容,本来要输出到屏幕,这里使用>覆盖写入文件t2.txt;若文件不存在则新建,存在则清空原有内容再写入。
创建空文件直到输入结束标志end,再输出该文件内容
3.命令 < 文件1 >文件2
将文件1作为命令的标准输入,并将标准输出重定向到文件2
输出重定向
将原本要输出到屏幕的数据写入指定文件
对于重定向中的标准输出模式,可以省略文件描述符1,而错误输出模式的文件描述符2不能省略
1.命令 > 文件
将标准输出重定向到一个文件中(清空原有的文件数据),文件不存在则新建
2.命令 2 > 文件
将错误输出重定向到文件中(清空原有文件数据)
3.命令 >> 文件
将标准输出重定向到文件中(追加到原有的内容后)
4.命令 2 >> 文件
将错误输出重定向到文件中(追加到原有的内容后)
5.命令 >> 文件 2 >&1 或者 命令 &>> 文件
将标准输出与错误输出共同写入文件中
/dev/null
Linux 空设备,写入该文件的数据会直接永久丢弃,无任何输出、不占用磁盘空间,俗称黑洞。
命令 2 > /dev/null:将命令执行后所产生的错误信息不在默认的屏幕上显示,而是写入到空设备文件(黑洞)中,即将输出的错误信息丢弃掉
作用:让不想反馈到前端的信息隐藏,,或者将一些代码运行的提示信息隐藏
tee命令
读取标准输入数据,并将结果输出文件中并且输出到屏幕上
格式:tee 【参数】 文件名
参数:-a:追加数据
-i:忽略终端信息
按下CTRL+D结束交互
管道符
”|“---命令A | 命令B
把前面一个命令原本要输出到屏幕的信息当作后一个的标准输入
搭配其他命令使用
通配符
* 任意字符
? 单个任意字符
[a-z] 单个小写字母,,【】内容为A-Z则为单个大写字母,为0-9则为单个数字
[135]:匹配包含单个1,或3,,或5
[[:alpha:]] 任意字母
[[:upper:]] 任意大写字母
[[:lower:]] 任意小写字母
[[:digit:]] 所有数字
[[:alnum:]] 所有字母加数字
[[:punct:]] 标点符号
所有的冒号都应为英文模式下的冒号
使用
查看以p开头的所有文件
批量创建以p为前缀的目录,使用通配符匹配/home/stu目录下所有以p开头的文件
查看以p开头且其后只有一个字符的文件
此时再创建p10-15的目录,若只想匹配以p开头,且后面仅跟着一个字符串的文件则使用?通配符
查看p开头指定第一位数位为1,2第二位数字为2,5的文件
使用通配符创建多个文件时需使用大括号{}
转义字符
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符
单引号(' '):转义其中所有变量为单纯的字符串
双引号(” “):保留其中变量属性,不做转义
反引号(` `):使其中的命令执行后返回结果
在linux终端中,$$代表查看当前进程ID
输出3美元
VIM编辑器
用来编写和修改文档
命令模式:控制光标移动,可对文本进行复制、粘贴等操作
输入模式:输入文本
末行模式:保存或退出文档。
允许Vim时,,默认进入的时命令模式,此时需先切换到输入模式。
进入输入模式
按键a:从光标后面一位插入文本
按键i:从光标当前位置插入文本
按键o:在光标下面再创建一个空行。
编写完成后,需先返回命令模式,然后进入末行模式,执行文档的保存或退出操作
末行模式常见命令
:w------>保存
:w 新文件名-------->另存为该文件
:q------->退出
:q!------->强制退出,不保存
:wq!------>强制保存退出
:set nu-------->显示行号,临时,,再输入:数字就可以跳转到对应行
设置永久显示行号:
vim /etc/vimrc---这是vim编辑器的配置文件
在该文件中插入set nu
:set nonu------->不显示行号
:命令------->执行该命令
:整数------->跳转到该行
:s/one/two------->将当前光标所在行的第一个one替换为two
:s/one/two/g------->将当前光标所在行的所有one替换成two
:n1,n2 s/one/two------->将行号n1到n2内所有one替换为two
:%s/ome/two/g------->将全文的one替换为two
?字符串------->从下往上在文本中搜索该字符串
/ 字符串------->从上往下在文本中搜索该字符串
命令模式常见命令
dd:删除(剪切)光标所在的整行
5dd:删除(剪切)从光标处开始的5行
yy:复制光标所在整行
5yy:复制从光标处开始的5行
n:显示搜索命令定位到的下一个字符串
N:显示搜索命令定位到的上一个字符串
u:撤销上一步操作
p:将之前使用dd或yy得到数据粘贴到光标后
该模式下按下SHIFT+6(^键)--->光标跳转行首
该模式下SHIFT+4($键)---->光标跳转行尾
gg------->文档首行第一个字符处
G------->文档最后一行第一个字符处
行号gg或者行号G------->跳转到指定行
批量注释方法:
在此模式下按下CTRL+v键进入可视块编辑状态
此后用键盘上下键选中每一行第一列,在按SHIFT+i键(必须这样)进入编辑界面,此时在输入要插入的内容,再点击esc即可批量注释
此文件没有正常流程退出,如CTRL+C键退出了编辑文本,导致临时文件与原文件同时存在。
检测到交换文件.ens160.nmconnection.swp,且提示进程 5574 还在运行,是之前卡死的 vim 没彻底关闭,生成了锁文件。终结该进程即可,或者选择R,正常编辑保存文件后,删除该临时文件。
挂载阿里云镜像
在/etc/yum.repos.d目录中新建一个.repo文件
