zakładki podczas korzystania z „ekranu”


20

Używam Ubuntu 10.04. Po zainstalowaniu screen:

sudo apt-get install screen

Wykonałem dwa połączenia ssh z dwoma zdalnymi serwerami, wykonując następujące czynności krok po kroku (wykonuję następujące kroki zgodnie z dokumentem tutaj ):

1. otwórz okno terminala, uruchom poleceniescreen

2. Naciśnij Ctrl+ A+, caby utworzyć nową konsolę wirtualną

3) ssh usr@IP1

W tym momencie mam jedną wirtualną konsolę, która pokazuje, że podłączyłem się do zdalnego serwera (IP1).

4. Naciśnij Ctrl+ A+, caby utworzyć nową wirtualną konsolę

5 ssh usr@IP2

Więc teraz podłączyłem się do dwóch zdalnych serwerów (IP1 i IP2). Ale , nie mam dwie karty w jednym oknie terminala, zamiast, mam do wykorzystania Ctrl+ A+ pi Ctrl+ A+ n, aby przełączać między dwoma wirtualnej konsoli w jednym oknie terminala.

Czy nie jest tak, że używając screen, mógłbym mieć dwie zakładki w jednym oknie terminala, z których każda wyświetla jedno połączenie z jednym zdalnym serwerem. Dlaczego nie mam zakładek w oknie terminala?

Odpowiedzi:


26

Oto moje, .screenrcktórego używam wszędzie, aby zobaczyć moje screenliczby jako tabulatory u dołu okna i linię informacyjną nad kartami . Część, której naprawdę potrzebujesz, to „wygląd i styl”.

# skip the startup message
startup_message off

# go to home dir
chdir

# Automatically detach on hangup. 
autodetach on

# Change default scrollback value for new windows
defscrollback 10000

# start with visual bell as default
vbell on
vbell_msg "bell on %t (%n)"

# look and feel
caption always "%{= bb}%{+b w}%n %t %h %=%l %H %c"
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"

activity "Activity in %t(%n)"

shelltitle "shell"
shell -$SHELL

Możesz dodatkowo dodać następujące elementy, aby automatycznie dodać dwie zakładki podczas screentworzenia:

screen ssh usr@IP1
screen ssh usr@IP2

Ponadto zawartość statusu można aktualizować za pomocą kodów ucieczki wydanych z poleceń powłoki i monitów. Na przykład aktualizuję status w bieżącym katalogu, używając tego w moim .bashrc:

if [ 'screen' == "${TERM}" ]; then
  export PROMPT_COMMAND='printf "\e]2;%s %s\a" "${USER}" "${PWD}" '
fi

4
Zawsze zastanawiałem się, dlaczego niezmiennie wymaga trochę hardkorowej konfiguracji, aby ekran nie był do kitu. PS Spróbuj shelltitle "$ |shell:"dodać nazwę polecenia do tytułu.
amfetamachina

7

Kiedy naciśniesz Ctrl+ ai "zobaczysz ekran „zakładki”, nie powinny to być zakładki w terminalowym interfejsie GUI, możesz to zrobić ręcznie, tworząc nową kartę w używanym terminalowym interfejsie GUI, a następnie uruchamiając przy nowym tab, screen -raby powrócić do sesji ekranowej, a następnie przejdź do żądanej sesji za pomocą Ctrl+ ai numeru lub, "aby wyświetlić menu ze wszystkimi kartami.

Każdemu z was można nadać nazwę „kartom”, naciskając Ctrl +, a a następnie A .


1
Należy uruchomić, screen -r -xjeśli ten ekran jest już dołączony w pierwszej zakładce.
Arcege

3

Wydaje mi się, że mylicie karty na terminalach graficznych, takich jak konsola, z tymi na ekranie. Na ekranie zmieniasz tylko zawartość okna ze wspomnianymi kombinacjami A-A. Działa to również w środowisku nie graficznym.


2

Możesz skonfigurować screenwyświetlanie linii stanu, która może poinformować cię o wielu rzeczach, przypuszczam także, w którym oknie ekranu jesteś, ale nie używam linii statusu, więc nie mogę tego powiedzieć na pewno.

Z tego co wiem, screennie twórz zakładek, ale musisz przełączać się między ekranami za pomocą wskazanego polecenia lub, jak wolę Ctrl- A 1, Ctrl- A 2itp.

Aby mieć więcej niż jedną kartę, możesz korzystać z gnome-terminalfunkcji, także bez ekranu: Ctrl- Shift- Tutworzy nową kartę, a Alt- 1, Alt- 2itd. Przełączy się między kartami.

Pytam również, dlaczego nie uruchamiasz screena na serwerze, więc używając tylko jednego połączenia ssh (ale w tym przypadku bez żadnej karty).


2

Wiem, że to dość stare, ale skoro Google mnie tu zaprowadził, inni też mogą to przeczytać. Oto mój hack 0,02 $ naśladujący karty w sesji „screen”:

Zbuduj linię statusu za pomocą:

  • po lewej stronie: data / godzina
  • po prawej stronie: nazwa hosta lokalnego + średnie obciążenie
  • w środku: nazwy ekranu „windows”
    • bieżące okno: czerwony tekst na czarnym tle
    • inne okna: biały tekst w kolorze tła linii statusu (niebieski, tutaj)

Wstaw ~/.screenrc:

hardstatus alwayslastline "%{kb}%{c}[%{w}%D %d/%m/%Y %c:%s%{c}] %{w}%-w%{rk}%n %t%{wb}%+w %=%{c}[%{W}%H %l%{c}]"

(Może to jest warte więcej niż 0,02 $, ponieważ walczyłem nad tym dość długo ;-)

Aby przełączyć się z bieżącego okna do poprzedniego / następnego za pomocą klawiszy F6/ F7:

bindkey -k k6 prev
bindkey -k k7 next
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.