[Shell] Accès aux dernières commandes de l'historique

Dernière mise à jour le 6 novembre 2009 à 13:49 par marlalapocket
Publié par Jeff
Le shell Linux/Unix regorge de fonctionnalités permettant de gagner du temps.

Ainsi, il est possible de remonter dans l'historique des dernières commandes grâce aux flèches de navigation en appuyant sur la flèche du haut.

Mais il y a moyen d'accéder encore plus rapidement aux commandes présentes dans l'historique ! En effet, en saisissant un point d'exclamation (!) suivi des premières lettres de la commande, le shell exécute automatiquement la dernière commande commençant par ces lettres :

Soit l'historique suivant :
systeme:/home/user$tail /var/log/syslog
systeme:/home/user$vi /etc/apache/httpd.conf
systeme:/home/user$/etc/init.d/mysql restart
systeme:/home/user$apachectl restart
systeme:/home/user$tail /var/log/apache/error.log


La commande suivante permettra d'accéder à la commande n-4 dans l'historique (vi /etc/apache/httpd.conf) :
!vi
Quelques autres utilisations:
!! //Rappel de la dernière commande
!23 //La 23ème commande
!-2 //L'avant-dernière commande
!?profile //La dernière commande contenant le mot "profile"
^13^14^ //Substitution dans la dernière commande

L'historique des commandes est enregistré à chaque fermeture de session dans le fichier:
~/.bash_history
Pour éviter les doublons dans ce fichier, et donc dans l'historique accessible à la ligne de commande, rajoutez cette ligne dans ~/.bash_profile:
export HISTCONTROL=ignoredups


Enfin, pour des recherches plus détaillées, il existe une commande de recherche permettant de rechercher une commande spécifique avec un mot-clé. Pour activer la fonction de recherche, il suffit d'appuyer sur CTRL+R !
Meilleures réponses pour « Accès aux dernières commandes de l'historique » dans :
Accélérer Ubuntu VoirVoici quelques astuces testées qui permettent d'améliorer globalement la vitesse de démarrage et de fonctionnement d'Ubuntu (que ce soit la vitesse réelle ou la vitesse perçue). Désactiver la date de dernier accès Désactiver IPv6 Désactiver...
Gérer les utilisateurs de XP et Vista grâce aux commandes DOS VoirVoici comment gérer les utilisateurs avec DOS dans XP et Vista. Vous allez me dire, pourquoi passer par DOS si on peut passer par gpedit.msc ? La réponse est simple: gpedit.msc n'est pas dans Vista familial et, dans XP familial, les commandes DOS...
Le regroupement de commandes VoirAccolades et parenthèses Introduction Les accolades et les parenthèses permettent le regroupement de commandes. Avec des accolades, les commandes sont exécutées par le shell courant, alors qu'avec les parenthèses elles sont exécutées par un sous...