Зміна оболонки за замовчуванням у Linux [закрито]


317

Як можна змінити оболонку за замовчуванням? В envданий час команда говорить:

SHELL=/bin/tcsh

і я хочу змінити це на Баша.


4
Це гарне запитання, але це може бути більш доречним для сайту QA Linux.
BradleyDotNET

6
встановити його в / etc / passwd
resultsway

Відповіді:


414

Спробуйте команду linux chsh .

Детальна команда - chsh -s /bin/bash. Він запропонує ввести свій пароль. Ваша оболонка для входу за замовчуванням /bin/bashзараз.Ви повинні вийти з системи та увійти знову, щоб побачити ці зміни.

На сторінці man цитується наступне:

Команда chsh змінює оболонку входу користувача. Це визначає ім'я початкової команди для входу користувачів. Звичайний користувач може змінити оболонку входу для власного облікового запису, а суперпользователь може змінити оболонку входу для будь-якого облікового запису

Ця команда назавжди змінить оболонку входу за замовчуванням.

Примітка: Якщо ваш обліковий запис користувача віддалений, наприклад, при автентифікації Kerberos (наприклад, Enterprise RHEL), ви не зможете ним користуватися chsh.


10
chsh: can only change local entries; use ypchsh instead. Тоді у ypchsh немає жодного -sваріанту
mahmood

10
@ShaktiMalik Я вважаю, що файл налаштування є /etc/passwd, але я не перевіряв його двічі.
Summer_More_More_Tea

30
Ви повинні вийти з системи та увійти знову, щоб побачити ці зміни.
Ніл Трафт

22
У моєму випадку я мав кореневий доступ, але не хотів возитися з будь-якими конфігураціями на фактичному хості. Я додав exec /bin/bashдо ~/.profileцього, і це дозволило мені увійти безпосередньо в bash, не змінюючи сервера. (Первісна оболонка за замовчуванням була якраз /bin/sh)
Пол Нельсон Бейкер

2
@BCqrstoO Дякую за це. Але що робити, якщо ви набираєте exitbash? Чи будете ви виходити з сервера безпосередньо або просто вийти з bash і в sh та інший, exitнеобхідний для виходу з сервера?
Summer_More_More_Tea

148

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

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

Потім вийдіть і увійдіть


8
Можливо, добре спробувати спробувати, which bashперш ніж викликати вищевказану команду; ваш пробіг може відрізнятися залежно від місця розташування. У моєму випадку це було знайдено у/bin/bash
Мартін Хаберлі

Я також можу додати, що chshкоманда є частиною util-linuxпакету; і chsh -s $(which bash) $USERмає бути таким же, як і вище.

Також є -lваріант: «роздрукувати список снарядів».
Betlista

3
це було chsh -s /bin/bash usernameдля мене
Сальваторелаб

Дякую! Це допомогло мені, намагаючись змінити його для іншого користувача
Tobias

18

У вас /etc, мабуть /etc/skeleton, має бути "скелет" , можливо , або перевірити налаштування за замовчуванням/etc/default чи щось. Це сценарії, які визначають стандартні змінні середовища, що встановлюються під час входу.

Якщо це лише для вашого власного облікового запису: перевірте (прихований) файл ~/.profileі ~/.login. Або генерувати їх, якщо вони не існують. Вони також оцінюються за допомогою процесу входу.


5
Плюс 1 - конкретно відповісти на питання (THE Shell Shell). У Red Hat Linux вказано в/etc/default/useradd
geedoubleya

@geedoubleya Чи можете ви вказати, в чому різниця в стандартній оболонці та оболонці входу?
Betlista

1
Привіт @Betlista Оболонка за замовчуванням - це оболонка, яка використовується для оболонки для входу нових користувачів, коли вони створені, якщо конкретна оболонка не вказана як аргумент.
geedoubleya
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.