最近MacBookAir2020を買って,ログインシェルがzshでびっくりした.
MacBookAirの最新モデル.
元々は,岡山大学での研究室ではLinux Vine,自分の所有端末はLinux Mintを使ってて,両方でbashを基本的に使っていた.
そのためか,zshでのprofile設定がいまいちわからず,bashじゃないのに,.bash_profileと.bashrcで設定しようとしたりして,四苦八苦の上,やり方わかったけど,忘れそうなので,それの備忘録.
きっかけは,SAC(Seismic Analysis Code)というIRISの地震波解析用のパッケージを使おうと思ってたが,コマンドパスがなぜか古いバージョンに繋がってしまって,修正しようとも方法を思いつかず,やむなく,ログイン時に実行されるprofile(結局はrc)設定で,無理やりエイリアスを設定しようということだ.
SACは古いバージョンが,/usr/local/bin/sacに繋がってて(なんで?),これではうまく動かなかった.
新しいバージョンでは,/usr/local/sac/bin/sacがコマンドパスだが,どうしても先に古いバージョンの方が先に引かれてしまう(今となっては,サーチ順を環境変数で先にすれば良かった.)...
そこで,先にログインの時点で,
「新しいバージョンの方にコマンドパスが繋がるように,作ってしまえばいい」
と考えて,いつものノリで,.bash_profileと,.bashrcで設定しようとした.
だが,ログインシェルが違うと,profileも異なるのは当たり前で,うまくいかなかった.
そこで,調べてみると,zshでは,
.zprofile
.zshrc
が基本的なzshのprofileのようだった.
ps.
以下は,SACも含めた解説.
詳細は,SAC for MACOS XのREADMEを参照.
SACを動かすには,Xquartzを入れておくと良い(波形などの出力はデフォルトでXquartz).
その上でSAC for Mac OS Xの中身をルートディレクトリのどこかにコピーしておく.
大体は,/usr/local/sac/というディレクトリを作っておいて,そこにコピーする.
必ず,このSACディレクトリにPATHを繋げておく.
$cp (SAC for MacOS X) /usr/local/sac/
#SAC for MacOS XはIRISからもらえるファイル
その後,bashの環境ではbashrc,zsh環境ではzshrcに以下を記述.
export SACHOME=/usr/local/sac/
. ${SACHOME}bin/sacinit.sh
export SACAUX=${SACHOME}/aux/
この後,
$. ~/.zshrc
を実行して,
$${SACHOME}/bin/sac/ #SACの実行ファイル
とやると,とりあえずうまくいく.
毎回zshrcを実行して,これするのは面倒なので,再びzshrcを開いて,
alias sac="${SACHOME}bin/sac"
と記述し,~/.zprofileに以下を記述.
if [ -fi ~/.zshrc ]; then
. ~/.zshrc
fi
これで,
$. ~/.zprofile
を実行すると,以降
$sac
だけで,SACが使える.