If you use
zsh for your shell very occasionally you may find the following message appearing indicating a corrupt history file. This is normally after a reboot.
zsh: corrupt history file /home/george/.zsh_history
This prevents searching back through the history with
CTRL+R and editing previous commands with
To fix it run the following commands
cd ~ mv .zsh_history .zsh_history_bad strings .zsh_history_bad > .zsh_history fc -R .zsh_history
Once this happened more than twice I made a script to fix the issue. The following is saved in my
~/bin folder as
zsh_history_fix and this folder is in my
#!/usr/bin/env sh # George Ornbo (shapeshed) http://shapeshed.com # License - http://unlicense.org # # Fixes a corrupt .zsh_history file mv ~/.zsh_history ~/.zsh_history_bad strings .zsh_history_bad > .zsh_history fc -R ~/.zsh_history rm ~/.zsh_history_bad
Now if I see the
zsh: corrupt history file error again I just run the command get back to work.
If you’d like the script you can download it directly from Github, put it somewhere in your
$PATH and make it executable.
cd ~/bin # or somewhere in your $PATH wget https://github.com/shapeshed/dotfiles/blob/master/bin/zsh_history_fix chmod +x zsh_history_fix
Have an update or suggestion for this article? You can edit it here and send me a pull request.
Using HashiCorp Vault with LDAP
How to use HashiCorp Vault to setup an LDAP backed secret store with read-only access for users in groups and read-write access for specific users
Linux and Unix xargs command tutorial with examples
Tutorial on using xargs, a UNIX and Linux command for building and executing command lines from standard input. Examples of cutting by character, byte position, cutting based on delimiter and how to modify the output delimiter.
Copy a file in Go
How to copy a file in Go. The ioutil package does not offer a shorthand way of copying a file. Instead the os package should be used.