Linux-A-基础-第6章-管道,重定向及文本处理


目录(持续更新)


基础-第0章-安装
基础-第1章-基本操作
基础-第2章-磁盘及文件系统管理
基础-第3章-获得帮助
基础-第4章-用户及权限基础
基础-第5章-网络基本配置
基础-第6章-管道,重定向及文本处理
基础-第7章-系统启动详解

进阶-第1章-日志服务
进阶-第2章-DNS域名服务器
进阶-第3章-FTP文件共享服务
进阶-第4章-NFS文件共享服务
进阶-第5章-SMB文件共享服务
进阶-第6章-WEB服务Apache篇
进阶-第7章-电子邮件服务
进阶-第8章-Linux服务基础及管理

[高级-第1章-LVM逻辑卷]
[高级-第2章-高级权限ACL]
[高级-第3章-RAID提升速度及冗余]
[高级-第4章-高级网络-网卡绑定,子端口]
[高级-第5章-SELinux安全系统基础]
[高级-第6章-IPTable防火墙基础]
[高级-第7章-Linux-自动化部署]


第6章 管道,重定向及文本处理


第一节 linux多命令协作:管道和重定向
  • 不要重复发明轮子

      开源文化的核心理念之一就是不要重复发明轮子,很多开源软件都是先有软件代码功能的重新组合
      就好象通过零件装配机器一样,源代码的开放和共享让这成为了可能,同时也大大的提高了效率和生产力
    
  • 管道和重定向

      在linux中大多命令都很简单,我们可以通过将不同功能的命令组合一起来达到某个复杂的功能的目的
    
      linux中几乎所有命令的返回数据都是纯文本的(因为命令都是运行在CLI的)
    
      而纯文本形式数据大多是输入格式,就让很多命令协作成为可能
    
      linux的命令行为我们提供了管道和重定向机制,多命令协作就是通过管道和重定向完成的
    
  • 命令行shell的数据流有以下定义

      STDIN       标准输入    0   键盘
    
      STDOUT      标准输出    1   终端
    
      STDERR      标准错误    2   终端
    

    命令通过STDIN接受参数数据
    通过STDOUT输出结果
    通过STDERR输出错误

  • 通过管道和重定向我们可以控制CLI数据流

  • 重定向

          >   将STDOUT重定向到文件(覆盖)   echo"linuxcast" > outfile
              将命令的输出保存到文件中    ls > outfile
              无法保存错误报错信息
    
          >>  将STDOUT重定向到文件(追加)   echo"linuxcast" >> outfile
              将命令的输出保存到文件中    ls >> outfile
              无法保存错误报错信息
    
          2>  将STDERR重定向到文件       ls nothere 2> errorout
              只将命令的报错信息保存到文件  
              正常信息不会被保存
    
          2>&1    将STDERR和STDOUT结合        ls nothere 2> alloutput
              将命令输出和报错都保存到文件
    
          <   重定向STDIN            grep linuxcast < /etc/passwd
              把文件信息传递给命令
    
  • 管道

          |   将一个命令的STDOUT        ls -l |greo linuxcast
              作为另一个命令的STDIN       find / -user linuxcast | grep video
    
      注:重定向到  /dev/null 的信息都会丢弃处理
    
      管道用来组合命令    重定向用来保存信息
    

第二节 linux命令行文本处理
  • 基于关键字信息搜索

      命令grep用以基于关键字搜索文本
    
      grep 'linuxcast' /etc/passwd
    
      find / -user linuxcast |grep Video
    
      -i  搜索忽略大小写 
      
      -n  显示结果所在行数
    
      -v  输出不带关键字的行
    
      -Ax 在输出的时候包含结果所在行之后的指定行数    x为行数
    
      -Bx 在输出的时候包含结果所在行之前的指定行数    x为行数
    
  • 基于列处理文本

      命令cut用以基于列处理文本内容
    
      cut -d: -f1 /etc/passwd     使用:作为分割符将passwd文件处理为列 然后显示第一列
      
      grep linuxcast /est/passwd |cut -d: -f3
    
      -d  指定分割字符(默认是TAB)
    
      -f  指定输出的列号
    
      -c  基于字符进行切割
          cut -c2-6 /etc/passwd   只显示第二到第六个字符
    
  • 文本统计

      命令wc用以统计文本信息
    
          wc linuxcast
    
      -l  只统计行数
    
      -w  只统计单词
    
      -c  只统计字节数
    
      -m  只统计字符数
    
  • 文本排序

      命令sort用以对文本内容进行排序       不支持中文
    
          sort    linuxcast
    
      -r  进行倒序排序
    
      -n  基于数字进行·排序
    
      -f  忽略大小写
    
      -u  删除重复行
    
      -t c    使用c作为分隔符分割为列进行排序
    
      -k x    当进行基于指定字符分割为列的排序时 指定基于哪个列排序 x为数字
    
  • 删除重复行

      命令sort -u 可以用以删除重复行
    
      命令uniq用以删除重复的相邻行    默认只能删除相邻重复行
    
  • 文本比较

      命令diff用于比较两个文件的区别
    
      diff linuxcast linuxcast-new
    
      -i  忽略大小写
    
      -b  忽略空格数量的改变
    
      -u  统一显示比较信息(一般用以生成patch文件,补丁文件)
    
          diff -u linuxcast linuxcast-new > final.patch   将文件区别做成补丁文件
    
  • 检查拼写

      命令aspell用来检查英文拼写
    
          aspell check linuxcast
          
          aspell list <linuxcast 
    
  • 处理文本内容

      命令tr用于处理文本内容
    
      删除关键字
    
          tr -d'TMD' < linuxcast
    
      转换大小写
    
          tr 'a-z' 'A-Z' < linuxcast
    
  • 搜索替换

      命令sed用来搜索并且替换文本   
    
          sed 's/linux/unix/g' linuxcast  将linux字符替换为unix
    
          sed '1,50s/linux/unix/g' linuxcast
    
          sed -e 's/linux/unix/g' -e 's/nash/nash_su/g' linuxcast
    
          sed -f sededit linuxcast
    
    
      单引号之间为正则表达式   将linux字符替换为unix   /g为全局替换   s指定行数
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,165评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,720评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,849评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,245评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,596评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,747评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,977评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,708评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,448评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,657评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,141评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,493评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,153评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,890评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,799评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,685评论 2 272

推荐阅读更多精彩内容