Comment le savoir Commandes de terminal Changer votre expérience instantanément ?
Dans cet article, je partage les secrets des commandes du Terminal, souvent méconnus ou négligés. Vous découvrirez des commandes qui simplifient les tâches quotidiennes, améliorent la vitesse de votre système et vous offrent des outils puissants pour un contrôle total. Je commencerai par une réponse rapide, puis je développerai :
Des commandes comme grep و tail و tmux Il peut transformer votre façon de gérer vos fichiers, de tracer vos données et d'exécuter des commandes simultanées. Je vous fournirai du contexte, des conseils de dépannage et des exemples pratiques qui vous permettront de l'utiliser en toute confiance dès le premier jour.
Chaque section de ce guide est soigneusement rédigée pour correspondre à ce que vous recherchez : une réponse claire en premier lieu, des sous-titres organisés, des exemples concrets et des liens internes vers des sujets connexes qui vous aideront à approfondir.
Commençons — et Terminal ne vous laissera plus tomber.
Que vous soyez novice en terminal ou un expert chevronné, il existe toujours de nombreuses astuces à apprendre pour gagner du temps. J'ai sélectionné trois astuces Bash utiles à ajouter à votre arsenal.
Remplacer le processus pour convertir les données en fichiers de données temporaires
Vous avez peut-être rencontré une situation où vous aviez besoin d'un chemin de fichier comme paramètre, mais tout ce que vous aviez, c'était des données.
Par exemple, supposons que vous souhaitiez modifier du texte déjà présent dans le terminal :
echo "foo" | nano
La commande ci-dessus ne fonctionne pas, car vous ne pouvez pas pointer les données vers nano ; à la place, vous devez fournir un chemin de fichier, comme ceci : nano /path/to/file.txt.
Pour résoudre ce problème, vous utiliserez souvent une séquence de commandes similaire à la suivante :
echo foo > bar.txt
nano bar.txt
À l'aide de deux commandes distinctes, vous créez un fichier, puis effectuez une opération dessus. Cette approche n'est pas idéale, car elle disperse les fichiers dans le système de fichiers et nécessite d'écrire leurs chemins d'accès. La substitution d'opérations résout ce problème :
echo <(true)
Si vous exécutez la commande ci-dessus, vous verrez qu'elle imprime le chemin du fichier comme suit :
/dev/fd/16
Une substitution de processus génère un fichier temporaire à partir de la sortie d'une commande, permettant ainsi à une autre commande de le lire. Dans l'exemple précédent, « <(true) » génère le chemin de sortie et « echo » le reçoit. La donnée de la sortie est simplement « true ».
conseil
La partie « fd » du chemin fait référence au terme « descripteur de fichier », un identifiant utilisé en interne par les programmes pour désigner les fichiers ouverts. Cet exemple porte le numéro de descripteur de fichier 16. Les descripteurs de fichiers sont spécifiques aux processus qui les utilisent – « echo » dans ce cas.
Utilisons la substitution de manière utile :
nano <(echo "foo")
La commande ci-dessus est la même que l’écriture de la commande suivante :
echo "foo" > /tmp/foo
nano /tmp/foo
Vous ne pourrez pas enregistrer et modifier le texte lors de l'exécution de nano <(echo “foo”) car le fichier est spécifiquement créé pour une utilisation en lecture seule, mais vous pouvez modifier l'emplacement où il est enregistré à l'aide du raccourci Ctrl+o.
Remplacement du processus d'E/S
L'expression « <(foo) » crée une substitution pour l'opération d'entrée. Vous pouvez également créer une substitution pour l'opération de sortie :
echo "foo" > >(cat)
La commande ci-dessus est la même que l’écriture de la commande suivante :
echo "foo" > /tmp/foo
cat /tmp/foo
Bien que les deux commandes puissent sembler différentes, leur fonctionnement est identique. Cela devient plus clair lorsque l'on comprend que la commande echo "foo" > >(cat) écrit "foo" dans un fichier spécial, lu par la commande cat.
Brièvement,
- echo <(true) est une substitution pour une opération d'entrée, et la commande echo reçoit des données via un chemin de fichier spécial (dans ce cas, les données sont simplement « true »).
- echo “foo” > >(cat) est une substitution pour une opération de sortie. La commande cat reçoit le mot renvoyé via un chemin spécial. Le premier caractère « > » est un opérateur de redirection, et le second fait partie de l'expression de substitution elle-même.
Pour terminer cette section, je pense qu’un exemple concret suffira à la résumer :
diff <(ls -1 ~) <(ls -1 /tmp)
Cette commande compare les différences entre deux répertoires. L'opération de remplacement d'entrée est utile dans ce cas, car la fonction diff prédit les chemins de fichiers, ce que permettent les opérations de remplacement.
Note
Le symbole « ls -1 » est un un, pas la lettre l.
Enregistrer les commandes d'extension pour la réplication
Les développeurs Bash utilisent souvent le terme « expand ». Cela peut paraître compliqué, mais cela signifie simplement transformer quelque chose de petit en quelque chose de plus grand : l'agrandir. L'exemple le plus courant est l'expansion du tilde (~), qui étend le chemin d'accès à votre répertoire personnel.
Les trois exemples suivants sont tous appelés « expansions de journaux ». Toutes ces expressions étendent de simples entrées de caractères à des éléments du journal du shell.
Bang, bang !!
C'est l'une des commandes les plus utilisées après cd et ls. Elle est facile à utiliser et à comprendre. Elle réexécute la dernière commande exécutée.
ls
!!

Vous pouvez voir à partir de la sortie de la commande que la commande ls est exécutée deux fois.
Développer un élément spécifique de votre historique
Tout d’abord, examinez votre historique pour choisir une commande appropriée :
history
Ensuite, choisissez simplement l’un des nombres sur la gauche et saisissez-le sous la forme N :
!N




