Aby rozwinąć to, co powiedział Ansgar w przypadku, gdy nie jesteś zbyt zaznajomiony z ekranem GNU, posiadanie wielu „okien” w sesji jednego ekranu prawdopodobnie spełni twoje oczekiwania.
ctrl+ a, cutworzy nowe „okno” w aktywnej sesji ekranu. Możesz przełączać się między wieloma oknami (jak wskazano w Ansgar) za pomocą ctrl+ a, ndla następnego okna i ctrl+ a, pdla poprzedniego okna.
ctrl+ a, "wyświetli listę wszystkich otwartych okien.
Korzystanie z tych prostych skrótów pozwala szybko i łatwo przełączać się między różnymi terminalami, osiągając cel bez konieczności korzystania z wielu sesji ekranowych.
Jeśli dodasz następujący wiersz do ~ / .screenrc, zawsze wyświetli on twoje otwarte okna i które z nich jest zaznaczone, więc nie musisz śledzić, w którym oknie zapamiętasz.
hardstatus alwayslastline '%{= kg}[ %{G}%H %{g}][%= %{= kB}%?%-Lw%?%{+b r}(%{G}%n*%f %t%?(%u)%?%{r})%{-b B}%?%+Lw%?%?%= %{g}%]'
Jest to linia hardstatus, której lubię używać, ale można ją całkowicie dostosować (zobacz stronę podręcznika man lub wyszukaj w Google hasło „gnu screen hardstatus”).
Jest mnóstwo innych rzeczy, które możesz z tym zrobić (na przykład nazywając różne otwarte okna), więc warto przeczytać kilka samouczków.
Oto kilka, które znalazłem dzięki szybkiemu wyszukiwaniu:
http://news.softpedia.com/news/GNU-Screen-Tutorial-44274.shtml
http://www.ibm.com/developerworks/aix/library/au-gnu_screen/
I oczywiście najbardziej przydatne ze wszystkich:
# From your terminal:
$ man screen
Mam nadzieję, że to pomaga.
Mateusz
^a
na coś innego, więc nie jest śmiesznie denerwujące korzystanie z edycji linii w stylu emacsa w bash, cokolwiek innego. Używam^t
.To, co mówią inni, jest poprawne. Chcę tylko wspomnieć, że
tmux
jest alternatywą dlascreen
. Mają bardzo podobne polecenia.Zarówno
screen
itmux
oferują wiele okien dla działającej sesji, a to jest chyba to, co chcesz.tmux
dodatkowo oferuje przechodzenie między wieloma sesjami (każda z nich ma własne okna). Bardzo rzadko byś tego potrzebował.Oto kilka linków do dokumentacji ekranu i kursu awaryjnego na temat tmux .
źródło
Po tak długim czasie stworzyłem skrypt, aby obejść tę całkowicie brakującą funkcję. Po pierwsze potrzebuje piątki:
Ten nazwany potok jest użyteczny do komunikacji między odłączoną sesją a sesją „Main-without-screen”.
Plik sc (w $ PATH):
Przykładem „CONFIGFILE” jest: ~ / .screen / Monitorrc
Wynik jest następujący: gdy chcesz uruchomić typ ekranu:
lub inną sesję, którą lubisz wymyślać, używam Session Work do różnych rzeczy
Np .: ~ / .screen / Workrc
Teraz jesteśmy w Monitorze sesji, kiedy piszemy:
Monitor sesji odłącza się i zapisuje „Work” na nazwanej rurze. W związku z tym pierwszy skrypt sc idzie do przodu i dołącza sesję „Work”.
Sc wywołany z Monitora sesji zamknij.
Kiedy odłączamy wszystkie sesje, jesteśmy w nieskończonej pętli, więc musimy nacisnąć Ctrl-c, aby wyjść.
źródło
Możesz to zrobić za pomocą prostego skryptu powłoki, takiego jak
Załóżmy, że masz kilka otwartych ekranów. Załóżmy również, że masz je sklasyfikowane jako praca i dane.
Aplikując
screen -ls
, powinieneś mieć takie ekranyTeraz pozwala izolować odłączone ekrany za pomocą
grep
.Powinieneś dostać coś takiego
Teraz pozwala wybrać te, które chcesz (np. Dane), ponownie za pomocą
grep
.Spowoduje to odizolowanie tylko ekranów danych. Możesz zmienić słowo kluczowe grep za pomocą wyrażeń regularnych, aby wyszukiwać, aby dostosować wyszukiwanie.
Na szczęście wynik jest dobrze skonstruowany i rozdzielany tabulatorami. Teraz pozwala podzielić kolumny na pola i wybrać 2. pole za pomocą
cut
.Będziesz musiał nacisnąć,
ctrl+v
a następnie Tab, aby wstawićtab
parametr za separatorem-d
. Wyniki powinny być takie.Teraz spakuj to do polecenia, używając
...
cudzysłowów i zapętlaj wyniki w ten sposób. Zawsze sprawdzaj sformułowane polecenia 1. przed ich uruchomieniem. użyłemecho screen -r
Jeśli wszystko pójdzie dobrze, spróbuj tego bez
echo
.Voila Każdy ekran, z którego się odłączysz, prowadzi do następnego.
Miłego pokazu !!
źródło
Napisałem skrypt węzła, który pozwala użytkownikowi wybrać sesję ekranu, do której chcesz dołączyć z listy, używając klawiszy strzałek. Zrobiłem to pakiet npm. Możesz to sprawdzić tutaj: screen-command . Lub po prostu
npm i -g screen-command
wypróbuj, zakładając, że masz już plik node.js. Po zainstalowaniu pakietu użyj polecenia,sc
aby przywołać listę ekranów.Mam nadzieję, że ułatwi to przejście do dokładnie tego ekranu, który chcesz.
źródło