--- title: bash Tips & Tricks layout: default created: 2008-08-01 22:41:34 +0200 updated: 2009-02-08 14:32:54 +0100 toc: false tags: - know-how - software - linux - software - bash --- Bourne Again Shell. bash magic ========== Some handy `bash` magic. sudo last command ----------------- sudo !! If you forgot `sudo` after executing your 3-lines-command, sudo *bang! bang!* will repeat the last entered command with `sudo` prefixed. More parameter magic -------------------- | *bang* | Expands to | |:----------:|:-----------| | `!$` | last argument of previous command | | `!$:p` | just show last argument of previous command, don't add to commandline | | `!*` | **all** arguments of previous command | | `!!:1` | first argument of previous command | | `!vi` | last command that started with "*vi*" | | `!vi:p` | just show last "*vi*"-call, don't run it again | | `^err^corr` | replace all occurrences of `err` by `corr` in the last command | Shortcuts --------- | *keypress* | Description | |:------------:|:---------------| | Ctrl+w | Erase word | | Ctrl+u | Erase from cursor to beginning of line | | Ctrl+a | Move cursor to beginning of line | | Ctrl+e | Move cursor to end of line | | Ctrl+r | Search command history (type letters after this) | chdir to last one ----------------- cd - Changes to previous directory. Use output of previous command ------------------------------ Sometimes it's handy to use the output of a previous command, e.g. a `which`. To do that, simply use the *bang-bang* with the backtick operator: $ which php /usr/bin/php $ ls -l `!!` ls -l `which php` lrwxrwxrwx 1 root root 21 2008-06-12 02:47 /usr/bin/php -> /etc/alternatives/php $ _