zoukankan      html  css  js  c++  java
  • Linux输入输出重定向和文件查找值grep命令

    Linux输入输出重定向和文件查找值grep命令

    一、文件描述符
    Linux 的shell命令,可以通过文件描述符来引用一些文件,通常使用到的文件描述符为0,1,2。Linux系统实际上有12个文件描述符,通常使用的文件描述符如下图

    文件 文件描述符
    输入文件—标准输入 0(缺省是键盘,为0时是文件或者其他命令的输出)
    输出文件—标准输出 1(缺省是屏幕,为1时是文件)
    错误输出文件—标准错误 2(缺省是屏幕,为2时是文件)


    二、文件重定向:改变程序运行的输入和输出,也就是输入源和输出地点,具体释义如下
     输出重定向:

    Command > filename 把标准输出重定向到一个新文件中,当filename不存在时
    Command >> filename 把标准输出重定向到一个文件中(追加)
    Command > filename 把标准输出重定向到一个文件中
    Command > filename 2>&1 把标准输出和错误一起重定向到一个文件中
    Command 2 > filename 把标准错误重定向到一个文件中
    Command 2 >> filename 把标准输出重定向到一个文件中(追加)
    Command >> filename2>&1 把标准输出和错误一起重定向到一个文件(追加)

     输入重定向:

    Command < filename > filename2 Command命令以filename文件作为标准输入,以filename2文件作为标准输出
    Command < filename Command命令以filename文件作为标准输入
    Command << delimiter  从标准输入中读入,知道遇到delimiter分界符

     绑定重定向:

    Command >&m 把标准输出重定向到文件描述符m中
    Command < &- 关闭标准输入
    Command 0>&- 同上


    三、shell中的一些高级用法
    1:把所有的标准错误输出出到linux的 黑洞中,有称为空设备(/dev/null)
    [root@localhost ~]#  ls /home/ins  2> /dev/null 
    [root@localhost ~]# 
        
    2:把执行的标准输出和标准错误重定向到out.put
    [root@localhost ~]# ls /home/ind >out.put 2>&1
    [root@localhost ~]# cat out.put 
    ls: cannot access /home/ind: No such file or directory
    [root@localhost ~]# 

    3:使用标准输入,在a.txt文件中写入 "hello world"
    [root@localhost ~]# cat >a.txt<<eof
    > HELLO WORLD !
    > EOF
    [root@localhost ~]# cat a.txt 
    HELLO WORLD !
    4:新建用户awk ,使用标准输入设置密码123456
    [root@localhost ~]# useradd awk
    [root@localhost ~]# 
    [root@localhost ~]# echo 123456 | passwd --stdin awk
    Changing password for user awk.
    passwd: all authentication tokens updated successfully.
    [root@localhost ~]# su - inds

    四、grep命令 
     grep是Linux中一个强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
       [options]主要参数:
    -c:只输出匹配行的计数。
    -I:不区分大 小写(只适用于单字符)。
    -h:查询多文件时不显示文件名。
    -l:查询多文件时只输出包含匹配字符的文件名。
    -n:显示匹配行及 行号。
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行。  
    pattern正则表达式主要参数:
    : 忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    <:从匹配正则表达 式的行开始。
    >:到匹配正则表达式的行结束。
    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    。:所有的单个字符。
    * :有字符,长度可以为0。

    简单举例说明
    1、过滤/etc/passwd 文件里所有已shutdown结尾的行
    [root@localhost ~]# grep shutdown$ /etc/passwd
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    2、</eof
    /etc/passwd里搜索awk所在的行,并给awk标颜色,同时显示行号
    [root@localhost ~]# grep -n awk --color=auto  /etc/passwd
    45:awk:x:1158:1001::/home/awk:/bin/bash
    [root@localhost ~]# 

    grep使用简明及正则表达式  http://www.linuxidc.com/Linux/2013-08/88534.htm

    Linux下Shell编程——grep命令的基本运用 http://www.linuxidc.com/Linux/2013-06/85525.htm

    grep 命令详解及相关事例 http://www.linuxidc.com/Linux/2014-07/104041.htm

    Linux基础命令之grep详解 http://www.linuxidc.com/Linux/2013-07/87919.htm

    设置grep高亮显示匹配项 http://www.linuxidc.com/Linux/2014-09/106871.htm

    Linux grep命令学习与总结 http://www.linuxidc.com/Linux/2014-10/108112.htm

    14 个 grep 命令的例子 http://www.linuxidc.com/Linux/2015-05/117626.htm

    本文永久更新链接地址http://www.linuxidc.com/Linux/2016-04/

  • 相关阅读:
    yum install mysql.i686
    firefox无法浏览flash的解决方案
    vb.net如何打开指定文件
    XML文件操作的简单类
    window server 安装与卸载
    常用的sql语句
    with进行递归表
    常用js
    调用Google的自动翻译
    MySQl 总结知识
  • 原文地址:https://www.cnblogs.com/gered/p/8137687.html
Copyright © 2011-2022 走看看