2

Я пытаюсь использовать rc в качестве оболочки для входа в систему в Ubuntu (используя chsh). Я заметил, что он не читает файл $ HOME/.rcrc при запуске. Документация гласит, что если вызываться как оболочка входа в систему либо с * argv [0] == '-', либо с флагом -l, он читает файл .rcrc, и я могу это проверить, выполнив его напрямую с помощью $ rc -l . или из zsh ARGV0=-rc /usr/bin/rc .

Однако, когда выполняется при входе в систему, он не читает файл .rcrc, и вывод ps указывает, что имя оболочки это просто "rc", а не "-rc". Таким образом, мой вопрос, как получить /usr /bin /rc для чтения .rcrc при запуске? и почему Ubuntu не ставит префикс "-" к оболочке? Есть ли другой способ обнаружения оболочки - это оболочка входа в систему?

1 ответ1

2

Эмуляторы терминала Linux в графическом интерфейсе обычно не открывают оболочки входа по умолчанию, в отличие, например, от терминала OS X.

Если вы нажмете Ctrl Alt F1 и войдете в систему в командной строке, у вас будет оболочка входа в систему, чьи команды .rcrc будут выполнены.


В терминале Ubuntu перейдите в « Редактирование»> «Настройки профиля» »« Заголовок и команда »» Выполнить команду в качестве оболочки для входа.

В качестве альтернативы, ваш эмулятор терминала может поддерживать выполнение произвольной команды. Используйте /usr/bin/rc -l .


Вы также можете создать короткий скрипт, который просто запускает rc как оболочку входа в систему:

#!/bin/bash
exec -l /usr/bin/rc "$@"

Это запустит bash для выполнения скрипта, и скрипт полностью заменит его на rc вызываемый в качестве оболочки входа в систему (аргумент -l ), а также все остальные аргументы этого скрипта. Вы также можете добавить аргумент -c для очистки среды.

Сохраните как /usr/bin/rcl , сделайте исполняемым и добавьте соответствующую запись в /etc/shells .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .