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'.

you are viewing a single comment's thread
view the rest of the comments
[–] 29 points 10 months ago* (12 children)

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

  • source
  • hideshow 12 child comments
  • [–] 5 points 10 months ago* (2 children)

    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, but vim actual_file.sh might)

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 10 months ago (2 children)
  • [–] 2 points 10 months ago (2 children)

    I really hope I remember this one long enough to make it a habit

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 10 months ago* (2 children)

    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.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 7 months ago (1 child)

    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/bash
    

    I can't reproduce it, even when putting the directory path in quotes, it still simply moved the file.

  • source
  • parent
  • hideshow 1 child comment