RPH - blog

Blog programisty

Tilda + mosh + tmux

Opublikowany: Środa 09.12.2015
0

Praca w trybie tekstowym nie jest prostym zadaniem. Sprawa jest utrudniona gdy trzeba połączyć się ze zdalnym hostem i na nim wykonywać dużo operacji. Pracując na lokalnym komputerze oczywiście można uruchomić wiele emulatorów terminala i tymi wieloma sesjami zarządzać jak zwykłymi aplikacjami okienkowymi.

Łącząc się ze zdalnym hostem bardzo często istnieje potrzeba korzystania z wielu sesji lub zapisywania stanu terminala po rozłączeniu. Za pomocą trzech narzędzi wymienionych w tytule można złożyć całkiem przyjemne środowisko, które ułatwi pracę na zdalnym serwerze.

Dodatkowo w tym artykule zobaczysz jak skonfigurować tmuxa, aby wyglądał tak jak tu:

tmux w akcji

Tilda

Tilda jest to graficzny emulator terminala. Xfce4-terminal, który używam na co dzień, nie pozwala na wyłączenie paska przewijania tylko dla jednego okna. Dlatego wykorzystuję emulator Tilda.

Tak więc moja praca ze zdalnym serwerem zaczyna się od uruchomieniu tego emulatora w trybie fullscreen na jednym z obszarów roboczych (inna nazwa: wirtualne pulpity).

Tilda posiada jedną wadę - kliknięcie na URL otwiera przeglądarkę w obecnym obszarze roboczym, lub przenosi przeglądarkę na obecny obszar roboczy. Nie ma możliwości otworzenia linka za pomocą menu kontekstowego.

Instalacja w systemach Debian lub Ubuntu jest prosta: sudo apt-get install tilda.

Mosh

Mosh - MObile SHell, jest to zamiennik ssh. Posiada wiele ulepszeń, które głównie dotyczą niestabilnego połączenia internetowego. Tak więc połączenie ssh nigdy nie zostanie zerwane :) (mi zdarzało się to często). Co więcej, możemy nawet uśpić lub zahibernować komputer który służy do łączenia z serwerem; po wznowieniu sesja będzie otwarta. Można również zmieniać połączenie sieciowe na inne (WiFi, Ethernet lub Mobilne), te rzeczy nie będą przeszkadzać w pracy na zdalnym serwerze.

Mosh posiada jedną wadę - radzi sobie gorzej niż zwykłe ssh gdy połączenie sieciowe jest na prawdę złej jakości.

Instalacja w systemach Debian lub Ubuntu (należy zainstalować na serwerze oraz na kliencie): sudo apt-get install mosh.

Mosh'a uruchamia się jak zwykłe ssh: mosh username@host.

Tmux

Tmux - Terminal MUltipleXer. Czyli w wolnym tłumaczeniu multiplekser terminali. Za pomocą niego można wstawić wiele terminali do jednego oraz zarządzać które mają być widoczne. Ja sam uważam że tmux to taki tiling window manager dla trybu teksowego :)

Instalacja: sudo apt-get install tmux

Obsługi tmuxa trzeba się nauczyć. Skrótem klawiaturowym za pomocą którego wydaje się polecenia dla tmuxa jest Ctrl-B po czym następuje jeden klawisz lub kombinacja określająca polecenie. Aby rozpocząć pracę wystarczy polecenie: tmux. Następnie aby się odłączyć od tmuxa (wszystkie sesje zostaną aktywne i będą działać w tle) należy użyć Ctrl-B a następnie d. Polecenie tmux a otwiera aktywną sesję która wcześniej została odłączona.

Pracując z tmuxem należy znać i umieć operować dwoma obiektami. Są to window oraz pane. Window jest to wartstwa która może zawierać jedno lub więcej pane. W tmux w danym momencie czasu może być widoczne tylko jedno window. W obiekcie window są jednocześnie widoczne wszyskie pane, które są ułożone obok siebie. Domyślnie nowo utworzone window zawiera jendo pane widoczne na całym dostępnym obszarze. Pane można dzielić.

Tmux oferuje skróty klawiszowe służące do zarządzania tymi obiektami:

  • Ctrl-B c - utworzenie nowego window, które od razu stanie się widoczne.
  • Ctrl-B , - zmiana nazwy widocznego window.
  • Ctrl-B n - przełączenie na następne window.
  • Ctrl-B p - przełączenie na poprzednie window.
  • Ctrl-B l - przełączenie na ostatnio używane window.
  • Ctrl-B <num> - przełączenie na window o numerze num.
  • Ctrl-B " - podzielenie poziome aktywnego pane.
  • Ctrl-B % - podzielenie pionowe aktywnego pane.
  • Ctrl-B <strzałka> - przełączenie się na pane podążając za kierunkiem oznaczonym przez klawisz strzałki.
  • Ctrl-B Alt-<strzałka> - zmiana rozmiaru pane.
  • Ctrl-B t - wyświetlenie zegara w aktywnym pane. Dowolny klawisz zamyka zegar.
  • Ctrl-B ? - wyświetlenie pomocy. Gdyby moja instrukcja nie wystarczyła.

Konfiguracja tmuxa

Konfiguracja znajduje się w pliku ~/.tmux.conf. Moja konfiguracja wygląda tak:

#  wsparcie dla utf8
set -g utf8
set-window-option -g utf8 on

#  wsparcie dla 256 kolorów
set -g default-terminal "screen-256color"

#  numerowanie okien od 1 a nie od 0
set -g base-index 1

# możliwość włączenia obsługi myszy, u mnie wyłączone,
# gdyż przy połączeniu z moshem mysz nie chce działać
#setw -g mode-mouse on

# wybór pane za pomocą myszy
#set -g mouse-select-pane on

#  pasek stanu na dole
#  lista okien
set -g status-justify centre
set -g status-bg black #colour236
set -g status-fg colour160
set-option -g status-interval 5
#  data i zegar z prawej strony
set -g status-right-length 150
set -g status-right " %d-%m-%Y %H:%M "
#  nazwa użytkownika z lewej strony
set -g status-left "#(whoami)"

#  wyświetlanie nazw okien
setw -g window-status-current-format "[#I:#W]"
setw -g window-status-format "[#I:#W]"

#  kolory listy okien
set-window-option -g window-status-fg colour236 #yellow
set-window-option -g window-status-bg black
set-window-option -g window-status-attr bright

set-window-option -g window-status-current-fg white #blue
set-window-option -g window-status-current-bg red #colour184
set-window-option -g window-status-current-attr bright

set-window-option -g window-status-activity-fg white
set-window-option -g window-status-activity-attr underscore,bright

#  informowanie o oktywności na oknie
set -g visual-activity on
# set -g visual-content on
setw -g monitor-activity on

#  przeładowanie konfiguracji za pomocą Ctrl-B r
bind r source-file ~/.tmux.conf

tmux podczas pracy

Powyżej tmux uruchomiony w emulatorze xfce4-terminal. Są utworzone dwa okna o nazwach bash oraz make; drugie okno jest widoczne i zaznaczone na czerwono. Okno zawiera trzy pane, które zawierają kolejno:

  • edytor tekstu vim;
  • terminal z uruchomionym poleceniem make;
  • powłokę bash.

Mam nadzieję że artykuł pomoże każdemu skonfigurować przyjazne środowisko do pracy w trybie tekstowym.


Nie ma jeszcze komentarzy

Zostaw komentarz