There is a feature in termux (android) history command which when you use !371 to execute the command 371 in the command history it prints that command in the prompt instead of executing it, then you just press enter to execute it. I found it very useful because many times I want to execute a command that is in the history but with some modification, I’m using Konsole in my desktop PC and I couldn’t find an option to make such a thing. The only one I found is executing history -p !371, but that just print the command to stdout and not to the prompt itself.
EDIT: the answer is !371:p then up and the command 371 shows up in the prompt. Thanks Schizo!
There’s always Ctrl+R
I never understood the idea of using the command numbers. Ctrl-R is just so much easier.
Because learning Linux takes time, I’ve been using Linux and the command line many years and it’s the first time I come across that command. I even made an alias for ‘history | grep’ to search for commands in history 😂
True… but if there is 1 command that makes learning Linux faster, it’s this one.
Or
man
😉
As the other commenters have mentioned, this is part of the shell configuration and outside the scope of the terminal emulator.
You can configure this yourself by adding
shopt -s histverify
to your bashrc.i have a need for something like this too; but i’ve been making due with crtl+r and that’s been good enough to prevent me from taking action on it.
One option is Atuin which you can also use with a server connection (self-hosted or not) to sync bash history across computers.
It’s so much better when other people build the things I need because they actually get done instead of just making due w an inferior alternative. Lol
thank you for making me aware of it.
Tell me about it: I have great ideas that I just need other people to bring to fruition so I can use it.
i’m just as lazy as your average developer. lol
I didn’t know that, it’s not what I was asking but it’s a cool command, thanks.
Wait till you find out about fzf
Alternatively, use
fc 371
to open the command in an editor and take your time figuring out how you might want to change it.https://www.gnu.org/software/bash/manual/bash.html#Miscellaneous-Commands
Add to your .bashrc following lines:
bind '"\C- ":shell-expand-line' bind '"\C-x":edit-and-execute-command'
Control+Space
: Now you can expand variables, aliases, !492 history commands, the tilde without executing the line. Now you can make changes to the command.Control+x
: Opens the current command in an external editor (such as Vi, or whatever is setup for VISUAL or EDITOR variable). Now you can edit the command and if you save the temporary file and exit editor, the modified command will be executed. If you do not save, the unmodified command before launching the editor will be executed.