UNIX 读书笔记01

标准输出流默认不能随着管道流下,可以使用如下脚本:

ls n* 2> errors   

2> 代表标准错误流的处理方式跟随标准输出流保持一致


vim:
1,$s/^/爱/  给从第一行开始每行行头加上”爱“
15,$s/$/爱  给从第15行开始每行行尾加上“爱
1,$s/[0-9]/*/g 将所有的数字替换成*
1,$s/[^*]//g 将所有非*号字符删除掉
1,$s/^.\{10\}//g 删除每行前10个字符
cut:
ls -alh | cut -c1          截取第一个字符

ls -alh | cut -c1-20     截取第1到20个字符

ls -alh | cut -c1,20      截取第1个和第20个字符

ls -alh | cut -c21-       截取从第21个字符后面所有
cut -d: -f6 passwd      以逗号切割passwd 取第6段
cut -d: -f1-6 passwd   以逗号切割passwd 取第1到6段
cut -d: -f1-6 passwd   以逗号切割passwd 取第1到6段
cut -d: -f1,6 passwd    以逗号切割passwd 取第1段和第6段

paste:

sed:
sed ‘s/z/*/’ file 将file每行第一个z替换成*
sed ‘s/z/*/g’ file 将file每行所有的z替换成*
sed -n ‘1,4p’ shadow 只显示1~4行
sed -n ‘/ad/p’ shadow 包括ad的行显示出来
sed ‘1,2d’ names  删除文件中的1~2行
sed ‘/z/d’ names 将包含z的行全部删除
sed ‘2a love’ 在第二行后面追加love
sed ‘2i love’ 在第二行前面追加love

 
 
tr:
 tr : ^ < shadow 将所有:字符替换成<字符
 tr ‘[a-z]’ ‘[A-Z]’ <  passwd  将所有小写字符替换成大写字符
tr ‘:’ ‘\11’ < passwd   将所有冒号替换成制表符
      已经存储于:h[0][0]c[0][0]
grep:
grep -vn ‘z’ names 显示不包含z的行,并且显示行号
grep -l ‘in’ *.log  在所有的log文件中查找in,只显示文件名
sort:
sort -u names 排序并且去重复
sort -r names 颠倒顺序(倒序)
sort  names -o names 将排序后的结果重新写入源文件,此处不能用重定向操作符.重定向会破坏源文件,导致操作失败
sort -n num 按照算术排序(数字排序)
ls -l | sort -k 5 -n 按照第五列进行算术排序(文件大小排序)
uniq:
sort  num|uniq 将num中重复行删除(使用sort的原因是将num中的重复行排序成连续行)
sort num|uniq -d 将重复行显示出来
sort num | uniq -c 去重并显示重复次数,该命令带与不带-c选项区别就在于是否会显示重复次数
awk:
cat /etc/passwd | awk -F ‘:’ ‘{print $0}’  用;分割,打印整行
awk -F ‘:’ ‘{print $1}’ /etc/passwd 用;分割,打印第一列
awk -F ‘:’ ‘BEGIN {print “print file begin”} {print $1} END {print “print file end”}’  /etc/passwd  用;分割,打印第一列,并且在最前最后加上消息

附件列表

     

    Bill

    赶紧打开电脑 写两行代码压压惊 ~

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注