(1)bash的快捷键
Ctrl+l:相当于clear,清屏操作
Ctrl+a:将光标跳转至命令首部
Ctrl+e:将光标跳转至结尾处
Ctrl+c:取消命令执行
Ctrl+u:删除光标所在之前的命令
Ctrl+k:删除光标所在处至命令尾部的所有内容
(2)bash中的I/O重定向及管道
程序=指令+数据
读入数据:Input
输出数据:Output
Note:每一个打开的文件都有一个文件描述符(fd)
标准输入:键盘(如果不指定标准输入,则默认为键盘),文件描述符为0
标准输出:显示器(如果不指定输出位置,则默认输出在显示器)文件描述符为1
标准错误输出:显示器,文件描述符为2
I/O重定向:改变输入输出位置
输出重定向:COMMAND > NEW_POS(通常是文件),COMMAND >> NEW_POS
>:覆盖重定向,将输出内容覆盖至目标文件
>>:追加重定向,将输出内容追加至目标文件末尾
例子:
ls /etc > /tmp/etc.out #将"ls /etc"的结果输出到"/tmp/etc.out"
ls /var > /tmp/etc.out #将"ls /var"的结果输出到"/tmp/etc.out"从而覆盖原有的etc.out
ls /var/log >> /tmp/etc.out #将"ls /var/log"内容追加输出到"/tmp/etc.out"
#set -C:禁止将内容覆盖输出至已有文件中,这样比较安全,防止将重要文件覆盖(仅对当前shell有效)
强制覆盖:>|
#set +C:将不允许覆盖重定向功能关闭
标准错误输出重定向:
2>:覆盖,重定向错误输出数据流
2>>:追加,重定向错误输出数据流
标准输出和错误输出各自定向至不同位置
COMMAND > NEW_POS1 2> NEW_POS2 #如果命令成功则将输出保存至NEW_POS1,如果命令失败,则将错误输出保存至
NEW_POS2中
输入重定向: < (下列"tr"的例子中有关于输入重定向的语句,可以结合命令理解一下)
tr命令:转换或删除字符(这个命令后期会比较常用的,我建议你最好常用,然后记住怎么用)
tr[OPTION]...SET1[SET2](从标准输入读数据,而标准输入就是键盘)
例子:
1 [root@bogon ~]# tr abc ABC
hello #手动输入hello,查看结果
hello #输入hello后的结果
alpha #手动输入alpha
AlphA #结果"a"就会替换为了"A"
abcdefg #手动输入abcdefg
ABCdefg #结果中输入的"abcdefg"中的"abc"全都替换为了大写
只替换对应的字符集,你也可以再去试试
2 [root@bogon ~]# tr 'a-z' 'A-Z' < /etc/fstab #将/etc/fstab中所有小写字母替换为大写,这就是
输入重定向,本来只能从标注输入读取,我们改变了
它的读取方向,改为/etc/fstab文件了
-d:删除指定的字符
例子:
[root@bogon ~]#tr -d abc
abcdd #手动输入要处理的字符
dd #最后只会剩下dd,因为"-d"选项后面指定了要删除的"abc"字符
管道:将前一个命令的结果作为标出输出到下一个命令上,将第二个命令结果输出到第三个命令上执行,以此类推.....
COMMAND1 | COMMAND2 | COMMAND3 |....
Note:最后一个命令会在当前shell进程中的子shell进程中执行;
例子:
[root@bogon ~]# echo '$PATH' | tr 'a-z' 'A-Z' | tr -d 'U'
解释:打印'$PATH'变量,将结果做"tr"处理(将所有小写字母转换为大写),然后再将结果传送到下一个"tr"处理
"-d"删除所有"U"字母!
tee命令:从标准输入读数据,输出到屏幕上同时也可以输出到文件中
tee [OPTION]... [FILE]...
例子:
[root@bogon ~]# tee /tmp/tee.out #结果输出到了屏幕上,同时也输出到了tee.out文件中
first line. #手动输入的字符
first line. #输入后输出的字符
www.test.com #手动输入的字符
www.test.com #输入后输出的字符
网友评论