Bagaimana untuk menyelesaikan masalah pengalihan dalam operasi linux

PHPz
Lepaskan: 2023-05-17 14:37:14
ke hadapan
1766 orang telah melayarinya

    1 Gambaran Keseluruhan

    (1) Ubah hala senarai arahan

    命令 说明
    command > file 将输出重定向到 file
    command < file将输入重定向到 file
    command >> file 将输出以追加的方式重定向到 file
    n > file 将文件描述符为 n 的文件重定向到 file
    n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file
    n >& m 将输出文件 m 和 n 合并
    n <& m 将输入文件 m 和 n 合并
    << tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入

    ( 2. ) Deskriptor fail

    • 0: biasanya input standard (STDIN)

    • 1: output standard (STDOUT)

    • 2: Ia adalah output ralat standard (STDERR)

    2. Ubah hala keluaran

    (1) arahan Parsing

    command > file
    #执行command然后将输出的内容存入file。
    Salin selepas log masuk

    Nota:  

    Kandungan dalam fail akan digantikan dengan kandungan baharu jika anda tidak mahu menggantikannya sepenuhnya tetapi menambahnya pada penghujung fail, Kemudian gunakan operator >>

    (2) Contoh Analisis

    [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 ~]#
    Salin selepas log masuk

    Nota:

    Terdapat dua #s dalam banyak baris arahan di atas contoh:

    • # pertama bermaksud Pengguna semasa ialah pengguna akar (apabila pengguna lain, akan ada tanda $ di sini) ;

    • # kedua di atas bermaksud

      anotasi .

    3. Ubah hala input

    1 Penghuraian perintah

    Arahan Unix juga boleh mendapatkan input daripada fail, sintaksnya ialah:

    rreee <. 🎜>

    Nota:

     Alihan keluaran adalah lebih besar daripada tanda (>), dan ubah hala input ialah kurang daripada tanda (<).

    2. Contoh analisis

    command < file
    #获取file文件中的内容作为输入内容,并用于commmand执行
    Salin selepas log masuk

    Nota:

     Contoh pertama akan mengeluarkan nama fail; kerana ia hanya tahu membaca daripada input standard.

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

    4. Pemahaman mendalam tentang pengalihan

    Input standard, output standard dan output ralat standard telah diperkenalkan secara ringkas dalam deskriptor fail di atas, dan akan diterangkan secara terperinci di bawah.

    1. Pengenalan

    Secara amnya, tiga fail akan dibuka apabila setiap arahan Unix/Linux dijalankan:

    1) Fail input standard (stdin) :

    Penerangan fail stdin ialah 0 dan program Unix membaca data daripada stdin secara lalai.

    2) Fail output standard (stdout):

    Deskriptor fail stdout ialah 1, dan program Unix mengeluarkan data kepada stdout secara lalai.

    3) Fail ralat standard (stderr):

    Penerangan fail stderr ialah 2, dan atur cara Unix akan menulis maklumat ralat ke strim stderr. Secara lalai,

    arahan > fail mengubah hala ke fail, perintah <

    2. Penjelasan terperinci tentang arahan

    command < infile > outfile
    #同时替换输入和输出,执行command,从文件infile读取内容,然后将输出写入到outfile中。
    #理解成,从标准输入中获取内容(输入重定向到infile)作为标准输出(输出重定向到outfile)。
    Salin selepas log masuk
    5. Dokumen Di Sini

    Dokumen Di Sini ialah kaedah ubah hala khas dalam Shell, digunakan untuk mengubah hala input ke shell interaktif. skrip atau program.

    1. Tatabahasa

    Bentuk asasnya adalah seperti berikut:

    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
    Salin selepas log masuk

    Nota: Pembatas pada akhir

    mesti ditulis dalam huruf atas , tidak boleh ada sebarang aksara di hadapannya dan tidak boleh ada sebarang aksara di belakang, termasuk ruang dan lekukan tab. Ruang sebelum dan selepas pembatas permulaan akan diabaikan.

    2. Contoh analisis

    EOF ialah singkatan END Of File, yang bermaksud penamat tersuai. Oleh kerana ia boleh disesuaikan, EOF tidak mempunyai nilai tetap dan anda boleh menetapkan alias sesuka hati Sebagai contoh, dalam Linux, menekan Ctrl-D boleh digunakan sebagai EOF.

    EOF biasanya berfungsi dengan kucing untuk mengeluarkan teks berbilang baris.

    Contohnya adalah seperti berikut:

    command << delimiter
        document
    delimiter
    #作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。
    Salin selepas log masuk

    EOF juga boleh disesuaikan seperti berikut:

    [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
    Salin selepas log masuk
    Apabila melaksanakan input skrip, anda boleh menggunakan borang berikut :

    [root@iZ2ze95cxr3kx9il409khtZ ~]# cat << CCC
    > a
    > b
    > c
    > d
    > CCC
    a
    b
    c
    d
    Salin selepas log masuk

    Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah pengalihan dalam operasi linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan