Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
tmux cheatsheet

tmux cheatsheet

As configured in my dotfiles.

start new:

tmux

start new with session name:

tmux new -s myname

attach:

tmux a  #  (or at, or attach)

attach to named:

tmux a -t myname

list sessions:

tmux ls

kill session:

tmux kill-session -t myname

In tmux, hit the prefix ctrl+b and then:

Sessions

:new<CR>  new session
s  list sessions
$  name session

Windows (tabs)

c           new window
,           name window
w           list windows
f           find window
&           kill window
.           move window - prompted for a new number
:movew<CR>  move window to the next unused number

Panes (splits)

%  horizontal split
"  vertical split

o  swap panes
q  show pane numbers
x  kill pane
⍽  space - toggle between layouts

Window/pane surgery

:joinp -s :2<CR>  move window 2 into a new pane in the current window
:joinp -t :1<CR>  move the current pane into a new pane in window 1

Misc

d  detach
t  big clock
?  list shortcuts
:  prompt

Resources:

Notes:

  • You can cmd+click URLs to open in iTerm.

TODO:

  • Conf copy mode to use system clipboard. See PragProg book.
@dideler

This comment has been minimized.

Show comment Hide comment
@dideler

dideler Aug 1, 2013

This is either a fork of this gist or vice versa, but it's not obvious because it was duplicated instead of forked. So which is the original?

dideler commented Aug 1, 2013

This is either a fork of this gist or vice versa, but it's not obvious because it was duplicated instead of forked. So which is the original?

@objectiveSee

This comment has been minimized.

Show comment Hide comment
@objectiveSee

objectiveSee Aug 11, 2013

Please add HOWTO Delete a session:

tmux kill-session -t <session_name>

Please add HOWTO Delete a session:

tmux kill-session -t <session_name>

@alkrauss48

This comment has been minimized.

Show comment Hide comment
@alkrauss48

alkrauss48 Aug 22, 2013

This is clean and handy. Thanks!

This is clean and handy. Thanks!

@jlpoolen

This comment has been minimized.

Show comment Hide comment
@jlpoolen

jlpoolen Sep 30, 2013

