wjsullivan.net

Overloading the Machine

NotesBash

Notes

Command editing

C-x C-e will open the command line in $EDITOR.

History

!* Designates all arguments of the preceding command.
!^ Designates the first argument of the preceding command.
!$ Designates the last argument of the preceding command.
^la^t Replaces the -la options with -t in the preceding command.
sudo !! Execute the previous command with sudo.

!whatever:p| Show but don't execute the last command that starts with whatever.

!!:gs/foo/bar Execute the last command, replacing all instances of foo with bar.
-n Go n events back
:n reference a word number
:p just print the event
!50- foo run command 50 replacing the last argument with "foo"
grep -v Shows lines that don't match the pattern
cp foo{,.bak} Make a backup of foo.

Example of find using -exec:

find . -type f -exec file ’{}’ \;

Using History Interactively

Stick the job in the background (ctrl-Z then "bg") then detach it from the terminal (in bash, "disown -h %[jobid]"). You may then close the terminal.

Completion

Add to ~/.bashrc:

# Use bash-completion, if available
if [ -f /etc/bash_completion ]; then
  . /etc/bash_completion
fi

Expansion

M-{} Include all expansions. Also can do things like mkdir -p foo/{cur,new,tmp}.

Keybindings

bind -P will show keybindings.

This page was last modified on 2012 August 12. "NotesBash" by John Sullivan is Copyright ©2003 - 2011, and licensed under the Creative Commons Attribution-Share Alike 3.0 United States License.