There's always Ctrl+R
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
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.
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.
Awesome!
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.
I didn't know that, it's not what I was asking but it's a cool command, thanks.
careful with it; i need the thing that you asked for too and crtl+r has been effective enough to prevent me to creating it.
but can you modify the command? I tried but I couldn't.
For CTRL+R, once you see the command you want, hit ESC, and the command is there ready to edit.
yes. use the arrow keys to modify it before hitting enter
the answer is !371:p and then up!
Wait till you find out about fzf
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
Alternatively, use fc 371
to open the command in an editor and take your time figuring out how you might want to change it.
Uh, are you sure your shell you're using is bash and not zsh or something else?
Bash is indeed just !12345.
Same behavior for me as OPs
Yeah, it's bash. But !12345 executes the command 12345, but I don't want to execute it, just print it to the prompt.
Does !12345:p do what you want?
Edit: that also makes hitting the up arrow result in whatever command that was, so if you wanted to edit the line or whatever, you could !12345:p, up, then edit and execute.
ohh now I got it....yes thats it! Thanks!!
It doesn't do anything, just prints a blank line.
Things like that aren't a feature of the terminal emulator, but of the shell. Try to find out which shell you're using on Android, maybe try using that one on desktop too.
basename $0 returns bash in both.