Як встановити мою оболонку за замовчуванням на Mac?


190

Я не люблю повторно вводити рибу щоразу, коли запускаю термінал. Я хочу fishввімкнути за замовчуванням. Як я можу встановити шкаралупу риби як мою оболонку за замовчуванням на Mac?

Відповіді:


31

Вони застосовні до MacOS Sierra 10.12.5 (16F73) та, ймовірно, деяких інших останніх та майбутніх версій MacOS.

  1. chshнедостатньо для зміни оболонки за замовчуванням. Переконайтесь, що ви натискаєте Command+, ,поки термінал відкритий, і змініть параметр "Оболонки відкриті з" на "Оболонка входу за замовчуванням".

  2. У випадку з bash, переконайтеся, що ви виконали, echo $BASH_VERSIONщоб підтвердити, що ви запускаєте передбачувану версію bash. bash --versionне дає точної інформації.


3
Оскільки ця відповідь є прийнятою, можливо, замість того, щоб вона була доповненням до іншої відповіді , ви можете зробити її повною відповіддю, щоб включити додаток.
Джейсон Р. Кумбс

На це зараз відповіді в документах .
reergymerej

@ JasonR.Coombs Готово.
Тушар Вазірані

1
Оновлення: Тепер ми можемо встановити оболонки по замовчуванням в Preferencesз Terminal.app . Дивіться цю відповідь від Панкая.
Василь Бурк

Я згадав комбінацію клавіш для налаштувань.
Тушар Вазірані


77

Ви можете використовувати chsh для зміни оболонки користувача.

Запустіть наступний код, наприклад, щоб змінити оболонку на Zsh

chsh -s /bin/zsh

Як описано в її довідці, і Лорін, якщо оболонка не відома під осами, ви повинні додати його в список відомого: /etc/shells.


13
Спробував і отримав chsh: /usr/local/bin/fish: non-standard shell рішення - додати його до / etc / shell, як описано нижче у відповіді @ lorin-hochstein
lmsurprenant

dbright @ PowerMac: ~ $ chsh -s / Users / dbright / sys / bin / bash Зміна оболонки для dbright. Пароль для dbright: chsh: / Users / dbright / sys / bin / bash: нестандартна оболонка dbright @ PowerMac: ~ $ ls -l / etc / shelllls -rw-r - r-- 1 кореневе колесо 179 23 вересня 2007 / тощо / оболонки
нехай яскравий

Хм, нещодавно я спробував chsh, який працював як простий користувач (але, тим не менше -s). Я скоро спробую знову.
Aif

73

З терміналу:

  1. Додайте Fish до /etc/shells, для якого знадобиться адміністративний пароль:

    sudo echo /usr/local/bin/fish >> /etc/shells
    
  2. Зробіть "Риба" оболонкою за замовчуванням за допомогою chsh:

    chsh -s /usr/local/bin/fish
    

З системних налаштувань:

  1. Користувач і групи → ctrl - натисніть Поточний користувач → Додаткові параметри ...

  2. Змініть оболонку для входу на /usr/local/bin/fish

    оболонка для входу

  3. Натисніть OK, вийдіть із системи та знову ввійдіть


8
Довелося трохи змінити крок 1. -sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
фіолетовий

Ще один спосіб зробити те саме: @purpletonic згадавecho /usr/local/bin/fish | sudo tee -a /etc/shells
mroach

20

Ось ще один спосіб зробити це:

Припустимо, що ви встановили його за допомогою MacPorts, що можна зробити, виконавши:

sudo port install fish

Ваша оболонка буде розташована в /opt/local/bin/fish.

Вам потрібно сказати OSX, що це дійсна оболонка. Для цього додайте цей шлях до кінця /etc/shellsфайлу.

Після цього ви можете змінити оболонку, перейшовши в Налаштування системи -> Облікові записи. Клацніть на Блокування, щоб дозволити зміни. Клацніть правою кнопкою миші на обліковому записі та виберіть "Додаткові параметри ...". У полі "Оболонка входу" додайте шлях до риби.


Дякую! це чудово спрацювало і зробило рибу моїм терміналом за замовчуванням всюди. просто змінивши його в терміналі, як і один з інших відповідей, зроблених терміналом, підказує мені щоразу, коли я закриваю вікно і chsh просто не працює для мене.
jasongregori

12

Єдине, що працювало для мене, - це поєднання всіх цих методів.

  1. Спершу мені довелося додати рибу до /etc/shellsфайлу

  2. Потім я побіг chsh -s /usr/local/bin/fish

  3. Нарешті я набрав Command+ ,і додав /usr/local/bin/fishтуди шлях за замовчуванням

