Изменение оболочки по умолчанию в Linux

267

Как можно изменить оболочку по умолчанию? Команда env настоящее время говорит:

SHELL=/bin/tcsh

и я хочу изменить это на Bash.

  • 4
    Это хороший вопрос, но он может быть более подходящим для сайта Linux QA.
  • 4
    установите его в / etc / passwd
Теги:
tcsh
environment

3 ответа

356
Лучший ответ

Попробуйте команду Linux chsh.

Подробная команда: chsh -s/bin/bash. Вам будет предложено ввести пароль. Ваша стандартная оболочка для входа сейчас /bin/bash. Вы должны выйти и снова войти в систему, чтобы увидеть это изменение.

Следующее цитируется со страницы руководства:

Команда chsh изменяет оболочку входа пользователя. Это определяет имя команды начального входа пользователя. Обычный пользователь может изменить оболочку входа только для своей учетной записи, суперпользователь может изменить оболочку входа для любой учетной записи.

Эта команда навсегда изменит оболочку входа в систему по умолчанию.

Примечание. Если ваша учетная запись удалена, например при аутентификации Kerberos (например, Enterprise RHEL), вы не сможете использовать chsh.

  • 0
    Как сделать его постоянным? У меня нет доступа к sudo
  • 0
    @mahmood Это навсегда изменит оболочку входа по умолчанию.
Показать ещё 11 комментариев
136

Вы можете изменить файл passwd непосредственно для конкретного пользователя или использовать следующую команду

chsh -s /usr/local/bin/bash username

Затем выйдите из системы и войдите в систему

  • 7
    Вероятно, хорошая идея, чтобы попробовать, which bash прежде чем вызывать вышеуказанную команду; Ваш пробег может варьироваться в зависимости от местоположения. В моем случае это было найдено в /bin/bash
  • 0
    Я также могу добавить, что команда chsh является частью util-linux ; и chsh -s $(which bash) $USER должен привести к тому же результату, что и выше.
Показать ещё 3 комментария
15

У вас должен быть "скелет" где-то в /etc, возможно, /etc/skeleton или проверить настройки по умолчанию, возможно, /etc/default или что-то еще. Это скрипты, которые определяют стандартные переменные среды, которые устанавливаются во время входа в систему.

Если это только для вашей собственной учетной записи: проверьте (скрытый) файл ~/.profile и ~/.login. Или сгенерируйте их, если они не существуют. Они также оцениваются процессом входа в систему.

  • 5
    Плюс 1 за конкретный ответ на вопрос (Оболочка по умолчанию). В Red Hat Linux это указано в /etc/default/useradd
  • 0
    @geedoubleya Можете ли вы указать, в чем разница по умолчанию и логин оболочки?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню