Ctrl+r was a life-changer when I first learned it.
I think it’s the only shell shortcut I know haha
You can install fzf to make it fancier.
Same. For anyone using fish shell, this plugin is super-handy: https://github.com/PatrickF1/fzf.fish
Shout out to the very fine Atuin.sh. Give it a try, you won’t regret it.
curl | sh…
Yep, I don’t like these “recommended” methods, too. Fortunately, you can just use your favourite package manager instead: https://docs.atuin.sh/guide/installation/#manual-installation
If you have
fzf
installed, it is easy to integrate it with your bash history. In my.bashrc
, I have:# Introduce fzf-driven functionality as described here: https://wiki.archlinux.org/title/fzf. source /usr/share/fzf/key-bindings.bash source /usr/share/fzf/completion.bash
Also, you may be interested in
zoxide
, which keeps track of paths you have navigated to. Also from my.bashrc
:# Enable an autojump-like 'j' command. Use 'ji M' to select paths starting with M using fzf. # This needs to always come last. eval "$(zoxide init --cmd j bash)"
I just started using both recently and it’s great. For the fzf file search, there’s even some extension that can show a preview pane of text files and even images!
As a noob where do I find more handy tips like this? Alone with handy/popular apps?
Almost every windows app I had was on Linux (most were FOSS already) but I know there will be some unique or interesting ones.
For example in android there is Obtanium now to update apps direct from git, or the many was to use YT without ads.
Depending how deep you want to dive into Linux, there is a great ebooks collection available:
https://www.humblebundle.com/books/linux-for-seasoned-admins-oreilly-books
This is not bad for a start (common commands):
https://linuxblog.io/90-linux-commands-frequently-used-by-linux-sysadmins/
Why date time isn’t turned on by default I’ll never know.
Can you explain more? I’m getting into Linux and ops post has been a game changer.
This will do a far better job than I: https://ostechnix.com/how-to-enable-timestamp-in-bash-history-in-linux/
To use the last argument of the last ran command, use the
Alt+.
keys.Sounds like a poor-man’s
!$
to me!Alt+. can scroll up through the last few commands
$_
also works. I loveAlt+.
but sadly it doesn’t work on any Mac terminal emulator I’ve found and, even more sadly, I am forced to use a Mac at work.I haven’t tried
!$
so I’m not familiar with its function, but one nice thing aboutAlt+.
is that you’re not limited to the last argument of the most recent command; instead, it allows you to scroll backwards likeCtrl+R
.
I have a bash function in
fuzzy_arg
that I bind to Alt-a to uses fzf for interactively inserting arguments from previous commands. It’s Ctrl-r for Alt-. – I’ve found it super useful for essentially inserting partial commands (single arguments) from the historyNew to Linux as my daily driver. This is life changing. I was up/down arrowing like a madman!
I always use reverse search. But, it is always good to learn something new.
Am I blind or is ctrl+R not in that document?
is there a way to save commands from history? i tried to figure this out when i was starting to use linux regularly, to help learn commands and to make a reference for myself as to what the commands do. i’m familiar with things like man, info, tldr and others but i wanted to put things in my own words since i remember better that way.
what i’m wanting but can’t seem to automate: -save commands from bash history to a file with only the command and arguments used, no line numbers or time stamps. -filenames can be kept, but if filenames are removable easily, that would be better. -file saved in should have the list sorted with any duplicates removed and happen after any terminal session ends. -i’ve read about changing the prompt but not done it correctly and not sure if possible or the safest way. -i’ve tried using .bash_logout but it doesn’t seem to do anything and i’m not sure why.
this isn’t too important anymore, as i’ve grown more comfortable with linux and bash but it bugs me that i never got it to work. i can copy and paste more detailed notes of what i tried but i’d need to redact a bunch of cursing and frustrated whining.
You mean sth like
cat <(history | cut -c 8-) history.txt | sort | uniq > history.txt
? Not sure if it possible to remove the file names.It should probably work to put it in
.bash_logout
.yeah that looks exactly like what i wanted, thanks! i probably should have asked my question a couple years ago but i was still very new to linux and didn’t quite know the lingo. i’m still not quite sure how
<
works in general but i get the pipe and other redirects at least.putting it in
.bash_logout
doesn’t always work. something involving login shells i don’t quite understand yet but i’ll read more about it. i saw mention of puttingexit_session() { . "$HOME/.bash_logout" } trap exit_session SIGHUP
in.bashrc
to make it always work but i also don’t understand trap yet either so i’ll look into that too.thanks again, your reply helped point me in the right direction of things i want to learn!