Saya telah menggunakan perintah:
reset
untuk menghapus terminal saya. Meskipun saya cukup yakin ini bukan yang seharusnya saya lakukan. Reset, seperti namanya, mengatur ulang seluruh terminal Anda (mengubah banyak hal). Inilah yang saya inginkan:
Saya pada dasarnya ingin menggunakan perintah clear
. Namun, jika Anda menghapus lalu menggulir ke atas, Anda masih mendapatkan banyak barang dari sebelumnya. Secara umum ini bukan masalah, tapi saya melihat log kotor yang panjang dan saya ingin memastikan bahwa saya hanya melihat yang terbaru. Saya tahu bahwa saya bisa menggunakan more
atau sesuatu seperti itu tetapi saya lebih suka pendekatan ini.
clear && printf '\033[3J'
. Tidak ada pengaturan ulang terminal, hanya menghapus teks di layar. Lihat posting ini: superuser.com/questions/555554/…Jawaban:
Buffer scrollback bukan fitur bash tetapi dari program terminal. Anda tidak mengatakan terminal apa yang Anda gunakan.
Jika Anda menggunakan xterm, Anda mungkin dapat menghapus jalur yang disimpan dengan menggema ESC-c ke terminal.
Ini mungkin atau mungkin tidak bekerja pada program terminal apa pun yang Anda gunakan.
Di linux ini mungkin akan berfungsi:
pada gema FreeBSD tidak menerima -e sehingga Anda dapat mencoba:
sumber
echo ESC-c
?ESC
. Baca artikel "Escape karakter" dan "Kontrol karakter" di Wikipedia -ESC
sering digunakan untuk menunjukkan karakter ASCII 0x1B, yang dapat Anda masukkan dengan menekan^V
diikuti olehEsc
.\0143
bukannyac
?Gunakan alat yang tepat untuk setiap pekerjaan:
Gunakan
clear
untuk menghapus jendela terminal.Gunakan
reset
untuk mengatur ulang terminal Anda ketika itu kacau oleh urutan kontrol.Gunakan
cat
hanya ketika Anda ingin melakukan streaming seluruh data dari satu tempat ke tempat lain tanpa gangguan .Gunakan program pager seperti
less
ataumost
untuk melihat halaman output.Gunakan
tail -f /var/log/foo.log /var/log/bar.log
untuk menonton beberapa file log yang berbeda.tail
,-F
opsi lebih baik karena dapat terus mengikuti file bahkan ketika file baru muncul di tempatnya, seperti yang umum untuk file log.sumber
cat
untuk membaca apa pun, tetapi untuk file kecil itu sebenarnya lebih masuk akal bagicat
mereka daripada menggunakannyaless
. Setelah file telah dibuang ke terminal, Anda dapat melihat / gulir kembali ke file sesering yang Anda inginkan, daripada harus diberhentikanless
sebelum Anda melakukan hal lain.Hanya untuk memberikan jawaban teknis:
reset
menginisialisasi ulang terminal, seolah-olah itu dibuka kembali dari awal.stty sane
akan melakukan banyak fungsi yang sama (tanpa reset). Ini adalah hal yang sama dengan^L
(Ctrl + L) (irrc), dantput clear
. Meskipun apa yang dikatakan poster sebelumnya (@grawity),clear
tidak menghasilkan banyak baris baru. Ini mengirimkanTERM
reset seperti yang didefinisikan dalamterminfo
atautermcap
, bagi saya, menggunakangnome-terminal
(xterm) itu sama dengan perintahperl -e'print "\33[H\33[2J"'
.Jika Anda hanya ingin menghapus buffer - dibandingkan dengan mengatur ulang seluruh terminal, coba ini
tput reset
. Itu harus sangat cepat, dan lakukan apa yang Anda inginkan. (Meskipun Anda benar-benar harus membaca file denganless
)tput reset
, mengirim nilai terminfo untuk reset - di terminal saya (xterm) sama denganperl -e'print "\33c"'
sumber
clear
menghasilkan banyak baris baru. Saya hanya memberikan perintah sebagai alternatif untuk itu, karenaclear
hanya membersihkan layar tetapi bukan buffer scrollback. (Tidak dalam Putty atau Konsole, setidaknya.)clear
sebagai nama sinyal ke sinyal, dan satu yang memetakanreset
ke sinyal - dan hanya yang terakhir menghasilkan buffer gulir kembali dibersihkan.reset
mengirimkan yang terakhir, di atas melakukan hal-hal menyenangkan lainnya.clear
tidak tidak ulang scrollback nya. (ESC c
bekerja dixterm
dan berbasis VTE, tetapi tidak di Putty dan Konsole.) Dia juga tidak ingin menggunakanreset
, karena itu me-reset lebih dari yang dia inginkan. (Saya tidak tahu terminal mana yang dia gunakan - tetapi bandingkanstty
sebelum dan sesudah mengatur ulang.)tput reset
, yang mengirim sinyal reset ke terminal - tanpa benar-benar menginisialisasi ulang istilah tersebut. "reset - Alih-alih mengeluarkan string inisialisasi, string reset terminal akan menjadi output jika ada (rs1, rs2, rs3, rf). Jika string reset tidak ada, tetapi string inisialisasi ada, string inisialisasi akan menjadi output. Jika tidak, setel ulang tindakan secara identik ke init. " Di sini, kami telah mengatur ulang string sehingga string init tidak berjalan.tput reset
sangat lambat (sama sepertireset
).printf '\033\143'
jauh lebih cepat. Apakah ada alasan mengapa metode printf berbahaya / buruk?Terminal lain adalah iTerm2, dan itu punya urutan pelarian yang agak aneh yang digunakan untuk menghapus scrollback. Di shell Bash, saya menggunakan sesuatu seperti:
dalam naskah. Jadi pada dasarnya ini adalah karakter ESC, diikuti oleh "
]50;ClearScrollback
" dan kemudian karakter BEL.sumber
clear
danreset
tidak mau. Namun, ini bukan jawaban terbaik untuk pertanyaan itu. Saya pikir jawaban yang tepat untuk kasus itu adalah apa pun yang ditawarkan aplikasi terminal, seperti command-K di iTerm2, control-K di yang lain, dll.Mungkin cara terbaik untuk membersihkan semuanya adalah dengan menggunakan fungsi terminal:
Dengan cara ini kedua buffer dihapus bersih, dan status terminal diatur ulang ke persis seperti apa saat startup (yang mungkin atau mungkin tidak sama dengan menggunakan
reset
).sumber
gnome-terminal
sendiri pada saat ini) ... Lihatlah "Tools" dan menu lainnya.+F
adalah untuk "ikuti", mirip dengantail -f
tetapi memungkinkan Anda menggulir kembali juga.Semua terminal berbasis vte (GNOME, Xfce, Roxterm) dan KDE Konsole memungkinkan Anda menggunakan roda gulir untuk menggulir ke dalam
less
. Saya menemukan itu cukup nyaman.Alternatif untuk
clear
:sumber
Di Mac OS X Terminal.app:
Lihat -> Hapus Scrollback (atau command- K)
sumber
Ini bukan masalah "Bash". Itu tergantung pada terminal yang Anda gunakan. Sebagai contoh, saya menggunakan "iterm2" dengan macbook untuk menghubungkan mesin linux jarak jauh. Anda dapat menggunakan "perintah + K" untuk membersihkan buffer, atau di menu, pilih "Edit" -> "Clear Buffer".
sumber
Untuk menghapus layar konsol dan buffer scrollback saat menjalankan Putty, ini berfungsi untuk saya:
Ini sebenarnya 2 urutan "Esc" yang bertindak secara independen ... mereka dapat digunakan dalam urutan apa pun:
Menggunakan
echo -en "\ec"
yang mengatur ulang terminal mungkin mengubah beberapa pengaturan terminal Anda yang lain. Alih-alih "Setel Ulang", Anda bisa melakukan ini:Anda dapat menempatkan ini dalam skrip shell dan berfungsi dengan baik.
Dalam hal ada beberapa ketergantungan sistem:
Saya menggunakan Putty Connection Manager (Versi 0.7.1 BETA (build 136)), dengan Putty (Rilis 0.60).
Mengetik:
laporan:
sumber
Untuk membersihkan buffer layar untuk perangkat keras TTY di FreeBSD Anda dapat menggunakan "vidcontrol - konsol sistem kontrol dan utilitas konfigurasi" dengan parameter -C Bersihkan buffer sejarah.
vidcontrol -C
perintah akan mengosongkan semua penyangga layar untuk konsol saat ini, di atas apa yang Anda lihat saat ini. Anda mungkin ingin 'membersihkan' terlebih dahulu, atau tidak - terserah Anda.
sumber
Jika Anda ingin memastikan Anda melihat entri terbaru dalam file log, mungkin lebih baik menggunakan tail daripada
clear
/cat
yang saya anggap Anda gunakan.sumber
Hmmm. Saya kira jika Anda menjalankan konsole, Anda kurang beruntung. Dulu Anda hanya bisa "menghapus scrollback". Konsole tidak akan membiarkan Anda melakukan itu lagi. Anda harus mengatur ulang juga, sehingga membunuh semua program yang sedang Anda jalankan. Saya kira saya perlu program terminal baru ......
sumber