J'ai un problème avec l'histoire de bash.
Disons que j'appelle l'histoire avec history | grep forever
. Ensuite, toutes les commandes précédentes, contenant pour toujours, sont affichées avec leurs numéros correspondants.
Si j’exécute maintenant l’une de ces commandes avec le numéro correspondant (par exemple, !2121
) une commande différente de l'historique est appelée et non celle associée à ce numéro. Qu'est-ce que je fais mal?
Si j'appelle l'historique sans craquer, l'exécution du bang fonctionne comme prévu.
THX
Exemple effrayant:
...
1742 forever stop 0
1743 forever -o out.log -e err.log start -c nodemon hotnews.js
1784 forever list
1814 forever list
2496 forever -o out.log -e err.log start -c nodemon hotnews.js
2498 forever -o out.log -e err.log start -c nodemon hotnews.js
2957 forever -o out.log -e err.log start -c nodemon hotnews.js
3292 forever -o out.log -e err.log start -c nodemon hotnews.js
3452 forever -o out.log -e err.log start -c nodemon hotnews.js
3603 forever -o out.log -e err.log start -c nodemon hotnews.js
3614 history | grep forever
[~]$ !1784
npm uninstall express-flash
npm WARN uninstall not installed in /home/development/node_modules: "express-flash"
[~]$
Modifier:
Je me souviens que j'ai changé les propriétés de mon historique dans .bashrc:
# don"t put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
export HISTCONTROL=ignoreboth:erasedups
# append to the history file, don"t overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
export HISTSIZE=100000
export HISTFILESIZE=100000
# ignoriert einfache Befehle wie cd
export HISTIGNORE="cd:ls:bg:fg:history"
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
Est-ce que ces entrées sont peut-être en quelque sorte défectueuses?
Réponses:
0 pour la réponse № 1Vous avez probablement des lignes vierges ou d'autres choses stupides en .bash_history. Essayez quelque chose comme trouver le bogue:
history | tr -d "[:blank:]" > foo
cat -n .bash_history | tr -d "[:blank:] > bar
diff foo bar