filele atunci când se utilizează „screen (Unix, Ecran Gnu)

Mellon a intrebat.

Eu folosesc Ubuntu 10.04. După ce am instalat screen:

sudo apt-get install screen

Am făcut două ssh conexiuni la două servere de la distanță, făcând pas cu pas următoarele lucruri (fac următorii pași în funcție de documentul de aici):

1. deschideți o fereastră terminală, rulați comanda screen

2. apăsați Ctrl+A+c pentru a crea o nouă consolă virtuală

3. ssh [email protected]

În acest moment, am o consolă virtuală care arată că m-am conectat la serverul la distanță (IP1).

4. Apăsați Ctrl+A+c pentru a crea o nouă consolă virtuală

5. ssh [email protected]

Deci, acum m-am conectat la două servere la distanță (IP1 & IP2). Dar, , nu am două file pe o singură fereastră de terminal, în schimb, trebuie să folosesc Ctrl+A+p și Ctrl+A+n pentru a comuta între cele două console virtuale din o singură dată fereastră de terminal.

Nu-i așa că, folosind screen, , aș putea avea două file într-o singură fereastră de terminal, fiecare filă afișând câte o conexiune la un server la distanță. De ce nu am tabs în fereastra terminalului meu?

5 răspunsuri
nicerobot

Aici este .screenrc pe care îl folosesc peste tot pentru a-mi vedea screen numere ca file în partea de jos a ferestrei și o linie informativă deasupra filele. Partea de care aveți cu adevărat nevoie se află la rubrica „aspect și aspect”.

# 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

Ați putea adăuga în plus următoarele pentru a adăuga automat două file atunci când screen este creat inițial:

screen ssh [email protected]
screen ssh [email protected]

De asemenea, conținutul statutului poate fi actualizat folosind coduri de evacuare emise de comenzile și instrucțiunile din shell. De exemplu, actualizez statusul cu directorul curent folosind acest lucru în aplicația mea .bashrc:

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

Comentarii

  • Întotdeauna m-am întrebat de ce este nevoie invariabil de o configurație dură pentru a face ca ecranul să nu fie nașpa pentru a lucra cu el. P.S. Încercați shelltitle "$ |shell:" pentru a adăuga numele comenzii la titlu. –  > Por amphetamachine.
Hanan N.

Când apăsați Ctrl+a și " puteți vedea „filele” de pe ecran, acestea nu ar trebui să fie file în interfața grafică a terminalului, puteți face asta manual, creând o nouă filă în interfața grafică a terminalului pe care o utilizați și apoi rulați în noua filă. screen -r pentru a vă întoarce la sesiunea de ecran și apoi navigați la sesiunea dorită cu Ctrl+a și un număr sau " pentru a vedea un meniu cu toate filele.

Puteți da un nume fiecăreia dintre „filele” de pe ecran apăsând tasta Ctrl + a apoi A .

Comentarii

  • Ar trebui să fie necesar să se execute screen -r -x dacă ecranul respectiv este deja atașat în prima filă. –  > Por Arcege.
Nikodemus RIP

Cred că confunzi filele de pe terminalele grafice precum konsole cu cele din screen. În screen se schimbă doar conținutul unei ferestre cu ajutorul combinațiilor ^A menționate. acest lucru funcționează și într-un mediu negrafic.

Httqm

Știu că este destul de vechi, dar din moment ce Google m-a condus aici, poate și alții vor citi asta. Deci, iată hack-ul meu de 0,02 dolari pentru a imita filele în cadrul unei sesiuni „ecran” :

Construiți o linie de stare cu :

  • pe partea stângă : data / ora
  • în partea dreaptă: numele gazdei locale + încărcarea medie
  • în mijloc: numele „ferestrelor” ecranului
    • fereastra curentă : text roșu pe fond negru
    • alte ferestre : text alb pe linia de stare pe culoarea de fundal (albastru, aici)

Puneți în ~/.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}]"

(Poate că asta valorează mai mult de 0,02 dolari, pentru că m-am chinuit destul de mult timp cu asta 😉

Pentru a trece de la fereastra curentă la cea anterioară / următoare cu F6 / F7 tastele :

bindkey -k k6 prev
bindkey -k k7 next

enzotib

Ați putea configura screen pentru a afișa o linie de stare care vă poate informa despre multe lucruri, presupun că și despre fereastra de ecran în care vă aflați, dar eu nu folosesc o linie de stare, așa că nu pot spune cu siguranță.

Din câte știu eu, screen nu creează tab-uri, ci trebuie să treci de la un ecran la altul cu comanda indicată de tine, sau cum prefer eu CtrlA 1, , CtrlA 2, , etc.

Pentru a avea mai mult de o filă, puteți utiliza gnome-terminal caracteristici, de asemenea fără ecran: CtrlShiftT va crea o nouă filă, iar Alt1, , Alt2, , etc. va comuta între file.

De asemenea, întreb de ce nu rulați screen pe server, deci folosind o singură conexiune ssh (dar în acest caz fără nici o filă).