100%(16)100% found this document useful (16 votes)
6K views
Bash Command Line History Cheat Sheet
Made at http://www.catonmat.net
This cheat sheet includes history editing keyboard shortcuts (emacs and vi mode), history expansion summary - event designators, word designators and modifiers, shell special variables and `shopt’ options to modify history behavior, examples.
Visit http://www.catonmat.net for more cheat sheets!
100%(16)100% found this document useful (16 votes)
6K views
Bash Command Line History Cheat Sheet
Made at http://www.catonmat.net
This cheat sheet includes history editing keyboard shortcuts (emacs and vi mode), history expansion summary - event designators, word designators and modifiers, shell special variables and `shopt’ options to modify history behavior, examples.
Visit http://www.catonmat.net for more cheat sheets!
Shortcut Description Emacs Mode Shortcuts: CTRL-p Fetch the previous command from the history list. CTRL-n Fetch the next command from the history list. CTRL-r Search history backward (incremental search). CTRL-s Search history forward (incremental search). Meta-p Search backward using non-incremental search. Meta-n Search forward using non-incremental search. Meta-< Move to the first line in the history. Meta-> Move to the end of the history list. Vi Mode Shortcuts: k Fetch the previous command from the history list. j Fetch the next command from the history list. /string or CTRL-r Search history backward for a command matching string. ?string or CTRL-s Search history forward for a command matching string. n Repeat search in the same direction as previous. N Repeat search in the opposite direction as previous. G Move to the N-th history line (for example, 15G).
History behavior modification via shell variables:
Shell Variable Description HISTFILE Controls where the history file gets saved. Set to /dev/null not to keep history. Default: ∼/.bash history. HISTFILESIZE Controls how many history commands to keep in HISTFILE. Default: 500. HISTSIZE Controls how many history commands to keep in the history list of current session. Default: 500. HISTIGNORE Controls which commands to ignore and not save to the history list. The variable takes a list of colon separated patterns. Pattern & matches the previous history command.
History behavior modification via shopt command:
shopt option Description histappend Setting the variable appends current session history to HISTFILE. Unsetting overwrites the file each time. histreedit If set, puts a failed history substitution back on the command line for re-editing. histverify If set, puts the command to be executed after a substitution on command line as if you had typed it.
shopt options can be set by a shopt -s option and can be unset by a shopt -u option shell command.
http://www.catonmat.net - good coders code, great reuse Released under GNU Free Document License. History expansion: Shortcut Description Event Designators: ! Starts a history substitution. !! Refers to the last command. !n Refers to the n-th command line. !-n Refers to the current command line minus n. !string Refers to the most recent command starting with string. !?string? Refers to the most recent command containing string (the ending ? is optional). ˆstring1ˆstring2ˆ Quick substitution. Repeats the last command, replacing string1 with string2. !# Refers to the entire command line typed so far. Word Designators (word designators follow the event designators, separated by a colon): 0 The zeroth (first) word in a line (usually command name). n The n-th word in a line. ˆ The first argument (the second word) in a line. $ The last argument in a line. % The word matched by the most recent ?string? search. x-y A range of words from x to y (-y is synonymous with 0-y). * All word but the zeroth. x* Synonymous with x-$. x- The words from x to the second to last word. Modifiers (modifiers follow word designators, separated by a colon): h Removes a trailing pathname component, leaving the head. t Removes all leading pathname components, leaving the tail. r Removes a trailing suffix of the form .xxx, leaving the basename. e Removes all but the trailing suffix. p Prints the resulting command but does not execute it. q Quotes the substituted words, escaping further substitutions. x Quotes the substituted words, breaking them into words at blanks and newlines. s/old/new/ Substitutes new for old. & Repeats the previous substitution. g Causes s/old/new/ or & to be applied over the entire event line.
History expansion examples:
$ echo a b c d e (executes ‘echo ab c d e‘) $ tar -xzf package-x.y.z.tgz
a b c d e ... $ echo !!:3-$ (executes ‘echo c d e‘) $ cd !-1:$:r (exec’s ‘cd package-x.y.z‘) c d e package-x.y.z $ $ echo !-2:*:q (executes ‘echo ’a b c d e’‘) a b c d e $ ls -a /tmp $ echo !-3:1:2:4:x (executes ‘echo ’a’ ’b’ ’d’‘) file1 file2 file3 ... a b d $ ^-a^-l^ (exec’s ‘ls -l /tmp‘) $ echo !-4:1-3:s/a/foo/:s/b/bar/:s/c/baz/ -rw------- 1 user user file1 (executes ‘echo foo bar baz‘) ... foo bar baz
Bash Scripting Language Cheat Sheet Cheat Sheet by Danilobanjac - Download Free From Cheatography - Cheatography - Com - Cheat Sheets For Every Occasion