For example, in bash I can type !xyz
which will run the last command I typed beginning with xyz
.
How can I bring up the last command I typed beginning with xyz
but without executing it?
e.g so I can change parameters before execution....
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.
Sign up to join this communityYou can do it like this: On the command prompt press Ctrl+r and then type the command you want to recall, in your case xyz
. This will show you the complete command without executing it.
!
notation, because you can press Ctrl-r multiple times to cycle further into matching history. When you arrive at the proper place, you can try to execute not with Enter but with Ctrl-o for much profit.
Mar 8, 2016 at 12:27
Try !xyz:p
; it will recall the command to the top of history without executing it, so eg up-arrow can immediately access it for interactive editing.
As an aside, I make a practice of doing this when recalling commands with a regexp that could conceivably dig up something damaging, ever since a hasty !r
, intended to recall the most recent rsync ...
command, pulled back and executed an rm *
that had been pushed to the stack more recently than the rsync.
rm -rf ./*
never been so grateful for a period. FYI The !xyz:p
worked, thankyou, but required a few extra keystrokes than the ctrl-r solution.
EMACS
ey folks, whereas the !-path works best for vi
olators like me.
Mar 8, 2016 at 8:33
!
and Ctrl+r have different uses.
Dec 20, 2021 at 20:40
!
. I was hoping bash would have a setting to make this its behavior as well.
Dec 20, 2021 at 20:41
Execute the following command. It will echo the last executed command. you can copy and edit the command. This command tested in debian.
history |tail -2 | grep -v history | cut -d ' ' -f4-
Or Press and hold ctrl+R and type the starting letter of your last command. It will list the commands you executed previously based on your input. Once it shows desired command, just press right arrow in order to select that command.
If reverse history search failed, do anything of:
$ history | grep WHAT_YOU_LOOK_FOR
Or:
$ grep WHAT_YOU_LOOK_FOR ~/.bash_history