The purpose of this document is serve as a repository of the Unix shell commands and key bindings that either are the most useful or that I use the most. ## tmux ### Sessions Start new session named *name* `tmux new -s name` Attach latest session `tmux a` Attach to session named *name* `tmux a -t name` Detach from session Ctrl+b,d List all sessions `tmux ls` Ctrl+b,s Rename current session `tmux rename-session newname` Ctrl+b,$ Kill session named *name* `tmux kill-ses -t name` Kill all sessions except the current `tmux kill-ses -a` ### Windows Create new window Ctrl+b,c Rename current window Ctrl+b,, Next window Ctrl+b,n Previous window Ctrl+b,p Select window by number Ctrl+b,0...9 Close window Ctrl+b,& ### Panes Split pane vertically Ctrl+b,% Split pane horizontally Ctrl+b," Toggle last active pane Ctrl+b,; Switch pane to the direction Ctrl+b, Ctrl+b, Ctrl+b, Ctrl+b, Convert pane into a new window Ctrl+b,! Close current pane Ctrl+b,x ## git ### Basics Initialize the current directory as git repository `git init` Stage changes of a file or directory `git add ` Commit changes with message `git commit -m ` List files staged, unstaged and untracked `git status` Display entire commit history in a nice way `git log --all --graph --decorate` ### Branches List all branches in current repo `git branch` Create new branch named *branch_name* and checkout on it `git checkout -b ` ### Undoing stuff ### Remote repositories ## docker ## weechat Switch between weechat core buffer and server buffer Ctrl+x