tmux attach
Komenda działa bardziej jak połączenie screen -r
i screen -x
- pierwszy to co¶, aby dołączyć do ostatnio jednorodzinnym sesji, a następnie, jeśli żadna nie jest dostępna będzie przywiązywać do aktualnie załączonym sesji. Chcę emulować zachowanie screen -R
: najpierw spróbuj dołączyć do odłączonej sesji, a następnie rozpocznij nową sesję, jeśli nie było odłączonych sesji. Jaki jest najlepszy sposób na osiągnięcie tego w tmux?
10
(tmux ls 2>/dev/null | grep -vq attached && tmux at) || tmux
Pomimo tego, co napisano w podręczniku tmux:
Odpowiedź Drew nie działa poprawnie w sytuacji takiej jak:
tmux at
dołącza się do ostatniej sesji (# 1) (mimo że ta sesja jest nadal dołączona gdzie indziej). To rujnuje cały pomysł prowadzenia kilku sesji tmux i dołączania tylko do odłączonej (użycie mosh + tmux + iterm2 do stworzenia idealnego terminalu mobilnego).Innym podejściem byłoby ręczne wybranie sesji nieprzyłączonej:
tmux ls | grep -vq attached && tmux at `tmux ls | grep -vm1 attached | cut -d: -f1`
źródło
Zwykle mam tylko dwie sesje tmux na raz, więc robię coś takiego w każdym oknie terminala.
okno terminala 0:
okno terminala 1:
źródło
To działało dla mnie najlepiej:
-T jest potrzebne, aby dołączyć do właściwej sesji.
źródło
Co powiesz na
lub zamiast tego po prostu utwórz plik,
~/.tmux.conf
jeśli nie istnieje, i dodajdo tego, że tworzy nową sesję, gdy nie ma jej podczas uruchamiania
tmux attach
.Przydatny może być również
tmux
alias dotmux attach
.źródło