/etc/login.conf and ~/.cshrc
現在のFreeBSDデフォルトの.cshrcには次のような部分がある。
# These are normally set through /etc/login.conf. You may override them here # if wanted. # set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin) # setenv BLOCKSIZE K # A righteous umask # umask 22
すなわち、この部分で書かれていることはコメントアウトされているが、通常は/etc/login.confによって設定されるから書く必要はないよ、もしサイトポリシーである/etc/login.confと異なる設定をする場合には、コメントをとって設定してね、という意味だと理解できる。
/etc/login.confを確認すると、
default:\ ... :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ ... :path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin ~/bin:\ ... :umask=022:
という感じに書かれている。だから、~/.cshrcにはset pathを書かなくても~/binにパスが通ると思う。しかし、それほど単純ではないようだ。
外部からログインした場合は、/etc/login.confの中身が正しく設定されて、~/binにパスが通っているが、MateのTerminalを開いた場合、
% echo $path /sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin
と設定されており、~/binにパスが通っていない状態になる。
これは、MateのTerminalの設定で「ログインシェルとしてコマンドを実行する」にチェックを入れても解決しない。
したがって、現時点では~/.cshrcの3行についてコメントをとって、
# These are normally set through /etc/login.conf. You may override them here # if wanted. set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin) setenv BLOCKSIZE K # A righteous umask umask 22
のようにして使用するのが便利だと思う。