Ketika kita menggunakan clear
perintah atau Ctrl+ Ldi terminal, terminal akan dihapus tetapi kita masih dapat menggulir ke belakang untuk melihat perintah yang terakhir digunakan. Apakah ada cara untuk benar-benar membersihkan terminal?
59
Jawaban:
Anda bisa menggunakannya
tput reset
.Selain itu
reset
dantput reset
Anda dapat menggunakan skrip shell berikut.Ini mengirimkan karakter kontrol
Esc-C
ke konsol yang mengatur ulang terminal.Google Kata Kunci: Urutan Kontrol Konsol Linux
man console_codes
mengatakan:sumber
tput reset
lebih cepat daripadareset
di Ubuntu 16.04, setidaknyaAnda dapat menggunakan
reset
perintah, yang akan mengatur ulang pengaturan terminal.sumber
Saya tahu Anda berada di terminal gnome, tapi saya pikir saya akan menjawab dengan tip untuk orang lain yang mungkin (seperti saya) di Mac:
Jika Anda menggunakan
Terminal.app
atauiTerm.app
kemudianControl+L
akan menggulir ke atas sehingga terminal terlihat kosong, tetapiCmd+K
sebenarnya akan mengatur ulang terminal / hapus scroll-kembali.Atau, jika Anda dapat mengatur preferensi keyboard untuk terminal Anda, Anda mungkin dapat menetapkan sesuatu seperti
Ctrl+K
inputecho -e \\033c
seperti yang disebutkan di atas.sumber
Cmd+K
semua yang saya inginkan. tyJawaban Anthon bekerja di KDE Konsole, tetapi tidak urxvt. Di urxvt, saya telah menggunakan reset selama beberapa tahun untuk menghapus scrollback (bersama dengan semua hal lain yang dilakukannya), dan tidak puas bahwa itu tidak berfungsi di Konsole. Jadi sekarang untuk Linux saya punya alias baru:
Tetapi tidak berfungsi pada OS X.
tput reset
tidak berfungsi dalam konteks apa pun AFAICT.Di KDE Konsole, ctrl- shift- kmembersihkan scrollback (termasuk prompt shell saat ini, jadi itu benar-benar kosong). Di iTerm atau terminal Apple pada OS X, cmd- shift- kjuga menghapus scrollback. Untuk menambahkan fitur ini ke urxvt, tambahkan ini ke ~ / .Xresources:
sumber
allclear(){
`echo" Menghapus terminal dan scrollback ... "` `sleep 1.5`` clear; echo -e "\ 033c \ e [3J" `}
` Edit: Tidak dapat memformat agar berfungsi. Jika ada yang bisa mengedit ini sehingga bisa dibaca, saya akan sangat menghargainya.Saya menemukan ini di internet bertahun-tahun yang lalu, dan bekerja dengan baik untuk saya. Ini benar-benar membersihkan terminal tanpa riwayat gulir.
sumber
Saya memetakan F12untuk menghapus layar di masing-masing cangkang berikut: bash , csh dan fish shell . Perintah saya berbeda dari semua yang sebelumnya karena mempertahankan apa pun yang sudah Anda ketikkan pada baris saat ini.
(Catatan: semua konfigurasi di bawah ini tergantung terminal, tapi saya harap mereka akan bekerja di mana saja)
pesta
Buka file
~/.inputrc
dan masukkan baris berikut:"\e[24~": "\C-k \C-uecho -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n\C-y\C-?"
Agar ikatan kunci baru tersedia, buka terminal baru atau ketik Ctrl+ Xlalu Ctrl+ Runtuk memuat ulang file .inputrc di terminal saat ini.
Penjelasan
File ~ / .inputrc mengontrol binding kunci terminal bash.
Tentang garis:
"\e[24~"
,, memetakan kunci F12.C-k
( Ctrl+ X) mengosongkan kill-ring (memori bash-and-past bash).C-u
( Ctrl+ U) mengirimkan baris saat ini ke cincin bunuh, dan menghapusnya.echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n
mengirimkan dua perintah dikelompokkan terminal. Mereka dipisahkan oleh;
dan diakhiri oleh\n
.echo -ne '\\ec\\e[3J'
membersihkan layar.history -d $((HISTCMD-1))
menghindari kedua perintah masuk dalam sejarah.C-y
( Ctrl+ Y) pasta membunuh-cincin disimpan olehC-u
perintah.C-?
( Ctrl+ ?) setara dengan Backspacedan menghilangkan ruang dimasukkan pada langkah 3 di atas.Referensi:
csh
Ketikkan perintah di bawah.
bindkey -c "^[[24~" "echo -ne '\ec\e[3J'"
Itu juga dapat dimasukkan dalam
.cshrc
file Anda untuk memuat kunci yang mengikat ke setiap terminal baru.(Ya, itu jauh lebih sederhana daripada di bash)
kulit ikan
Ketikkan perintah di bawah.
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
Anda dapat mengedit dan menyimpan fungsi
fish_user_key_bindings
untuk memuat ikatan kunci ke setiap terminal baru.(Ya, itu jauh lebih sederhana daripada di bash)
sumber
[Ubuntu 16.04]
File .bash_history dibuat di direktori home pengguna setelah terminal ditutup
Ini berguna, tetapi Anda bisa menghapusnya jika Anda mau .. Namun demikian itu akan dibuat setiap kali Anda selesai menggunakan terminal.
Anda dapat menghapusnya secara manual dari:
browser file Anda.
terminal: ingat bahwa file .bash_history baru akan dibuat ketika Anda menutup terminal (berdasarkan pada konfigurasi default-nya).
Atau Anda dapat memanggil fungsi kustom jika Anda menyimpan fungsionalitas yang Anda perlukan ke dalam file yang ditautkan dari bashrc .. Anda dapat mengedit bashrc itu sendiri jika Anda suka meletakkan kode Anda di sana, tetapi contoh-contoh selanjutnya berada di file terpisah
Jujur ini tidak berguna bagi saya tetapi jika Anda ingin menghapus sejarah perintah sebelum keluar Anda bisa melakukan ini:
.bash_custom # ini adalah file khusus saya
kemudian di bagian bawah tambahkan nama dan path file saya
.bashrc # ini adalah file konfigurasi untuk bash (saya pikir)
dan itu semua.
TETAPI, untuk melakukan apa yang Anda inginkan, Anda hanya perlu fungsi ini di file khusus Anda dan tautkan:
Atau cukup masukkan fungsi dalam .bashrc jika Anda mau tetapi dengan cara itu Anda mungkin memerlukan pernyataan ekspor setelah fungsi tersebut. Saya tidak yakin dan jika file yang diperbarui mungkin kehilangan fungsi Anda .. Saya juga tidak yakin tentang itu: D.
Ingat Anda harus memulai kembali terminal saat mengedit .bashrc atau file 'custom' Anda.
sumber
Bagi saya, menggunakan Putty terhadap CentOS 7, menghapus hanya meninggalkan perintah yang jelas di scrollback, tetapi menjalankan "clear && clear", dua contoh dari perintah yang jelas pada saat yang sama, sepenuhnya menghapus scrollback dan membuat saya tanpa scrollbar. Coba itu. Ini adalah solusi yang aneh tetapi tidak satupun dari ini yang membersihkan scrollback secara efektif, dan ini berhasil.
sumber
Ditambahkan untuk
~/.inputrc
mengikat kliring lengkap ke F12:sumber
Di Fedora 30, menghapus riwayat dilakukan dengan menghapus file $ HOME / .bash_history. Cara termudah untuk menghapus file riwayat terminal melalui keyboard adalah:
nautilus
dan tekan Entertombol untuk membuka aplikasi File (GNOME) (yang sebelumnya dikenal sebagai Nautilus)..bash_history
(yang akan muncul di bilah pencarian jika diketik segera setelah jendela dibuka; jika tidak, bilah pencarian dapat diakses melalui Ctrl+ L).sumber
sumber
history -c
telah disajikan dalam dua jawaban sebelumnya, dan itu dihapus karena bukan jawaban yang benar untuk pertanyaan itu. (2) Ketika menutup jendela terminal akan (mungkin) menghapus memori terminal dari perintah sebelumnya, jauh dari jelas bahwa OP ingin melakukan itu. ... Dan PSexit
Perintah tunggal tidak dijamin untuk menutup jendela terminal.