Очистити тільки термінальний вихід останньої команди


13

Замість того, щоб прокрутити минулі сотні рядків виводу, щоб побачити попередню історію команд, чи можна видалити результат останньої команди? Наприклад, після виконання ls, очистіть його вихід, тому що він вам більше не потрібен.

Редагувати:

Це не ваш звичайний clearабо ctrl+Lоперація. Ідея полягає в тому , щоб прокрутити назад , хоча історії , шукаючи вихід попередньої команди, але він не потребує спеціальних для прокрутки повз навантаження ls, або cat, або sudo apt-get installвиходу , якщо я дійсно не хочу. Це може виглядати приблизно так:

cat fileIWantToRemember
ls directoryIWantToForget
# some command that wipes the output of ls
# scroll back to see the output of cat immediately

Ви маєте на увазі очистити вихід або видалити команду з історії ваших команд? Якщо ви хочете змінити історію своїх команд, можливо, ця нитка стосується того, що ви шукаєте?
Ерні

Термінал просто відображає потік тексту і зберігає їх у власному внутрішньому буфері. Він не може знати або дискримінувати вихід команди. У терміналі rxvt-unicode є інтерпретатор perl, який міг би реалізувати щось подібне. Але наскільки я знаю, це не робиться.
Кіт

Давним-давно я використовував термінальний емулятор на Mac OS X, який мав цю функцію, але не можу згадати, як його називали. Це було не безкоштовно. Однак, роблячи швидкий пошук у Google, я натрапив на finalterm.org , який, схоже, намагається реалізувати цю функцію. Однак "Заключний термін знаходиться у важкій розробці, і не стабільний, ані функція завершена!", Тому я не пробував цього. Хоча це виглядає цікаво. Пошук у Google, для чого він вартий, бувterminal emulator output folding
rici

Заключний термін є досить розвиненим для складання команд (і безлічі інших дивовижних речей), і як тільки є комбінація клавіш для цього, то проблема вирішена. Я починав думати, що я божевільний ...
nacnudus

1
це не ваша точна відповідь, але в таких випадках для перегляду вмісту великих файлів я використовую команду 'менше' замість 'cat'. Інша справа, якщо будь-яка команда надає величезну кількість рядків як вихід для консолі, ви можете уникнути цього, написавши "$ the-command | менше".
Девашиш

Відповіді:


4

Завдяки @rici таку поведінку можна назвати "складною". Вихід команд не забутий, але ви можете приховати його, поки не знадобиться знову. Складання складно в текстових редакторах, але, здається, є рідкісним у емуляторах терміналів.

Final Term - це новий термінальний емулятор, який включає складання серед багатьох інших фантазійних трюків. Будьте обережні: "Остаточний термін перебуває у важкому розвитку, і не стабільний, ані функція завершена!" Це було досить розвинене для складання моїх команд, коли я тестував її, але занадто нестабільний, щоб не вийти з ладу. Один для перегляду.


0

Я думаю, ти шукаєш чітку команду ...

clear

"Очистити" очищає останню команду від перегляду. Ви можете прокрутити вгору в терміналі, щоб побачити його знову за потреби.


Сенс у тому, що не потрібно прокручувати повз нього, переглядаючи свою історію для чогось іншого.
nacnudus

Ви маєте на увазі, що хочете придушити вихід з команди? Якщо так, то це може допомогти вам: stackoverflow.com/questions/617182 / ...
phe0113

2
Це чудово, якщо я ніколи не хочу бачити вихід. Я хочу побачити вихід перший раз, а потім забути про нього. Отже, у прикладі, який я наводив, я хочу lsчомусь перевірити вихід , але тоді я хочу позбутися його, щоб мені не довелося постійно прокручувати його, щоб знайти вихід кішки. Очевидно, що я міг би просто зробити кота ще раз, але я можу уявити, що хочу зберегти послідовність команд, і було б непогано не повторювати їх усі.
nacnudus

0

У bash ви можете натиснути ярлик, Ctrl + Lщоб очистити екран, подібно до clearкоманди. ( http://ss64.com/bash/syntax-keyboard.html )

Або ви можете використовувати history | tail -3для перегляду останніх трьох команд. ( http://www.howtogeek.com/howto/44997/how-to-use-bash-history-to-improve-your-command-line-productivity/ )


Дивіться мій коментар до @Justin нижче, справа не в тому, щоб прокручувати повз нього під час перегляду історії щось інше. Щось на зразок HISTCONTROL=ignorespaceвашого другого посилання, яке ви можете використовувати після факту, було б добре.
nacnudus

Я трохи втратив те, чого ти хочеш досягти. Ще одна думка: у багатьох використовуваних я консолях ви можете звичайно використовувати клавіші зі стрілками для перегляду історії команд у bash, чи це стосується вашої ситуації?
phe0113

Чи пояснює моє редагування питання?
nacnudus

@nacnudus, так, я розумію зараз :)
phe0113

0

Це звучить так, ніби ви хочете видалити елементи з історії. Для цього спочатку потрібно ввімкнути написання історії на ходу, а не на вихід, відредагувавши ~ / .bashrc і додавши:

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

Потім, щоб видалити елементи, ви можете зробити:

history -d offset, де зміщення - це запис історії, який потрібно видалити

На основі цієї теми на форумі .


Це, здається, видалить його з файлу історії, що майже правильна ідея, але чи можна його витерти з поточного терміналу?
nacnudus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.