OSXでは、Fishシェルをデフォルトのシェルとして使用しようとしています。 Brewを使用してフィッシュシェルをインストールしましたが、それを追加しようとすると/etc/shells
次のエラーが発生します。
tee: /etc/shells: No such file or directory
これは私が使用するコマンドラインです:
echo "usr/local/bin/fish" | sudo tee -a /etc/shells
源泉:https://hackercodex.com/guide/install-fish-shell-mac-ubuntu/
私に何の問題もあるのか$PATH
?
ベストアンサー1
あなたがやっていることは間違っています。chsh
ユーザーのシェルを変更するには、このコマンドを使用する必要があります。
$ chsh -s /usr/local/bin/fish
OSX
/etc/shells
OSXでは、明らかにこの質問で述べたようにファイルに追加する必要があります。OS XはFishをデフォルトのシェルに設定することを拒否します(Homebrewを介してインストールされます)#989。
これを行うには、次のコマンドを実行して次の場所に追加する必要があります/etc/shells
。
$ echo "/usr/local/bin/fish" | sudo tee -a /etc/shells
これにより、ファイルは次のように表示されます。
$ 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/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/bash
/usr/local/bin/fish
上記の操作を完了した後にchsh -s ...
コマンドを再試行すると、正常に動作します。
なぜ?
問題はfish
インストール方法に関連しているようです。を使用すると、に正しく追加されるbrew install fish
可能性が高くなります。他の方法でインストールした場合は、ファイルにエントリとして追加されないことがあります。fish
/etc/shells
fish
/etc/shells
マイナーな問題
場合によっては、権限/etc
自体が問題になる可能性があります。
$ ll /etc
lrwxr-xr-x@ 1 root wheel 11B Jan 26 2016 /etc -> private/etc
$ ll -d private/etc/
drwxr-xr-x 96 root wheel 3.2K Jul 12 18:53 private/etc/
これらの権限は許可されますが、そうでない場合は、次のように変更できます。
$ sudo mount -uw /
$ sudo chmod a+x private/etc
上記の変更を適用すると、これがchsh -s ...
機能します。