Historique ZSH corrompu

Apparition d’un message d’erreur au lancement d’une console :

zsh: corrupt history file /home/user/.zsh_history

Renommer le fichier :

mv .zsh_history .zsh_history_bad

Copier le contenu de .zsh_history_bad dans un nouveau fichier qui sera nommé .zsh_history :

strings .zsh_history_bad > .zsh_history
Si la commande « strings » n’est pas disponible, installer le paquet « binutils« .
sudo apt update
sudo apt install binutils

Il faut ensuite demander à zsh de lire le nouveau fichier pour récupérer son historique :

fc -R .zsh_history

« fc » est une commande interne du shell. Pour plus de renseignements: https://linux.die.net/man/1/zshbuiltins

Source: https://www.geeksforgeeks.org/linux-unix/how-to-fix-a-corrupt-zsh-history-file/

DNS dans un sous-système Debian

Petite problématique du jour: j’avais besoin de changer de résolveur DNS dans mon terminal Debian. En modifiant le fichier /etc/resolv.conf ça fonctionne, mais au redémarrage du pc la configuration disparaît.

Il y a bien une ligne dans le fichier resolv.conf qui explique que ce fichier est généré automatiquement et qu’il faut ajouter les lignes suivantes au fichier /etc/wsl.conf (dans le terminal Debian):

[network]
generateResolvConf = true

Mais ça ne suffit pas! Au redémarrage le fichier resolv.conf est de nouveau écrasé. Pour que la modification de wsl.conf soit prise en compte il faut arrêter wsl à l’aide de la commande suivante, à exécuter dans un terminal windows:

wsl --shutdown

Ensuite en lançant un terminal Debian on peut se rendre compte que le fichier resolv.conf a disparu (il n’a pas été généré automatiquement). Il suffit donc de le créer et d’y ajouter les résolveurs DNS souhaités:

nameserver x.x.x.x
nameserver y.y.y.y

Le fichier restera en place et ne sera plus écrasé au démarrage de WSL.