Usa lo schermo GNU come login "shell"


22

Qual è il modo migliore per far funzionare automaticamente lo schermo quando si apre una nuova shell, tramite login, xterm o altro?

Vedo che la raccomandazione più comune è quella di inserire exec screenil file rc o login / profile della shell normale, ma per esempio, tcsh, le shell di login eseguono .login last, mentre le shell non-login leggono .cshrc per ultimo. Se inserisco exec screen.cshrc, le shell di accesso non genereranno il file .login e se lo inserisco in .login, le shell non di accesso non eseguiranno lo schermo. Presumo che ci siano problemi simili con altre shell.


1
Questo non risponde alla domanda, ma vale la pena menzionarlo: tmux è un rivoluzionario passaggio dallo schermo e cerca di essere vicino alla tastiera compatibile con lo schermo. Questa pagina documenta come avviarlo automaticamente da .bashrc.
datashaman,

Risposte:


19

Un modo è:

# if $STY is not set...
if [ -z "$STY" ]; then
    exec screen -ARR
fi

Nota che questo è scritto per bash, ma dovrebbe essere simile cshanche per . Mettilo .cshrcper essere eseguito per tutte le shell.


Un altro modo: puoi semplicemente impostare screencome shell di login in /etc/passwdsé e mettere questa linea sul tuo ~/.screenrc: (Correggi il percorso, ovviamente.)

defshell / bin / csh

Ma ciò potrebbe interrompere i programmi che eseguono la shell di accesso definita /etc/passwdper vari comandi.

( Modifica: non dimenticare di aggiungere lo schermo a /etc/shells)


1
Non sapevo prima della variabile STY, e mentre cercavo nel manuale dello schermo, ho anche scoperto che puoi eseguire lo schermo con lo schermo interno per eseguire i comandi in una nuova finestra (ad esempio, "schermo vi" aprirà vi in ​​un nuova finestra, senza shell di controllo). A proposito, per csh, lo inseriresti nel file .login non .cshrc, non vuoi che funzioni per "tutte" le shell. Samething si applica a bash, inseriscilo in .profile o .bash_login, non in .bashrc.
Haridsv,

4

Vecchia domanda, ma cercare su Google la stessa cosa mi ha portato qui, quindi ecco una risposta per chiunque altro che si imbatte in questa pagina.

La cosa migliore che ho trovato finora è byobu se la tua distribuzione lo ha. Viene fornito con un'opzione per eseguire l'accesso e controlla più schermate contemporaneamente.

È possibile scollegare e disconnettersi da una posizione, quindi accedere alla stessa sessione in un'altra posizione.

Trovo che lo schermo sia ottimo da usare per eseguire i processi del server, ma byobu è ottimo per le cose di tutti i giorni.


-2

Che ne dici di usare chsh:

chsh /usr/bin/screen

Questo imposta la shell di login predefinita in / etc / passwd. (potresti farlo anche lì)


Quindi diventa difficile fare qualsiasi cosa con il tuo account oltre all'accesso. Inoltre, il tuo amministratore di sistema probabilmente non ha lo schermo in / etc / shells. Inoltre, vedi la risposta accettata.
wfaulk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.