GNU/Linux >> Tutoriels Linux >  >> Linux

Le hack de ligne de commande de l'historique Linux préféré d'un administrateur système

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.


Linux
  1. 15 exemples pour maîtriser l'historique de la ligne de commande Linux

  2. Service du système d'exploitation Linux "httpd"

  3. service Exemples de commandes sous Linux

  4. Exemples de commande chkconfig sous Linux

  5. Exemples de commandes httpd sous Linux

Commande Diff sous Linux

Commande d'historique sous Linux avec des exemples

Maîtrisez la ligne de commande Linux

Principes de base de la ligne de commande Linux :sudo

Commande d'historique sous Linux - Afficher l'historique du terminal Linux

Exemples de commande systemd-analyze sous Linux