web-dev-qa-db-fra.com

Comment rappeler l'histoire en terminal

J'ai installé Ubuntu 10.10 hier. Puis, lors de l’utilisation du terminal, j’ai remarqué qu’une fois que j’avais quitté une session de terminal, son historique avait disparu, bien que cet historique existe pour les applications qui se trouvent dans l’historique de terminal like-ROOT (CERN).

En donnant la commande

echo $HISTFILESIZE 

il montre 2000. Je l'ai changé en 10000 lorsque j'ai quitté la session et ouvert un nouveau terminal; il affiche à nouveau l'historique en tant que 2000 et aucune commande n'est accessible via les touches fléchées haut/bas.

S'il vous plaît aider. Je suis frustré par tellement ... beaucoup de dactylographie dans le terminal.

5
SUMIT GOSWAMI

Si aucune commande ne peut être exécutée en utilisant  ou  cela indique que votre fichier d'historique est vide ou que vous n'avez pas de permissions de lecture. Regarde ça.

Peut-être que vous exécutez les commandes en tant qu'utilisateur différent. Si c'est le cas:

su otheruser
history 10

et regardez la sortie.

Si vous modifiez $HISTFILESIZE, les modifications seront écrasées à chaque fois que vous invoquerez un autre shell. Pour éviter cela, modifiez cette variable dans votre .bashrc. Vous devez également définir la variable $HISTSIZE sur une valeur supérieure.

Trucs généralement utiles utilisant les historiques:

Ctrl+R effectue une recherche inverse de votre historique pour vous. Alt+. colle le dernier argument de la dernière commande dans votre invite à la position du curseur.

De plus, l’opérateur bang (!) répète les commandes pour vous dans le terminal (s’il s’agit simplement d’économiser du temps en tapant. Exemple:

confus@confusion:~$ echo "bang + letters will repeat the last command starting with these letters."
bang + letters will repeat the last command starting with these letters.

confus@confusion:~$ clear

confus@confusion:~$ !ech
bang + letters will repeat the last command starting with these letters.

Tous ces objets liés à histroy sont stockés dans le répertoire personnel de tout utilisateur dans un fichier nommé .bash_history. Vous pouvez les rechercher en utilisant la commande history-. Elle est un petit tutoriel sur comment utiliser l'historique .

confus@confus:~$ history 4 #will print last 4 commands
 1848  ls
 1849  clear
 1850  vi /home/confus/.local/share/applications/nautilus-home.desktop
 1851  history 4

Une autre chose très utile est de créer un fichier .inputrc dans votre répertoire personnel avec le contenu suivant:

"\e\e[C": forward-Word
"\e\e[D": backward-Word
"\e[A": history-search-backward
"\e[B": history-search-forward

De cette façon, vous pouvez utiliser le  ou  pour compléter les commandes que vous avez commencé à taper à partir de l'historique. Par exemple. lorsque vous tapez une commande assez longue telle que rsync -a -v --human-readable --Prune-empty-dirs -e 'ssh -i .ssh/id_rsa' --include="*/" --exclude="snapshot_*" --exclude="restart.*" /scratch/ x@cluster1:/home/x/runs/ et que vous voulez l'exécuter une seconde fois, vous pouvez simplement taper rsy puis  elle sera complétée à la dernière commande qui a commencé avec rsy. Une autre pression sur la touche supérieure complétera l’avant-dernière et ainsi de suite. Je ne sais pas pourquoi ce n'est pas le défaut.

8
con-f-use

Vous pouvez appuyer sur Control+R et recherchez dans votre historique bash si vous vous rappelez une partie de la commande que vous avez entrée.

Il existe également un fichier appelé .bash_history dans votre dossier personnel que vous pouvez ouvrir ou grep pour rechercher les commandes que vous avez entrées précédemment.

3
Smotko