Я не люблю повторно вводити рибу щоразу, коли запускаю термінал. Я хочу fish
ввімкнути за замовчуванням. Як я можу встановити шкаралупу риби як мою оболонку за замовчуванням на Mac?
Я не люблю повторно вводити рибу щоразу, коли запускаю термінал. Я хочу fish
ввімкнути за замовчуванням. Як я можу встановити шкаралупу риби як мою оболонку за замовчуванням на Mac?
Відповіді:
Вони застосовні до MacOS Sierra 10.12.5 (16F73) та, ймовірно, деяких інших останніх та майбутніх версій MacOS.
chsh
недостатньо для зміни оболонки за замовчуванням. Переконайтесь, що ви натискаєте Command+, ,поки термінал відкритий, і змініть параметр "Оболонки відкриті з" на "Оболонка входу за замовчуванням".
У випадку з bash, переконайтеся, що ви виконали, echo $BASH_VERSION
щоб підтвердити, що ви запускаєте передбачувану версію bash. bash --version
не дає точної інформації.
Preferences
з Terminal.app . Дивіться цю відповідь від Панкая.
1. sudo nano / тощо / оболонки
2. додайте / usr / local / bin / fish до вашого списку раковин
3. chsh -s / usr / local / bin / fish
Shell open with: Default login shell
налаштування Terminal.app
Ви можете використовувати chsh для зміни оболонки користувача.
Запустіть наступний код, наприклад, щоб змінити оболонку на Zsh
chsh -s /bin/zsh
Як описано в її довідці, і Лорін, якщо оболонка не відома під осами, ви повинні додати його в список відомого: /etc/shells
.
chsh: /usr/local/bin/fish: non-standard shell
рішення - додати його до / etc / shell, як описано нижче у відповіді @ lorin-hochstein
-s
). Я скоро спробую знову.
З терміналу:
Додайте Fish до /etc/shells
, для якого знадобиться адміністративний пароль:
sudo echo /usr/local/bin/fish >> /etc/shells
Зробіть "Риба" оболонкою за замовчуванням за допомогою chsh
:
chsh -s /usr/local/bin/fish
З системних налаштувань:
Користувач і групи → ctrl - натисніть Поточний користувач → Додаткові параметри ...
Змініть оболонку для входу на /usr/local/bin/fish
Натисніть OK, вийдіть із системи та знову ввійдіть
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
echo /usr/local/bin/fish | sudo tee -a /etc/shells
Ось ще один спосіб зробити це:
Припустимо, що ви встановили його за допомогою MacPorts, що можна зробити, виконавши:
sudo port install fish
Ваша оболонка буде розташована в /opt/local/bin/fish
.
Вам потрібно сказати OSX, що це дійсна оболонка. Для цього додайте цей шлях до кінця /etc/shells
файлу.
Після цього ви можете змінити оболонку, перейшовши в Налаштування системи -> Облікові записи. Клацніть на Блокування, щоб дозволити зміни. Клацніть правою кнопкою миші на обліковому записі та виберіть "Додаткові параметри ...". У полі "Оболонка входу" додайте шлях до риби.
Єдине, що працювало для мене, - це поєднання всіх цих методів.
Спершу мені довелося додати рибу до /etc/shells
файлу
Потім я побіг chsh -s /usr/local/bin/fish
Нарешті я набрав Command+ ,і додав /usr/local/bin/fish
туди шлях за замовчуванням
Лише після того, як я зробив усі три речі, риба почала спливати, як за замовчуванням для нових вікон терміналів.
Preferences
> General
> Shells open with:
>/bin/fish
/usr/local/bin/fish
.Дивіться цей знімок екрана, де zsh
встановлено за замовчуванням.
Я використовую macOS Sierra . Також працює в macOS Mojave .
У macOS Mojave мені довелося зробити наступне (використовуючи zsh як приклад):
brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
zsh
. Вже присутній на macOS Mojave. У комплекті Mojave, а за замовчуванням у Каталіні.
Як отримати останню версію bash на сучасних macOS (тестована на Mojave).
brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)
Тоді ви готові отримати завершення вкладки у стилі vim, яке доступне лише на bash> = 4 (поточна версія в brew
5.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"
chsh
програма дозволить вам змінити свою оболонку по замовчуванням. Він захоче повний шлях до виконуваного файлу, тому, якщо ваша оболонка, fish
то ви хочете, щоб ви надали вихід, що дається під час введення which fish
.
Ви побачите рядок, що починається з "Shell:
". Якщо ви ніколи не редагували це, швидше за все, він говорить " Shell: /bin/bash
". Замініть цей /bin/bash
шлях на шлях до потрібної оболонки.
Перебуваючи в терміналі, відкрийте налаштування терміналу, використовуючи Command+, .
На вкладці Налаштування виберіть одну з тем і виберіть вкладку оболонки праворуч.
Ви можете встановити команду автоматичного запуску fish
.
Ця робота для мене на свіжому встановленні mac osx (sierra):
sudo chown $(whoami) /etc/shells
sudo echo /usr/local/bin/fish >> /etc/shells
chsh -s /usr/local/bin/fish
sudo chown root /etc/shells
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
).
Якщо у вас виникають проблеми з іншими способами, працювали над mac Mojave, але, як правило, слід працювати.
which fish
додати вихідний шлях до "Налаштування системи> Користувачі та групи> користувач правою кнопкою миші, Додаткові параметри" Вставте результат, з якого виберіть "Оболонку входу:"
Щоб змінити стандартну оболонку на mac, виконайте наступне:
chsh -s <name-of-shell>
Список снарядів, на які можна вибрати:
тому якщо ви хочете перейти з оболонки / bin / zsh, ваша команда буде мати вигляд:
chsh -s /bin/zsh
ви можете побачити всі наявні оболонки вашої системи, запустивши:
cat /etc/shells