- 标准输入(stdin) #其代码为0 标志为“<” "<<"是输入结束
[zhang@MyaliyunHost ~]$ cat > t1 < t [zhang@MyaliyunHost ~]$ cat t1 Hello everybady! [zhang@MyaliyunHost ~]$ cat > t1 << t #后面的t为输入结束标志 > fff > wefa > asfdsjal > djslkf > t [zhang@MyaliyunHost ~]$ cat t Hello everybady! [zhang@MyaliyunHost ~]$ cat t1 fff wefa asfdsjal djslkf
- 标准输出(stdout) #其代码为1 标志为“>”或“1>” ">>“或"1>>”
[zhang@MyaliyunHost ~]$ echo aaabbb > t [zhang@MyaliyunHost ~]$ cat t aaabbb [zhang@MyaliyunHost ~]$ echo ccccsda >> t [zhang@MyaliyunHost ~]$ cat t aaabbb ccccsda
- 标准错误输出(stdout) #其代码为2 标志为“2>” “2>>”
/dev/null 垃圾桶黑洞装置,可以把没用的信息定向到/dev/null[zhang@MyaliyunHost ~]$ ls skdjfl 2> t [zhang@MyaliyunHost ~]$ cat t ls: cannot access skdjfl: No such file or directory [zhang@MyaliyunHost ~]$ ls aaaaa 2>> t [zhang@MyaliyunHost ~]$ cat t ls: cannot access skdjfl: No such file or directory ls: cannot access aaaaa: No such file or directory
管道指令“|” #对前一个命令输出结果再次处理
前一个命令的标准输出作为下一个命令的标准输入
选取指令
- cut
常用格式 cut [-df] [file] 或者 cut [-c] [file]
-d:自定义分隔符,默认为制表符 (TAB)
-f:与-d一起使用,指明显示那个区域
-c:声明用那种字符分割
** 更高级的分割有awk与printf格式控制输出 - grep指令
- 双重定向
- wc 统计指令
命令执行控制符号&&与 ||
&&逻辑与的意思 command1 && command2 #命令1成功执行命令2
||逻辑或 command1 || command2 #命令1失败执行命令2
排序命令:
-
sor
-
wc [- lwm]
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符; -
uniq 仅列出一个显示
tee双重定向 可以定向到屏幕 然后定向到屏幕
-a 累加的方式
字符转换命令: tr, col, join, paste, expand
- tr xxx可以用来删除一段讯息当中的文字,或者是进行文字讯息的替换
-d :删除讯息当中的 xxx 这个字符串;
-s :取代掉重复的字符 - join 处理两个文件之间的数据,主要是在处理两个文件,有 " 相同数据" 的那一行,才将他加在一起
- paste
处理两个文件的数据相关性, paste 直接将两行贴在一起,且中间以 [tab] 键隔开而已 - expand 在将 [tab] 按键转成空格键
分区命令: split 将一个大文件,依据文件大小或行数来分区
参数代换: xargs 很多指令并不支持管线命令,因此我们可以透过 xargs 来提供该指令引用 standard input 之用。
不小心按了 [crtl]+s 则画面会被冻结。你可以使用 [ctrl]+q 来解除冻结
[crtl]+u 可以删除签名输入的字符、
正则表达式
正规表示法就是处理字符串的方法,以行为单位来进行字符串的处理行为, 正规表示式透过一些特殊符号的辅助,可以轻易的达到『搜寻/删除/取代』某特定字符串的处理程序!
sed工具与正则表达式
sed工具sed可以将数据进行取代、删除、新增、等等的功能
sed [- nefri] [ 动 作]
- -n 以行为单位的新增/ 删除功能
- -e :直接在指令列模式上进行 sed 的动作编辑
- -f :直接将 sed 的动作写在一个文件内
- -i 选项可以 直接去修改后面接的文件内容
- a :新增, a 的后面可以接字符串,而这些字符串会在新的一行出现
- c 以行为单位的取代与显示功能.
- p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运作
- 部分数据的搜寻并取代的功能
sed ‘s/要被取代的字符串/ /新的字符串/g’
s :取代
获取网卡地址ifconfig eth0 |grep 'inet ' | sed 's/^.*inet//g'|sed 's/ *netmask.*$//g'
sed还可以直接修改文件内容。
延伸正规表示法
- +重复一个或一个以上的前一个 RE 字符
- ?零个或一个的前一个 RE 字符
- | 用或 or 的方式找出数个字符串
- () 找出群组字符串
- ()+ 多个重复群组的判别
egrep -v ‘$|#’ 去掉#开头 和空白行
文件的格式化处理
格式化打印 printf 和C语言printf输出类似
awk数据处理工具。
awk运行模式
awk ’ 条 件 类型 型 1{ 动作 作 1} 条 件 类型 型 2{ 动作 作 2} …’ filename
awk 是以行为一次处理的单位,而以字段为最小的处理单位
awk内建变量
- NF 每一行 ($0) 拥有的字段总数
- NR 目前 awk 所处理的是『第几行』数据
- FS 目前的分隔字符,默认是空格键
awk 变量从第二行开始 可以用 BEGIN预先定义变量。
awk 的逻辑运算字符
运算单元 代表意义
> 大于
<小于
=大于或等于
<=小于或等于
==等于
!=不等于
awk动作内{}支持if语句
还可以进行循环计算