I am currently looking for a way to easily store and run commands, usually syncing files between two deeply nested directories whenever I want.
So far I found these projects:
Other solutions:
Bash history using ^+r Bash aliases Bash functions
What do you guys use?
aliases in .bashrc
Obvious things I don’t see mentioned:
- Bash scripts kept in the home directory or another place that’s logical for them specifically.
history | grep whatever
(or other useful piping), though your older commands are forgotten eventually. You can mess with the values ofHISTSIZE
andHISTFILESIZE
environment variables in your system.
Fish shell. Out of the box it autocompletes taking into account in which directory you are. It’s like bash Ctrl+r but without actually invoking it before. Really ergonomic.
Fish (or zsh with some addons) will give you tab completion based on previous commands, might be something of interest?
Here’s some addon tips if you’d rather run zsh instead of fish:
https://gist.github.com/abhigenie92/a907cdf8a474aa6b569ebe89aeee560d
I like bash scripts + auto key! Custom commands with custom keybinds.
An alias file is what I’ve found to be the simplest. Just have to add one line to either .zshrc or .bashrc that links to the file. I store the alias file and some custom scripts that a few aliases call in a git repo so it’s literally just a matter of git pull, add one line to the rc file and then close and reopen the terminal and everything is ready to go.
I use vi as the command line editor, so fetching history commands is quick:
ESC /searchstring
But if it’s something really frequent or may benefit from parameters, I usually throw a perl or bash script in /usr/local/bin.
.zsh aliases to bash functions.
Thanks for the list though, gonna take a look at a few!
I’d say aliases and functions are your friends here.
McFly for better ”ctrl+c”. It also keeps track of what commands you ran in what directory.
Try
fzf
. The default hooks will launch fuzzy finders forC-r
: history searchAlt-c
: change directoryC-t
: fill in argument for a nested path
All seem pretty good for your use case.
Fish and its search functionality work great for me.
I use this method from Luke smith for bookmarking.
https://vid.puffyan.us/watch?v=d_11QaTlf1I
I just have another file for commands.
You can use rofi/dmenu/bemenu. I use kickoff though.