Perintah clear di Linux: layar terminal, scrollback, dan opsi -x
clear adalah perintah yang membersihkan layar terminal untuk merapikan ruang kerja. Dalam implementasi ncurses yang khas, perintah ini berusaha untuk membersihkan tidak hanya layar saat ini tetapi juga buffer scrollback jika terminal mendukungnya, dan menggunakan opsi -x memungkinkan Anda untuk mempertahankan scrollback.
clear tidak menghapus file atau riwayat perintah shell. Bila riwayat diaktifkan dan perintah masih tersimpan, Anda dapat memanggil kembali teks perintah; ini berbeda dari memulihkan keluaran terminal sebelumnya.
Apa itu perintah clear?
clear memeriksa jenis terminal dari variabel lingkungan TERM dan menggunakan informasi kapabilitas di database terminfo untuk mengeluarkan urutan kontrol yang sesuai. Oleh karena itu, ini berbeda dari sekadar mencetak beberapa baris kosong, dan perilaku rinciannya dapat bervariasi tergantung pada jenis terminal dan implementasinya.
Deskripsi opsi dalam artikel ini didasarkan pada versi clear di ncurses, yang banyak digunakan di Linux.
Sintaks Dasar
clear [-x] [-T terminal_type]
clear -V
Penggunaan yang paling umum adalah menjalankannya tanpa opsi apa pun.
clear
Apa yang dihapus dan tidak dihapus oleh clear
| Target | Aksi |
|---|---|
| Layar terminal saat ini | Membersihkan layar dan memindahkan kursor ke posisi awal. |
| Buffer scrollback | Jika terminal dan ncurses mendukung fitur yang relevan, eksekusi default akan mencoba untuk membersihkannya. Anda dapat mencegah perilaku ini dengan -x. |
| Riwayat perintah shell | Tidak menghapus. Jika riwayat tersedia, gunakan history atau tombol panah atas untuk melihat perintah, bukan keluaran sebelumnya. |
| Sumber keluaran perintah | Tidak memengaruhi file log atau data yang dihasilkan oleh perintah. |
| Variabel shell dan direktori saat ini | Tidak berubah. |
Mempertahankan scrollback dengan -x
clear -x
-x membersihkan layar tanpa meminta penghapusan buffer scrollback. Apakah keluaran sebelumnya masih dapat digulir bergantung pada emulator terminal, ukuran buffer, dan perilakunya; opsi ini tidak menjamin seluruh isi dapat dipulihkan.
Opsi ini adalah fitur dari ncurses clear. Mungkin tidak didukung di sistem operasi atau implementasi lain, jadi periksa clear -V atau manual sistem.
Tentukan jenis terminal -T
clear -T xterm-256color
Secara umum, clear secara otomatis mengambil tipe terminal dari variabel lingkungan TERM, sehingga -T tidak diperlukan. Ini hanya digunakan secara eksplisit saat mendiagnosis masalah deteksi terminal atau menghasilkan urutan kontrol untuk tipe tertentu.
printf '%s\n' "$TERM"
infocmp "$TERM"
Jika Anda menentukan tipe yang tidak cocok dengan terminal sebenarnya, layar mungkin akan dibersihkan secara tiba-tiba atau karakter kontrol mungkin muncul.
Ringkasan opsi
| Opsi | Deskripsi |
|---|---|
-x |
Tindakan untuk membersihkan buffer gulir dihilangkan. |
-T type |
Menggunakan informasi fungsionalitas dari tipe terminal yang ditentukan alih-alih TERM. |
-V |
Menampilkan versi ncurses yang terhubung dan keluar. |
Perbedaan antara Ctrl+L dan clear
Dalam pengaturan Emacs Readline default di Bash, Ctrl+L menjalankan fungsi penyegaran layar Readline saat mengedit baris; ini bukan pemanggilan program clear. Ikatan tombol dapat diubah, dan penanganan scrollback bergantung pada terminal.
| Metode | Keuntungan | Fitur |
|---|---|---|
clear |
Menggunakan informasi fungsionalitas terminal dan memungkinkan pemilihan opsi. | Tergantung pada implementasinya, Anda bahkan dapat membersihkan riwayat gulir. |
clear -x |
Tidak meminta penghapusan scrollback; ketersediaan keluaran lama tetap bergantung pada terminal. | Ini adalah opsi dalam implementasi ncurses. |
Ctrl+L |
Ini dapat dijalankan dengan cepat dari keyboard saat mengetik. | Perilaku dapat bervariasi tergantung pada pengaturan pengeditan baris shell dan terminal. |
Perbedaan antara clear dan reset
clear digunakan untuk membersihkan layar terminal yang berfungsi normal. Di sisi lain, reset digunakan untuk menginisialisasi kembali status terminal ketika tampilan karakter, mode input, atau pemisah baris rusak karena output biner atau urutan kontrol yang salah.
reset
Jika layar hanya berantakan, clear lebih tepat; reset dapat membantu saat karakter yang diketik tidak terlihat atau mode tampilan rusak. Perintah ini tidak menyalakan ulang komputer atau menjamin koneksi SSH yang terputus pulih.
Membersihkan layar dengan tput
tput juga menggunakan database terminfo untuk mengirim kemampuan terminal. Dalam ncurses modern, tput clear juga dapat meminta penghapusan scrollback jika kemampuan E3 tersedia; jangan menganggapnya selalu mempertahankan scrollback.
tput clear
Ini berguna ketika Anda perlu menggabungkan fitur kontrol terminal dalam skrip shell. Namun, dalam tugas non-interaktif di mana output dikirim ke file atau pipa, urutan kontrol dapat tetap menjadi data yang tidak perlu, jadi disarankan untuk memeriksa koneksi terminal.
Saat digunakan dalam skrip
Kecuali itu adalah program interaktif seperti dasbor yang secara berulang memperbarui layar, lebih baik bagi skrip untuk tidak membersihkan layar pengguna secara sembarangan. Hal ini karena menjadi sulit untuk membandingkan pesan kesalahan dan hasil sebelumnya, dan karakter kontrol dapat bercampur dalam lingkungan pengumpulan log.
if test -t 1; then
clear
fi
test -t 1 memeriksa apakah output standar terhubung ke terminal. Pemeriksaan ini tidak menjamin TERM benar atau entri terminfo tersedia. Jika tujuannya adalah penyegaran layar, pertimbangkan juga watch atau alat UI terminal yang sesuai.
Pemecahan Masalah
Variabel lingkungan TERM tidak disetel
Ini dapat terjadi jika TERM tidak disetel. Lingkungan non-interaktif tanpa terminal, seperti proses yang mengirim keluaran ke file, memang tidak selalu memerlukan TERM.
printf '%s\n' "$TERM"
Daripada menentukan nilai secara sembarangan tanpa mengetahui jenis terminal yang sebenarnya, lebih baik mengonfigurasi SSH, container, atau lingkungan eksekusi untuk meneruskan nilai TERM.
jenis terminal tidak dikenal
Entri terminfo yang sesuai dengan nilai TERM mungkin tidak ada di sistem. Periksa dengan infocmp "$TERM", dan pasang paket informasi terminal yang diperlukan atau konfigurasikan klien untuk mengirimkan nilai yang kompatibel.
Output sebelumnya masih terlihat meskipun sudah melakukan clear.
Emulator terminal mungkin tidak mendukung pembersihan scrollback, atau implementasi clear yang Anda gunakan mungkin hanya bisa membersihkan layar. Ini terpisah dari apakah sejarah perintah telah dihapus.
Pertanyaan yang Sering Diajukan
Apakah menjalankan clear juga menghapus sejarah?
Tidak. clear mengubah tampilan terminal tetapi tidak menghapus riwayat perintah Bash. Penghapusan riwayat ditangani oleh fungsi dan pengaturan terpisah dari history.
Bisakah saya membersihkan layar saja sambil tetap menyimpan scrollback?
Dalam implementasi ncurses, Anda dapat menggunakan clear -x. Periksa apakah implementasi sistem Anda mendukung opsi ini.
Apakah ada risiko bahwa perintah clear akan menghapus file?
Perintah clear normal hanya mengeluarkan urutan kontrol terminal dan tidak menghapus file. Namun, alias atau fungsi dengan nama yang sama mungkin telah didefinisikan ulang, jadi jika Anda curiga, periksa dengan type -a clear.




