Wyczyść wyjście tylko ostatniego polecenia

13

Czy zamiast przewijać setki wierszy danych wyjściowych, aby wyświetlić historię poprzednich poleceń, czy dane wyjściowe ostatniego polecenia można wyczyścić? Np. Po uruchomieniu lswyczyść jego wynik, ponieważ już go nie potrzebujesz.

EDYTOWAĆ:

To nie jest zwykły clearlub ctrl+Loperacja. Chodzi o to, aby przewinąć wstecz w historii, szukając danych wyjściowych poprzedniego polecenia, ale bez konieczności przewijania ponad ładunkiem lslub lub cat, sudo apt-get installchyba że naprawdę chcę. Może to wyglądać mniej więcej tak:

cat fileIWantToRemember
ls directoryIWantToForget
# some command that wipes the output of ls
# scroll back to see the output of cat immediately
nacnudus
źródło
Czy chcesz wyczyścić dane wyjściowe, czy usunąć polecenie z historii poleceń? Jeśli chcesz zmodyfikować historię poleceń, może ten wątek dotyczy tego, czego szukasz?
ernie
Terminal po prostu wyświetla strumień tekstu i przechowuje niektóre w swoim wewnętrznym buforze. Nie ma możliwości poznania ani rozróżnienia między wynikami poleceń. Terminal rxvt-unicode ma interpreter perla, który może być w stanie zaimplementować coś takiego. Ale o ile wiem, nie zostało to zrobione.
Keith
Dawno temu używałem emulatora terminali w systemie Mac OS X, który miał tę funkcję, ale nie pamiętam już, jak się nazywa. Jednak nie było za darmo. Jednak podczas szybkiego wyszukiwania go w Google natrafiłem na finalterm.org , który wygląda na to, że próbuje zaimplementować tę funkcję. Jednak „Ostateczny termin jest intensywnie rozwijany i nie jest ani stabilny, ani ukończony!”, Więc nie próbowałem. Wygląda jednak interesująco. Wyszukiwarka google, na ile jest warta, byłaterminal emulator output folding
rici,
Ostatni termin jest wystarczająco rozbudowany, aby składać polecenia (i wiele innych niesamowitych rzeczy), a gdy jest do tego skrót klawiaturowy, problem zostaje rozwiązany.
Zaczynałem
1
nie jest to twoja dokładna odpowiedź, ale w takich przypadkach do przeglądania zawartości dużych plików używam polecenia „mniej” zamiast „cat”. Inną rzeczą jest to, że jeśli dowolne polecenie podaje na konsolę ogromną liczbę wierszy, możesz tego uniknąć, pisząc „$ the-command | less”.
Devasish

Odpowiedzi:

4

Dzięki @rici zachowanie to można nazwać „składaniem”. Wyjście poleceń nie jest zapomniane, ale można je ukryć, dopóki nie będzie potrzebne. Składanie jest powszechne w edytorach tekstu, ale wydaje się rzadkie w emulatorach terminali.

Final Term to nowy emulator terminala, który obejmuje składanie wśród wielu innych fantazyjnych sztuczek. Uwaga: „Termin końcowy jest intensywnie rozwijany i nie jest ani stabilny, ani ukończony!” Został wystarczająco rozwinięty, aby złożyć moje polecenia podczas testowania, ale zbyt niestabilny, aby nie upaść. Jeden do obejrzenia.

nacnudus
źródło
0

Myślę, że szukasz jasnego polecenia ...

clear

„wyczyść” usuwa ostatnie polecenie z widoku. Możesz przewinąć terminal w górę, aby zobaczyć go ponownie w razie potrzeby.

Justin C.
źródło
Chodzi o to, aby nie musieć przewijać go podczas przeglądania historii w poszukiwaniu czegoś innego.
nacnudus
Czy masz na myśli, że chcesz ukryć dane wyjściowe polecenia? Jeśli tak, może ci to pomóc: stackoverflow.com/questions/617182/…
phe0113 24.09.2013
2
To świetnie, jeśli nigdy nie chcę widzieć danych wyjściowych. Chcę zobaczyć wynik za pierwszym razem, a potem o nim zapomnieć. Tak więc w podanym przeze mnie przykładzie chcę z lsjakiegoś powodu sprawdzić dane wyjściowe , ale potem chcę się ich pozbyć, aby nie musiałem przewijać przeszłości, aby znaleźć dane wyjściowe kota. Oczywiście mógłbym znów zrobić kota, ale mogę sobie wyobrazić, że chcę zachować sekwencję poleceń i fajnie byłoby nie powtarzać ich wszystkich.
nacnudus
0

W trybie bash możesz nacisnąć skrót, Ctrl + Laby wyczyścić ekran, podobnie jak clearpolecenie. ( http://ss64.com/bash/syntax-keyboard.html )

Lub możesz użyć, history | tail -3aby zobaczyć trzy ostatnie polecenia. ( http://www.howtogeek.com/howto/44997/how-to-use-bash-history-to-improve-your-command-line-productivity/ )

phe0113
źródło
Zobacz mój komentarz do @Justin poniżej, chodzi o to, że nie trzeba przewijać go, przeglądając historię w poszukiwaniu czegoś innego. Coś jak HISTCONTROL=ignorespacew twoim drugim linku, którego możesz użyć po fakcie, byłoby dobrze.
nacnudus
Jestem trochę zagubiony w tym, co chcesz osiągnąć. Inna myśl, w wielu konsolach, z których korzystałem, zwykle możesz używać klawiszy strzałek, aby przeglądać historię poleceń w bash, czy to dotyczy twojej sytuacji?
phe0113
Czy moja edycja wyjaśnia pytanie?
nacnudus
@nacnudus, tak, rozumiem teraz :)
phe0113
0

Brzmi, jakbyś chciał usunąć elementy ze swojej historii. Aby to zrobić, musisz najpierw włączyć zapisywanie historii w locie, a nie po wylogowaniu, edytując ~ / .bashrc i dodając:

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

Następnie, aby usunąć elementy, możesz:

history -d offset, gdzie offset jest pozycją historii, którą chcesz usunąć

Na podstawie tego wątku na forum .

ernie
źródło
Wydaje się, że usuwa to z pliku historii, co jest prawie właściwym pomysłem, ale czy można go usunąć z bieżącego terminala?
nacnudus