Cara Menggunakan tmux di Linux (dan Mengapa Lebih Baik Dari Layar)

Diterbitkan: 2022-01-29
Terminal Linux bergaya pada laptop dengan sesi shell di latar belakang.
fatmawati achmad zaenuri/Shutterstock.com

Perintah tmux Linux adalah terminal multiplexer, seperti screen . Pendukungnya banyak dan vokal, jadi kami memutuskan untuk membandingkan keduanya. Apakah tmux benar-benar lebih baik, atau itu hanya kasus memilih apa yang Anda ketahui?

tmux vs. layar

Baik perintah screen tmux dan GNU adalah terminal multiplexer. Mereka memungkinkan Anda untuk memiliki beberapa jendela dalam satu jendela terminal, dan untuk melompat-lompat di antara mereka. Sebuah jendela dapat dibagi menjadi beberapa panel, yang masing-masing memberi Anda baris perintah independen.

10 Perintah Dasar Linux untuk Pemula
TERKAIT 10 Perintah Dasar Linux untuk Pemula

Anda juga dapat melepaskan sesi dan itu menjadi entitas tanpa kepala yang berjalan di latar belakang—Anda bahkan dapat menutup jendela terminal yang meluncurkannya. Saat Anda siap, Anda dapat membuka jendela terminal baru dan memasang kembali sesi yang masih berjalan. Anda juga dapat melakukan ini melalui koneksi SSH.

Anda dapat melepaskan sesi di satu komputer, pulang, dan masuk ke komputer jarak jauh. Saat tersambung kembali, Anda dapat memasang kembali sesi latar belakang dan menggunakannya secara interaktif lagi.

Apa perintah layar?

Perintah screen juga merupakan multiplexer terminal, dan dikemas dengan opsi. Untuk mengetahui semua yang dapat Anda lakukan dengannya, lihat artikel mendalam kami.

Iklan

Kali ini, kita akan berkonsentrasi pada tmux . Seiring berjalannya waktu, kami akan menyebutkan bagaimana screen menangani fitur atau fungsi yang sama.

Hanya satu hal yang mengganggu kami tentang screen . Kami akan membahasnya ketika kami sampai di sana, dan melihat apakah tarif tmux lebih baik.

TERKAIT: Cara Menggunakan Perintah layar Linux

Menginstal tmux

Meskipun screen umumnya diinstal secara default pada distribusi Linux populer, tmux tidak. Untuk menginstal tmux di Ubuntu, ketik berikut ini:

 sudo apt-get install tmux 

Di Manjaro Anda dapat menggunakan pacman :

 sudo pacman -Sy tmux 

Pada Fedora 31, tmux sudah diinstal.

Memulai Sesi tmux

Untuk memulai tmux , cukup ketik dan tekan Enter:

 tmux 

Jendela terminal akan menampilkan bilah status saat Anda berada dalam sesi tmux .

Sisi kanan bilah status menunjukkan nama host, serta waktu dan tanggal. Sisi kiri menunjukkan informasi terkait sesi berikut:

  • [0]: Ini adalah nama sesi. Secara default, mereka diberi nomor, dimulai dengan nol. Kami membahas bagaimana Anda dapat memberi nama yang bermakna untuk sesi di bawah ini.
  • 0:bash*: Angka 0 menunjukkan ini adalah jendela pertama dalam sesi ini. Satu-satunya proses yang berjalan di sesi ini adalah bash . Jika Anda menjalankan sebuah program, namanya akan muncul di sini. Tanda bintang (*) berarti ini adalah jendela yang Anda lihat. Setiap kali Anda membuat jendela baru di sesi tmux , nomor jendelanya dan nama program yang berjalan di dalamnya ditambahkan ke bilah status.

Perintah screen tidak memberi Anda bilah status secara default. Anda harus terbang buta dan mengandalkan akal Anda untuk mengetahui apa yang terjadi, yang membutuhkan sedikit latihan. (Kecuali Anda mengonfigurasi bilah status Anda sendiri.)

Di sisi positifnya, Anda tidak akan kehilangan sederet real estat jendela terminal. Tentu saja, Anda biasanya memperluas jendela terminal agar penggunaan multiplexer terminal bermanfaat. Dalam hal ini, hilangnya satu baris untuk bilah status tidak terlalu menjadi masalah. Kami telah meninggalkan gambar jendela terminal di sini dalam ukuran default sehingga Anda dapat melihat informasinya.

Iklan

Perintah diberikan kepada tmux menggunakan penekanan tombol, dan ada dua bagian untuk ini. Pertama, Anda menekan Ctrl+B untuk mendapatkan perhatian tmux . Anda kemudian dengan cepat menekan tombol berikutnya untuk mengirim perintah ke tmux . Perintah diberikan dengan menekan huruf, angka, tanda baca, atau tombol panah.

Itu sama di screen , kecuali Anda menekan Ctrl+A untuk mendapatkan perhatiannya.

Untuk menutup jendela, tekan Ctrl+B, lalu tekan X dengan cepat. Bilah status berubah menjadi kuning. Anda kemudian diminta untuk mengonfirmasi bahwa Anda ingin mematikan jendela.

Tekan Y untuk menutup jendela atau N jika Anda berubah pikiran. Anda tidak perlu menekan Enter sesudahnya; Y atau N sudah cukup untuk mendaftarkan pilihan Anda.

Jika Anda menekan Y, jendela akan tertutup. Karena ini adalah satu-satunya jendela di sesi ini, sesi dihentikan.

Sesi tmux ditutup dan Anda kembali ke baris perintah tempat Anda meluncurkan tmux . Anda akan melihat “[exited]” di jendela terminal.

Iklan

Ini mungkin tampak seperti menyatakan yang sudah jelas, tetapi ini adalah konfirmasi bahwa Anda telah menutup sesi dan tidak membiarkannya terlepas dan berjalan. Kami akan membahas sesi pelepasan di bawah ini.

Memulai Sesi tmux Bernama

Jika Anda secara teratur memulai beberapa sesi tmux , Anda akan segera menghargai fungsionalitas memberi masing-masing nama yang bermakna. Anda juga dapat memberi nama sesi di screen , tetapi sesi tersebut tidak ditampilkan di mana pun di jendela sesi.

Untuk memulai tmux dengan nama sesi, gunakan perintah new (sesi baru), dan opsi -s (nama sesi). Sesi kami akan disebut "geek-1," jadi kami mengetik yang berikut:

 tmux baru -s geek-1 

Saat sesi tmux dimuat, "geek-1" ditampilkan sebagai entri pertama di bilah status, di paling kiri.

Sesi tmux dengan nama "geek-1" di sisi kiri bilah status.

Menambahkan Lebih Banyak Windows

Untuk membuat jendela baru di sesi saat ini, tekan Ctrl+B, lalu C. Anda akan mendapatkan jendela terminal kosong di sesi saat ini. Jadi kita akan menjalankan sesuatu di jendela baru ini, mari kita mulai perintah dmesg dengan opsi -w (ikuti):

 dmesg -w 

Sekarang kita memiliki dua jendela di sesi; satu berjalan di top , dan yang lainnya dmesg . Kami hanya dapat melihat satu per satu (lebih lanjut tentang itu sebentar lagi).

Iklan

Lihatlah sisi kiri bilah status. Kami masih dalam sesi tmux "geek-1". Di jendela nol, top sedang berjalan, dan di jendela satu, dmesg sedang berjalan. Tanda bintang (*) setelah dmesg memberi tahu kita jendela mana yang terlihat.

Untuk berpindah antar jendela, tekan Ctrl+B, lalu salah satu tombol berikut:

  • N : Menampilkan jendela berikutnya.
  • P: Menampilkan jendela sebelumnya.
  • 0 hingga 9: Menampilkan jendela bernomor 0 hingga 9.

Anda juga dapat memilih jendela dari daftar. Jika Anda menekan Ctrl+B, lalu W, daftar jendela akan muncul.

Untuk memindahkan bilah sorotan kuning, tekan Panah Atas atau Bawah, Beranda, atau Akhir. Bagian bawah layar menunjukkan pratinjau konten di jendela yang disorot.

Tekan Enter untuk berpindah ke jendela yang disorot, atau Esc untuk meninggalkan daftar jendela tanpa beralih.

Melepaskan dan Melampirkan Sesi

Jika Anda menekan Ctrl+B, lalu D, Anda akan melepaskan sesi. Ini akan terus berjalan di latar belakang, tetapi Anda tidak akan dapat melihat atau berinteraksi dengannya.

Iklan

Kami telah memulai sesi top sehingga kami memiliki proses yang berjalan untuk didemonstrasikan. Kemudian, kita tekan Ctrl+B, lalu D. Sesi tersebut menghilang dan menjadi sesi latar belakang.

Kami kembali ke jendela terminal asli. Ada pesan dari tmux yang memberi tahu kami bahwa sesi terlepas. Itu juga mengingatkan kita pada nama yang kita berikan pada sesi tersebut. Ini berguna karena itulah yang kami gunakan untuk melampirkan ke sesi latar belakang, dan kemudian mengembalikannya ke sesi interaktif.

Untuk melampirkan sesi terpisah, kami akan menggunakan perintah attach-session cukup jelas dengan opsi -t (sesi target). Kami juga akan memberikan nama sesi yang ingin kami ingat.

Kami mengetik berikut ini:

 tmux attach-session -t geek-1 

Sesi kami kembali dan menjadi sesi interaktif yang terlihat lagi.

Semua proses yang berjalan lama atau berkelanjutan yang Anda luncurkan sebelum melepaskan sesi akan tetap berjalan di latar belakang (kecuali jika sudah selesai) saat Anda melampirkan sesi.

screen dapat melakukan ini, tetapi tidak secara intuitif.

Menangani Beberapa Sesi

Mari buka jendela terminal lain, dan mulai sesi tmux baru yang disebut "geek-2":

 tmux baru -s geek-2 

Di sesi itu, kita akan memulai dmesg :

 dmesg -w 

Iklan

Sekarang, kami memiliki sesi tmux "geek-1" asli kami, dan yang baru bernama "geek-2."

Bilah status menunjukkan kepada kita sesi ini disebut "geek-2", dan memiliki satu jendela yang menjalankan dmesg .

Jika kita menekan Ctrl+B, dan kemudian D, kita melepaskan sesi itu.

Sesi tmux terpisah geek-2 di terminal widnow.

Kembali ke sesi tmux “geek-1”, kita tekan Ctrl+B, lalu S untuk melihat daftar sesi tmux .

Untuk lebih jelasnya, ini adalah daftar sesi. Tampilan serupa yang kita lihat sebelumnya adalah daftar jendela dalam satu sesi.

Anda dapat memindahkan bilah sorotan kuning dengan menekan Panah Atas dan Bawah, Beranda, dan Akhir. Bagian bawah menampilkan pratinjau konten dalam sesi yang disorot.

Iklan

Jika Anda menekan Panah Kanan, jendela untuk sesi yang disorot akan ditampilkan.

Tekan Enter untuk berpindah ke sesi atau jendela yang disorot atau Esc untuk meninggalkan daftar sesi tanpa mengubah sesi. Jika Anda memilih sesi baru, sesi Anda saat ini akan terlepas, dan sesi yang Anda pilih akan dilampirkan.

Kami melepaskan sesi "geek-2" sebelum kami melakukan ini. Namun, Anda dapat melakukan ini dengan sesi yang masih terpasang ke jendela terminal aslinya. Ketika Anda melakukannya, setiap perubahan layar akan muncul secara bersamaan di kedua sesi tmux .

Perintah screen dapat melakukan ini juga, melalui serangkaian perintah yang serupa.

Bekerja dengan Panel Jendela

Jika Anda menekan Ctrl+B, lalu tanda kutip ganda (“”), Anda membagi jendela secara horizontal menjadi dua panel.

Ini hanya mempengaruhi jendela saat ini; yang lain dalam sesi tidak akan berubah. Kami telah menggunakan tmux ls di panel atas untuk membuat daftar jendela di sesi ini. Ada dua, dan baris status memberitahu kita bahwa kita berada di jendela satu. Jika kita melompat ke jendela nol dengan menekan Ctrl+B, dan kemudian 0 (nol), kita melihatnya sama seperti kita meninggalkannya.

Iklan

Ini adalah dua baris perintah independen, bukan dua tampilan dalam satu jendela; mereka adalah cangkang yang berbeda dan terpisah. Kami dapat menunjukkan ini dengan menjalankan perintah yang berbeda di setiap panel.

Kami mengetik berikut ini:

uname -a

ls -hl

Untuk berpindah dari satu panel ke panel lainnya, tekan Ctrl+B, lalu Panah Atas, Bawah, Kiri, atau Kanan.

Dua perintah berbeda dalam dua panel dalam sesi tmux di janda terminal.

Jika Anda menekan Ctrl+B, lalu tanda persentase ( %) akan membagi panel saat ini secara vertikal.

Tekan Ctrl+B, lalu Q untuk membuat tmux -flash nomor setiap panel secara singkat.

Angka-angka ini digunakan dalam petunjuk dan pesan dari tmux . Tekan Ctrl+B, lalu X untuk menutup panel saat ini. Bilah status berubah menjadi kuning, dan Anda diminta mengonfirmasi bahwa Anda ingin menutup nomor panel itu. Tekan Y untuk menghapus panel, atau N untuk membiarkan semuanya apa adanya.

Jika Anda menekan Y, panel akan dihapus.

Iklan

Perintah screen juga memiliki panel, tetapi, sekali lagi, panel tersebut kurang intuitif untuk digunakan. Hal yang mengganggu kami tentang screen adalah jika Anda melepaskan sesi dengan panel, panel tersebut menghilang saat Anda memasang kembali sesi itu. Ini menjadi tua dengan sangat cepat.

Lembar Cheat Ctrl+B

Kami telah menyertakan lembar contekan dari berbagai perintah yang dapat Anda gunakan di tmux di bawah ini.

Perintah Sesi

  • S: Daftar sesi.
  • $: Ganti nama sesi saat ini.
  • D: Lepaskan sesi saat ini.
  • Ctrl+B, lalu ?: Tampilkan halaman Bantuan di tmux .

Perintah Jendela

  • C: Buat jendela baru.
  • ,: Ganti nama jendela saat ini.
  • W: Daftar jendela.
  • N: Pindah ke jendela berikutnya.
  • P: Pindah ke jendela sebelumnya.
  • 0 hingga 9: Pindah ke nomor jendela yang ditentukan.

Perintah Panel

  • %: Buat pemisahan horizontal.
  • “: Buat pemisahan vertikal.
  • H atau Panah Kiri: Pindah ke panel di sebelah kiri.
  • I atau Panah Kanan: Pindah ke panel di sebelah kanan.
  • J atau Panah Bawah: Pindah ke panel di bawah.
  • K atau Panah Atas: Pindah ke panel di atas.
  • T : Menampilkan nomor panel secara singkat.
  • O: Bergerak melalui panel secara berurutan. Setiap pers membawa Anda ke yang berikutnya, sampai Anda mengulang semuanya.
  • }: Tukar posisi panel saat ini dengan yang berikutnya.
  • {: Tukar posisi panel saat ini dengan yang sebelumnya.
  • X: Tutup panel saat ini.

Bagaimana Mereka Membandingkan

Dalam hal fungsionalitas, screen dan tmux keduanya memiliki kinerja yang sama dan menawarkan fitur utama yang sama. Cara Anda mengakses fitur-fitur itulah yang sangat berbeda. tmux menawarkan cara yang lebih rapi dan nyaman untuk mengakses berbagai fungsi. Namun, itu bukan satu-satunya perbedaan.

Kemampuan untuk mengganti nama sesi dan jendela di tmux rapi, dan fakta bahwa itu mempertahankan panel saat Anda memasang kembali sesi adalah pengubah permainan.

screen , di sisi lain, benar-benar kehilangan panel saat Anda melepaskan dan memasang kembali sesi. Ini hampir cukup mengganggu untuk membuat Anda menghindari pemisahan sejak awal.

Ada lebih banyak lagi tmux , termasuk kemampuan skripnya yang sangat fleksibel. Anda berhutang pada diri sendiri untuk memeriksanya.

TERKAIT: Laptop Linux Terbaik untuk Pengembang dan Penggemar