bash的快捷键
Ctrl+l : 清屏 相当于clear命令:
Ctrl+a:跳转至命令开始处:
Ctrl+e:跳转至命令结尾处:
ctrl+c :取消命令的执行
ctrl+u:删除命令行首至光标所在处的所有内容:
Ctrl+k:删除光标所在处至命令行尾部的所有内容:
4 、bash的的I/O重定向及管道
程序: 指令+数据
读入数据:Input
输出数据:output
打开的文件都有一个fd: file descriptor (文件描述符)
标准输入:keyboard ,0
标准输出:monitor 1
标注错误输出: monitor 2
I/O重定向:改变标准位置
输出重定向: echo AAA > LLL, AAA >>> LLL
>:覆盖重定向,目标文件中的原有内容会被清除:
>>:追加重定向,新的内容会追加至目标文件尾部:
#set -C:禁止将内容覆盖输出至已有文件中:
强制覆盖: >|
#set +C:
2>:覆盖重定向错误输出数据流:
2>>:追加重定向错误输出数据流:
标准输出和错误输出各自定向至不同位置:
tail -100 /etc/rc.d/rc.sysinit > /tmp/sysinit.out 2> /tmp/sysinit.err
合并标准输出和错误输出为同一个数据流进行重定向:
&>覆盖重定向
&>> 追加重定向
COMMANO > /path/to/file.out 2> &1
COMMANO > /path/to/file.out 2>> &1
输入重定向:<
tr命令:转换或删除字符
tr [OPTION]... SET1 [SET2]
HERE Documentation: <<
#cat << EOF
#cat> /path/tosomefile <<EOF
管道:
COMMANO1 |COMMANO2 |COMMANO3 |...
Note:最后一个命令会在当前shell进程的子shell进行执行:
tee
tee [OPTION]... [FILE]...
练习:
将/etc/password文件的文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中:
head -n 5 /etc/passwd |tr "a-z" "A-Z" > /tmp/passwod
将登录至将前系统上用户信息的后3位的信息转换为大写后保存至 /tmp/who.out文件中:
who | tail -n 3 | tr ‘a-z‘ ‘A-Z‘ >/tmp/who.out
文本处理工具: wc , cut , sort ,uniq
wc命令:
wc [OPTION]... [FILE]...
-l:lines 显示行数字
-w: words 显示单词数
-c:characters 显示字节数
cut命令:
cut [OPTION]... [FILE]..
-d DELIMITER:指明分隔符
-f FILEDS:
#:第#个字段
#,#[,#] 高散的多个字段 例如1,3.7
#-#:连续的多个字段 例如1-7
混合使用: 1-3,7
--output-delimiter=STRING
sort命令:
sort [OPTION]... [FILE]...
-f:忽略大小写
-r:逆序
-t DELIMITER:字段分隔符
-k #:以指定字段为标准排序
-n以数值大小进行排序
-u uniq:排序后去重
uniq命令:
uniq [OPTION]... [FILE]...
-c:显示每行重复出现的次数:
-d仅显示重复过的行:
-u:仅显示不管重复的行
Note:连续且完全相同方为重复
练习:
以冒号分隔,取出/etc/passwd文件的第6至第10行 并将这些信息按第3个字段的数值大小进行排序:最后仅显示的各自的第1个字段:
[[email protected] ~]# cut -d: -f6-10 /etc/passwd |cut -f3 | sort -n |uniq -c