I’ve been setting up a new Proxmox server and messing around with VMs, and wanted to know what kind of useful commands I’m missing out on. Bonus points for a little explainer.
Journalctl | grep -C 10 'foo' was useful for me when I needed to troubleshoot some fstab mount fuckery on boot. It pipes Journalctl (boot logs) into grep to find ‘foo’, and prints 10 lines before and after each instance of ‘foo’.


I use $_ a lot, it allows you to use the last parameter of the previous command in your current command
mkdir something && cd $_
nano file
chmod +x $_
As a simple example.
If you want to create nested folders, you can do it in one go by adding -p to mkdir
mkdir -p bunch/of/nested/folders
Good explanation here:
https://koenwoortman.com/bash-mkdir-multiple-subdirectories/q
Sometimes starting a service takes a while and you’re sitting there waiting for the terminal to be available again. Just add --no-block to systemctl and it will do it on the background without keeping the terminal occupied.
systemctl start --no-block myservice
For interactive editing, the keybind
alt+.inserts the last argument from the previous command. Using this instead of $_ has the potential to make your shell history a little more explicit. (vim $_isn’t as likely to work a few commands later, butvim actual_file.shmight)You can also press
alt+.multiple times to cycle through all recent argumentsYes, definitely and I do run into that when I search my history
I just press M-.
I’m not sure what you mean. I gave 3 different commands…
You can use M-. instead of $_ to insert last param of last command. You can also access older commands’ param by repeated M-. just like you would do for inserting past commands with up arrow or C-p
I really hope I remember this one long enough to make it a habit
I have my .bashrc print useful commands with a short explanation. This way I see them regularly when I start a new session. Once I use a command enough that I have it as part of my toolkit I remove it from the print.
That is really useful! Thanks for the tip!
Is there a version of $_ that works with mv? It just keeps renaming my files to “filedir,” I’m trying sort through a directory and move some files to another for keeping, be easier if I could do:
mv picture1.jpg /path/to/keepdirectory
then do something like
mv picture2.jpg $_
And so on. But with that I’d just be renaming all my photos “filedir” instead of moving them lol.
I just tried your use case, and it did move the files to the correct folder.
using zsh:
user@computer ~ touch test.jpg user@computer ~ touch test2.jpg user@computer ~ mv test.jpg ./Public user@computer ~ mv test2.jpg $_ user@computer ~ ls ./Public test2.jpg test.jpg user@computer ~ using bash:
[user@computer Public]$ mkdir test [user@computer Public]$ ls test test2.jpg test.jpg [user@computer Public]$ mv test.jpg ./test [user@computer Public]$ mv test2.jpg $_ [user@computer Public]$ ls test [user@computer Public]$ ls test/ test2.jpg test.jpg [user@computer Public]$using bash and full path:
[user@computer Public]$ ls test test2.jpg test.jpg [user@computer Public]$ mv test.jpg /home/user/Public/test [user@computer Public]$ mv test2.jpg $_ [user@computer Public]$ ls test [user@computer Public]$ ls test/ test2.jpg test.jpg [user@computer Public]$What shell are you using? You can check it by using
echo $0.user@computer ~ echo $0 /usr/bin/zsh[user@computer ~]$ echo $0 /bin/bashI can’t reproduce it, even when putting the directory path in quotes, it still simply moved the file.
On bash I found out
alt+.puts the last last parameter back up, and you can hit it again to keep cycling, that’s what I’ve been using.