by Toby1VC on 2/16/25, 7:54 PM with 77 comments
by ralgozino on 2/16/25, 8:35 PM
I guess that more advance tool would be "atuin" [1], but it is too much for my use case.
[0] https://github.com/junegunn/fzf [1] https://github.com/atuinsh/atuin
by TeMPOraL on 2/16/25, 9:34 PM
For me, C-r is sufficient (and/or M-r in Emacs, where C-r by default does reverse interactive search on the text in buffer; it's nice to have both at the same time, actually). However, I must have skipped some education about shell history and/or its default settings, because half the time I need it, the command I want isn't there to be found. I also observed the following kinds of behaviors:
- Sometimes, shell history seems to be scoped (or reacting to) current working directory;
- Sometimes, commands executed on remote machines end up being saved in local history;
- When the shell gets killed (e.g. when Emacs crashes and takes down the shells open inside with it), or the system crashes, sometimes the history gets saved, and sometimes nothing remains from a session that spanned multiple days;
- When I have multiple terminals open, it's a coin toss whether only one will have history saved or all of them, and then another toss as to whether histories will be CWD-sensitive or not.
Is there a good primer/community consensus on how to configure shell so all history gets saved in sensible manner (including continuously, so it survives a crash)?
by IshKebab on 2/16/25, 8:44 PM
by ashenke on 2/16/25, 8:14 PM
by psxuaw on 2/16/25, 8:17 PM
by jstanley on 2/16/25, 8:13 PM
An obvious improvement! And if you're using text you don't even need to be watching out to recognise it, you can search with Ctrl-R.
by kevincox on 2/17/25, 3:16 PM
For example
mc= sexec nix-shell -p jdk17 prismlauncher --run 'exec prismlauncher -l 1.19.4 -s mc.example'
Will start the right version of Minecraft with the right version of Java. I just type mc<Up> to find it.I use this for commands that I know I will want to reuse, but not frequent enough to always be near the top of my history. In this case I could probably search for "prism" and it would be good enough but for things like specific ffmpeg incantations it is hard to remember a unique part, so the tagging lets me give my own name to the command.
by stuaxo on 2/17/25, 10:00 AM
Most of the time I don't need the rubbish I typed along the way in my history.
by k3vinw on 2/17/25, 6:32 AM
I haven’t played with emojis in the terminal before. Wouldn’t this emoji trick depend on font support?
by bilekas on 2/16/25, 8:51 PM
by nandkeypull on 2/17/25, 5:09 AM
For short-term stuff, I use https://github.com/dp12/fastdiract to save frequently used commands and run them instantly with a two-key combo (f0-f9).
by Duanemclemore on 2/16/25, 8:21 PM
I made a shell script "hg" which stands for "history | grep." So "hg .wine" brings up all commands in the bash command history buffer with the string .wine in them, say "1601 ls .wine" To run one of course you just enter ! and the number of the command. So like... !1601. Whole process is extremely ergonomic.
Although - if anyone wants to write a shell extension that always runs the command output in a separate panel and keeps the parent panel (or tab) to just the commands entered that would be cool too.
by kazinator on 2/17/25, 7:15 AM
Turns out, Korn shell had this first: Ctrl-O. And newer Bash has it also.
You can repeat sequences of multiple commands in your history without having to navigate back to each one individually. Just find the first one and submit one by one with Ctrl-O.
by Gualdrapo on 2/16/25, 8:16 PM
by jasonpeacock on 2/16/25, 10:14 PM
by ajmurmann on 2/17/25, 4:13 AM
I think I set it up with ‘‘‘ "\e[A": history-search-backward "\e[B": history-search-forward ’’’ (Not near a computer right now to confirm)
I find this somehow much faster than C-r
by 1oooqooq on 2/16/25, 9:43 PM
by pjmlp on 2/16/25, 8:37 PM
by VeejayRampay on 2/16/25, 10:36 PM
so basically I end up doing ctrl-r, then fuzzy find the command and run it
by adamredwoods on 2/16/25, 8:30 PM
For example I have 'glast' to list the 5 previous git branches.
Or I have 'phelp' that basically lists the available commands in a package file.
by wang_li on 2/17/25, 3:46 PM
by seiferteric on 2/16/25, 9:46 PM
by kittikitti on 2/17/25, 6:11 PM
by mooreds on 2/16/25, 9:44 PM
Then I can use the vi/vim search keys
- escape
- '/'
- <type words>
- hit n or N to move back and forth
Way way easier than using the up or down arrow.
by SoftTalker on 2/16/25, 9:51 PM
by roydivision on 2/17/25, 8:21 AM
Later, search for <some memorable name>
by mettamage on 2/16/25, 11:50 PM
by hakcermani on 2/16/25, 9:53 PM
https://gist.github.com/appsmatics/ff27e885460bd345eabe1c5f7...
by oriettaxx on 2/16/25, 11:56 PM
bravo! you can also search with grep, I did not know!
``` history | grep ICON ```
by ethan-j on 2/17/25, 3:27 AM
by TZubiri on 2/16/25, 9:11 PM