Chaque fois que j'ouvre une nouvelle instance d'un terminal, l'historique est vide. Pourquoi donc? Dois-je configurer quelque chose? En bash, cela n'est pas nécessaire.
zsh
command-history
Gilles 'SO- arrête d'être méchant'
la source
la source
zsh
, maisbash
écrit par défaut dans ses fichiers d'historique à la sortie , ce qui signifie que si vous ne l'avez pas utilisé auparavant et ouvrez certains shells, ils afficheront tous maintenant l'historique jusqu'à ce qu'au moins un se déconnecte, écrivant ainsi son fichier d'historique.Réponses:
Bash et zsh ont des valeurs par défaut différentes. Zsh n'enregistre pas l'historique dans un fichier par défaut.
Lorsque vous exécutez zsh sans fichier de configuration, il affiche une interface de configuration. Dans cette interface de configuration, sélectionnez
puis passez en revue les paramètres proposés et sélectionnez
Répétez l'opération pour les autres sous-menus pour (2) l'achèvement, (3) les raccourcis clavier et (4) les options, puis sélectionnez
dans le menu principal.
Les paramètres liés à l'historique recommandés sont
J'utiliserais un nom différent pour le fichier historique, pour indiquer qu'il s'agit du fichier historique de zsh. Et 1000 lignes peuvent être augmentées sur un système moderne.
Soit dit en
~/.zshrc
passant, ces lignes entrent .la source
Bien que la réponse actuelle soit correcte, j'ai pensé qu'il valait la peine d'ajouter qu'il existe peut-être une meilleure option que
appendhistory
de sauvegarder votre historique, et c'est le casSHARE_HISTORY
.À partir de la documentation,
SHARE_HISTORY
"importe à la fois de nouvelles commandes à partir du fichier historique et entraîne également l'ajout de vos commandes tapées au fichier historique". Cela signifie que les obus sont également conscients de l'histoire de l'autre sans avoir à fermer l'actuelle ou à en ouvrir une nouvelle.Donc, tous ensemble, vous le définissez comme ceci:
la source
INC_APPEND_HISTORY_TIME
, qui écrit dans l'historique de tous les terminaux comme ci-dessus, mais cet historique "ne sera pas disponible immédiatement à partir d'autres instances du shell qui utilisent le même fichier d'historique". Cela a plus de sens pour moi, car je peux alors parcourir l'historique de chaque terminal indépendamment, mais tout est toujours connecté.INC_APPEND_HISTORY_TIME
pourrait être plus logique. Je n'aurais probablement pas dû dire "mieux", je suppose que c'est juste une question de préférence personnelle à ce stade!lorsque vous passez de bash à zsh pour la première fois, votre historique bash ne sera pas transféré. Donc, tout l'historique que vous aviez dans bash est toujours dans le fichier historique de bash. zsh commence à capturer l'historique à partir du moment où vous commencez à l'utiliser comme shell.
Si vous ne l'avez pas configuré pour capturer l'historique, vous pouvez réexécuter l'assistant de configuration et indiquer à zsh la quantité d'historique à enregistrer. Modifiez le nom de ~ / .zshrc ou supprimez-le pour obtenir une nouvelle photo de l'assistant.
la source
Si cela ne fonctionne pas et que tout cela est déjà en place, essayez:
Cela écrit l'historique actuel dans le fichier historique. Et si vous obtenez:
il est alors temps de vérifier les autorisations sur le fichier et sur le répertoire parent.
la source