自分的メモ

 
今、デスクトップカスタマイズができるGeektoolにハマっていて、その延長でシェルスクリプトも少しだけ嗜んでおります。
 
その際にひっかかったことや、忘れそうなことのメモ。
 
 
 
 
まず、基本の環境設定
 

  • ログイン毎に自動でPATHを通す

新しく作ったコマンドにログイン後毎回PATHを通すのは実用的ではないので、作ったスクリプトを放り込む用のディレクトリをどっかに置いて、それへのPATHをログインと同時に読み込むように設定。
 
ホームディレクトリ配下の.bash_profileや.bashrcに
export PATH=$PATH:~
の1行を加えればOK。
ちなみに両者の違いは、
.bash_profile→各ユーザーがログインした時のみbashが読み込む。
.bashrc→bashが新たに起動するたびに読み込む。
 
自分のホームには.bash_profileがなかった。新たに作成してもいいと思うが、とりあえず元々あった.bashrcにPATHを加えてみた。しかし、ターミナルを再起動して
$ echo $PATH
してみると、PATHが加えられていなかった。原因はわかってません。
めんどくさいので、/etc/profile→全てのユーザーに共通の設定を記述する場所、にPATHを書き加えたところ、ちゃんとPATHが通った。とりあえずはこれでいい。
 
 
 
スクリプトを書くときにハマったこと
 

ネットからパクってくるときに、miで開いたスクリプトファイルにコピペし保存、その後
$chmod +x スクリプトのファイル名
$ sh ~
で、「: bad interpreter: そのようなファイルやディレクトリはありません」的なエラーが出た。原因は、miで作ったファイルの文字コードがダメだったみたい。viで開くと、改行が文字化けしていたので、それを直すとちゃんと動きました。
 

  • 拡張子

シェルスクリプトの拡張子は普通.shだが、.shはつけなくてもいいみたい。ただ、ぱっと見て他のスクリプトと区別が付きにくくなる。
 
 
 
その他
 

  • macのFinder上で不可視ファイルを表示させる

ターミナル上で全てを操作する程慣れても居ないので、ファイルを探す時などはFinderを使ってしまいがち。その時不可視ファイルが見えないとむかつくので。
 
ターミナル上で
$ defaults write com.apple.finder AppleShowAllFiles true
その後
$ killall Finder
で再起動。これでOK。
元に戻すときは、
$ defaults write com.apple.finder AppleShowAllFiles false
 
特に、猥褻電子図書館を不可視にしている人は元に戻すのを忘れないこと。