zoukankan      html  css  js  c++  java
  • Linux-Shell学习-重定向

    Content:

    重定向标准输出

    重定向标准错误

    重定向标准输入

    会用到的命令:

    cat、sort、uniq、grep、wc、head、tail

    可以通过man或者info命令查看更多的使用方法

    I/O重定向允许我们改变输入的来向和输出的走向。

     

    重定向标准输出:

    # 把/usr/bin目录下的文件和目录通过ls -l的格式输入到当前目录的ls-output.txt文件中
    ls -l /usr/bin > ls-output.txt 
    ls -l ls-output.txt 
    cat ls-output.txt 
    # 如果目录不存在,则会出错,输出‘没有那个文件或者目录’到屏幕
    ls -l /bin/usr > ls-output.txt 
    # 如果在执行一遍下面的shell,ls-output.txt的内容会被覆盖
    ls -l /usr/bin > ls-output.txt
    # 所以我么可以这样来清除文件的内容
    > ls-output.txt
    # 当然有追加的模式
    ls -l /usr/bin >> ls-output.txt

    重定向标准错误:

    # 如果目录不存在,并不会出现错误的提示,而是直接存到文件中
    # ‘2>’是连在一起的,标准输入、输出和错误分别为0、1、2 ll /bin/usr 2> ls-error.txt

    重定向标准输出和错误到同一个文件

    # '2>&1'是连在一起的
    # 这个方法有两个重定向,首先重定向到标准输出的文件,然后重定向文件描述符2(标准错误)到描述符1(标准输出).
    # 对于顺序敏感,如果重定向错误在重定向标准输出前则失效
    ll /bin/usr > ls-output.txt 2>&1
    # 下面这个方法也是可以的
    ll /bin/usr &> ls-output.txt

    处理不需要的输出:

    ll -l /bin/usr 2> /dev/null

    可以看到/dev/null是一个字符设备文件,叫做位存储捅,对输入不做处理。

    重定向标准输入:

    cat:

    # 从文件获得标准输入
    cat ls-output.txt
    # cat还可以把多个文件连起来,假如你有LOG.[0-9]10个文件
    # touch LOG{1..9}                 ll LOG[1-9]
    cat LOG[1-9] > LOG-ALL
    # 如果cat后面没有东西就表示输入来自键盘,ctrl + d告诉cat到文末了
    cat
    cat > Typing
    cat Typing
    # 把文件作为标准输入源,和cat [file]效果一样
    cat < [file]

    管道线比较有用,感觉

    # command1的输出可以作为command2的输入
    command1 | command2

    你可以这样,

    ll /usr/bin | less
    # 下面是过滤器的使用
    # 产生一个有序列表 ll /usr/bin | sort | less

    # 忽略重复行
    ll /usr/bin | sort | uniq | less
    # 打印行、字和字节数
    ll /usr/bin | wc
    # grep pattern [file] 打印匹配行,pattern是正则表达式
    ll /usr/bin | sort | uniq | grep zip
    # head和tail打印头和尾 -n是行数 -f可以监控这个文件,如果有添加就会显示在屏幕上
    ll /usr/bin | tail -n 5

    tee-从stdin读取数据,并同时输出到Stdout和文件

    ll /usr/bin | tee ls.txt | grep zip

     

    参考:

    《快乐Linux命令行》

  • 相关阅读:
    18个功能强大的HTML5 和JavaScript游戏引擎库
    10 个超棒的 jQuery 视频插件
    HTML5播放视频音频
    CSS代码重构与优化之路
    推荐10款web前端的 HTML5 开发框架和开发工具
    JS中日期相关函数
    技术笔记1:java.sql.SQLException: Access denied for user 'root'@'localhost' (using password)
    图解HTTP阅读笔记(1)-网络基础TCP/IP
    框架和设计模式的区别
    SSH与MVC
  • 原文地址:https://www.cnblogs.com/KuroNJQ/p/11308082.html
Copyright © 2011-2022 走看看