Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tmux

3,028 views

Published on

Tmux

  1. 1. tmux or how I learned to just compile it locally and not wait for it to get installed on sandbox - TERMINAL MULTIPLEXERWednesday, December 5, 12
  2. 2. what is tmux?Wednesday, December 5, 12
  3. 3. what is tmux? tmux is a terminal multiplexer: it enables a number of terminals (or windows), each running a separate program, to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.Wednesday, December 5, 12
  4. 4. screenshotsWednesday, December 5, 12
  5. 5. AWESOME!Wednesday, December 5, 12
  6. 6. event better...Wednesday, December 5, 12
  7. 7. our goal: doing thisWednesday, December 5, 12
  8. 8. tmux vs. screenWednesday, December 5, 12
  9. 9. a consistent, well- documented command interface, with the same syntax whether used interactively, as a key binding, or from the shellWednesday, December 5, 12
  10. 10. in other words sane configurationWednesday, December 5, 12
  11. 11. easily scriptable from the shellWednesday, December 5, 12
  12. 12. tmux can split vertically screen requires a patchWednesday, December 5, 12
  13. 13. tmux bibleWednesday, December 5, 12
  14. 14. So, how did I install tmux?Wednesday, December 5, 12
  15. 15. libevent $ wget http://sourceforge.net/projects/levent/files/latest/download $ tar xfz libevent-2.0.17-stable.tar.gz $ cd libevent-2.0.17-stable/ $ /configure—prefix=/home/jlotito $ make $ make installWednesday, December 5, 12
  16. 16. tmux $ wget http://sourceforge.net/projects/tmux/files/latest/download $ tar xfz tmux-1.6.tar.gz $ cd tmux-1.6 $ ./configure—prefix=/home/jlotitoWednesday, December 5, 12
  17. 17. tmux cont. $ ./configure—prefix=/home/jlotito CPPFLAGS=”-I$HOME/include” LDFLAGS=”-static -L$HOME/include -L$HOME/lib” $ make $ make install $ export PATH=~/bin:$PATH $ tmux -V tmux 1.6Wednesday, December 5, 12
  18. 18. If you have permissions, you can do it.Wednesday, December 5, 12
  19. 19. sandbox vim: 7.0 my vim: 7.3Wednesday, December 5, 12
  20. 20. :set rnuWednesday, December 5, 12
  21. 21. Wednesday, December 5, 12
  22. 22. but you shouldn’t have to set things upWednesday, December 5, 12
  23. 23. $ cd $ mkdir bin $ cp ~/../jlotito/bin/tmux ~/bin $ export PATH=~/bin:$PATHWednesday, December 5, 12
  24. 24. $ tmuxWednesday, December 5, 12
  25. 25. prefix = CTRL + b This is the default prefix It’s run before every command prefix d This means type ‘CTRL + b’ and then type ‘d’.Wednesday, December 5, 12
  26. 26. prefix d Detaches from the current tmux session In other words, it exits tmuxWednesday, December 5, 12
  27. 27. detach do itWednesday, December 5, 12
  28. 28. $ tmux attach reattaches to the tmux sessionWednesday, December 5, 12
  29. 29. do it nowWednesday, December 5, 12
  30. 30. Multiple sessions You can have them We won’t discuss them todayWednesday, December 5, 12
  31. 31. prefix c create a new window (or tab)Wednesday, December 5, 12
  32. 32. prefix # ‘prefix 1’ takes you to tab #1Wednesday, December 5, 12
  33. 33. prefix w provides a list of windows available ‘j’ and ‘k’ to scroll the selectionsWednesday, December 5, 12
  34. 34. prefix % That’s not 5, but ‘%’, which means prefix SHIFT+5 This splits the pane in halfWednesday, December 5, 12
  35. 35. prefix x In the lower portion of tmux, you’ll see it ask you: kill pane 2? (y/n) type ‘y’Wednesday, December 5, 12
  36. 36. prefix “ split horizontallyWednesday, December 5, 12
  37. 37. prefix o switch between panesWednesday, December 5, 12
  38. 38. prefix CTRL + o move panes around layoutWednesday, December 5, 12
  39. 39. PREFIX SPACE change layout of panesWednesday, December 5, 12
  40. 40. Try scrolling in a pane hahaWednesday, December 5, 12
  41. 41. prefix [ CTRL u : up a lot CTRL d: down a lot Love alot. j : up a line d : down a line q: quitWednesday, December 5, 12
  42. 42. Configuration $ touch ~/.tmux.confWednesday, December 5, 12
  43. 43. CTRL + B is awkward # Prefix Config set -g prefix C-a unbind C-b bind C-a send-prefixWednesday, December 5, 12
  44. 44. prefix = CTRL + a Remap CAPS LOCK to CTRL.Wednesday, December 5, 12
  45. 45. Make it responsive # Changing the default delay set -sg escape-time 1Wednesday, December 5, 12
  46. 46. Easy config changes # Easy config changes bind r source-file ~/.tmux.conf ; display "Reloaded!"Wednesday, December 5, 12
  47. 47. Easy Pane Spitting # Splitting Panes bind split-window -h bind - split-window -vWednesday, December 5, 12
  48. 48. Easy Pane Movement # Movement keys, vim style bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -RWednesday, December 5, 12
  49. 49. move one pane left prefix hWednesday, December 5, 12
  50. 50. Pane Resizing # Pane resizing, vim style bind H resize-pane -L 5 bind J resize-pane -D 5 bind K resize-pane -U 5 bind L resize-pane -R 5Wednesday, December 5, 12
  51. 51. Try the pane resizing Don’t forget to run this command prefix rWednesday, December 5, 12
  52. 52. Let’s make resizing easier by repeating # Pane resizing, vim style bind -r H resize-pane -L 5 bind -r J resize-pane -D 5 bind -r K resize-pane -U 5 bind -r L resize-pane -R 5Wednesday, December 5, 12
  53. 53. resize prefix L -r You can hold it down, and it will keep movingWednesday, December 5, 12
  54. 54. Start at 1 # Windows and panes index renumbering set -g base-index 1 setw -g pane-base-index 1Wednesday, December 5, 12
  55. 55. Basic UI # Colors set -g status-fg white set -g status-bg blackWednesday, December 5, 12
  56. 56. Window movement # Window Movement bind -r C-h select-window -t :- bind -r C-l select-window -t :+Wednesday, December 5, 12
  57. 57. or... prefix wWednesday, December 5, 12
  58. 58. or... prefix # #: 0-9Wednesday, December 5, 12
  59. 59. timtowtdi • isWednesday, December 5, 12
  60. 60. tmux & screen notes http://www.dayid.org/os/notes/tm.htmlWednesday, December 5, 12
  61. 61. book http://pragprog.com/book/bhtmux/tmuxWednesday, December 5, 12
  62. 62. web http://tmux.sourceforge.net/Wednesday, December 5, 12
  63. 63. we were using tmux 1.6 latest is tmux 1.7Wednesday, December 5, 12
  64. 64. tmux configuration files now support line-continuation with a "" at the end of a line. * New option status-position to move the status line to the top or bottom of the screen. * Enforce history-limit option when clearing the screen. * Give each window a unique id, like panes but prefixed with @. * Add pane id to each pane in layout description (while still accepting the old form). * Provide defined ways to set the various default-path possibilities: ~ for home directory, . for server start directory, - for session start directory and empty for the panes working directory (the default). All can also be used as part of a relative path (eg -/foo). Also provide -c flags to neww and splitw to override default-path setting. * Add -l flag to send-keys to send input literally (without translating key names). * Allow a single option to be specified to show-options to show just that option. * New command "move-pane" (like join-pane but allows the same window). * join-pane and move-pane commands learn "-b" option to place the pane to the left or above. * Support for bracketed-paste mode. * Allow send-keys command to accept hex values. * Add locking around "start-server" to avoid race-conditions. * break-pane learns -P/-F arguments for display formatting. * set-option learns "-q" to make it quiet, and not print out anything. new in 1.7 * copy mode learns "wrap-search" option. * Add a simple form of output rate limiting by counting the number of certain C0 sequences (linefeeds, backspaces, carriage returns) and if it exceeds a threshold (current default 250/millisecond), start to redraw the pane every 100 milliseconds instead of making each change as it comes. Two configuration options - c0-change-trigger and c0-change-interval. * find-window learns new flags: "-C", "-N", "-T" to match against either or all of a windows content, name, or title. Defaults to all three options if none specified. * find-window automatically selects the appropriate pane for the found matches. * show-environment can now accept one option to show that environment value. * Exit mouse mode when end-of-screen reached when scrolling with the mouse wheel. * select-layout learns -u and -U for layout history stacks. * kill-window, detach-client, kill-session all learn "-a" option for killing all but the current thing specified. * move-window learns "-r" option to renumber window sequentially in a session. * New session option "renumber-windows" to automatically renumber windows in a session when a window is closed. (see "move-window -r"). * Only enter copy-mode on scroll up. * choose-* and list-* commands all use "-F" for format specifiers. * When spawning external commands, the value from the "default-shell" option is now used, rather than assuming /bin/sh. * New choose-tree command to render window/sessions as a tree for selection. * display-message learns new format options. * For linked-windows across sessions, all flags for that window are now cleared across sessions. * Lots and lots of bug fixes, fixing memory-leaks, etc. * Various manpage improvements.Wednesday, December 5, 12
  65. 65. fin.Wednesday, December 5, 12

×