Jak mogę wyświetlić więcej mojej historii w Screen w systemie Linux?

54

W ciągu nocy uruchamiałem skrypty z wiersza poleceń (wewnątrz ekranu w instancji Linux EC2) i wystąpiły błędy, których nie śledziłem. Chcę „przewinąć w górę” lub wyświetlić więcej historii na ekranie, ale nie mogę znaleźć żadnych poleceń, które mogłyby działać.

Muszę zobaczyć wyjście na ekranie „dalej” niż na obecnym ekranie. CTRL + a powinien wprowadzić mnie w tryb przewijania w ekranie, ale nie działa.

T. Brian Jones
źródło
history | less, more? Czy pytasz, jak zachować więcej historii?
historyzachowa tylko polecenia zostały uruchomione w powłoce. Bardziej pyta o rejestrowanie takich rzeczy
<Shift>+ <PgUp>jest jedyną opcją. I ma też pewien limit (chyba 500 ostatnich linii).
ssapkota
Muszę zobaczyć wyjście na ekranie „dalej” niż na obecnym ekranie. CTRL + a powinien wprowadzić mnie w tryb przewijania w ekranie, ale nie działa dla mnie.
T. Brian Jones
1
Właśnie Ctrl-ato screen„s ucieczki. Cała sekwencja klawiszy, aby przejść do trybu przewijania, byłaby Ctrl-a [, jak mówi opyate. Ctrl-a ESCdziała również dla mnie, nie pamiętam, który jest standardowy / powszechnie używany.
ninjalj

Odpowiedzi:

32

Po uruchomieniu ekranu możesz określić rozmiar bufora przewijania za pomocą opcji -h, aby zwiększyć go z domyślnej wartości 100 linii. Jednak przy aktualnie uruchomionym ekranie, gdy dane opuściły bufor, znikają.

William Pursell
źródło
3
To jest po prostu źle. Odpowiedź @opyate zawiera rozwiązanie
nirvana-msu
6
@ nirvana-msu Użycie ^ a, aby przejść do trybu przewijania, umożliwia przewijanie bufora przewijania w górę. Jeśli dane już zniknęły z bufora przewijania, zniknęły. Możesz zwiększyć rozmiar tego bufera podczas uruchamiania. Jak myślisz, co dokładnie w mojej odpowiedzi jest nieprawidłowe? Mówię o zwiększeniu rozmiaru bufora przewijania, opyate podaje szczegółowe informacje na temat korzystania z niego.
William Pursell,
2
Cóż, ok, choć tak naprawdę nie chodziło o rozszerzenie bufora przewijania. Autor chciał wyświetlić więcej historii niż to, co zwykle pokazuje konsola, i można wyświetlić więcej historii za pomocą Ctrl+a+[. Twoja odpowiedź sprawia wrażenie, jakby to było niemożliwe, co wprowadza w błąd.
nirvana-msu
To nie działa na komputerze Mac. Inne odpowiedzi też nie działają.
Ben
76

Zakładając, że nie zastąpiłeś sekwencji ucieczki, możesz nacisnąć, Ctrl-a [aby przejść do trybu przewijania, a następnie użyć zwykłego Page-UP / Page-DOWN lub Ctrl-b / Ctrl-f, aby przejść w górę i w dół.

Z wiki Gentoo na temat korzystania z ekranu

opyate
źródło
7
i ESC, aby wyjść z trybu przewijania, IIRC
ninjalj
teraz gentoo wiki to: wiki.gentoo.org/wiki/Screen
Rmatt
zobacz także ten post, aby dowiedzieć się, jak przewijać myszą. Nazwa postu mówi o tmuxie, ale obejmuje także ekran
JonnyRaa
2
Ctrl+ A, Escrównież wchodzi w tryb kopiowania / przewijania.
Serge Stroobandt,
7

Możesz także uruchomić swoje polecenia w scriptpoleceniu, które zapisze dane wyjściowe na dysku. Lub możesz: command 2>&1 | tee /tmp/cmd.outaby zapisać dane wyjściowe do przyszłego dochodzenia, chciałeś (praktycznie) nieskończonej wielkości historii wyników.

Seth Robertson
źródło
tego właśnie użyłem do swojego zadania. Działa świetnie. Dzięki.
T. Brian Jones
6

Muszę zobaczyć wyjście na ekranie „dalej” niż na obecnym ekranie. CTRL + a powinien wprowadzić mnie w tryb przewijania w ekranie, ale nie działa.

W uzupełnieniu innych odpowiedzi pragnę podkreślić, że możesz dodać w swoim ~/.screenrcpliku:

defscrollback 100000
termcapinfo xterm ti@:te@

gdzie:

  • defscrollback 100000: ustaw domyślną liczbę linii przewijania na 100000
  • termcapinfo xterm ti@:te@: zezwól na przewijanie terminala w Xterm lub PuTTY. ( FAQ ekranu ; FAQ PuTTY )
Franck Dernoncourt
źródło
Nie działa na komputerze Mac. Żadna z odpowiedzi tu nie działa. Nadal widzę rozmiar okna terminala. Dalej jest tylko screenpolecenie i rzeczy, które zrobiłem przed ekranem. Próbowałem również screen -h, ten sam wynik. Jakieś pomysły?
Ben
@Ben przepraszam, nie mam pojęcia, próbowałem tylko na Ubuntu.
Franck Dernoncourt
1
Ach, to działa z control+, aa następnie ESCjestem w stanie przewijać kursor wewnątrz tekstu. Nie działa przewijanie za pomocą myszy za pomocą suwaków terminala Mac z boku. Dzięki!
Ben
5

Możesz także zmienić rozmiar historii przewijania na uruchomionym ekranie za pomocą sekwencji CTRL-a :(przejdź do trybu wiersza poleceń na ekranie), a następnie, scrollback 10000jeśli chcesz 10 000 linii bufora historii. Zmiana obowiązuje natychmiast.

Uważaj na zużycie pamięci, jeśli używasz wielu ekranów z bardzo długimi buforami.

Jednak, jak powiedział @William Pursell, z aktualnie uruchomionym ekranem, gdy dane opuściły bufor, zniknęły.

Saïmonn
źródło
0

W zależności od używanego programu terminalowego zwykle można zmienić bufor przewijania w Ustawieniach. Wiem, że xtermnajpierw musisz włączyć przewijanie, a potem możesz ustawić bufor na nieskończoność.

Najlepszym rozwiązaniem dla skryptów rejestrujących byłoby jednak przekierowanie standardowego wyjścia do pliku:

ScriptName >> OutputFile.txt

W ten sposób możesz swobodnie przewijać i wyszukiwać, a także prowadzić rejestr (np. Na wypadek awarii komputera).

EDYCJA: Jest to zbliżone do powyższego rozwiązania rurociągów, jednak przekierowanie standardowego wejścia może być przydatne również w innych przypadkach:

grep linux stackoverflow.txt > linuxquestions.txt

lub

cat linuxquestions.txt | grep buffersize > bufferquestions.txt

źródło
Zauważ, że screen(1)nie pozwala na przewijanie terminala. To zarówno jedna z jego głównych cech, jak i jedna z głównych wad.
sarnold
@sarnold Możliwe jest zezwolenie na przewijanie terminala, patrz superuser.com/a/1336554/116475
Franck Dernoncourt
0

Używając terminala macOS nie byłem w stanie użyć suwaków z boku, aby zobaczyć historię tekstu.

Byłem w stanie przewijać kursor wewnątrz tekstu za pomocą i po naciśnięciu CRTL+, aa następnie ESC.

Musiałem to dodać, ~/.screenrcaby umożliwić przewijanie myszy z poziomu okna (wciąż nie z suwakami):

termcapinfo xterm* ti@:te@
Ben
źródło