Bersihkan keluaran terminal dari perintah terakhir saja

13

Daripada menggulir melewati ratusan baris output untuk melihat riwayat perintah sebelumnya, dapatkah output dari perintah terakhir dihapus? Misal setelah eksekusi ls, hapus outputnya karena Anda tidak membutuhkannya lagi.

EDIT:

Ini bukan operasi clearatau ctrl+Loperasi Anda yang biasa . Idenya adalah untuk menelusuri kembali sejarah mencari output dari perintah sebelumnya, tetapi tanpa harus menggulir melewati beban ls, atau cat, atau sudo apt-get installkeluaran kecuali saya benar-benar mau. Mungkin terlihat seperti ini:

cat fileIWantToRemember
ls directoryIWantToForget
# some command that wipes the output of ls
# scroll back to see the output of cat immediately
nacnudus
sumber
Apakah Anda bermaksud menghapus output, atau menghapus perintah dari riwayat perintah Anda? Jika Anda ingin mengubah riwayat perintah Anda, mungkin utas ini membahas apa yang Anda cari?
ernie
Terminal hanya menampilkan aliran teks, dan menyimpan beberapa di buffer internal sendiri. Tidak memiliki cara untuk mengetahui, atau membedakan antara output perintah. Terminal rxvt-unicode memang memiliki interpreter perl yang mungkin dapat mengimplementasikan sesuatu seperti ini. Tapi sejauh yang saya tahu itu belum selesai.
Keith
Dahulu kala, saya menggunakan terminal emulator di Mac OS X yang memiliki fitur ini, tetapi saya tidak dapat mengingat apa namanya. Tapi itu tidak gratis. Namun, saat melakukan pencarian google cepat untuk itu, saya berlari ke finalterm.org , yang sepertinya sedang mencoba untuk mengimplementasikan fitur itu. Namun, "Final Term sedang dalam pengembangan dan tidak stabil atau fitur lengkap!", Jadi saya tidak mencobanya. Terlihat menarik. Pencarian google, untuk apa nilainya, adalahterminal emulator output folding
rici
Final Term dikembangkan untuk melipat perintah (dan banyak hal menakjubkan lainnya), dan begitu ada pintasan keyboard untuk melakukan itu maka masalah terpecahkan. Saya mulai berpikir saya gila ...
nacnudus
1
itu bukan jawaban tepat Anda tetapi dalam kasus seperti itu untuk melihat konten file besar saya menggunakan perintah 'kurang' bukan 'cat'. Hal lain adalah jika ada perintah yang memberikan sejumlah besar baris sebagai output ke konsol Anda dapat menghindarinya dengan menulis "$ the-command | less".
Devasish

Jawaban:

4

Dengan terima kasih kepada @rici, perilaku ini dapat disebut "lipat". Output dari perintah tidak dilupakan, tetapi Anda dapat menyembunyikannya sampai Anda membutuhkannya lagi. Lipat umum di editor teks tetapi tampaknya jarang di terminal emulator.

Final Term adalah emulator terminal baru yang mencakup pelipatan di antara banyak trik mewah lainnya. Waspadalah: "Final Term sedang dalam pengembangan dan tidak stabil atau fitur lengkap!" Itu cukup berkembang untuk melipat perintah saya ketika saya mengujinya, tetapi terlalu tidak stabil untuk tidak crash. Satu untuk ditonton.

nacnudus
sumber
0

Saya pikir Anda sedang mencari perintah yang jelas ...

clear

"clear" menghapus perintah terakhir Anda dari pandangan. Anda dapat menggulir ke atas di terminal untuk melihatnya lagi jika perlu.

Justin C.
sumber
Intinya adalah untuk tidak harus menggulir melewatinya ketika melihat melalui riwayat Anda untuk hal lain.
nacnudus
Apakah maksud Anda Anda ingin menekan output dari perintah? Jika ya, ini dapat membantu Anda: stackoverflow.com/questions/617182/…
phe0113
2
Itu bagus jika saya tidak pernah ingin melihat output. Saya ingin melihat hasilnya pertama kali, dan kemudian melupakannya. Jadi, dalam contoh yang saya berikan, saya ingin memeriksa output lsuntuk beberapa alasan, tetapi kemudian saya ingin menyingkirkannya sehingga saya tidak perlu terus melewatinya untuk menemukan output dari kucing. Jelas saya bisa melakukan cat lagi, tapi saya bisa membayangkan ingin mempertahankan urutan perintah, dan akan menyenangkan tidak harus mengulang semuanya.
nacnudus
0

Dalam bash, Anda dapat menekan pintasan Ctrl + Luntuk menghapus layar, mirip dengan clearperintah. ( http://ss64.com/bash/syntax-keyboard.html )

Atau, Anda dapat menggunakan history | tail -3untuk melihat tiga perintah terakhir. ( http://www.howtogeek.com/howto/44997/how-to-use-bash-history-to-improve-your-command-line-productivity/ )

phe0113
sumber
Lihat komentar saya pada @Justin di bawah ini, intinya adalah tidak harus menggulir melewatinya ketika mencari melalui sejarah untuk sesuatu yang lain. Sesuatu seperti HISTCONTROL=ignorespacedi tautan kedua Anda yang dapat Anda gunakan setelah faktanya akan baik.
nacnudus
Saya agak bingung dengan apa yang ingin Anda capai. Pikiran lain, di banyak konsol yang saya gunakan, Anda biasanya dapat menggunakan tombol panah untuk menelusuri sejarah perintah di bash, apakah ini berlaku untuk situasi Anda?
phe0113
Apakah hasil edit saya mengklarifikasi pertanyaan?
nacnudus
@nacnudus, ya, saya mengerti maksud Anda sekarang :)
phe0113
0

Sepertinya Anda ingin menghapus item dari riwayat Anda. Untuk melakukan ini, pertama-tama Anda harus mengaktifkan penulisan sejarah dengan cepat, daripada pada logout dengan mengedit ~ / .bashrc Anda dan menambahkan:

shopt -s histappend; export PROMPT_COMMAND='history -a';'

Kemudian, untuk menghapus item yang bisa Anda lakukan:

history -d offset, di mana offset adalah entri riwayat yang ingin Anda hapus

Berdasarkan utas forum ini .

ernie
sumber
Ini tampaknya menghapusnya dari file histori, yang hampir merupakan ide yang tepat, tetapi dapatkah menghapusnya dari terminal saat ini?
nacnudus