So lösen Sie das Umleitungsproblem im Linux-Betrieb

PHPz
Freigeben: 2023-05-17 14:37:14
nach vorne
1768 Leute haben es durchsucht

    1. Übersicht

    (1) Umleitungsbefehlsliste

    n >> file n >& mn <& m<< Tag
    Befehl Beschreibung
    Befehl > Datei Leiten Sie die Ausgabe in eine Datei um
    Befehl < ; file leitet die Eingabe in eine Datei um
    Befehl >> file leitet die Ausgabe in eine Datei um durch Anhängen von
    n > setzt den Dateideskriptor auf n Die Datei wird in die Datei umgeleitet
    leitet die Datei mit dem Dateideskriptor n zur Datei
    gibt die Datei m und n merge aus
    Merge Die Eingabedateien m und n
    nehmen den Inhalt zwischen dem Start-Tag-Tag und dem End-Tag-Tag als Eingabe
    (2) Dateideskriptor

      0: Normalerweise Standardeingang (STDIN)
    • 1: Standardausgabe (STDOut)
    • 2: Standardfehlerausgang (STDERR)
    • 2. Ausgabeumleitung

    (1) Befehlsanalyse

    command > file
    #执行command然后将输出的内容存入file。
    Nach dem Login kopieren

    Hinweis:

     Der Inhalt in der Datei wird durch neuen Inhalt ersetzt. Wenn Sie nicht vollständig ersetzt, sondern an das Ende der Datei angehängt werden möchten, verwenden Sie den Operator >>.

    (2) Beispielanalyse

    [root@localhost ~]# w
     20:41:36 up 55 days,  5:17,  1 user,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    223.166.20.53    20:24    0.00s  0.05s  0.00s w
    [root@localshost ~]# w > users #w命令执行后的结果输出到users文件中
    [root@localshost ~]# ll
    -rw-r--r-- 1 root root  204 Jan  3 20:41 users
    [root@localshost ~]# cat users #查看users文件内容,正是w命令执行后的输出结果
     20:41:58 up 55 days,  5:17,  1 user,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    223.166.20.53    20:24    6.00s  0.05s  0.00s w
    [root@localshost ~]# who
    root     pts/0        2021-01-03 20:24 (223.166.20.53)
    [root@localshost ~]# who > users #将who命令执行结果输出重定向到users文件
    [root@localshost ~]# cat users #发现users文件中原先w命令的输出内容被who命令覆盖了
    root     pts/0        2021-01-03 20:24 (223.166.20.53)
    [root@localshost ~]# echo "Hello world" >> users #使用>>操作符则会追加在后面输出
    [root@localshost ~]# cat users
    root     pts/0        2021-01-03 20:24 (223.166.20.53)
    Hello world
    [root@localshost ~]#
    Nach dem Login kopieren

    Hinweis:

    Im obigen Beispiel erscheinen viele Befehlszeilen mit zwei #:

      Das erste # bedeutet
    • Der aktuelle Benutzer ist der Root-Benutzer (wenn es ist Für andere Benutzer gibt es ein $-Symbol)

      ;

    • Das zweite # oben bedeutet
    • Kommentar

      .

    • 3. Eingabeumleitung

    1. Befehlsanalyse

    Unix-Befehle können auch Eingaben aus Dateien erhalten:

    command < file
    #获取file文件中的内容作为输入内容,并用于commmand执行
    Nach dem Login kopieren

    Hinweis:

     Die Ausgabeumleitung ist das Größer-als-Zeichen (>), Die Eingabeumleitung erfolgt über das Kleiner-als-Zeichen (<).

    2. Beispielanalyse

    [root@localhost ~]# wc -l users
    2 users
    #wc指令可以计算文件的Byte数、字数、或是行/列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
    [root@localhost ~]# wc -l < users 
    2
    #将输入重定向到 users 文件,上面命令作用就是将users文件内容作为输入重定向计算行数了
    Nach dem Login kopieren

    Hinweis:

     Das erste Beispiel gibt den Dateinamen aus;

    Das zweite Beispiel nicht, da es nur den Inhalt aus der Standardeingabe lesen kann.

    command < infile > outfile
    #同时替换输入和输出,执行command,从文件infile读取内容,然后将输出写入到outfile中。
    #理解成,从标准输入中获取内容(输入重定向到infile)作为标准输出(输出重定向到outfile)。
    Nach dem Login kopieren

    4. Detailliertes Verständnis der Umleitung

    Standardeingabe, Standardausgabe und Standardfehlerausgabe wurden im obigen Dateideskriptor kurz vorgestellt und werden im Folgenden ausführlich erläutert.

    1. Einführung

    Im Allgemeinen werden drei Dateien geöffnet, wenn jeder Unix-/Linux-Befehl ausgeführt wird:

    1) Standardeingabedatei (stdin):

    Der Dateideskriptor von stdin ist 0, aus dem Unix-Programm werden Daten gelesen stdin standardmäßig.

    2) Standardausgabedatei (stdout): Der Dateideskriptor von

    stdout ist 1, und Unix-Programme geben Daten standardmäßig in stdout aus.

    3) Standardfehlerdatei (stderr):

    Der Dateideskriptor von stderr ist 2 und Unix-Programme schreiben Fehlerinformationen in den stderr-Stream.

    Standardmäßig leitet

    Befehl > die Standardausgabe in eine Datei um, der Befehl < Datei leitet die Standardausgabe in eine Datei um.

    2. Befehlsdetails

    command 2>file
    #stderr 重定向到 file
    command 2>>file
    #stderr 追加到 file 文件末尾
    
    command > file 2>&1
    command >> file 2>&1
    #stdout 和 stderr 合并后重定向到 file
    
    command < file1 >file2
    #对 stdin 和 stdout 都重定向
    #command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2
    Nach dem Login kopieren

    5. Here Document ist eine spezielle Umleitungsmethode in Shell, die zum Umleiten von Eingaben an ein interaktives Shell-Skript oder -Programm verwendet wird.

    1. Grammatik

    Die Grundform lautet wie folgt:

    command << delimiter
        document
    delimiter
    #作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。
    Nach dem Login kopieren

    Hinweis: Das Trennzeichen am Ende von

    muss im Top-Format geschrieben werden auf der Rückseite, einschließlich Leerzeichen und Tabulatoreinzüge. Die Leerzeichen vor und nach dem anfänglichen Trennzeichen werden ignoriert.

    2. Beispielanalyse

    EOF ist die Abkürzung für END Of File, was einen benutzerdefinierten Terminator bedeutet. Da es anpassbar ist, hat EOF keinen festen Wert und Sie können nach Belieben einen Alias ​​festlegen. Unter Linux kann stattdessen beispielsweise Strg-D als EOF verwendet werden.

    EOF arbeitet normalerweise mit cat zusammen, um mehrzeiligen Text auszugeben.

    Das Beispiel sieht wie folgt aus:

    [root@localhost ~]# wc -l << EOF
    > a
    > b
    > c
    > d
    > e
    > EOF
    5 #输入内容为5行
    [root@localhost ~]# cat << EOF
    > a
    > b
    > c
    > d
    > e
    > f
    > EOF
    a
    b
    c
    d
    e
    f
    Nach dem Login kopieren

    EOF kann auch wie folgt angepasst werden:

    [root@iZ2ze95cxr3kx9il409khtZ ~]# cat << CCC
    > a
    > b
    > c
    > d
    > CCC
    a
    b
    c
    d
    Nach dem Login kopieren
    Bei der Ausführung der Skripteingabe können Sie das folgende Formular verwenden:

    #拥有大量输入的时候可以用下面的形式,将标准输入的内容重定向到(输入到)test.sh文件中。
    [root@localhost ~]# cat << EOF >test.sh 
    > 123123123
    > 3452354345
    > asdfasdfs
    > EOF
    [root@localhost ~]# cat test.sh 
    123123123
    3452354345
    asdfasdfs
    [root@localhost ~]#
    Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonSo lösen Sie das Umleitungsproblem im Linux-Betrieb. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage