Terminal bukan sekadar tempat menjalankan perintah satu per satu. Sysadmin maupun developer yang bekerja lama di terminal biasanya mengandalkan sejumlah tool tambahan agar pekerjaan lebih efisien, mulai dari mengelola banyak session sekaligus, menulis skrip untuk mengotomatiskan tugas berulang, hingga menjadwalkan pekerjaan agar berjalan sendiri tanpa perlu diawasi. Bab ini memperkenalkan multiplexer terminal, dasar-dasar shell scripting, serta utilitas sinkronisasi dan penjadwalan yang berguna sehari-hari. Perlu dicatat, sebagian besar tool pada bab ini tidak terpasang secara bawaan di Ubuntu 26.04 LTS maupun Fedora Workstation 44, sehingga instalasinya akan dijelaskan terlebih dahulu di tiap bagian.
39.1 Multiplexer Terminal
Multiplexer terminal adalah tool yang memungkinkan kita menjalankan banyak session dalam satu jendela terminal, sehingga pekerjaan tetap berjalan meskipun jendela terminal ditutup atau koneksi terputus. Kemampuan ini sangat berharga bagi sysadmin yang mengelola server lewat SSH, karena proses yang sedang berjalan tidak ikut mati hanya karena koneksi jaringan terputus tiba-tiba.
39.1.1 tmux: Mengelola Banyak Session Terminal
tmux adalah multiplexer terminal yang paling populer, tetapi tidak terpasang secara default di Ubuntu maupun Fedora. Instal terlebih dahulu dengan:
sudo apt install tmuxDi Fedora, gunakan:
sudo dnf install tmuxtmux membagi layar menjadi tiga lapisan konsep: session, window, dan pane.
- Session adalah lingkungan kerja utuh yang tetap berjalan di latar belakang.
- Window adalah tab di dalam sebuah session.
- Pane adalah pembagian layar dalam sebuah window.
Untuk memulai tmux, jalankan:
tmuxKita dapat memberi nama session untuk memudahkan identifikasi, terutama saat menjalankan beberapa session sekaligus untuk keperluan yang berbeda:
tmux new -s kerjatmux bekerja dengan prefix key, yaitu tombol Ctrl+b yang ditekan sebelum shortcut lain. Berikut beberapa shortcut dasar tmux:
| Shortcut | Fungsi |
|---|---|
Ctrl+b c | Membuat window baru |
Ctrl+b n | Pindah ke window berikutnya |
Ctrl+b p | Pindah ke window sebelumnya |
Ctrl+b % | Membagi pane secara vertikal |
Ctrl+b " | Membagi pane secara horizontal |
Ctrl+b d | Melepas (detach) dari session |
Untuk kembali ke session yang terlepas, gunakan:
tmux attach -t kerjaDi lapangan, kebiasaan sysadmin yang paling umum adalah membuka tmux sebelum menjalankan proses yang memakan waktu lama lewat SSH, misalnya instalasi software besar, kompilasi, atau transfer file berukuran besar. Jika koneksi SSH terputus di tengah jalan, proses tersebut tetap berjalan di dalam session tmux pada server. Kita tinggal login ulang lalu menjalankan tmux attach untuk melanjutkan memantau prosesnya, seolah koneksi tidak pernah terputus.
Perlu diperhatikan, mencoba membuat session baru dengan nama yang sudah dipakai akan gagal dengan pesan duplicate session: kerja. Periksa dulu daftar session yang sedang aktif dengan tmux ls sebelum membuat session baru, atau langsung sambungkan ke session yang sudah ada dengan tmux attach -t kerja jika memang itu yang dimaksud.
Untuk melihat daftar session yang sedang berjalan, gunakan tmux ls. Jika ingin menyimpan pengaturan seperti warna status bar atau mengganti prefix key secara permanen, simpan konfigurasinya di file ~/.tmux.conf; file ini akan otomatis dibaca setiap kali tmux dijalankan.
39.1.2 screen: Alternatif tmux
screen adalah multiplexer yang lebih tua dan menjadi alternatif tmux. Meskipun fiturnya tidak selengkap tmux, screen tetap banyak dipakai karena ringan dan sudah lama tersedia di dunia Unix; beberapa server lawas bahkan sudah menyertakan screen secara bawaan padahal tmux belum tentu terpasang, sehingga tetap berguna dikuasai sebagai opsi cadangan. Sama seperti tmux, screen perlu dipasang terlebih dahulu:
sudo apt install screenDi Fedora, gunakan:
sudo dnf install screenSetelah terpasang, jalankan dengan:
screenscreen menggunakan prefix key Ctrl+a. Untuk melepas session, tekan Ctrl+a lalu d, dan untuk menyambungkan kembali gunakan screen -r. Sama seperti tmux, konfigurasi permanen screen dapat disimpan di file ~/.screenrc.
39.2 Shell Scripting Dasar: Pengenalan
Shell scripting adalah cara menulis serangkaian perintah ke dalam sebuah file agar dapat dijalankan sekaligus, sehingga tugas yang berulang dapat diotomatiskan.
39.2.1 Shebang #!/bin/bash
Baris pertama sebuah script biasanya berupa shebang yang memberi tahu sistem shell mana yang akan mengeksekusi script tersebut.
#!/bin/bashBerkat shebang ini, script akan tetap dijalankan menggunakan Bash meskipun kita mengetikkannya dari shell lain seperti Zsh.
Di lapangan, pesan error bad interpreter: /bin/bash^M: no such file or directory sering muncul ketika script ditulis atau disunting di editor Windows yang menyimpan baris dengan format CRLF, bukan LF khas Unix. Perbaiki dengan menjalankan dos2unix nama_script.sh (instal paketnya lebih dulu jika belum tersedia), atau atur editor teks agar memakai line ending Unix (LF).
39.2.2 Variabel, Input, dan Output
Variabel menyimpan nilai yang dapat digunakan kembali. Perhatikan bahwa tidak boleh ada spasi di sekitar tanda sama dengan.
nama="Budi"
echo "Halo, $nama"Untuk meminta masukan dari pengguna, gunakan perintah read.
read nama
echo "Selamat datang, $nama"39.2.3 Kondisional if-then-else
Kondisional memungkinkan script mengambil keputusan berdasarkan kondisi tertentu.
if [ "$nama" = "Budi" ]; then
echo "Halo Budi"
else
echo "Halo pengunjung"
fi39.2.4 Loop Sederhana
Loop digunakan untuk mengulang perintah beberapa kali, misalnya dengan for.
for i in 1 2 3 4 5; do
echo "Angka $i"
done39.2.5 Membuat Script Sederhana yang Berguna
Sebagai contoh, script berikut mencetak tanggal dan daftar file di direktori aktif. Simpan dalam file, beri izin eksekusi, lalu jalankan.
#!/bin/bash
echo "Tanggal: $(date)"
echo "Isi direktori:"
ls -lSetelah menyimpan file misalnya sebagai info.sh, beri izin eksekusi dan jalankan:
chmod +x info.sh
./info.shJika muncul pesan -bash: ./info.sh: Permission denied saat mencoba menjalankannya, berarti izin eksekusi belum diberikan; jalankan dulu chmod +x info.sh. Jika pesan yang muncul justru -bash: ./info.sh: No such file or directory padahal filenya jelas ada, kemungkinan besar penyebabnya adalah shebang yang salah menunjuk interpreter atau file tersimpan dengan line ending Windows sebagaimana dibahas sebelumnya.
39.3 Utilitas Berguna Lainnya
39.3.1 rsync: Sinkronisasi File
rsync adalah tool untuk menyalin dan menyinkronkan file, baik antar direktori lokal maupun antar komputer. Keunggulannya adalah hanya mentransfer bagian file yang berubah. Jika belum tersedia di sistem, instal dengan sudo apt install rsync di Ubuntu, atau sudo dnf install rsync di Fedora.
rsync -av dokumen/ backup/Perintah ini menyalin isi direktori dokumen/ ke backup/ secara arsip (-a) dan menampilkan prosesnya (-v).
Perlu diperhatikan, tanda garis miring di akhir path sumber sangat memengaruhi hasil sinkronisasi. Perintah rsync -av dokumen/ backup/ (dengan garis miring setelah dokumen) menyalin seluruh isi direktori dokumen/ ke dalam backup/. Sebaliknya, rsync -av dokumen backup/ (tanpa garis miring) akan ikut membuat direktori dokumen itu sendiri di dalam backup/, sehingga hasilnya menjadi backup/dokumen/. Kesalahan kecil semacam ini sering membuat hasil sinkronisasi tidak sesuai harapan, jadi biasakan memeriksa kembali penulisan garis miring sebelum menjalankan perintah.
Opsi --delete membuat rsync turut menghapus file di tujuan yang sudah tidak ada lagi di sumber, sehingga isi direktori tujuan benar-benar identik dengan sumbernya. Opsi ini bersifat destruktif karena dapat menghapus file di tujuan secara permanen, jadi uji dulu dengan --dry-run (simulasi tanpa benar-benar mengubah apa pun) sebelum menjalankan perintah sesungguhnya, misalnya rsync -av --delete --dry-run dokumen/ backup/.
39.3.2 cron: Penjadwalan Tugas Otomatis
cron adalah penjadwal tugas yang menjalankan perintah secara otomatis pada waktu tertentu. Jadwal setiap pengguna tersimpan dalam crontab.
Di Ubuntu, paket cron umumnya sudah terpasang secara bawaan. Namun di Fedora Workstation 44, cron tidak terpasang secara default sejak beberapa rilis terakhir, sehingga perintah crontab -e akan gagal dengan pesan "command not found" bila belum diinstal. Pasang paket cronie (implementasi cron di Fedora) terlebih dahulu, lalu aktifkan layanannya:
sudo dnf install cronie
sudo systemctl enable --now crondJika di Ubuntu perintah crontab -e juga belum berjalan, instal dan aktifkan dengan cara serupa:
sudo apt install cron
sudo systemctl enable --now cronSetelah cron aktif, edit crontab dengan:
crontab -eSintaks crontab terdiri dari lima kolom waktu yang diikuti perintah yang akan dijalankan.
* * * * * perintahLima kolom tersebut secara berurutan mewakili menit, jam, hari dalam bulan, bulan, dan hari dalam minggu. Sebagai contoh, baris berikut menjalankan backup setiap hari pada pukul 02.00.
0 2 * * * rsync -a /home/pengguna/dokumen/ /home/pengguna/backup/Perlu diperhatikan, perintah yang dijalankan cron memakai environment yang jauh lebih minim dibanding shell interaktif, termasuk variabel $PATH yang lebih terbatas. Script yang berjalan lancar saat dijalankan langsung dari terminal bisa gagal dijalankan oleh cron tanpa pesan error yang jelas. Untuk menghindarinya, gunakan path lengkap untuk setiap perintah dan file di dalam crontab, misalnya /usr/bin/rsync alih-alih rsync saja, dan arahkan output ke file log agar hasilnya bisa diperiksa, misalnya:
0 2 * * * /usr/bin/rsync -a /home/pengguna/dokumen/ /home/pengguna/backup/ >> /home/pengguna/backup.log 2>&1Perintah di atas menambahkan (>>) baik output biasa maupun pesan error (2>&1) ke dalam backup.log, sehingga kita dapat memeriksa isi file log tersebut setelah jadwal terlewati untuk memastikan job benar-benar berjalan sesuai harapan. Untuk melihat jadwal yang telah dibuat, gunakan crontab -l.
Sebagai catatan tambahan, Fedora semakin mengarahkan penjadwalan tugas ke systemd timer (unit .timer yang dipasangkan dengan unit .service, seperti dibahas pada Bab 30) sebagai pengganti modern cron. Untuk kebutuhan sehari-hari yang sederhana, cron masih jauh lebih mudah dipakai karena cukup satu baris perintah, sehingga tetap menjadi pilihan yang baik bagi pemula.
Menguasai tool produktivitas di terminal membuat pekerjaan lebih cepat dan terorganisir. Melalui tmux, kita dapat mengelola banyak session sekaligus, dengan shell scripting kita mengotomatiskan tugas yang berulang, dan dengan rsync serta cron kita menyinkronkan serta menjadwalkan pekerjaan secara otomatis. Pada bab berikutnya, kita akan melangkah ke pengelolaan storage dan hardware untuk memahami lebih dalam perangkat di balik sistem Linux.

