Використовувати екран GNU як "оболонку" для входу


22

Який найкращий спосіб автоматичного запуску екрана, коли ви відкриваєте нову оболонку, будь-то за допомогою входу, xterm чи будь-чого іншого?

Я бачу, що найпоширеніша рекомендація полягає в тому, щоб помістити exec screenв звичайний файл оболонки rc або файл входу / профілю, але, наприклад, для tcsh, оболонки для входу запускаються .login останньою, тоді як оболонки без входу читають .cshrc останніми. Якщо я exec screenвставлю .cshrc, оболонки для входу не будуть джерелом файлу .login, а якщо я вставлю його у .login, оболонки без входу в систему не запускатимуться на екрані. Я припускаю, що з іншими снарядами є подібні проблеми.


1
Це не відповідає на питання, але варто згадати: tmux - це революційний крок від екрану і намагається бути близьким до клавіатури, сумісної з екраном. Ця сторінка документує, як її автоматично запустити з .bashrc.
datashaman

Відповіді:


19

Один із способів:

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

Зауважте, що це написано для bash, але теж має бути схожим csh. Покладіть його на .cshrcвиконання для всіх снарядів.


Інший спосіб: Ви можете просто встановити screenв якості оболонки вхід в систему /etc/passwdі поставити цей рядок у свій ~/.screenrc: (Звичайно, виправте шлях).

defshell / bin / csh

Але це може порушити програми, які виконують оболонку входу, визначену /etc/passwdдля різних команд.

( Редагувати: не забудьте додати екран до /etc/shells)


1
Раніше я не знав про змінну STY, і, переглядаючи її в посібнику з екрана, я також виявив, що ви можете виконати екран із вбудованим екраном для запуску команд у новому вікні (наприклад, "екран vi" відкриється vi в a нове вікно, без керуючої оболонки). BTW, для csh, ви б помістили його у .login файл не .cshrc, ви не хочете, щоб він запускався для "всіх" оболонок. Щось стосується bash, помістіть його у .profile або .bash_login, а не в .bashrc.
haridsv

4

Старе питання, але гугл за тією ж справою привів мене сюди, ось ось відповідь для всіх, хто натрапляє на цю сторінку.

Найкраще, що я знайшов поки що - це bybu, якщо ваш дистрибутив має його. Поставляється з можливістю запуску під час входу та контролює декілька екранів одночасно.

Ви можете від'єднатись та вийти з цього місця в одному місці, а потім увійти в той же сеанс в іншому місці.

Я вважаю, що екран чудово використовувати для запуску серверних процесів, але byobu чудово підходить для повсякденних речей.


-2

Як щодо використання chsh:

chsh /usr/bin/screen

Це встановлює оболонку входу за замовчуванням у / etc / passwd. (ти можеш це і там)


Тоді стає важко нічого робити з вашим обліковим записом, крім входу в систему. Крім того, у вашого sysadmin, ймовірно, немає екрана в / etc / shell. Також дивіться прийняту відповідь.
wfaulk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.