💾 Archived View for gemini.brunofontes.net › blog › linux-shell-shortcuts.gmi captured on 2021-12-05 at 23:47:19. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2020-11-07)
-=-=-=-=-=-=-
I am pretty sure most people who uses Linux knows these, but they are quite handy and it is not the kind of thing I usually see online, so here it goes a small list of shortcuts to be used on your favorite terminal/shell.
Let's say you were copying a file from a virtual domain to another one, so you type:
$ cp /var/www/old-website.com/public_html/mail/index.php /var/www/new-website.com/public_html/mail/index.php
So you remember that, actually, you want to move the file, not just copy that. On that case, you want to repeat all the parameters but the main command. So you can achieve that with...
$ mv !*
This !* will expand into all the parameters of the last command:
$ mv /var/www/old-website.com/public_html/mail/index.php /var/www/new-website.com/public_html/mail/index.php mv: cannot move '/var/www/old-website.com/public_html/mail/index.php' to '/var/www/new-website.com/public_html/mail/index.php': Permission denied
Oops, you do not have permission to that. Now you just want to repeat exactly the same command, but using sudo this time. You can make it really simple again, just using...
$ sudo !!
This will expand into your last command, as follows:
$ sudo mv /var/www/old-website.com/public_html/mail/index.php /var/www/new-website.com/public_html/mail/index.php
Yes, you finally moved the file into the right place. But it is not over yet. You still need to edit this moved file. Should you type the entire path this time? No! You can reuse just a parameter of your last commando with...
$ sudo vim !$
The !$ operator expands to the last parameter of the last command. So it will become:
$ sudo vim /var/www/new-website.com/public_html/mail/index.php
Another option is to pick the parameter by it's number. To achieve that, you can use the !:<number>, that will expand into the specified parameter, starting the numbering at 0.
0 1 2 $ sudo mv /var/www/old-website.com/public_html/mail/index.php 3 /var/www/new-website.com/public_html/mail/index.php
So we could have used !:3 instead of the !$ on the last command with the same result.
TL;DR and more...
There are much more shortcut, expansions etc, but here are a few that I like to use: