<Précédent | Table des matières | Suivant>
Cependant, étant donné que Linux est un système flexible, ces paramètres par défaut ne doivent pas nécessairement être appliqués. La sortie standard, par exemple, sur un serveur fortement surveillé dans un grand environnement peut être une imprimante.
5.1.2. Les opérateurs de redirection
5.1.2.1. Redirection de sortie avec > et |
Parfois, vous voudrez mettre la sortie d'une commande dans un fichier, ou vous voudrez peut-être émettre une autre commande sur la sortie d'une commande. C'est ce qu'on appelle la redirection de la sortie. La redirection se fait soit en utilisant le ">" (symbole supérieur à), soit en utilisant le "|" opérateur (pipe) qui envoie la sortie standard d'une commande à une autre commande en tant qu'entrée standard.
Comme nous l'avons vu précédemment, le cat La commande concatène les fichiers et les rassemble tous dans la sortie standard. En redirigeant cette sortie vers un fichier, ce nom de fichier sera créé - ou écrasé s'il existe déjà, alors faites attention.
nancy :~> test de chat1
quelques mots
nancy :~> test de chat2
quelques autres mots
nancy :~> chat test1 test2 > test3
nancy :~> test de chat3
quelques mots
nancy :~> test de chat1
quelques mots
nancy :~> test de chat2
quelques autres mots
nancy :~> chat test1 test2 > test3
nancy :~> test de chat3
quelques mots
quelques d’autres gentils
N'écrasez pas !
Veillez à ne pas écraser les fichiers existants (importants) lors de la redirection de la sortie. De nombreux shells, y compris Bash, ont une fonctionnalité intégrée pour vous protéger de ce risque : nul. Voir les pages d'informations pour plus d'informations. Dans Bash, vous voudriez ajouter le set -o nul commande à votre .bashrc fichier de configuration afin d'éviter l'écrasement accidentel des fichiers.
Rediriger « rien » vers un fichier existant équivaut à vider le fichier :
nancy :~> ls -l liste -rw-rw-r-- 1 nancy | nancy | 117 2 avril 18:09 liste |
nancy :~> > liste | ||
nancy :~> ls -l liste -rw-rw-r-- 1 nancy | nancy | 0 4 avril 12:01 liste |
Ce processus s'appelle tronquer.
La même redirection vers un fichier inexistant créera un nouveau fichier vide avec le nom donné :
nancy :~> ls -l nouvelle liste
ls : newlist : aucun fichier ou répertoire de ce type
nancy :~> > nouvelle liste
nancy :~> ls -l nouvelle liste
ls : newlist : aucun fichier ou répertoire de ce type
nancy :~> > nouvelle liste
nancy :~> ls -l nouvelle liste
-rw-rw-r-- 1 nancy nancy
0 avril 4 12:05 nouvelle liste
nancy :~> ls -l nouvelle liste
-rw-rw-r-- 1 nancy nancy
Le chapitre 7 donne quelques exemples supplémentaires sur l'utilisation de ce type de redirection. Quelques exemples d'utilisation de canalisations de commandes :
Pour rechercher un mot dans un texte, affichez toutes les lignes correspondant à « motif1 » et excluez les lignes correspondant également à « motif2 » :
grep pattern1 filet | saisir -v pattern2
Pour afficher la sortie d'un répertoire répertoriant une page à la fois :
ls -là | moins
Pour rechercher un fichier dans un répertoire :
ls -l | saisir part_of_file_name
5.1.2.2. Redirection d'entrée
Dans un autre cas, vous voudrez peut-être qu'un fichier soit l'entrée d'une commande qui normalement n'accepterait pas un fichier comme option. Cette redirection de l'entrée est effectuée à l'aide de l'opérateur "<" (symbole inférieur à).
Vous trouverez ci-dessous un exemple d'envoi d'un fichier à quelqu'un, en utilisant la redirection d'entrée.
andy :~> E-mail [email protected] < à faire
Si l'utilisateur micro existe sur le système, vous n'avez pas besoin de saisir l'adresse complète. Si vous voulez joindre quelqu'un sur Internet, entrez l'adresse complète comme argument pour E-mail.
Cela se lit un peu plus difficile que le chat du débutant filet | courrier quelqu'un, mais c'est bien sûr une manière beaucoup plus élégante d'utiliser les outils disponibles.
5.1.2.3. Combiner les redirections
L'exemple suivant combine la redirection d'entrée et de sortie. Le fichier texte.txt est d'abord vérifié pour les fautes d'orthographe, et la sortie est redirigée vers un fichier journal des erreurs :
épeler texte.txt > error.log
La commande suivante répertorie toutes les commandes que vous pouvez exécuter pour examiner un autre fichier lors de l'utilisation moins:
micro :~> moins --help | grep -j'examine
:e [fichier] Examiner un nouveau fichier.
:n * Examinez le (N-ième) fichier suivant à partir de la ligne de commande.
:p * Examinez le (N-ième) fichier précédent à partir de la ligne de commande.
:x * Examinez le premier (ou le N-ième) fichier à partir de la ligne de commande.
micro :~> moins --help | grep -j'examine
:e [fichier] Examiner un nouveau fichier.
:n * Examinez le (N-ième) fichier suivant à partir de la ligne de commande.
:p * Examinez le (N-ième) fichier précédent à partir de la ligne de commande.
:x * Examinez le premier (ou le N-ième) fichier à partir de la ligne de commande.
Le manuel de formation -i L'option est utilisée pour les recherches insensibles à la casse - rappelez-vous que les systèmes UNIX sont très sensibles à la casse. Si vous souhaitez enregistrer la sortie de cette commande pour référence future, redirigez la sortie vers un fichier :
micro :~> moins --help | grep -i examine > examine-files-in-less
micro :~> chat examine-fichiers-en-moins
:e [fichier] Examiner un nouveau fichier.
:n * Examinez le (N-ième) fichier suivant à partir de la ligne de commande.
:p * Examinez le (N-ième) fichier précédent à partir de la ligne de commande.
:x * Examinez le premier (ou le N-ième) fichier à partir de la ligne de commande.
micro :~> moins --help | grep -i examine > examine-files-in-less
micro :~> chat examine-fichiers-en-moins
:e [fichier] Examiner un nouveau fichier.
:n * Examinez le (N-ième) fichier suivant à partir de la ligne de commande.
:p * Examinez le (N-ième) fichier précédent à partir de la ligne de commande.
:x * Examinez le premier (ou le N-ième) fichier à partir de la ligne de commande.
La sortie d'une commande peut être redirigée vers une autre commande pratiquement autant de fois que vous le souhaitez, du moment que ces commandes liraient normalement l'entrée à partir de l'entrée standard et écriraient la sortie sur la sortie standard.
Parfois, ce n'est pas le cas, mais il peut y avoir des options spéciales qui indiquent à ces commandes de se comporter conformément aux définitions standard ; lisez donc la documentation (pages man et Info) des commandes que vous utilisez si vous rencontrez des erreurs.
Encore une fois, assurez-vous de ne pas utiliser les noms de fichiers existants dont vous avez encore besoin. La redirection de la sortie vers des fichiers existants remplacera le contenu de ces fichiers.
5.1.2.4. L'opérateur >>
Au lieu d'écraser les données du fichier, vous pouvez également ajouter du texte à un fichier existant à l'aide de deux signes supérieurs à :
Exemple :
micro :~> liste de souhaits de chat
plus d'argent moins de travail
micro :~> date >> liste de souhaits
micro :~> liste de souhaits de chat
plus d'argent moins de travail
micro :~> date >> liste de souhaits
micro :~> liste de souhaits de chat
plus d'argent moins de travail
jeu. 28 fév 20:23:07 CET 2002
micro :~> liste de souhaits de chat