Existe-t-il un moyen de sauvegarder toutes mes commandes de terminal saisies et de les afficher comme l'historique dans un journal?
Ceci est fait automatiquement. Bash stocke vos commandes dans ~/.bash_history
. Si vous souhaitez consulter l'historique, imprimez la sortie de ce fichier en utilisant l'un des fichiers suivants:
cat ~/.bash_history
less ~/.bash_history
...any other pager or output command...
Ou vous pouvez utiliser la commande intégrée de bash:
history
Pour effacer l’historique, supprimez le fichier et effacez l’historique temporaire:
rm ~/.bash_history && history -c
La taille de l'historique par défaut est de 500 commandes. Vous pouvez toutefois augmenter ce nombre en ajoutant la ligne suivante à votre ~./bashrc
:
HISTSIZE=<number of entries, -1 for unlimited>
Cela ne prendra pas effet immédiatement, mais uniquement pour les sessions nouvellement démarrées. Pour appliquer cela, utilisez le fichier .bashrc:
. ~/.bashrc
ou exécutez HISTSIZE=...
dans votre session en cours.
Vous pouvez taper history
sur un terminal pour afficher toutes les commandes exécutées précédemment.
Vous pouvez tronquer la sortie sur certaines lignes (où 5 correspond au nombre de lignes):
history 5
Si vous souhaitez afficher uniquement les commandes contenant une chaîne (c'est-à-dire mv
name__), procédez comme suit:
history | grep mv
Vous pouvez rappeler une commande en tapant !
suivi du numéro d'entrée.
Disons que j'ai une histoire comme celle-ci:
1 ls -la
2 mkdir foo
3 mv bar.txt foo
mkdir foo
, vous pouvez taper !2
.!-1
ou !!
!-2
Si vous exécutez une commande qui échoue car elle nécessite des privilèges root (c'est-à-dire touch /etc/foo
), vous pouvez utiliser Sudo !!
pour exécuter la dernière commande en tant que root.
!man
, vous exécuterez la dernière commande commençant par man
name__.!?man?
, il exécutera la dernière commande contenant man
(pas nécessairement au début de la ligne).Si vous avez une faute de frappe dans une commande, vous pouvez la corriger de cette façon. Supposons que je tape cat .bash_hi
, pour remplacer .bash_hi
par .bash_history
Je dois seulement taper ^hi^history^
.
Il suffit de taper:
history > print.txt
Un nouveau fichier appelé print.txt sera créé dans votre répertoire de travail actuel.
Je veux souvent juste ces commandes récentes, aussi. Publier sur mes notes de développement ou, bien, des sites stackexchange comme ceux-ci ... Cela s’est avéré très utile, en supprimant les numéros de ligne non pertinents:
history | cut -c 8- | tail
ou, si vous l'aimez comme alias, les numéros de ligne sont supprimés et mis en retrait immédiatement (comme nécessaire pour le démarquage des guillemets)
alias lastones="history | tail | sed -e 's/^ [0-9]\{1,5\} / /gi'"
Vous voudrez peut-être essayer https://github.com/dvorka/hstr qui permet la navigation simple , la navigation et "suggérer "style de boîte" filtrant votre historique Bash:
Il peut être facilement lié à Ctrl-r et/ou Ctrl-s