Comme beaucoup de personnes travaillant avec des machines Linux, je préfère utiliser l'interface de ligne de commande lorsque cela est possible et lorsque cela a du sens. Dans certains cas, il est plus facile de trouver, d'inspecter et de modifier certaines configurations à l'aide de vos doigts, car ils "connaissent" simplement les commandes que vous devez taper, et c'est plus rapide que d'ouvrir une interface graphique et de rechercher la séquence de menus dont vous avez besoin. cliquez.
Bien sûr, il y a des cas où l'utilisation de l'interface graphique est plus rapide, et vous ne faites cette tâche qu'une ou deux fois, alors qui s'en soucie, n'est-ce pas ? Mais si c'est quelque chose que vous devrez faire plusieurs fois, peut-être avec quelques variantes, votre cerveau d'administrateur système se demandera :« Puis-je automatiser cela ? Dans de nombreux cas, la réponse sera oui, mais l'effort d'automatisation de la tâche n'en vaut pas la peine dans d'autres situations.
[ Vous pourriez également aimer : Astuce du terminal Linux :pirater la commande cd pour se souvenir d'où vous avez été]
Si je pouvais juste réutiliser les commandes récentes que j'ai tapées.
Historique
L'option la plus simple pour récupérer les dernières commandes que vous avez tapées dans la console Linux est d'utiliser history
. Dans cet exemple, vous travaillez avec le serveur HTTP et vous arrêtez le service à plusieurs reprises, en modifiant le httpd.conf
fichier, puis en redémarrant httpd
pour vérifier les résultats dans le navigateur.
La commande suivante vous montrera les 10 dernières commandes utilisées :
❯ history | tail -10
10057 systemctl stopt httpd.service
10058 systemctl stop httpd.service
10059 sudo systemctl stop httpd.service
10060 sudo systemctl start httpd.service
10061 systemctl status httpd.service
10062 history
10063 systemctl status httpd.service
10064 ps -ef|grep httpd
10065 man httpd.conf
10066 view /etc/httpd/conf/httpd.conf
De là, vous pouvez soit copier et coller la ligne (si vous avez besoin d'éditer la commande ou l'utiliser dans un autre terminal) soit taper le point d'exclamation suivi de la séquence de la commande dans l'historique :
> !10061
Cette ligne rappelle la commande systemctl status httpd.service
depuis l'historique, puis appuyez simplement sur ENTER (ou modifiez la commande avant de la ré-exécuter).
Ce n'est pas mal, mais il faut quand même taper la séquence ou copier+coller avec la souris. Pas un énorme marché, mais vous voulez vous concentrer sur votre tâche principale.
Quelques bonnes alternatives
Vous pouvez rappeler les commandes précédentes de l'historique en utilisant le UP touche fléchée. Naviguez dans la liste en utilisant UP et DOWN clés.
Cette approche est acceptable, mais que se passe-t-il si vous souhaitez récupérer quelque chose que vous savez avoir utilisé il y a 15 minutes ? Ce sera certainement dans la liste de l'historique, mais vous devrez peut-être faire un peu de minage.
Par exemple, vous pouvez utiliser history
, envoyez la sortie à grep
, et répertoriez uniquement les commandes qui correspondent à vos besoins. Dans cet exemple, j'affiche toutes les commandes dans history
qui incluent le http chaîne :
> history | grep http
10544* systemctl status httpd.service
10545* systemctl stopt httpd.service
10546* systemctl stop httpd.service
10547* sudo systemctl stop httpd.service
10548* sudo systemctl start httpd.service
10549* systemctl status httpd.service
10551* systemctl status httpd.service
10552* ps -ef|grep httpd
10553* man httpd.conf
10554* view /etc/httpd/conf/httpd.conf
10561* systemctl status httpd.service
Donc, à partir de là, vous pouvez à nouveau utiliser le point d'exclamation et le numéro de séquence. Par exemple :!10546
Mais vous pensez peut-être :"C'est bon, mais ma connexion cerveau-doigts est si rapide que je ne veux pas être distrait. Je sais exactement la commande que je recherche."
Très bien, il y a aussi une solution pour ça.
Quand votre cerveau et vos doigts savent ce qu'ils recherchent
En continuant avec cet exemple, vous souhaitez rappeler les commandes liées à httpd
rapidement.
L'option pour vous est d'utiliser CTRL+R , qui vous demandera une sous-chaîne. Utilisez-le pour rappeler le dernier commande que vous avez tapée qui contient cette chaîne.
Lorsque vous tapez la chaîne de votre commande, la dernière commande qui a utilisé cette chaîne s'affiche. Si la commande correspond à ce que vous recherchez, appuyez sur ENTRÉE , et il sera exécuté.
Si à ce stade, vous continuez à appuyer sur CTRL+R , l'avant-dernier la commande qui contient cette chaîne de recherche sera affichée, qui dans cet exemple est la view /etc/httpd/conf/httpd.conf
commande.
Vous pouvez naviguer vers l'arrière (CTRL+R ) et vers l'avant (CTRL+S ).
[ Vous voulez tester vos compétences d'administrateur système ? Faites une évaluation des compétences aujourd'hui. ]
Récapitulez
Lorsque vous connaissez une partie de la commande que vous avez exécutée récemment, vous pouvez utiliser les raccourcis décrits ici pour la rappeler rapidement. Cela peut être particulièrement utile si vous avez utilisé la commande il y a longtemps et qu'elle est toujours dans l'historique du shell, mais que vos doigts "s'en souviennent".
Évidemment, il existe des moyens plus efficaces pour effectuer vos tâches quotidiennes que de taper :créer des alias pour les commandes que vous utilisez beaucoup, créer des scripts, automatiser, etc. Mais lorsque la saisie est nécessaire, mieux vaut le faire efficacement.