this post was submitted on 23 Jul 2024
147 points (98.0% liked)

Linux

48220 readers
724 users here now

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

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 3 months ago (3 children)

To use the last argument of the last ran command, use the Alt+. keys.

Sounds like a poor-man's !$ to me!

[–] [email protected] 2 points 3 months ago (1 children)

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?

[–] [email protected] 1 points 3 months ago (1 children)

Seems like it's terminal-emulator-specific rather than a built-in shell feature

[–] [email protected] 2 points 3 months ago* (last edited 3 months ago) (1 children)

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.
[–] [email protected] 1 points 3 months ago

Neat! Other replies saying it doesn't work on their machine, I'll have to try it out in a few different environments.

[–] [email protected] 6 points 3 months ago

Alt+. can scroll up through the last few commands

[–] [email protected] 4 points 3 months ago

$_ 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.