link "cheat sheet" (http://cheat.errtheblog.com/s/tmux/) is dead.

link "cheat sheet" (http://cheat.errtheblog.com/s/tmux/) is dead.

@linh-kaiserhl

This comment has been minimized.

Show comment Hide comment
@Stevancw

This comment has been minimized.

Show comment Hide comment
@Stevancw

Stevancw Jan 14, 2014

Are the horizontal and vertical split commands the right way round?

NB: Just tried to fork and submit a pull request... didn't realise you cannot do it through github.com for gists.

Are the horizontal and vertical split commands the right way round?

NB: Just tried to fork and submit a pull request... didn't realise you cannot do it through github.com for gists.

@klebervirgilio

This comment has been minimized.

Show comment Hide comment
@klebervirgilio

klebervirgilio Feb 3, 2014

what does that <CR> means??

what does that <CR> means??

@fredrik

This comment has been minimized.

Show comment Hide comment
@fredrik

fredrik Feb 3, 2014

@klebervirgilio: Carriage Return

fredrik commented Feb 3, 2014

@klebervirgilio: Carriage Return

@dikaio

This comment has been minimized.

Show comment Hide comment
@dikaio

dikaio Mar 27, 2014

Love this, thank you.

dikaio commented Mar 27, 2014

Love this, thank you.

@mark0978

This comment has been minimized.

Show comment Hide comment
@mark0978

mark0978 Apr 10, 2014

Is there any way to start a command within a tmux session when you start the tmux session? Something like

tmux new -s celery -e "python manage.py celery worker"

Is there any way to start a command within a tmux session when you start the tmux session? Something like

tmux new -s celery -e "python manage.py celery worker"

@gumatias

This comment has been minimized.

Show comment Hide comment
@gumatias

gumatias May 11, 2014

I found this to be a very useful one as well:

tmux switch -t session_name

I found this to be a very useful one as well:

tmux switch -t session_name

@rajuashok

This comment has been minimized.

Show comment Hide comment
@rajuashok

rajuashok May 13, 2014

any one know how I can modify my windows to display the name (in tmux.conf). Here's my current window settings:

set -g window-status-format "#[fg=colour235,bg=colour252,bold] #I #W "
53 set -g window-status-current-format "#[fg=colour234,bg=colour39]⮀#[fg=black,bg=colour39,noreverse,bold] #I: #W #[fg=colour39,bg=colour234,nobold]⮀"

I'd like to replace #W with the actual name of the window.

any one know how I can modify my windows to display the name (in tmux.conf). Here's my current window settings:

set -g window-status-format "#[fg=colour235,bg=colour252,bold] #I #W "
53 set -g window-status-current-format "#[fg=colour234,bg=colour39]⮀#[fg=black,bg=colour39,noreverse,bold] #I: #W #[fg=colour39,bg=colour234,nobold]⮀"

I'd like to replace #W with the actual name of the window.

@roukmoute

This comment has been minimized.

Show comment Hide comment
@roukmoute

roukmoute Jun 18, 2014

Splits about horizontal and vertical panes are inversed.

"  horizontal split
%  vertical split

Splits about horizontal and vertical panes are inversed.

"  horizontal split
%  vertical split
@NicolasEhrhardt

This comment has been minimized.

Show comment Hide comment
@NicolasEhrhardt

NicolasEhrhardt Jul 7, 2014

Resource page not available anymore: http://cheat.errtheblog.com/s/tmux/

Resource page not available anymore: http://cheat.errtheblog.com/s/tmux/

@TWSSYesterday

This comment has been minimized.

Show comment Hide comment
@TWSSYesterday

TWSSYesterday Jul 11, 2014

Hi there, sometimes it won't let me exit via Ctrl + B + D, how to fix this?

Hi there, sometimes it won't let me exit via Ctrl + B + D, how to fix this?

@kumarabinash

This comment has been minimized.

Show comment Hide comment
@kumarabinash

kumarabinash Jul 29, 2014

Neat.
Btw, is there any way to resize the panes?

Neat.
Btw, is there any way to resize the panes?

@RussellBradley

This comment has been minimized.

Show comment Hide comment
@RussellBradley

RussellBradley Jul 31, 2014

The resource page is still available at "http://cheat.errtheblog.com/s/tmux" just remove the forward slash at the end of the link.

The resource page is still available at "http://cheat.errtheblog.com/s/tmux" just remove the forward slash at the end of the link.

@tallenaz

This comment has been minimized.

Show comment Hide comment
@tallenaz

tallenaz Aug 18, 2014

In Linux, to resize panes (for example) separated by a horizontal split, you can hold down ctrl-b while pressing the up/down arrow keys.

In Linux, to resize panes (for example) separated by a horizontal split, you can hold down ctrl-b while pressing the up/down arrow keys.

@a2xchip

This comment has been minimized.

Show comment Hide comment
@a2xchip

a2xchip Jan 2, 2015

To scroll page: Press Ctrl+B and then page up/page down

a2xchip commented Jan 2, 2015

To scroll page: Press Ctrl+B and then page up/page down

@kenshinji

This comment has been minimized.

Show comment Hide comment
@kenshinji

kenshinji May 15, 2015

wow, this is exactly what I'm looking for, thanks!

wow, this is exactly what I'm looking for, thanks!

@kibromGB

This comment has been minimized.

Show comment Hide comment
@kibromGB

kibromGB Aug 1, 2015

So helpful. Thank you.

kibromGB commented Aug 1, 2015

So helpful. Thank you.

@francwalter

This comment has been minimized.

Show comment Hide comment
@francwalter

francwalter Aug 10, 2015

Is there a way to kill all windows in tmux?
In screen this was:
C-a,
but in tmux I find only to kill one single window, not all.
Thank.

EDIT:
Easy enough:
tmux kill-server
will kill all tmux windows and sessions, good enough for my purpose.

Is there a way to kill all windows in tmux?
In screen this was:
C-a,
but in tmux I find only to kill one single window, not all.
Thank.

EDIT:
Easy enough:
tmux kill-server
will kill all tmux windows and sessions, good enough for my purpose.

@amir-sereen

This comment has been minimized.

Show comment Hide comment
@amir-sereen

amir-sereen Mar 7, 2016

tnx it was usefull

tnx it was usefull

@thagoat

This comment has been minimized.

Show comment Hide comment
@thagoat

thagoat Mar 30, 2016

Most handy

thagoat commented Mar 30, 2016

Most handy

@DaveDBA

This comment has been minimized.

Show comment Hide comment
@DaveDBA

DaveDBA Apr 13, 2016

I loved this, now I have created all my sessions with name and keeps every task tidy and organized.

DaveDBA commented Apr 13, 2016

I loved this, now I have created all my sessions with name and keeps every task tidy and organized.

@tunamin

This comment has been minimized.

Show comment Hide comment
@tunamin

tunamin Aug 10, 2016

thanks it was usefull

tunamin commented Aug 10, 2016

thanks it was usefull

@charlessutton

This comment has been minimized.

Show comment Hide comment
@charlessutton

charlessutton Aug 12, 2016

Thanks it is clear and useful

Thanks it is clear and useful

@chrisliu54

This comment has been minimized.

Show comment Hide comment
@chrisliu54

chrisliu54 Aug 25, 2016

Thanks it is useful and handy : )

Thanks it is useful and handy : )

@sjose1x

This comment has been minimized.

Show comment Hide comment
@sjose1x

sjose1x Oct 6, 2016

Is it possible to clone session..?

sjose1x commented Oct 6, 2016

Is it possible to clone session..?

@karoitay

This comment has been minimized.

Show comment Hide comment
@karoitay

karoitay Nov 8, 2016

Suggestion: update kill session

From:
In tmux, hit the prefix ctrl+b and then:

To

In tmux, hit the prefix ctrl+b and then :

karoitay commented Nov 8, 2016

Suggestion: update kill session

From:
In tmux, hit the prefix ctrl+b and then:

To

In tmux, hit the prefix ctrl+b and then :

