Command Line Keyboard Shortcuts for Mac OS X

Dec 19, 2006 - 21 Comments

terminal The command line in Mac OS X can be a very powerful and fun tool, so it’s good to know how to maneuver around if you find yourself in it. By default, the Mac OS X Terminal uses the Bash shell, which is what these keyboard shortcuts are intended for. So if you’re ready to get your feet wet, open up the Terminal and try these shortcuts out, they’re sure to make your command line life easier. The list isn’t too crazy so you should be able to try all these out within a minute or two, have fun:

Ctrl + A Go to the beginning of the line you are currently typing on
Ctrl + E Go to the end of the line you are currently typing on
Ctrl + L Clears the Screen, similar to the clear command
Ctrl + U Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H Same as backspace
Ctrl + R Let’s you search through previously used commands
Ctrl + C Kill whatever you are running
Ctrl + D Exit the current shell
Ctrl + Z Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W Delete the word before the cursor
Ctrl + K Clear the line after the cursor
Ctrl + T Swap the last two characters before the cursor
Esc + T Swap the last two words before the cursor

Enjoy this tip? Subscribe to the OSXDaily newsletter to get more of our great Apple tips, tricks, and important news delivered to your inbox! Enter your email address below:

Related articles:

Posted by: Paul Horowitz in Command Line, Mac OS X


» Comments RSS Feed

  1. anonymous says:

    Are you kidding me – I’ve been using Bash for 5 freaking years and I never knew any of this. Thanks!

  2. soho says:

    Very nice – thanks alot for this list

  3. FJ says:

    Love the list, watch out for spammers!

  4. mrumrici says:


  5. clcl says:

    Cool — I love the Ctrl + L thing as a substitute for clear — because now I can clear the screen, arrow-up for history of my last commands — without having to skip the clear command itself. Sounds trivial, but that was annoying me! Thanks!

  6. anon says:

    For those who find this site, you can set the behavior of bash by using:

    set -o vi

    for vi command editing mode. It defaults in emacs mode (the keybindings above).

    vi mode starts in editing mode, but pressing esc and you’re back into the glorious world of vi.

    if you want to retain ctrl+L clear screen behavior in vi mode, try adding this to your .bashrc (or equivalent) file:

    bind -m vi-insert “\C-l”:clear-screen

    (thanks to

  7. Tim Harper says:

    Is there any way to change the binding to the delete previous word? I find ctrl-w a difficult reach, and I prefer the apple-backspace.


  8. Ajay Goel says:

    Is there any key to delete the word after the cursor, like CTRL + W before the cursor?

  9. Ajay Goel says:

    Is there any key to delete the word after the cursor, like CTRL + W before the cursor?

  10. [...] The Conversation – Now That I Have Your Attention Top 10 YouTube Videos for Social Good  Command Line Keyboard Shortcuts for Mac OS X – OS X Daily Best Science Visualization Videos of 2009 Wired Science Wired.c Screenr: Simple Screencasting for [...]

  11. Ivan Storck says:

    A useful tip to see all keyboard shortcuts is:

    %> bind -P

    so to delete the word after the curso, use esc-d ( \ed )

  12. Sterding says:

    $ bind -P | grep not -v

    abort can be found on “\C-g”, “\C-x\C-g”, “\e\C-g”.
    accept-line can be found on “\C-j”, “\C-m”.
    backward-char can be found on “\C-b”, “\eOD”, “\e[D”.
    backward-delete-char can be found on “\C-h”, “\C-?”.
    backward-kill-line can be found on “\C-x\C-?”.
    backward-kill-word can be found on “\e\C-h”, “\e\C-?”.
    backward-word can be found on “\e[1;5D”, “\e[5D”, “\eb”.
    beginning-of-history can be found on “\e”, “\e[6~”.
    end-of-line can be found on “\C-e”, “\eOF”, “\e[4~”, “\e[8~”, “\e[F”.
    exchange-point-and-mark can be found on “\C-x\C-x”.
    forward-char can be found on “\C-f”, “\eOC”, “\e[C”.
    forward-search-history can be found on “\C-s”.
    forward-word can be found on “\e[1;5C”, “\e[5C”, “\ef”.
    glob-complete-word can be found on “\eg”.
    glob-expand-word can be found on “\C-x*”.
    glob-list-expansions can be found on “\C-xg”.
    history-expand-line can be found on “\e^”.
    insert-comment can be found on “\e#”.
    insert-completions can be found on “\e*”.
    insert-last-argument can be found on “\e.”, “\e_”.
    kill-line can be found on “\C-k”.
    kill-word can be found on “\ed”.
    next-history can be found on “\C-n”, “\eOB”, “\e[B”.
    non-incremental-forward-search-history can be found on “\en”.
    non-incremental-reverse-search-history can be found on “\ep”.
    operate-and-get-next can be found on “\C-o”.
    possible-command-completions can be found on “\C-x!”.
    possible-completions can be found on “\e=”, “\e?”.
    possible-filename-completions can be found on “\C-x/”.
    possible-hostname-completions can be found on “\C-x@”.
    possible-username-completions can be found on “\C-x~”.
    possible-variable-completions can be found on “\C-x$”.
    previous-history can be found on “\C-p”, “\eOA”, “\e[A”.
    quoted-insert can be found on “\C-q”, “\C-v”, “\e[2~”.
    re-read-init-file can be found on “\C-x\C-r”.
    reverse-search-history can be found on “\C-r”.
    revert-line can be found on “\e\C-r”, “\er”.
    self-insert can be found on ” “, “!”, “\””, “#”, “$”, …
    set-mark can be found on “\C-@”, “\e “.
    shell-expand-line can be found on “\e\C-e”.
    start-kbd-macro can be found on “\C-x(“.
    tilde-expand can be found on “\e&”.
    transpose-chars can be found on “\C-t”.
    transpose-words can be found on “\et”.
    undo can be found on “\C-x\C-u”, “\C-_”.
    unix-line-discard can be found on “\C-u”.
    unix-word-rubout can be found on “\C-w”.
    upcase-word can be found on “\eu”.
    yank can be found on “\C-y”.
    yank-last-arg can be found on “\e.”, “\e_”.
    yank-nth-arg can be found on “\e\C-y”.
    yank-pop can be found on “\ey”.

  13. Alex says:

    hey! how to delete (clear) the whole line? not after or before the cursor. but the whole

  14. bibek says:

    nice one frens

  15. [...] Keyboard Shortcuts in Terminal [...]

  16. This website is the perfect web site.

  17. Oddbjorn says:

    ctrl + arrow keys for fast navigation in text

  18. George says:

    A minor correction..

    Ctrl + T swaps the two characters on either side of the cursor.

    It only swaps the last two characters before the cursor when at the end of the line.

Leave a Reply


Shop for Apple & Mac Deals on

Subscribe to OSXDaily

Subscribe to RSS Subscribe to Twitter Feed Follow on Facebook Subscribe to eMail Updates