Jak stworzyć skrypt
Ten skrypt sprawdzi, czy sesja istnieje. Jeśli sesja nie istnieje, utwórz nową sesję i dołącz do niej. Jeśli sesja istnieje, nic się nie dzieje i przyłączamy się do tej sesji. Możesz zamienić `~ / development 'na nazwę projektu.
$ touch ~/development && chmod +x ~/development
# ~/development
tmux has-session -t development
if [ $? != 0 ]
then
tmux new-session -s development
fi
tmux attach -t development
Nowa sesja z terminala
Stwórzmy dwie odłączone sesje, wypiszmy je, dołączmy do jednej, a następnie z poziomu tmux cykl przez sesje.
tmux new -s name -d
działa od wewnątrz tmux, ponieważ tworzymy nową odłączoną sesję. W przeciwnym razie wystąpi błąd zagnieżdżenia.
$ tmux new -s development -d
$ tmux new -s foo -d
$ tmux ls
> development: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54]
> foo: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54]
$ tmux attach -t
$ tmux ls
> development: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54] (attached)
> foo: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54]
Nowa sesja w tmux
Jesteśmy teraz w środku lub lepiej znani jako przywiązani do naszej sesji docelowej. Jeśli spróbujemy utworzyć nową sesję po podłączeniu, spowoduje to błąd zagnieżdżenia.
$ tmux new -s bar
> sessions should be nested with care, unset $TMUX to force
Aby rozwiązać ten problem, tworzymy nową odłączoną sesję. na przykład,
$ tmux new -s bar -d
$ tmux ls
> development: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54] (attached)
> foo: 1 windows (created Wed Jan 13 11:31:38 2016) [204x54]
> bar: 1 windows (created Wed Jan 13 17:19:35 2016) [204x54]
Cykl (przełącznik) sesji
Prefix
(
poprzednia sesja
Prefix
)
następna sesja
uwaga: Prefix
jest Ctrl-b
domyślnie. Możesz powiązać się Prefix
z, Ctrl-a
aw Mac OSX możesz zmienić Caps Lock na Ctrlsystem preferences > keyboard > modifier keys
Dołącz do sesji przy użyciu trybu poleceń w tmux
Próba dołączenia do sesji bez odłączania zakończy się błędem.
$ tmux attach -t development
> sessions should be nested with care, unset $TMUX to force
Zamiast tego użyj trybu poleceń, Prefix
:
a następnie wpisz attach -t session_name
i naciśnij Enter.