Uczę za pomocą konfiguracji z dwoma monitorami, więc to, co widzę na pulpicie, różni się od tego, co widzą moi odbiorcy. Działa to dobrze w przypadku prezentacji: podczas gdy uczniowie widzą slajdy, widzę swoje notatki.
Ale chcę użyć terminala do uruchomienia powłoki. Jednak terminal musi znajdować się na moim pulpicie LUB na ekranie zewnętrznym.
Czy istnieje sposób na jednoczesne wyświetlanie zawartości terminala na obu ekranach? Nie chcę odzwierciedlać ekranów, ale trzymam się trybu dwóch monitorów.
Jakieś wskazówki?
Używam Ubuntu z Gnome.
Odpowiedzi:
Przenośne rozwiązanie
Użyj
script
! Na przykład:Terminal osobisty:
Terminal prezentacyjny:
Jak to działa
script
Wszystko kopie poleceń zapisywane na ekranie terminala (w tym co piszesz!) Do pliku potrzebny jako parametr. Zwykle wszystko jest zapisywane do pliku po zakończeniu skryptu (przez wpisanieexit
). Jednak-f
opcja powodujescript
opróżnienie bufora po każdym zapisie (w systemie MacOS będzie to-F
lub-t 0
). Następnie, w terminalu prezentacji, możesz używaćtail -F
do ciągłego przeglądania treści w trakcie ich pisania.Warto zwrócić uwagę
Ponieważ jeden terminal zapisuje do pliku, a drugi czyta, można to zrobić między różnymi użytkownikami! Oznacza to, że możesz mieć kogoś ssh z bardzo małą liczbą uprawnień i tak długo, jak umieścisz plik skryptu w miejscu, które może odczytać, nadal będziesz mógł mu to przedstawić. (tzn .: jeśli masz serwer, do którego mają dostęp uczniowie, możesz utworzyć plik .scrpt, który byłby dla nich czytelny, aby mogli śledzić na własnych ekranach)
Biorąc pod uwagę charakter tej metody, jeden terminal prowadzi, a drugi tylko obserwuje.
Ta metoda ma również dodatkową zaletę polegającą na tym, że możesz łatwo przestać tworzyć kopię lustrzaną, wykonać jakąś tajną pracę i zacząć wszystko od nowa bez opuszczania osobistego terminalu. Można to zrobić za pomocą:
Terminal osobisty:
Więcej zabawy z
script
!Celem
script
jest nagranie sesji terminala, aby można ją było później odtworzyć (zdarza się, że jesteśmy szczególnym przypadkiem odtwarzania podczas nagrywania). Aby temu zaradzić,script
ma-t
opcję rejestrowania czasu wraz z treścią zapisaną na ekranie. Aby z niego skorzystać, rozpocznij sesję skryptową:I odtwarzaj (z timingiem!) Za pomocą:
Czy uczeń, który wysłał Ci e-maila z informacją, że byłby chory i nie może prowadzić wykładu? A może po prostu chcesz dać swoim studentom więcej materiałów wykładowych? Jeśli nagrasz swój głos podczas wykładu (i zaczniesz pisać scenariusz mniej więcej w tym samym czasie, co nagranie), wtedy twoi uczniowie mogą odtworzyć twoją sesję terminalową głosem i uzyskać pełne doświadczenie wykładowe!
Czy uczeń, który lubi odtwarzać wszystkie swoje filmy z prędkością 2x?
scriptreplay
bierze „dzielnik”, przez który zwielokrotnia prędkość gry! Wystarczy przejść-d 2
do gry z prędkością 2x (zauważ, że jest to podwójna wartość, więc możesz zrobić nawet-d .5
z połową prędkości!).źródło
tail
. (Myślę, żetmux
jest jeszcze lepiej w praktyce, ponieważ nie ma też problemu np. Z sesją redaktora.)tmux
iscreen
nie może, o ile mi wiadomo.tail
naprawdę robi. Jeśli spojrzysz na plik skryptu z czymś podobnymvim
lubless
zobaczysz, że dodaje brzydkie znaki ucieczki, ponieważ próbuje kontrolować przewijanie ekranu i rozmieszczanie znaków.vim
? O ile mi wiadomo, wydaje się, że działa dobrze (o ile terminal prezentacji jest większy niż terminal osobisty)Jednym eleganckim sposobem jest użycie
tmux
do tego zadania:sudo apt install tmux
. Oto przykład:Utwórz sesję o nazwie
my_session
(usuń,-d
aby dołączyć podczas tworzenia):Otwórz jedno lub więcej nowych okien terminala i dołącz do tej samej sesji:
Aby odłączyć od typu sesji:
Lub naciśnij Ctrl+b , następnie zwolnij Ctrli naciśnij d.
Aby wysłać polecenie do sesji bez dołączania się do niej:
Zauważ, że
exit
polecenie wykonane od wewnątrz zamknie sesję.źródło
Nie mogę wymyślić żadnego sposobu na bezpośrednie osiągnięcie tego, czego chcesz - być może inni mogą. Ale mogę wymyślić obejście.
Zainstaluj za
screen
pomocąsudo apt install screen
. Uruchom dwa terminale. W pierwszym wpiszscreen
i naciśnij enter na ekranie nag, który otrzymasz. W drugim wpiszscreen -x
.Skutecznie pokażą tę samą treść. To nie jest to samo okno terminala, ale będzie to ta sama treść.
Ekran może także wykonywać więcej sztuczek, takich jak wiele okien, między którymi można przełączać. To jest krótki samouczek dostępnych funkcji.
źródło
oprócz powyższej odpowiedzi pa4080 na użycie tmux, chciałbym zasugerować rozszerzoną wersję:
Spróbuj spróbować. Jest również dostępny jako pakiet Ubuntu. Chociaż może być używany jako zamiennik tmux, może zrobić więcej: mogę replikować sesję terminalową przy użyciu publicznego serwera tmate dostępnego przez ssh lub http (tylko do odczytu lub pełny udział). Uczniowie mogą więc korzystać z projekcji rzutnika lub mieć dostęp do odczytu sesji terminalu bezpośrednio w przeglądarce na komputerze osobistym / tablecie itp.
źródło
tmate
wygląda ciekawie. Oto prosta wersja demonstracyjna: youtube.com/watch?v=is_VpIx3Z4M