Utilisez l'écran GNU comme connexion "shell"

Quelle est la meilleure façon d'afficher automatiquement l'écran lorsque vous ouvrez un nouveau shell, que ce soit par login, xterm ou autre chose?

Je vois que la recommandation la plus courante est de mettre l' exec screen dans le fichier rc ou login / profil de votre shell régulier, mais pour, par exemple, tcsh, les shells de connexion s'exécutent .login en dernier, tandis que les shells non-connectés lisent .cshrc last. Si je place l' exec screen dans .cshrc, les shells de connexion ne seront pas source du fichier .login, et si je l'ai mis dans .login, les shells non-login ne fonctionneront pas sur l'écran. Je présume qu'il existe des problèmes similaires avec d'autres shells.

    L'une des façons est:

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

    Notez que ceci est écrit pour bash , mais devrait être similaire pour csh . Mettez-le sur .cshrc pour être exécuté pour tous les shells.


    Une autre façon: vous pouvez simplement configurer l' screen comme votre shell de connexion dans /etc/passwd lui-même, et mettre cette ligne sur votre ~/.screenrc : (Fixez le chemin, bien sur.)

      Defshell / bin / csh 

    Mais cela peut interrompre les programmes qui exécutent l'arborescence de connexion définie dans /etc/passwd pour diverses commandes.

    ( Modifier: N'oubliez pas d'ajouter l'écran à /etc/shells )

    Une ancienne question, mais le googling pour la même chose m'a amené ici, alors voici une réponse pour toute autre personne qui trébuche sur cette page.

    La meilleure chose que j'ai trouvé jusqu'à présent est byobu si votre distro l'a. Livré avec une option à exécuter à la connexion et contrôle plusieurs écrans à la fois.

    Vous pouvez vous déconnecter et vous déconnecter en un seul endroit, puis vous connecter à la même session à un autre endroit.

    Je trouve que l'écran est génial à utiliser pour exécuter les processus du serveur, mais byobu est idéal pour les choses de tous les jours.

    Que diriez-vous d'utiliser chsh:

    chsh /usr/bin/screen

    Cela définit le shell de connexion par défaut dans / etc / passwd. (Vous pourriez le faire là aussi)