読者です 読者をやめる 読者になる 読者になる

ポジローぽけっと

昨日より今日、今日より明日を信じて、トライトライ

GNU coreutils

事の発端は、lsしたときにディレクトリとファイルを色分けで表示したいと思ったことだった。けれどもls --colorで実行かけてもそんなの知らないよと蹴られるので、ググったらmac(BSD系)とGNU Linuxでは実装が異なるコマンドがあるらしい事が分かった。今回はそれに引っかかったらしい。なので今後の為にGNU Linuxのコマンドを使えるようにする。

sudo port install coreutils

でインストール。porticusからも可能。以後GNU Linuxのコマンドはgを頭につけて実行すれば良い。例:ls→gls
で、最初の目的を今後永続的に使うためには.bashrcで

alias ls="gls --color"

とする。

しかしながら後で先輩と喋ったらそんな事しなくてもlsのマニュアル見ろよ!と。ls -Gでカラライズドじゃ、と言われました。ハイそうですよね、こんなこと実装が違うだけで無いわけないですよね。orz.
さらに続き、macではterminalを起動してからsource .bashrcで読み込まないとカラライズドされなかった。これの解決も先輩が教えてくれた。/etc/bashrcは本来こう

if [ -z "$PS1" ]; then
   return
fi
PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize
PATH=${PATH}:/opt/local/bin

なっている。で今の/etc/bashrcは以下

if [ -z "$PS1" ]; then
   return
fi
PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize
PATH=${PATH}:/opt/local/bin
if [ -r ~/.bashrc ]; then
        . ~/.bashrc
fi

変わっているのは後半3行で訳すと、「home直下に.bashrcが読める状態で存在すれば読む」という事が書いてあるらしい。うーん、まだ分からん。とにかくこれで解決。
ちなみに僕はgls --colorよりも、ls -Gでの色づけが細くて見やすいので好み。