MacOS Catalina でデフォルトのシェルが zsh になったので、fish る
read it first
zsh を Mac のデフォルトシェルとして使う - Apple サポート
https://support.apple.com/ja-jp/HT208050
ターミナルを起動したらこんなメッセージが。
Last login: Thu Oct 10 14:40:11 on console
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
Last login: Thu Oct 10 14:40:11 on console
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
chsh -s /bin/zsh
するとメッセージは消え、デフォルトシェルは zsh に。
折角なので、fish。
fish shell
https://fishshell.com/
https://fishshell.com/docs/current/tutorial.html
macOS 用パッケージマネージャー — Homebrew
https://brew.sh/index_ja
brew install fish
正攻法で fish。
Switching to fish?
If you wish to use fish (or any other shell) as your default shell, you need to enter your new shell's executable /usr/local/bin/fish in two places:
- add /usr/local/bin/fish to /etc/shells
- change your default shell with chsh -s to /usr/local/bin/fish
You can use the following commands for this:
Add the fish shell /usr/local/bin/fish to /etc/shells with:
echo /usr/local/bin/fish | sudo tee -a /etc/shells
Change your default shell to fish with:
chsh -s /usr/local/bin/fish
(To change it back to another shell, just substitute /usr/local/bin/fish with /bin/bash, /bin/tcsh or /bin/zsh as appropriate in the steps above.)
esi@Mac-mini ~> cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
esi@Mac-mini ~> echo /usr/local/bin/fish | sudo tee -a /etc/shells
Password:
/usr/local/bin/fish
esi@Mac-mini ~> cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish
esi@Mac-mini ~> chsh -s /usr/local/bin/fish
Changing shell for esi.
Password for esi:
esi@Mac-mini ~>
フィーッシュ!
ターミナルの機能でfish。
- ターミナルのメニューから、ターミナル>環境設定
- 「プロファイル」で適当なプロファイルを選ぶ、もしくは新規作成
- 「シェル」タブの「コマンドを実行」に /usr/local/bin/fish
※ 上記は少しふざけた手順です。真面目に設定する場合は zsh を Mac のデフォルトシェルとして使う - Apple サポート の「デフォルトを変更せずに別のシェルを使う方法」に従って下さい。
※ 予期せぬトラブルを招かない為にも、/usr/local/bin に配置したシェルはアカウントのデフォルトとはせずにターミナル側で選択するのが無難かもしれません。
※ /etc/shells に /usr/local/bin/fish を加えずに、「開くシェル:」で /usr/local/bin/fish を指定した場合、ターミナルの開始行に Last login:〜 以下のメッセージが表示されず、また、ウィンドウ左上の閉じるボタンで端末を閉じようとすると、以下のような警告メッセージが表示されます。この差異は「login」コマンドを経由するかしないかで生じるものと予想します。
※ 確認しました
login -pf ユーザー名 /usr/local/bin/fish
login -pfq ユーザー名 /usr/local/bin/fish
フィーッシュ!
おまけ
fish 上の python3 で venv 仮想環境を有効化する場合
python3 -m venv ./py3env
source ./py3env/bin/activate.fish
> source ./py3env/bin/activate
./py3env/bin/activate (line 74): Missing end to balance this if statement
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
^
from sourcing file ./py3env/bin/activate
called on standard input
source: Error while reading file './py3env/bin/activate'
※ fish スクリプトは少し csh 系に似ているかも。
参考とした文献
仮想環境 - python.jp
https://www.python.jp/install/macos/virtualenv.html
venv --- 仮想環境の作成 — Python 3.7.5rc1 ドキュメント
https://docs.python.org/ja/3/library/venv.html
パワーシェる。
PowerShellをデフォルトに
brew cask install powershell
echo /usr/local/bin/pwsh | sudo tee -a /etc/shells
chsh -s /usr/local/bin/pwsh
brew cask install powershell
echo /usr/local/bin/pwsh | sudo tee -a /etc/shells
chsh -s /usr/local/bin/pwsh
参考とした文献
ログインシェルにPowerShell Coreを使う - Qiita
https://qiita.com/yumiduka/items/75c93a30696a49a5564c
※ こちらの方の記事には環境変数まわりの調整も書かれていて丁寧です。
macOS への PowerShell Core のインストール - PowerShell | Microsoft Docs
https://docs.microsoft.com/ja-jp/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-6
パワーシェルとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
https://wa3.i-3-i.info/word12683.html
Author And Source
この問題について(MacOS Catalina でデフォルトのシェルが zsh になったので、fish る), 我々は、より多くの情報をここで見つけました https://qiita.com/EarthSimilarityIndex/items/f4a7d0651347839ad162著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .