web-dev-qa-db-ja.com

Macでデフォルトのシェルを設定する方法は?

ターミナルを起動するたびに魚を再入力するのは好きではありません。デフォルトでfishをオンにします。 Macで魚のシェルをデフォルトのシェルとして設定するにはどうすればよいですか?

これらは、MacOS Sierra 10.12.5(16F73)およびおそらく他のいくつかの最近および今後のバージョンのMacOSに適用可能です。

  1. chshは、デフォルトのシェルを変更するには不十分です。必ず押す Command+, 端末が開いている状態で、[シェルで開く]オプションを[デフォルトログインシェル]に変更します。

  2. Bashの場合は、echo $BASH_VERSIONを実行して、意図したバージョンのbashを実行していることを確認してください。 bash --versionは正しい情報を提供しません。

26
Tushar Vazirani

1。Sudo nano/etc/shells enter image description here

2。/ usr/local/bin/fishをシェルのリストに追加 enter image description here

。chsh -s/usr/local/bin/fish

217
user391339

chsh を使用して、ユーザーのシェルを変更できます。

たとえば、次のコードを実行して、シェルをZshに変更します

chsh -s /bin/zsh

マンページおよびLorinで説明されているように、シェルがOSによって認識されていない場合は、既知のリストに追加する必要があります:/etc/shells

71
Aif

ターミナルから:

  1. Fishを/etc/shellsに追加します。これには管理パスワードが必要です。

    Sudo echo /usr/local/bin/fish >> /etc/shells
    
  2. chshでFishをデフォルトのシェルにします:

    chsh -s /usr/local/bin/fish
    

システム環境設定から:

  1. ユーザーとグループ→ctrlキーを押しながら[現在のユーザー]→[詳細オプション...]をクリックします。

  2. ログインシェルを/usr/local/bin/fishに変更します

    login Shell

  3. [OK]を押してログアウトし、再度ログインします

65
Paolo Moretti

これを行う別の方法を次に示します。

MacPortsでインストールしたと仮定すると、次のようにして実行できます。

Sudo port install fish

シェルは/opt/local/bin/fishに配置されます。

これが有効なシェルであることをOSXに伝える必要があります。これを行うには、/etc/shellsファイルの最後にこのパスを追加します。

これが完了したら、[システム環境設定]-> [アカウント]に移動してシェルを変更できます。変更を許可するには、ロックをクリックします。アカウントを右クリックして、「詳細オプション...」を選択します。 [ログインシェル]フィールドで、魚へのパスを追加します。

20
Lorin Hochstein

私のために働いた唯一のものは、これらすべての方法の組み合わせでした。

  1. 最初に/etc/shellsファイルに魚を追加する必要がありました

  2. それからchsh -s /usr/local/bin/fishを実行しました

  3. 最後に、私はタイプしました Command+, /usr/local/bin/fishをデフォルトパスに追加しました

3つすべてを完了して初めて、魚は新しいターミナルウィンドウのデフォルトとしてポップアップし始めました。

11
quaintm
9
Gumbo

MacOS Mojaveでは、以下を実行する必要がありました(例としてzshを使用)。

brew install zsh
Sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
7
MagicDude4Eva
  1. ターミナルを開いて押します command+, (コンマ)。これにより、設定ウィンドウが開きます。
  2. 最初のタブは「一般」です。
  3. 「Shells open with」設定を見つけて、シェルへの完全なパスが必要な2番目のオプションを選択します。
  4. 一般に/usr/local/bin/fishであるfishコマンドへのリンクを貼り付けます。

MacOS Sierraを使用しています。

5
Pankaj

ターミナルで、次を使用してターミナル設定を開きます。 Command+,

[設定]タブで、テーマの1つを選択し、右側の[シェル]タブを選択します。

自動開始コマンドfishを設定できます。

4
holsety

chshプログラムを使用すると、デフォルトのシェルを変更できます。実行可能ファイルへのフルパスが必要になるため、シェルがfishの場合は、which fishと入力したときに指定された出力を提供する必要があります。

Shell:」で始まる行が表示されます。編集したことがない場合、「Shell: /bin/bash」と表示される可能性があります。その/bin/bashパスを目的のシェルへのパスに置き換えます。

4
rejj

最新の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"
3
Bruno Bronosky
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の書き込みコマンドを使用)。

2
user23743

他の方法で問題が発生した場合は、Mac Mojaveで作業しましたが、通常は動作するはずです。

which fish

出力パスを「システム環境設定>ユーザーとグループ>ユーザーを右クリック、詳細オプション」に追加します。結果を「ログインシェル」に貼り付けます。

0
SLuck

これは、mac osx(sierra)の新規インストールで動作します。

  1. 現在のユーザーをシェルの所有者として定義する
Sudo chown $(whoami) /etc/shells
  1. / etc/shellsに魚を追加します
Sudo echo /usr/local/bin/fish >> /etc/shells
  1. ChshでFishをデフォルトのシェルにする
chsh -s /usr/local/bin/fish
  1. シェルの所有者としてルートを再定義する
Sudo chown root /etc/shells
0