Jika saya gunakan
tmux attach
Saya bisa melampirkan ke sesi berlari tetapi jika tidak ada sesi berjalan, saya hanya mendapatkan kesalahan
no sessions
Bagaimana saya bisa secara otomatis memulai sesi baru jika tidak ada yang berjalan? sesuatu seperti
tmux attach-or-create-new-session
Jawaban:
Jawabannya jauh lebih sederhana. Masukkan saja ini ke
~/.tmux.conf
file Anda :Jika Anda menjalankan
tmux attach
dan ada sesi, maka sesi akan dilampirkan ke sesi itu (apakah sudah terlampir atau belum). Jika belum ada sesi maka akan dibuatkan untuk Anda.sumber
tmux
dipanggil tanpa argumen, itu akan membuat sesi baru dan kemudian membuat sesi kedua segera setelah mencapai baris ini di Anda~/.tmux.conf
. Anda dapat melihat masalah ini dengan menjalankantmux ls
setelah membuat sesi pertama . Dalam praktiknya, setelah Anda memasukkan ini ke dalam file Anda, Anda tidak dapat menelepontmux
tanpa argumen lagialias tmux="tmux attach"
untuk mencegah masalah initmux
.Jika penamaan sesi Anda baik-baik saja, maka mudah dilakukan dengan
new-session
perintah:di mana
main
nama sesi yang akan dilampirkan atau dibuat jika diperlukan.Dari
man tmux
:Harap perhatikan juga bahwa
-A
opsi ini diperkenalkan dalam versi tmux1.8
mulai 26 Maret 2013 , untuk versi sebelumnya, gunakantmux attach || tmux
.sumber
alias "tmux-attach-or-create-main-session=tmux new-session -A -s main"
. Terima kasih atas tipnya! Halaman manual: openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1tmux: unknown option -- A
Ini sepertinya hanya tersedia dalam versi terbaru.[ -z "$TMUX" ] && exec tmux new -As .
ini yang saya gunakan di blog saya.bashrc
.Ini akan memulai sesi baru jika lampiran memberikan kesalahan:
Jadi alias akan melakukan pekerjaan:
sumber
tmux attach
untuktmux a
Pertimbangkan untuk menambahkan yang berikut ke
.bashrc
Anda dapat melihat penggunaan ini dalam file sumber daya ZSH saya di repo github saya
sumber
Untuk memperluas jawaban Wesley Baugh (yang merupakan sesi bersarang ganda untuk saya ketika digunakan dalam .bashrc saat masuk) dan menambahkan sedikit fleksibilitas karena saya sering menggunakan
sudo -s
server (yang dengan patuh memuat .bashrc saya lagi dan sarang ganda), inilah apa yang saya miliki di .bashrc saya:Ini memeriksa untuk sesi tmux dan memastikan Anda tidak superuser sebelum membuat sesi baru atau melampirkan ke yang sudah ada yang bernama
main
.sumber
Drew Frank menjawab ini di sini: https://superuser.com/questions/487363/tmux-equivalent-of-screen-r
Inilah skrip yang sekarang saya gunakan untuk ini (walaupun, saya telah beralih kembali ke layar karena masalah lain dengan tmux)
/somewhere/on/your/path/ttmux
atau sebagai fungsi shell:The
-2
pilihan membuat tmux berasumsi 256 dukungan terminal warna, sehingga mereka mungkin tidak sesuai untuk situasi Anda.sumber
Jika Anda menggunakan ini di dalam file .shrc atau mirip dengan
exec
saya sarankansumber
Saya sedikit memperbaiki pada jawaban @SuperMagic. Saya meletakkan blok ini di bagian atas
.zshrc
sumber