REFERENSI CEPAT GNU SCREEN
Sesi, window, split, copy mode, dan berbagi layar
Manajemen Sesi
Buat & Tampilkan Sesi
screen # new unnamed session
screen -S work # new session named "work"
screen -ls # list all sessions
screen -list # same as -ls
Perintah Sesi
| screen -S name | Mulai sesi baru dengan nama |
| screen -r name | Sambungkan kembali ke sesi yang terlepas |
| screen -x name | Sambungkan ke sesi yang sudah aktif (berbagi) |
| screen -d name | Lepaskan sesi dari jarak jauh |
| screen -d -r name | Lepas dari tempat lain, sambungkan di sini |
| screen -D -RR | Paksa lepas dan sambungkan kembali |
| screen -ls | Tampilkan semua sesi beserta PID |
| screen -wipe | Bersihkan sesi yang sudah mati |
Window
Dasar Window
| Ctrl-a c | Buat window baru |
| Ctrl-a n | Window berikutnya |
| Ctrl-a p | Window sebelumnya |
| Ctrl-a 0-9 | Pindah ke window berdasarkan nomor |
| Ctrl-a " | Tampilkan daftar semua window (interaktif) |
| Ctrl-a ' | Pindah ke window berdasarkan nama/nomor |
| Ctrl-a A | Ganti nama window saat ini |
| Ctrl-a k | Tutup window saat ini |
Manajemen Window
| Ctrl-a w | Tampilkan daftar window di status line |
| Ctrl-a Ctrl-a | Beralih antara dua window terakhir |
| Ctrl-a N | Tampilkan nomor dan nama window |
| exit / Ctrl-d | Tutup window (keluar dari shell) |
Split & Region
Perintah Split
| Ctrl-a S | Bagi horizontal (atas/bawah) |
| Ctrl-a | | Bagi vertikal (kiri/kanan) |
| Ctrl-a Tab | Pindah fokus ke region berikutnya |
| Ctrl-a X | Tutup region saat ini |
| Ctrl-a Q | Tutup semua region kecuali yang aktif |
Alur Kerja Region
Ctrl-a S # split horizontal
Ctrl-a Tab # move to new region
Ctrl-a c # create window in region
Ctrl-a :resize 20 # set region to 20 lines
Copy Mode
Scrollback & Copy
| Ctrl-a [ | Masuk ke copy/scrollback mode |
| Space | Mulai/akhiri seleksi (dalam copy mode) |
| Enter | Salin seleksi dan keluar dari copy mode |
| Ctrl-a ] | Tempel teks yang telah disalin |
| h/j/k/l | Gerakkan kursor (tombol vi dalam copy mode) |
| Ctrl-u / Ctrl-d | Scroll naik/turun setengah halaman |
| / or ? | Cari ke depan/belakang |
| Esc | Keluar dari copy mode |
Alur Kerja Copy
Ctrl-a [ # enter copy mode
Space # mark start (navigate first)
Space # mark end + copy (navigate first)
Ctrl-a ] # paste into current window
Lepas & Sambungkan Kembali
Melepas Sesi
| Ctrl-a d | Lepaskan sesi saat ini |
| Ctrl-a D D | Lepas dan log out |
| Ctrl-a z | Suspensi screen (seperti Ctrl-Z) |
| screen -d PID | Lepas sesi dari jarak jauh berdasarkan PID |
Menyambungkan Kembali
screen -r # reattach (if only one session)
screen -r work # reattach by name
screen -r 12345 # reattach by PID
screen -d -r work # steal session from other terminal
Alur Kerja Persisten
# Start long-running task, detach, reconnect later
screen -S build
make -j4 all # start build
Ctrl-a d # detach, go home
screen -r build # reattach later
Berbagi Layar
Mode Multi-Pengguna
# Host enables multiuser
Ctrl-a :multiuser on
Ctrl-a :acladd alice # grant access to user alice
# Alice attaches
screen -x hostuser/sessionname
Kontrol Akses
| :multiuser on | Aktifkan mode multi-pengguna |
| :acladd user | Beri pengguna akses penuh |
| :aclchg user -w '#' | Jadikan pengguna hanya bisa baca (semua window) |
| :acldel user | Hapus akses pengguna |
| screen -x user/sess | Sambungkan ke sesi yang dibagikan |
Konfigurasi
Esensial ~/.screenrc
startup_message off # skip splash screen
defscrollback 10000 # scrollback buffer lines
hardstatus alwayslastline
hardstatus string '%{gk}%H %{wk}%?%-Lw%?%{bw}%n*%f %t%{wk}%?%+Lw%?'
shell -$SHELL # use login shell
Pengaturan Berguna
| startup_message off | Sembunyikan pesan startup |
| defscrollback N | Atur buffer scrollback (default 100) |
| escape ^Bb | Ganti prefix key ke Ctrl-b |
| shelltitle '$ |bash' | Atur judul window secara otomatis |
| caption always '%n %t' | Selalu tampilkan caption dengan info window |
| autodetach on | Auto-detach saat koneksi putus (default on) |
| vbell on | Gunakan visual bell, bukan suara |
Pola Umum
Setup Development
# Auto-create windows in .screenrc
screen -t editor 0 vim
screen -t server 1 python -m http.server
screen -t shell 2 bash
select 0 # start on editor window
Logging & Monitoring
Ctrl-a H # toggle logging to screenlog.N
Ctrl-a M # monitor window for activity
Ctrl-a _ # monitor window for silence
Referensi Cepat
| Ctrl-a ? | Tampilkan semua key binding |
| Ctrl-a :help | Bantuan bawaan |
| Ctrl-a :source file | Muat file konfigurasi |
| Ctrl-a :screen cmd | Jalankan perintah di window baru |
| Ctrl-a :quit | Tutup semua window dan keluar dari sesi |