$_ also works. I love Alt+. 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 about Alt+. is that you’re not limited to the last argument of the most recent command; instead, it allows you to scroll backwards like Ctrl+R.
No, it’s a shell feature. Terminal emulators don’t even know what shell are running typically, and I haven’t heard of them adding shell features. That would require the terminal emulator knowing you’re using bash, knowing how to interrogate history etc…
From man bash:
yank-last-arg (M-., M-_)
Insert the last argument to the previous command (the last word
of the previous history entry). With a numeric argument, behave
exactly like yank-nth-arg. Successive calls to yank-last-arg
move back through the history list, inserting the last word (or
the word specified by the argument to the first call) of each
line in turn. Any numeric argument supplied to these successive
calls determines the direction to move through the history. A
negative argument switches the direction through the history
(back or forward). The history expansion facilities are used to
extract the last word, as if the "!$" history expansion had been
specified.
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
.Fewer keystrokes, more features, and the ability to see what you’re about to do explicitly. How does that make it the poor man’s option?
Seems like it’s terminal-emulator-specific rather than a built-in shell feature
No, it’s a shell feature. Terminal emulators don’t even know what shell are running typically, and I haven’t heard of them adding shell features. That would require the terminal emulator knowing you’re using bash, knowing how to interrogate history etc…
From
man bash
: