Як змінити з csh на bash як оболонку за замовчуванням


34

У мене є cshмоя оболонка за замовчуванням, як показано на echo $SHELL. Я хочу перейти на bashсвою оболонку за замовчуванням. Я спробував наступні підходи безрезультатно:

  1. З chshя отримую:

    chsh: can only change local entries; use ypchsh instead.
  2. З ypchshя отримую:

    ypchsh: yppasswdd not running on NIS master host ("dcsun2").

У мене є тільки .chsrcв домашньому каталозі, і я не можу знайти жодних .profileфайлів у /etc. Як я можу змінити свою оболонку за замовчуванням на bash?


4
Це може бути корисно знати, для якого типу ви є Unix.
enzotib

Відповіді:


44
  1. Переконайтесь, що ви bashвстановлені.

  2. Дізнайтеся місце розташування bash:

    which bash

    або

    whereis bash

    Нижче я припускаю місце розташування /bin/bash.

    а) Якщо у вас є адміністративні права, просто запустіть як root:

    usermod -s /bin/bash YOUR_USERNAME

    (замінюючи YOUR_USERNAMEсвоїм іменем користувача).

    б) Якщо у вас немає адм. прав, ви все одно можете просто запуститись bash --loginпри вході, поставивши нижній рядок в кінці свого .cshrcабо .profile(у вашому домашньому каталозі):

    setenv SHELL /bin/bash
    exec /bin/bash --login

2б. Перевірте, чи bashвказано /etc/shellsправильний шлях.
манатура

@manatwork Це було б актуально для 2a , а не 2b. І корисно лише в дивному / зламаному налаштуванні системи для визначення того, чому рішення не працює.
rozcietrzewiacz

1
1. SHELL = / bin / bash дає команду не знайдено помилки. 2. Ваше рішення дає мені башмачну оболонку як підказку. Але це не змінює мою оболонку входу. Дякую за допомогу, хоча.
Сумод

1
Ось що я зробив для вирішення цього питання. 1. exec / bin / bash --login у файлі .cshrc 2. встановити SHELL = / bin / bash, а потім експортувати SHELL у файл / etc / profile. Спасибі.
Сумод

2
Ах, вибачте - я мав на увазі перший рядок export SHELL=/bin/bash. Насправді є кращий спосіб - див. Оновлення.
rozcietrzewiacz

13

Зверніться до системного адміністратора. Він налаштував речі неправильно. Якщо ви системний адміністратор, ви налаштували речі неправильно.

Повідомлення про помилку виглядає досить прямо вперед. У вас не yppasswdпрацює на dcsun2. Вона повинна бути.

Але при швидкому пошуку в Google виходить такий результат, який вказує на те, що ви отримаєте цю помилку, якщо yppasswdбуде запущено і на клієнті, і на сервері. У цьому випадку вимкніть його на клієнті.


Якщо ви застрягли в csh як оболонці для входу, ви все одно можете змусити його викликати bash під час входу. Помістіть у свою команду наступні команди ~/.login(див. Також Зміна оболонки за замовчуванням без привілеїв chsh чи адміністратора ):

sleep 2
if (-x /usr/local/bin/bash) then
  exec /usr/local/bin/bash -l
endif

При необхідності замініть /usr/local/bin/bashправильним шляхом. Якщо все працює, видаліть sleep 2(що ставить затримку, під час якої можна натиснути, Ctrl+Cщоб перейти до csh-підказки, у випадку, якщо щось піде не так).

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