Лише після того, як я зробив усі три речі, риба почала спливати, як за замовчуванням для нових вікон терміналів.


9

2
Я б радив віддати перевагу такому підходу, а не змінювати стандартну оболонку OSX. У мене було "нескінченне встановлення" на iWorks - наприклад, через встановлення сценаріїв, які передбачають, що у вас є сумісність із SH-оболонкою (у моєму випадку це не для ZSH).
Кібер Олівейра

8

Terminal.app > Preferences> General> Shells open with:>/bin/fish

  1. Відкрийте свій термінал і натисніть command+, (кома). Це відкриє вікно налаштувань.
  2. Перша вкладка - «Загальні».
  3. Знайдіть налаштування "Оболонки відкриті" і виберіть другий варіант, який потребує повного шляху до оболонки.
  4. Вставте посилання на вашу команду fish, яка, як правило, є /usr/local/bin/fish.

Дивіться цей знімок екрана, де zshвстановлено за замовчуванням.

скріншот введення <code> / bin / zsh </code> у налаштуваннях Terminal.app

Я використовую macOS Sierra . Також працює в macOS Mojave .


2
Нарешті! Рішення, яке працює для користувачів, які не користуються sudo!
Ебе Ісаак

7

У macOS Mojave мені довелося зробити наступне (використовуючи zsh як приклад):

brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)

Примітка: Ви можете використовувати цей точний метод і для отримання останньої версії bash. stackoverflow.com/a/55011144/117471 Я сам придумав майже такий самий код.
Бруно Броноський

1
Не потрібно встановлювати zsh. Вже присутній на macOS Mojave. У комплекті Mojave, а за замовчуванням у Каталіні.
Василь Бурк

5

Як отримати останню версію bash на сучасних macOS (тестована на Mojave).

brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)

Тоді ви готові отримати завершення вкладки у стилі vim, яке доступне лише на bash> = 4 (поточна версія в brew5.0.2

# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete

# Display a list of the matching files
bind "set show-all-if-ambiguous on"

# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"

4

chshпрограма дозволить вам змінити свою оболонку по замовчуванням. Він захоче повний шлях до виконуваного файлу, тому, якщо ваша оболонка, fishто ви хочете, щоб ви надали вихід, що дається під час введення which fish.

Ви побачите рядок, що починається з "Shell: ". Якщо ви ніколи не редагували це, швидше за все, він говорить " Shell: /bin/bash". Замініть цей /bin/bashшлях на шлях до потрібної оболонки.


4

Перебуваючи в терміналі, відкрийте налаштування терміналу, використовуючи Command+, .

На вкладці Налаштування виберіть одну з тем і виберіть вкладку оболонки праворуч.

Ви можете встановити команду автоматичного запуску fish.


4

Ця робота для мене на свіжому встановленні mac osx (sierra):

  1. Визначте поточного користувача як власника оболонок
sudo chown $(whoami) /etc/shells
  1. Додайте Рибу в / etc / shell
sudo echo /usr/local/bin/fish >> /etc/shells
  1. Зробіть "Риб" оболонкою за замовчуванням з chsh
chsh -s /usr/local/bin/fish
  1. Перевизначити корінь як власник раковин
sudo chown root /etc/shells

2
heimdall:~ leeg$ dscl
Entering interactive mode... (type "help" for commands)
 > cd /Local/Default/Users/
/Local/Default/Users > read <<YOUR_USER>>
[...]
UserShell: /bin/bash
/Local/Default/Users >

просто змініть це значення (за допомогою команди write dscl).


Я отримую цю помилку, коли запускаю читати текст: <dscl_cmd> Помилка DS: -14136 (eDSRecordNotFound)
Лео Леопольд Герц 준영

1
Так. Це тому, що leeg - це моє ім’я користувача, а не ваше: P

0

Якщо у вас виникають проблеми з іншими способами, працювали над mac Mojave, але, як правило, слід працювати.

which fish

додати вихідний шлях до "Налаштування системи> Користувачі та групи> користувач правою кнопкою миші, Додаткові параметри" Вставте результат, з якого виберіть "Оболонку входу:"


0

Щоб змінити стандартну оболонку на mac, виконайте наступне:

chsh -s <name-of-shell>

Список снарядів, на які можна вибрати:

  1. / бін / баш
  2. / bin / csh
  3. / бін / тире
  4. / бін / кш
  5. / бін / ш
  6. / бін / тч
  7. / бін / зш

тому якщо ви хочете перейти з оболонки / bin / zsh, ваша команда буде мати вигляд:

chsh -s /bin/zsh

ви можете побачити всі наявні оболонки вашої системи, запустивши:

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