@akinjide

This comment has been minimized.

Show comment Hide comment
@akinjide

akinjide Jan 5, 2017

Currently windows list shows hostname and path but Any ideas on how to add status like current command executing, cwd, or other fun stuffs?

akinjide commented Jan 5, 2017

Currently windows list shows hostname and path but Any ideas on how to add status like current command executing, cwd, or other fun stuffs?

@tony

This comment has been minimized.

Show comment Hide comment
@tony

tony Feb 15, 2017

To those looking to learn more about tmux, I released an ebook freely available online called The Tao of tmux. I'm excited to spread the word about it because I think the way I break tmux down into its objects (sessions, windows, panes) is a good approach to explaining it. I also go into advanced things like tmux' aliases, targets and formats. Feel free to give it a look! Tony

tony commented Feb 15, 2017

To those looking to learn more about tmux, I released an ebook freely available online called The Tao of tmux. I'm excited to spread the word about it because I think the way I break tmux down into its objects (sessions, windows, panes) is a good approach to explaining it. I also go into advanced things like tmux' aliases, targets and formats. Feel free to give it a look! Tony

@sahilsd

This comment has been minimized.

Show comment Hide comment
@sahilsd

sahilsd Apr 21, 2017

In the status bar showing current active tmux sessions, can we show $PWD there instead of the process names?

sahilsd commented Apr 21, 2017

In the status bar showing current active tmux sessions, can we show $PWD there instead of the process names?

@GlitchModulus

This comment has been minimized.

Show comment Hide comment
@GlitchModulus

GlitchModulus Jun 14, 2017

dumb question but is there any way to get a list of these commands from within tmux (for quick lookup in the future so don't have to open web browser etc)? looking at 'help' within tmux but cannot find what i'm looking for.

Thanks in advance.

dumb question but is there any way to get a list of these commands from within tmux (for quick lookup in the future so don't have to open web browser etc)? looking at 'help' within tmux but cannot find what i'm looking for.

Thanks in advance.

@wainweb

This comment has been minimized.

Show comment Hide comment
@wainweb

wainweb Jun 16, 2017

@GlitchModulus, hit the prefix ctrl+b then ?

wainweb commented Jun 16, 2017

@GlitchModulus, hit the prefix ctrl+b then ?

@masious

This comment has been minimized.

Show comment Hide comment
@masious

masious Aug 3, 2017

In the dotfiles of @henrik copy mode is set to work like the way it works in the vi. After C-b then v I can't start selecting my text. Does anyone have some similar problem?

masious commented Aug 3, 2017

In the dotfiles of @henrik copy mode is set to work like the way it works in the vi. After C-b then v I can't start selecting my text. Does anyone have some similar problem?

@bzd111

This comment has been minimized.

Show comment Hide comment
@bzd111

bzd111 Oct 29, 2017

Usefull

bzd111 commented Oct 29, 2017

Usefull

@vtiwari227

This comment has been minimized.

Show comment Hide comment
@vtiwari227

vtiwari227 Dec 7, 2017

Very handy, Thanks for this

Very handy, Thanks for this

@jhector87

This comment has been minimized.

Show comment Hide comment
@jhector87

jhector87 Dec 18, 2017

Really appreciate the detailed explanation

Really appreciate the detailed explanation

@jhector87

This comment has been minimized.

Show comment Hide comment
@jhector87

jhector87 Dec 18, 2017

Is there a way to reactivate the sessions in gdb dashboard especially when debugging?

Is there a way to reactivate the sessions in gdb dashboard especially when debugging?

@TroiSilver

This comment has been minimized.

Show comment Hide comment
@TroiSilver

TroiSilver Feb 14, 2018

most handy tmux cheatsheet

most handy tmux cheatsheet

@ishouvik

This comment has been minimized.

Show comment Hide comment
@ishouvik

ishouvik Feb 20, 2018

Thank you very much! This was very helpful.

Thank you very much! This was very helpful.

@volkflo

This comment has been minimized.

Show comment Hide comment
@volkflo

volkflo Feb 23, 2018

Thanks!

volkflo commented Feb 23, 2018

Thanks!

@TheAslera

This comment has been minimized.

Show comment Hide comment
@TheAslera

TheAslera Mar 9, 2018

Helpful !
To start a detached command:
tmux new -d -s my-session 'command1; command2;'

Helpful !
To start a detached command:
tmux new -d -s my-session 'command1; command2;'

@arbazkiraak

This comment has been minimized.

Show comment Hide comment
@arbazkiraak

arbazkiraak Mar 17, 2018

Awesome , Thank you ~

Awesome , Thank you ~

@vishnu-venkatesh

This comment has been minimized.

Show comment Hide comment
@vishnu-venkatesh

vishnu-venkatesh Apr 4, 2018

% horizontal split - I guess this means the two panes are horizontally placed relative to each other. The splitting line is vertical. You might want to make that more clear. Other than that, very nice cheat sheet.

% horizontal split - I guess this means the two panes are horizontally placed relative to each other. The splitting line is vertical. You might want to make that more clear. Other than that, very nice cheat sheet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment