schermo, l'utility Linux che consente di avviare uno 'schermo'’ dentro un terminale, è di default un po' mal configurato. Scopri come creare un fantastico profilo dello schermo che si carica automaticamente ogni volta che usi lo schermo.
Che cos'è schermo?
Lo schermo è un'utilità GNU (GNU è una grande raccolta di software open source, e il loro raggruppamento in un sistema operativo è comunemente noto come Linux) che ti consente di avviare una o più schermate all'interno del tuo terminale.
Potresti chiedere perché vorrei avviare una schermata nel mio terminale, e può impostare schermo meglio / più lontano? Sicuro. Immagina di utilizzare un server SSH remoto e, All'improvviso, la tua connessione di rete è interrotta, proprio nel bel mezzo della migrazione del database o del backup della produzione, che era in esecuzione all'interno della finestra del terminale. Succede regolarmente, e il problema è che qualsiasi comando che era in esecuzione quando la connessione è stata interrotta è ora terminato, indipendentemente dallo stato in cui ti trovavi.
Questa situazione chiaramente fastidiosa è quella che vuoi evitare a tutti i costi.. Non solo puoi lasciare il sistema o il pacchetto software in uno stato indefinito, ma tutto il lavoro svolto finora può semplicemente essere perso.
benvenuto a screen
, l'utility Linux che consente di avviare una sessione di terminale virtuale (un ‘schermo') all'interno della tua sessione terminale, con il principale e grande vantaggio che detta sessione dello schermo non verrà terminata ogni volta che la connessione di rete viene interrotta, o quando chiudi la sessione del terminale che ha avviato il screen
sessione (la procedura del genitore). Puoi semplicemente aspettare che la tua connessione di rete ritorni, o apri un altro terminale se non sei connesso tramite SSH e lavori solo sulla macchina locale, e riconnettiti alla sessione dello schermo.
Eccellente? Installiamo velocemente schermo poi, se non l'hai ancora fatto:
installazione schermo
Installare schermo sulla tua distribuzione Linux basata su Debian / apt (come Ubuntu e Mint), esegui il seguente comando nel tuo terminale:
sudo apt install screen
Installare schermo sulla tua distribuzione Linux basata su RedHat / Yum (come RHEL, Centos e Fedora), esegui il seguente comando nel tuo terminale:
sudo yum install screen
Ora che lo schermo è installato, puoi iniziare a usarlo subito. Corri screen
nella riga di comando e sei già dentro. Potrebbe essere necessario premere invio o spazio per passare attraverso il screen
Schermata di benvenuto.
Vedrai un nuovo prompt dei comandi. Premere la sequenza di tasti CTRL+a
> CTRL+d
per tornare al prompt dei comandi della sessione principale della shell. Quindi, può eseguire screen -ls
per visualizzare un elenco di sessioni schermo attive. Scrivi il comando (nella shell principale in cui ti trovi ora se hai seguito il testo in modo identico), screen -d -r
ti riporterà a screen
sessione, fintanto che c'è solo una sessione di schermo attiva (può iniziare molti).
Se c'è più di una sessione dello schermo in esecuzione sul tuo sistema (ed è sua proprietà), puoi digitare screen -d -r NAME
dove NAME
è il nome di una schermata secondo l'elenco screen -ls
, come esempio 367434.pts-1.roel1
, anche se specifichi solo una parte prima o dopo il punto (Che cosa 367
oh pts
), che identifica ancora in modo univoco una particolare sessione dello schermo, è anche abbastanza.
Vediamo come possiamo ora impostare un ottimo profilo dello schermo, basato su un estratto da setup_server.sh, situato nel repository GitHub di Percona-QA (Con licenza GPLv2), uno script creato per configurare un server per i test QA. Non consiglio di eseguire questo script, visto che è obsoleto, è usato solo come riferimento e, generalmente, eseguire manualmente passo dopo passo. L'unica sezione che useremo è la .screenrc
codice, riprodotto di seguito.
Definire una grande configurazione .screenrc
il .screenrc
Il file è un file di configurazione nascosto nella tua directory home. Per modificarlo (probabilmente non esiste ancora, soprattutto se hai appena installato screen
, usa il tuo editor di testo preferito e apri il file ~/.screenrc
. Se hai esperienza con Vim, puoi semplicemente digitare il prompt del terminale vi ~/.screenrc
. Si desea obtener más información sobre Vi / Vim, considere leer nuestro post Establecer un excelente perfil de Vim usando .vimrc.
Una vez que hayas abierto ~/.screenrc
, simplemente agregue el siguiente bloque de texto:
# Configuración general vbell en vbell_msg '! Bell!' autodetach en startup_message off defscrollback 10000 # Termcapinfo para xterm termcapinfo xterm * Z0 = E[?3h:Z1=E[?3io:is=E[rE[mE[2JE[HE[?7hE[?1;4;6io # Do not resize window termcapinfo xterm* OL=1000 # Increase output buffer for speed # Remove various keyboard bindings bind x # Do not lock screen bind ^x # Idem bind h # Do not write out copy of screen to disk bind ^h # Idem bind ^ # Do not kill all windows/exit screen bind . # Disable dumptermcap # Add keyboard bindings bind } history bind k kill
If you do not want to use a text editor, or want to somehow script the installation of this .screenrc
file into many systems, you could use the following code instead, which will – whenever pasted, or executed from another script, create the file ~/.screenrc
for the user who is executing the script. Let’s call our script make_screenrc.sh
or similar.
#!/cestino/bash # Create screen script ~/.screenrc touch ~/.screenrc if [ -Insieme a "$(cat ~/.screenrc|grep 'termcapinfo xterm')" ]; después cat << EOF> ~ / .screenrc # Configuración general vbell on vbell_msg '! Bell!' autodetach on startup_message off defscrollback 10000 # Termcapinfo for xterm termcapinfo xterm * Z0 = E[? 3h: Z1 = E[? 3io: is = E[r E[m E[2J E[H E[ ? 7h E[? 1; 4; 6io # No cambiar el tamaño de la ventana termcapinfo xterm * OL = 1000 # Incrementar el búfer de salida para la velocidad # Quitar varios links de teclado enlazar x # No bloquear link de pantalla ^ x # Idem enlazar h # Non scrivere una copia dello schermo sul collegamento del disco ^ h # Idem enlazar ^ # Non uccidere tutte le finestre / esci dalla connessione dello schermo. # Termine di disabilitazione invalidante # Aggiungi collegamenti di associazione della tastiera} storia legare k uccidere EOF fi
Lo script preimposta una serie di impostazioni, e la maggior parte di quelli mostrati qui sono autoesplicativi. Come esempio, startup_message off
basta spegnere la schermata iniziale che abbiamo visto prima. defscrollback 10000
imposta il nostro scorrimento all'indietro su 10000 Linee (può accedere alla modalità di scorrimento / modifica premendo la sequenza di tasti CTRL+a
> CTRL+ESC
e si può quindi uscire premendo una o due volte ESC).
Attiviamo anche un campanello virtuale (poiché non possiamo sentire l'altoparlante emettere un segnale acustico da un server remoto) usando il vbell on
e vbell_msg '!Bell!'
comandi che configurano il messaggio della campana virtuale in '!Bell!'
. Nonostante questo, Ho scoperto che la cappa virtuale spesso non funziona.
Prossimo, stabiliamo alcuni termcapinfo
codici per espandere il buffer di output e regolare la dimensione della finestra. Inoltre abbiamo rimosso diverse combinazioni di tasti potenzialmente fastidiose e aggiunto alcune utili impostazioni della tastiera.
Tutto quello che faremo per attivare questa novità .screenrc
l'impostazione è quella di aprire un nuovo screen
sessione. Ora beneficeremo della nuova configurazione stabilita.
Fine
Definire un grande difetto .screenrc
il file aiuta quando lo usi screen
tanto. Disattiva la schermata iniziale, aumentare lo scorrimento all'indietro e migliorare il buffer di output per la velocità sono solo alcune delle cose che abbiamo fatto nel nostro .screenrc
modello. Divertiti a utilizzare lo schermo e il modello .screenrc!!