ターミナルを起動するたびに魚を再入力するのは好きではありません。デフォルトでfish
をオンにします。 Macで魚のシェルをデフォルトのシェルとして設定するにはどうすればよいですか?
これらは、MacOS Sierra 10.12.5(16F73)およびおそらく他のいくつかの最近および今後のバージョンのMacOSに適用可能です。
chsh
は、デフォルトのシェルを変更するには不十分です。必ず押す Command+, 端末が開いている状態で、[シェルで開く]オプションを[デフォルトログインシェル]に変更します。
Bashの場合は、echo $BASH_VERSION
を実行して、意図したバージョンのbashを実行していることを確認してください。 bash --version
は正しい情報を提供しません。
1。Sudo nano/etc/shells
2。/ usr/local/bin/fishをシェルのリストに追加
。chsh -s/usr/local/bin/fish
chsh を使用して、ユーザーのシェルを変更できます。
たとえば、次のコードを実行して、シェルをZshに変更します
chsh -s /bin/zsh
マンページおよびLorinで説明されているように、シェルがOSによって認識されていない場合は、既知のリストに追加する必要があります:/etc/shells
。
ターミナルから:
Fishを/etc/shells
に追加します。これには管理パスワードが必要です。
Sudo echo /usr/local/bin/fish >> /etc/shells
chsh
でFishをデフォルトのシェルにします:
chsh -s /usr/local/bin/fish
システム環境設定から:
ユーザーとグループ→ctrlキーを押しながら[現在のユーザー]→[詳細オプション...]をクリックします。
ログインシェルを/usr/local/bin/fish
に変更します
[OK]を押してログアウトし、再度ログインします
これを行う別の方法を次に示します。
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
をデフォルトパスに追加しました
3つすべてを完了して初めて、魚は新しいターミナルウィンドウのデフォルトとしてポップアップし始めました。
MacOS Mojaveでは、以下を実行する必要がありました(例としてzshを使用)。
brew install zsh
Sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
/usr/local/bin/fish
であるfishコマンドへのリンクを貼り付けます。MacOS Sierraを使用しています。
ターミナルで、次を使用してターミナル設定を開きます。 Command+,。
[設定]タブで、テーマの1つを選択し、右側の[シェル]タブを選択します。
自動開始コマンドfish
を設定できます。
chsh
プログラムを使用すると、デフォルトのシェルを変更できます。実行可能ファイルへのフルパスが必要になるため、シェルがfish
の場合は、which fish
と入力したときに指定された出力を提供する必要があります。
「Shell:
」で始まる行が表示されます。編集したことがない場合、「Shell: /bin/bash
」と表示される可能性があります。その/bin/bash
パスを目的のシェルへのパスに置き換えます。
最新のmacOSでbashの最新バージョンを取得する方法(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"
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 >
その値を変更するだけです(dscl
の書き込みコマンドを使用)。
他の方法で問題が発生した場合は、Mac Mojaveで作業しましたが、通常は動作するはずです。
which 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