## BASH_HISTORY_FILE or HISTFILE I find myself constantly using multiple terminals on the same system. The default bash history is a good start, but not enough for my needs. After endless searching, testing, ignoring, deleting, and procrastinating I finally found a solution that works for me. 1. Session Isolation - I don't need new history items available across sessions - Typically the work I am preforming is isolated but similar enough that having commands updated between sessions is both obnoxious and unhelpful. 2. Custom Timestamp - I like seeing a particular timestamp format in my history output (helps me remember what I was doing at that time) 3. Dedupe - Like I mentioned above, I don't need commands shared across terminal windows - Also, I don't like duplicate uses of command in my history - Sure I may lose the first, or prior, occurrence(s) of a command. But I only require the last use. 4. Write on session exit - I don't want to lose my history to a `kill -i` - I also don't want to lose my history if I close the wrong session tab - dedupe only needs to happen at this point 5. Use only linux bash commands - I don't want to download some fancy utility. - use the fewest number of commands 6. Unlimited history - computers are big enough and fast enough to handle this - new versions of bash allow an unlimited history ## `~/.bashrc` ``` HISTCONTROL=ignorespace:ignoredups:erasedups shopt -s histappend HISTSIZE=-1 HISTFILESIZE=-1 HISTTIMEFORMAT="[%b %d,%Y %T] " PROMPT_COMMAND="history -a;${PROMPT_COMMAND}" ``` ## `/etc/profile.d/00-dedup-bash-history-on-exit.sh` ``` function deduphistory { echo "deduphistory" history -w ~/.bash_history.dedup_backup history -n; history -a tac ~/.bash_history | awk '!x[$0]++' | tac > ~/.bash_history_new_dedup history -cr ~/.bash_history_new_dedup history -w } # cleanup bash history on exit trap deduphistory EXIT ``` ## Profit Watch your history get appended and deduped on exit. No more lost history (mostly) And be happy ### Files available as gists https://gist.github.com/therevoman/a7532af575479f0a2b5edfbb0bef8212 Originally posted on github.
https://github.com/therevoman/nate-revo-blog/issues/2
Monday, September 19, 2022
Wrangling bash_history across multiple sesions
Subscribe to:
Post Comments (Atom)
Adding nerdctl to an OpenShift 4 Windows Node
# Getting a Windows Node on OpenShift ... Not what this post is about, follow the Red Hat and Microsoft documentation and then consult with...
-
# The Problem The Windows Server 2022 Core VM we were working with had a http proxy set but the OpenShift cluster was in an environment tha...
-
# Getting a Windows Node on OpenShift ... Not what this post is about, follow the Red Hat and Microsoft documentation and then consult with...
-
# OpenShift 4.11 and Windows Containers This feels like a match made in heaven for organizations that are slowly consuming their monoliths...
No comments:
Post a Comment