czy istnieje sposób na zapisanie tego, co jest wydrukowane na ekranie za pomocą ekranu GNU?

9

Lubię zapisywać wszystko, co robię w wierszu polecenia, na przykład, gdy coś aktualizuję i chcę przeczytać, jak przebiegła aktualizacja itp.

Zwykle w systemie Mac OSX i terminalu możesz przewijać tyle, ile chcesz, i zapisywać za pomocą Cmd-S. Ale kiedy korzystam z SSH za pomocą ekranu GNU, nie mogę przewijać bezpośrednio z terminala.

Jak mogę zapisać na dysku wszystko, co dzieje się w sesji ekranowej? Może domyślnie (każda sesja automatycznie tworzy plik na dysk ...)

dzięki!

luca
źródło

Odpowiedzi:

7

Jest funkcja logowania screen. Uruchom go, gdy zaczniesz screenod zrobienia screen -L(lub od wewnątrz screen). Lub też od wewnątrz screenmożesz nacisnąć Ctrl- a : H.

Jeśli chcesz mieć domyślne logowanie, dodaj następujący wiersz do swojego ~/.screenrcpliku:

deflog on

Możesz ustawić nazwę pliku, używając czegoś takiego:

logfile /tmp/screenlog.%n
Wstrzymano do odwołania.
źródło
1
Może nie należy go przechowywać na / tmp, ponieważ zwykle jest czyszczony przy ponownym uruchomieniu (np. Z powodu awarii zasilania).
maxelost
@maxelost: To coś do rozważenia. To był tylko przykład. Chodziło o to, aby dołączyć katalog bezwzględny, ponieważ domyślnym zachowaniem jest utworzenie pliku dziennika w bieżącym katalogu. Ponadto screensesje (nawet te odłączone) nie przetrwają restartu.
Wstrzymano do odwołania.
2

Opcja 1: Sprawdź polecenie skryptu. „skrypt człowieka”

„Skrypt tworzy maszynopis wszystkiego wydrukowanego na twoim terminalu. Jest przydatny dla studentów, którzy potrzebują wydrukowanej sesji interaktywnej sesji jako dowodu zadania, ponieważ plik maszynopisu można wydrukować później za pomocą lpr”

Zasadniczo wpisz „skrypt” (bez cudzysłowów) - wykonaj swoją pracę i wpisz polecenie exit, aby zakończyć sesję.

Opcja 2: Użyj trybu „papierowej kopii” ekranu. „Crtl-a”, a następnie „h” Spowoduje to zapisanie bieżącej sesji do pliku.

Uwaga: Ekran GNU ma możliwość przewijania. Użyj „crtl-]” (prawy nawias kwadratowy), aby przejść do trybu kopiowania, a następnie „ctrl-b” i „ctrl-f”, aby przesunąć p i jednocześnie stronę w dół.

Sirex
źródło
1

Będziesz chciał skorzystać z operacji „log”, zwykle związanej z Ctrl-a H. Spowoduje to otwarcie nowego pliku o nazwie screenlog. N gdzie N jest numerem okna. Jeśli plik istnieje, dane wyjściowe są dołączane do pliku. Wszystkie dane wyjściowe w tym oknie są rejestrowane w dzienniku ekranu. Plik N , aż dezaktywujesz, naciskając Ctrl-a Hponownie. Możesz również uzyskać tę funkcjonalność za pomocą Ctrl-a :log. Możesz zmienić nazwę za pomocą logfile {filename}polecenia. Plik zostaje umieszczony w katalogu, w którym ekran został uruchomiony po raz pierwszy, ale można go zmienić za pomocą komendy logfile lub za pomocą chdir [{directory}].

Pamiętaj, że nie jest to to samo, co wydruk, czy bufor przewijania. Jest to ta sama funkcjonalność, co program script (1), ale jest powiązany z jednym oknem i bez wywoływania nowego programu.

Jeśli chcesz zapisać całą zawartość bufora przewijania, użyj Ctrl-a ] g <space> G <space> Ctrl-a :writebuf Spowoduje to zapisanie bufora przewijania w pliku / tmp / screen-exchange. jeśli chcesz zapisać tylko część, zmień „g” i „G” na inne klawisze ruchu.

Arcege
źródło