Curate your shell history (esham.io)
from learnbyexample@programming.dev to linux@lemmy.ml on 15 Jun 04:18
https://programming.dev/post/32232151

#linux

threaded - newest

vort3@lemmy.ml on 15 Jun 04:33 next collapse

I comment the commands that I want and then use vim to remove ones without comments.

For example, I run:

longandannoyingcommand -f1 -f2 -f3 # keep, does something useful

Usually comment explains what the command does so I can find it by description using fzf history search. And then you can easily find all lines that contain (or do not contain “# keep”) in your history to remove or keep.

grrgyle@slrpnk.net on 15 Jun 21:31 collapse

We are same. I sometimes use comments as kind of tags, like

xinput --disable $(xinput --list | grep -i touchpad | grep 'id=[0-9]\+' -o | cut -d= -f2)  # Disable synaptic touchpad trackpad pointer

or

python3 -c 'from ctypes import *; X11 = cdll.LoadLibrary("libX11.so.6"); X11.XOpenDisplay.restype = POINTER(c_ubyte); display = X11.XOpenDisplay(None); X11.XkbLockModifiers(display, c_uint(0x0100), c_uint(2), c_uint(0)); X11.XCloseDisplay(display)' # swap caps CAPS CAPSLOCK

or sometimes I’ll add # works at the end of a long string of attempts (usually involving dialing into a regexp), like

xdpyinfo|grep dimensions|grep -Eow '\d'
xdpyinfo|grep dimensions|grep -Eow '(\d)'
xdpyinfo|grep dimensions|grep -ow '(\d)'
xdpyinfo|grep dimensions|grep -o '(\d)'
xdpyinfo|grep dimensions
xdpyinfo|grep dimensions|grep '1920x1080'
xdpyinfo|grep dimensions|grep -o '1920x1080'
xdpyinfo|
karpintero@lemmy.world on 15 Jun 04:40 next collapse

I might try this. Normally would just pipe history into grep to search or scroll till I found the right command. Also smite is a great name for that function.

elmicha@feddit.org on 15 Jun 05:28 collapse

I use ctrl-r.

karpintero@lemmy.world on 15 Jun 17:31 next collapse

Excellent, thanks

utopiah@lemmy.ml on 16 Jun 04:59 collapse

Right, I was starting to think “Oh yeah and maybe I could fzf history…” then wait, I already do that reverse-i-search then edit. If I use that often enough, alias in ~/.bashrc or even function to make it composable.

Jinna@lemmy.blahaj.zone on 15 Jun 05:38 next collapse

Atuin (by @ellie@hachyderm.io) makes the history storage and management side much easier and portable, but could perhaps use a “smite mode” to make deletion interactively easier. The current interactive implementation prioritizes safety over expediency which is fine, but a “today I clean things” option could perhaps instead prioritize the other way around and enable one key delete w/ undo instead.

PotatoesFall@discuss.tchncs.de on 15 Jun 11:01 collapse

Is this some sort of bash/zsh joke that I’m too fish to understand?

Okay I can see how curating could work. But if you’re lazy like me, I recommend this:

github.com/PatrickF1/fzf.fish