Saya tahu clear
perintah yang 'membersihkan' layar saat ini, tetapi ia melakukan ini hanya dengan mencetak banyak baris baru - konten yang telah dihapus baru saja digulir ke atas.
Apakah ada cara untuk benar-benar menghapus semua output sebelumnya dari terminal sehingga saya tidak dapat mencapainya bahkan dengan menggulir ke atas?
Command+K
.Jawaban:
Untuk menghapus terminal secara manual:
⌘+K
Command+ Kuntuk keyboard yang lebih baru
Untuk menghapus terminal dari dalam skrip shell;
sumber
clear
untuk menggunakan untuk semua kasus kecuali di mana Anda memerlukan riwayat scrollback untuk benar-benar menghilang, misalnya ketika Anda akan mencetak.)clear
. Saya merasa mereka harus dibalik. Mengetikclear
sepertinya lebih disengaja daripada memukulCommand + K
.Cara yang lebih baik untuk menghapus layar dari dalam skrip ...
Jika Anda menggunakan aplikasi Terminal OSX (seperti yang dinyatakan oleh OP), pendekatan yang lebih baik (terima kasih kepada https://apple.stackexchange.com/a/113168 ) hanyalah ini:
atau lebih ringkas (ujung hat ke https://stackoverflow.com/users/4834046/qiuyi ):
yang menghapus buffer scrollback serta layar. Ada opsi lain juga, lihat https://apple.stackexchange.com/a/113168 untuk info lebih lanjut.
jawaban asli
Jawaban AppleScript yang diberikan di utas ini berfungsi, TETAPI memiliki efek samping yang buruk dengan membersihkan jendela terminal APAPUN yang kebetulan aktif. Ini mengejutkan jika Anda menjalankan skrip di satu jendela dan mencoba menyelesaikan pekerjaan di jendela lain!
Anda menghindari ini dengan memperbaiki AppleScript untuk hanya menghapus layar jika itu yang paling depan dengan melakukan ini (diambil dari https://apple.stackexchange.com/a/31887 ):
... tetapi ketika itu bukan jendela saat ini, output akan menumpuk sampai menjadi saat ini lagi, yang mungkin bukan yang Anda inginkan.
sumber
.bash_profile
dan itu luar biasa karena saya kadang-kadang tidak lagi mendapatkan buffer yang salah saat membuka jendela terminal baru.Cara yang cantik adalah
printf '\33c\e[3J'
sumber
alias cls='printf "\33c\e[3J"'
\33c
melakukan yang setara denganclear
perintah, yang pada dasarnya hanya menggulir layar sampai Anda tidak dapat melihat konten sebelumnya. Ini membersihkan layar, tetapi bukan buffer gulir kembali (yaitu Anda masih dapat menggunakan scroll bar untuk melihat output yang lama). Tambahkan\e[3J
untuk benar-benar menghapus buffer back scroll.function cls { printf '\33c\e[3J\33c' }
baris~/.profile
(atau seluruh sistem/etc/profile
). Ini harus bekerja untuk lingkungan desktop di macOS, FreeBSD, Linux dll. Perhatikan tambahannya\33c
adalah untuk menghapus\e[3J
literal ekstra di non-macOS (pada dasarnya untuk Linux / FreeBSD, kita hanya perluprintf '\33c'
).Letakkan ini di .bash_profile atau .bashrc Anda
sumber
Pada Mac OS X Terminal fungsi ini sudah ada di dalam Aplikasi Terminal sebagai
View->Clear Scrollback
(Default adalah CMD+ K).Jadi, Anda dapat menetapkan ulang ini sesuka Anda dengan pintasan Keyboard Apple. Cukup tambahkan pintasan baru untuk Terminal dengan perintah "Hapus Scrollback". (Saya menggunakan CMD+ L, karena mirip dengan CTRL+ Luntuk menghapus konten layar saat ini, tanpa menghapus buffer.)
Tidak yakin bagaimana Anda akan menggunakan ini dalam skrip (mungkin AppleScript seperti yang ditunjukkan orang lain).
sumber
View->Clear Scrollback
tidak ada lagi di menu Terminal. Pintasan keyboardCMD
+K
masih berfungsi.Clear Scrollback
baru saja pindah dariView
keEdit
di Yosemite.Dengan Mac OS X Yosemite (10.10) gunakan
Option + Command + K
untuk menghapus scrollback di Terminal.app.sumber
Atau Anda dapat mengirim page break (ASCII form feed) dengan menekan:
Walaupun ini secara teknis baru memulai halaman baru, ini memiliki efek bersih yang sama dengan semua metode lain, sementara menjadi jauh lebih cepat (kecuali untuk solusi Apple + K, tentu saja).
Dan karena ini adalah perintah kontrol ASCII, ia bekerja di semua shell.
sumber
Untuk menghapus hanya keluaran terakhir:
⌘+L
Untuk menghapus terminal sepenuhnya:
⌘+K
sumber
Command + K akan menghapus output sebelumnya
Untuk menghapus teks yang dimasukkan, pertama-tama lompat ke kiri dengan " Command + A " lalu hapus teks di sebelah kanan pointer dengan " Control + K ".
Contoh visual:
sumber
membersihkan semuanya, bekerja dengan baik di osX juga. sangat rapi
sumber
Lakukan hal yang benar, lakukan hal yang benar!
Hapus ke tanda sebelumnya:
Command-L
Hapus ke bookmark sebelumnya:
Option-Command-L
Hapus untuk memulai:
Command-K
Bantu temanmu!
sumber
Saya tidak bisa mendapatkan salah satu di atas bekerja (di macOS).
Kombinasi berhasil bagi saya -
Ini membersihkan buffer dan layar
sumber
IO.write
. Ini harus bekerja sama tetapi Anda memutuskan untuk mencetak karakter-karakter ke terminal.Mengetik berikut ini di terminal akan menghapus riwayat Anda (artinya menggunakan panah tidak akan memberi Anda apa-apa) - tetapi tidak akan menghapus layar:
sumber
Coba ini, jika Anda kewalahan dengan output jika Anda ingin filter
adb -d shell dumpsys activity | grep ActivityRecord
sumber
CMD + K tampaknya bekerja sepanjang waktu untuk saya.
sumber