• linux ‘|’ 与重定向 实例详解


    重定向与管道

                                                   ----------小命令大作为

    >:重定向标准输入出定向命令

    用的最多的就是向某个文件中写入内容

    [root@localhost ~]# echo "Hello,world">1.txt 

    [root@localhost ~]# cat 1.txt 

    Hello,world

    把某个命令的结果重定向到某个文件中

    [root@localhost ~]# cat /etc/passwd >2.txt

    [root@localhost ~]# cat 2.txt 

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    adm:x:3:4:adm:/var/adm:/sbin/nologin

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    sync:x:5:0:sync:/sbin:/bin/sync

    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    halt:x:7:0:halt:/sbin:/sbin/halt

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    operator:x:11:0:operator:/root:/sbin/nologin

    games:x:12:100:games:/usr/games:/sbin/nologin

    gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

    nobody:x:99:99:Nobody:/:/sbin/nologin

    dbus:x:81:81:System message bus:/:/sbin/nologin

    usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin

    vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

    rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin

    avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin

    abrt:x:173:173::/etc/abrt:/sbin/nologin

    haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

    gdm:x:42:42::/var/lib/gdm:/sbin/nologin

    >>:追加标准输出重定向

    [root@localhost ~]# echo "王鹏健,java高级工程师" >> 1.txt 

    [root@localhost ~]# cat 1.txt 

    Hello,world

    王鹏健,java高级工程师

    如果不用追加重定向的话就会将文件原来的内容替换掉,如

    [root@localhost ~]# echo "马强,在北京" >1.txt 

    [root@localhost ~]# cat 1.txt 

    马强,在北京

    [root@localhost ~]# 

    2>:重定向错误标准输出

    如果命令有错误,也会执行命令,并将错误信息输出在文本里面,如:

    [root@localhost ~]# ls /etc/pas 2> 1.txt 

    [root@localhost ~]# cat 1.txt 

    ls: cannot access /etc/pas: No such file or directory

    [root@localhost ~]# 

    2>>:追加重定向错误标准输出

    将命令错误信息追加到文本里面

    [root@localhost ~]# echo "马强,在北京" >1.txt 

    [root@localhost ~]# ls /etc/pas 2>>1.txt 

    [root@localhost ~]# cat 1.txt 

    马强,在北京

    ls: cannot access /etc/pas: No such file or directory

    &>:将重定向标准输出或者错误重定向到同一文件夹内

    错误输出

    [root@localhost ~]# ls /var2 &> 1.txt 

    [root@localhost ~]# cat 1.txt 

    ls: cannot access /var2: No such file or directory

    [root@localhost ~]# 

    正确输出

    [root@localhost ~]# ls /var &> 1.txt 

    [root@localhost ~]# cat 1.txt 

    account

    cache

    crash

    cvs

    db

    empty

    games

    gdm

    lib

    local

    lock

    log

    mail

    nis

    opt

    preserve

    run

    spool

    tmp

    www

    yp

    [root@localhost ~]# 

    <:输入重定向

    可以将结果作为另一个命令的使用,如

    /etc/passwd 文件里面的内容全部转换成大写

    tr ‘a-z’ ‘A-Z’ </etc/passwd

    [root@localhost ~]# tr 'a-z' 'A-Z' </etc/passwd

    ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH

    BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN

    DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN

    ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN

    LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN

    SYNC:X:5:0:SYNC:/SBIN:/BIN/SYNC

    SHUTDOWN:X:6:0:SHUTDOWN:/SBIN:/SBIN/SHUTDOWN

    HALT:X:7:0:HALT:/SBIN:/SBIN/HALT

    MAIL:X:8:12:MAIL:/VAR/SPOOL/MAIL:/SBIN/NOLOGIN

    UUCP:X:10:14:UUCP:/VAR/SPOOL/UUCP:/SBIN/NOLOGIN

    OPERATOR:X:11:0:OPERATOR:/ROOT:/SBIN/NOLOGIN

    GAMES:X:12:100:GAMES:/USR/GAMES:/SBIN/NOLOGIN

    GOPHER:X:13:30:GOPHER:/VAR/GOPHER:/SBIN/NOLOGIN

    FTP:X:14:50:FTP USER:/VAR/FTP:/SBIN/NOLOGIN

    NOBODY:X:99:99:NOBODY:/:/SBIN/NOLOGIN

    DBUS:X:81:81:SYSTEM MESSAGE BUS:/:/SBIN/NOLOGIN

    USBMUXD:X:113:113:USBMUXD USER:/:/SBIN/NOLOGIN

    VCSA:X:69:69:VIRTUAL CONSOLE MEMORY OWNER:/DEV:/SBIN/NOLOGIN

    RTKIT:X:499:497:REALTIMEKIT:/PROC:/SBIN/NOLOGIN

    AVAHI-AUTOIPD:X:170:170:AVAHI IPV4LL STACK:/VAR/LIB/AVAHI-AUTOIPD:/SBIN/NOLOGIN

    ABRT:X:173:173::/ETC/ABRT:/SBIN/NOLOGIN

    HALDAEMON:X:68:68:HAL DAEMON:/:/SBIN/NOLOGIN

    GDM:X:42:42::/VAR/LIB/GDM:/SBIN/NOLOGIN

    <<:在当前目录下产生文档,如

    [root@localhost ~]# cat >> 1.txt << end

    马强在北京,王鹏健是高级JAVA工程师

    乔四是高级硬件工程师

    > end

    [root@localhost ~]# cat 1.txt 

    马强在北京,王鹏健是高级JAVA工程师

    乔四是高级硬件工程师

    |’ 管道符号,可以将前面命令输出的结果作为后面命令的输入

    命令1|命令2|命令3|

    如:显示出/eyc/passwd 文件中的第一位

    cat /etc/passwd |cut -d: -f1

    root

    bin

    daemon

    adm

    lp

    sync

    shutdown

    halt

    mail

    uucp

    operator

    games

    gopher

    ftp

    nobody

    dbus

    usbmuxd

    vcsa

    rtkit

    avahi-autoipd

    abrt

    haldaemon

    并将返回的结果按照字母表顺序进行排序

    [root@localhost ~]# cat /etc/passwd |cut -d: -f1| sort -n

    abrt

    adm

    apache

    avahi-autoipd

    bin

    daemon

    dbus

    ftp

    games

    gdm

    gopher

    haldaemon

    halt

    lp

    mail

    mailnull

    mysql

    nobody

    ntp

    operator

    postfix

    pulse

    root

    rtkit

    saslauth

    shutdown

    smmsp

    sshd

    sync

    tcpdump

    usbmuxd

    uucp

    vcsa

    www

    再把输出结果以大写字母方式显示:

    [root@localhost ~]# cat /etc/passwd |cut -d: -f1| sort -n| tr 'a-z' 'A-Z'

    ABRT

    ADM

    APACHE

    AVAHI-AUTOIPD

    BIN

    DAEMON

    DBUS

    FTP

    GAMES

    GDM

    GOPHER

    HALDAEMON

    HALT

    LP

    MAIL

    MAILNULL

    MYSQL

    NOBODY

    NTP

    OPERATOR

    POSTFIX

    PULSE

    ROOT

    RTKIT

    SASLAUTH

    SHUTDOWN

    SMMSP

    SSHD

    SYNC

    TCPDUMP

    USBMUXD

    UUCP

    VCSA

    WWW

    [root@localhost ~]# 

    获取/etc/passwd 文件中的第10

    [root@localhost ~]# head -10 /etc/passwd |tail -1

    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    获取/etc/passwd 文件中的倒数第8行,

        21 abrt:x:173:173::/etc/abrt:/sbin/nologin

        22 haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

        23 gdm:x:42:42::/var/lib/gdm:/sbin/nologin

        24 ntp:x:38:38::/etc/ntp:/sbin/nologin

        25 apache:x:48:48:Apache:/var/www:/sbin/nologin

        26 saslauth:x:498:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin

        27 postfix:x:89:89::/var/spool/postfix:/sbin/nologin

        28 pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin

        29 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

        30 tcpdump:x:72:72::/:/sbin/nologin

        31 mysql:x:500:500:mysq:/home/mysql:/bin/bash

        32 www:x:501:501::/home/www:/bin/false

        33 mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

        34 smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

    [root@localhost ~]# tail -8 /etc/passwd |head -1

    postfix:x:89:89::/var/spool/postfix:/sbin/nologin

    [root@localhost ~]# 

  • 相关阅读:
    第二十一天作业
    第二十天:继承
    第二十天作业
    第十六天
    第十九天作业
    day53
    day52
    day51
    day50
    day44
  • 原文地址:https://www.cnblogs.com/itor/p/4690081.html
Copyright © 2020-2023  润新知