J'ai toujours utilisé bash pour le travail et je n'ai jamais eu de problème avec ça. Maintenant, il n'enregistre plus aucune commande dans l'historique. Si j'ouvre un terminal de fenêtre, j'essaye quelques commandes, il agit comme si tout fonctionnait bien et me montre l'historique en utilisant les touches fléchées. Mais si je ferme la fenêtre (et que c'est le moment où elle est censée être sauvegardée sur le fichier .bash_history) et j'ouvre une autre, il n'y a aucun signe des dernières commandes.
Comment puis-je savoir ce qui ne va pas? Ou réinitialisez tout de blanc.
.bash_sessions_disable
et je sais qu'il revient au comportement par défautRéponses:
J'ai fait ça:
Ajouter une variable au
.bash_profile
fichierSHELL_SESSION_HISTORY=0
redémarrez le terminal et après cela, il fonctionne comme je le voudrais. (Il a enregistré les commandes après avoir fermé le terminal)
PS J'utilise également les variables
HISTFILESIZE
etHISTSIZE
HISTSIZE est le nombre de lignes ou de commandes qui sont stockées en mémoire dans une liste d'historique pendant que votre session bash est en cours.
HISTFILESIZE est le nombre de lignes ou de commandes qui (a) sont autorisées dans le fichier d'historique au démarrage d'une session, et (b) sont stockées dans le fichier d'historique à la fin de votre session bash pour une utilisation dans les sessions futures.
la source
À partir d' OS X 10.11 El Capitan , le script installé par le système se
/etc/bashrc_Apple_Terminal
coordonne avec Terminal afin de sauvegarder / restaurer des historiques de commandes séparés pour chaque terminal restauré pour Resume .Lisez les commentaires
/etc/bashrc_Apple_Terminal
pour une explication de la façon dont il gère les historiques de commandes par terminal et comment le personnaliser.Si vous personnalisez,
PROMPT_COMMAND
assurez-vous de concaténer à la valeur précédente afin de ne pas effacer la commande fournie par le système:Si vous installez un
EXIT
gestionnaire de signaux avectrap
assurez-vous de faire quelque chose de similaire (ou appelez shell_session_update à partir de votre gestionnaire si vous ne pouvez pas comprendre comment concaténer à la valeur précédente, c'est un peu impliqué).Lorsque vous quittez le shell, ce code enregistre les nouvelles commandes dans l'historique du terminal dans
~/.bash_sessions
. Pour voir s'il rencontre des problèmes, au lieu de fermer le terminal, quittez le shell manuellement avecexit
(ou Control-D). Il enregistre les messages de progression. Notez s'il ne se termine pas ou si des messages d'avertissement ou d'erreur s'affichent.En général,
bashrc_Apple_Terminal
tente de détecter et de désactiver l'historique par session s'il semble que l'utilisateur a effectué des personnalisations qui ne sont pas compatibles avec celui-ci. Il semble que vous en ayez trouvé un qu'il ne gère pas. Veuillez envisager de déposer un rapport de bogue auprès d'Apple: https://developer.apple.com/bug-reporting/la source
/etc/bashrc_Apple_Terminal
sert PROMPT_COMMAND?»? Si ce dernier, je vous renvoie au code, qui est documenté en détail. Ou, vous devriez commencer une autre Q&R à ce sujet.Juste au cas où il y en aurait d'autres sur lesquels RVM (Ruby Version Manager) est installé: Vérifiez si vous avez la ligne suivante dans votre
~/.profile
,~/.bashrc
ou vos~/.bash_profile
fichiers.[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
C'était le problème pour moi. Essayez de le commenter.
Source: Reddit
la source
Sur une nouvelle installation de Mac OS X (mise à jour vers 10.13.6), l'historique des commandes bash n'était pas enregistré. Il n'y avait pas non plus de fichiers .bashrc ou .bash_profile. Dans ce cas, l'ajout d'un fichier .bashrc vide l'a corrigé pour moi.
Cela semble être tout ce dont vous avez besoin ...
la source
J'ai eu le même problème avec un osx Mojave nouvellement installé. J'ai vérifié mon
~/.bash_history
dossier et j'ai vu ceci:$ ls -l ~/.bash_history -rw------- 1 root staff 599 Jan 4 20:50 /Users/gilm/.bash_history
Le simple fait de le réinstaller au gilm a résolu le problème. J'ai utilisé:
sudo chown gilm /Users/gilm/.bash_history
et cela a résolu mon problème.
la source
Vous pouvez également créer un
.bash_logout
fichier avec les éléments suivants:Provenant d'un commentaire GitHub
la source
trap shell_session_update EXIT
une fois manuellement et déconnectez-vous. Il y a des indices dans le/etc/bashrc_Apple_Terminal
script qui sont trop ennuyeux pour être inclus ici.