Putty: hapus scrollback dari commandline

27

Ketika saya terhubung ke server saya melalui Putty, saya dapat menghapus layar yang terlihat dengan clearperintah.

Namun, saya masih dapat menggulir mundur di GUI Putty untuk melihat barang-barang lama. Saya mengetahui fitur Clear Scrollback dari Putty , tetapi itu membutuhkan klik mouse.

Saya ingin melakukan operasi "Hapus Scrollback" yang sama persis, tetapi dari commandline.

Apa itu mungkin?

Saya membaca situs ini , yang sepertinya menunjukkan demikian.

Namun, percobaan saya gagal. Contohnya:

printf '\033[3J'

Tidak melakukan apa pun, untuk saya.

Saya mungkin tidak mengerti arti CSI 3 Jtautan kedua itu, meskipun ...

jwd
sumber
Versi Putty apa yang Anda gunakan? Halaman menunjukkan fitur berfungsi di Putty 0,59 dan di atas. Saya memiliki Putty 0,60 dan itu bekerja untuk saya. Catatan itu hanya membersihkan buffer scrollback, itu tidak menghapus layar. (Jika saya memiliki bilah gulir, saya benar-benar dapat menggulir, kemudian menggunakan urutan ini, saya perhatikan bilah gulir menjadi dinonaktifkan karena tiba-tiba tidak ada yang tersedia untuk menggulir ke. Tapi layar yang saat ini ditampilkan tetap ada.)
Bavi_H
@Bavi_H: ah, terima kasih - saya tidak menyadari bahwa itu tidak akan mempengaruhi teks yang sedang ditampilkan. Saya melihatnya bekerja juga. Solusi lengkap yang saya inginkan adalah clear && printf '\033[3J'. Jika Anda membuat jawaban, saya akan menerimanya.
jwd

Jawaban:

32

The CSI 3 Jurutan untuk membersihkan buffer scrollback telah ditambahkan ke Putty 0,59. (Pada halaman permintaan permintaan untuk fitur ini lihat baris "fix-in", atau buka halaman perubahan Putty dan cari CSI 3 J.)

Seperti yang disebutkan jwd, Anda dapat memasukkan printf '\033[3J'pada baris perintah untuk mengirim urutan ini ke Putty. Ketahuilah bahwa ini hanya membersihkan buffer scrollback, itu tidak membersihkan layar. Jika Anda memiliki bilah gulir yang sebenarnya dapat Anda gulir, maka gunakan urutan ini, Anda akan melihat bilah gulir menjadi dinonaktifkan karena tiba-tiba tidak ada yang tersedia untuk digulir ke. Tetapi layar yang saat ini ditampilkan tetap di tempatnya.

Seperti yang disebutkan jwd, Anda dapat menghapus layar dan buffer scrollback menggunakan clear && printf '\033[3J'

Bavi_H
sumber
Dan bagi mereka yang mencari bacaan ringan tentang kode kontrol: xfree86.org/4.8.0/ctlseqs.html (: Yang ini di bawahCSI P s J
jwd
11

Jika Anda terbiasa, seperti saya, menggunakan Ctrl+Luntuk Reset terminalopsi yang tersedia di menu sistem Putty, maka Anda mungkin merasa terbantu untuk mengaktifkannya Configuration -> Window -> Behavior -> "System menu appears on ALT-Space".

Kemudian ketika Anda menekan Alt+Space, opsi untuk "Clear scrollback"dipicu oleh L(huruf kecil; tanpa Shift). Dengan demikian, reset + clearjadilah kombinasi mnemonik yang menawan dari Ctrl+Ldan Alt+Space Ltanpa mousing atau kekacauan yang berantakan dalam sejarah cangkang Anda.

ConfexianMJS
sumber
Bekerja dan mudah diingat :)
Wyrmwood
Tidak buruk, meskipun FYI: Anda juga dapat mencegah mengacaukan riwayat shell Anda dengan mengawali perintah dengan spasi.
jwd
6

Buat file skrip dan letakkan di folder yang disertakan path:

$cat > /usr/local/bin/cls
#!/bin/bash
clear
printf '\033[3J'

Tekan CTRL + d untuk menyimpan dan keluar

Ubah izin pada file:

chmod a+x /usr/local/bin/cls

Sekarang Anda dapat menggunakan cmd cls :-)

Tuan Calvin
sumber
1

Solusi bagi saya adalah mengirimkan karakter '\ 033 \ 143':

printf ("\ 033 \ 143");

Ini membersihkan layar terminal dan mengembalikan kursor di sudut kiri atas.

Eschick
sumber
1
(1) Pertanyaannya menanyakan perintah command-line (yaitu, shell). Ini bukan perintah shell, ini adalah baris kode C; dengan demikian, ini bukan jawaban untuk pertanyaan ini. (2) Posting ini akan sedikit lebih berguna jika Anda mengatakan apa \143karakternya, dan bagaimana hubungannya dengan pertanyaan ini, idealnya dengan kutipan.
Scott
1
Bagi mereka yang bertanya-tanya, ini terkait dengan kode melarikan diri "reset penuh" ( ESC c). ASCII cmemiliki nilai 99oktal 143. Ini akan melakukan banyak hal lain selain menghapus scrollback, hanya FYI.
jwd
1

Ada opsi di dempul di mana Anda dapat menghapus centang perilaku gulir kembali default. Hapus centang opsi "Dorong teks terhapus ke dalam scrollback".

Gambar Pengaturan Putty

Setelah ini ketika Anda mengeluarkan perintah yang jelas itu akan menghapus layar dan tidak akan memasukkan konten layar sebelumnya di gulir kembali.

pengguna3133668
sumber