Maison > Opération et maintenance > exploitation et maintenance Linux > Comment résoudre le problème de redirection sous Linux

Comment résoudre le problème de redirection sous Linux

PHPz
Libérer: 2023-05-17 14:37:14
avant
1798 Les gens l'ont consulté

    1. Présentation

    (1) Liste des commandes de redirection

    Commande Description
    fichier de commande Redirection la sortie dans le fichier
    commande < ; fichier redirige l'entrée vers le fichier
    commande >> fichier redirige la sortie vers le fichier en ajoutant
    n > fichier définit le descripteur de fichier sur n Le fichier est redirigé vers le fichier
    n >> fichier redirigera le fichier avec le descripteur de fichier n vers le fichier
    n >& m affichera le fichier m et n fusionner
    n <& m Fusionner les fichiers d'entrée m et n
    << tag prennent le contenu entre la balise de début et la balise de fin comme entrée

    (2) Descripteur de fichier

    • 0 : Généralement entrée standard (STDIN)

    • 1 : Sortie standard (STDOUT)

    • 2 : Sortie d'erreur standard (STDERR)

    2. Redirection de sortie

    (1) Analyse des commandes

    command > file
    #执行command然后将输出的内容存入file。
    Copier après la connexion

    Remarque : 

    Le contenu du fichier sera remplacé par le nouveau contenu. Si vous ne souhaitez pas être complètement remplacé mais ajouté à la fin du fichier, utilisez l'opérateur >>

    (2) Exemple d'analyse

    [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 ~]#
    Copier après la connexion

    Remarque :

    Dans l'exemple ci-dessus, de nombreuses lignes de commande apparaissent avec deux # :

    • Le premier # signifie L'utilisateur actuel est l'utilisateur root (quand il est Pour les autres utilisateurs, il y aura le symbole $);

    • Le deuxième # ci-dessus signifie commentaire.

    3. Redirection d'entrée

    1. Analyse des commandes

    Les commandes Unix peuvent également obtenir des entrées à partir de fichiers. La redirection d'entrée est le signe inférieur à (<).

    2. Exemple d'analyse

    command < file
    #获取file文件中的内容作为输入内容,并用于commmand执行
    Copier après la connexion

    Remarque :

     

    Le premier exemple affichera le nom du fichier

    Le second ne le fera pas, car il sait uniquement lire le contenu de l'entrée standard ;

    [root@localhost ~]# wc -l users
    2 users
    #wc指令可以计算文件的Byte数、字数、或是行/列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
    [root@localhost ~]# wc -l < users 
    2
    #将输入重定向到 users 文件,上面命令作用就是将users文件内容作为输入重定向计算行数了
    Copier après la connexion
    4. Compréhension approfondie de la redirection

    L'entrée standard, la sortie standard et la sortie d'erreur standard ont été brièvement introduites dans les descripteurs de fichiers ci-dessus et seront expliquées en détail ci-dessous.

    1. Introduction

    Généralement, trois fichiers seront ouverts lorsque chaque commande Unix/Linux est exécutée :

    1) Fichier d'entrée standard (stdin) :

    Le descripteur de fichier de stdin est 0, les données du programme Unix sont lues à partir de stdin par défaut.

    2) Fichier de sortie standard (stdout) : Le descripteur de fichier de

    stdout est 1, et les programmes Unix génèrent des données sur stdout par défaut.

    3) Fichier d'erreur standard (stderr) :

    Le descripteur de fichier de stderr est 2 et les programmes Unix écriront les informations d'erreur dans le flux stderr.

    Par défaut, command > file redirige stdout vers file, command <

    2. Détails de la commande

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

    5. Here DocumentHere Document est une méthode de redirection spéciale dans Shell, utilisée pour rediriger les entrées vers un script ou un programme Shell interactif.

    1. Grammaire

    Sa forme de base est la suivante :

    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
    Copier après la connexion

    Remarque : Le délimiteur à la fin de

    doit être écrit au format haut. Il ne peut y avoir de caractères devant et il ne peut y avoir de caractères à l'intérieur. le dos, y compris les espaces et les retraits de tabulation.

    Les espaces avant et après le délimiteur initial seront ignorés. 2. Exemple d'analyse

    EOF est l'abréviation de END Of File, qui signifie un terminateur personnalisé. Puisqu'il peut être personnalisé, EOF n'a pas de valeur fixe et vous pouvez définir un alias à volonté. Par exemple, sous Linux, appuyer sur Ctrl-D peut être utilisé comme EOF à la place.

    EOF fonctionne généralement avec cat pour générer du texte sur plusieurs lignes.

    L'exemple est le suivant :

    command << delimiter
        document
    delimiter
    #作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。
    Copier après la connexion

    EOF peut également être personnalisé comme suit :

    [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
    Copier après la connexion

    Lors de l'exécution de la saisie du script, vous pouvez utiliser le formulaire suivant :

    [root@iZ2ze95cxr3kx9il409khtZ ~]# cat << CCC
    > a
    > b
    > c
    > d
    > CCC
    a
    b
    c
    d
    Copier après la connexion

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal