UNIX(系OS)はSolarisから始まり、FreeBSD, OpenBSD, MacOS X, 仕事でLinuxを使いますが、概ねどこでも同じような$HOMEの構成にしています。
最初の頃は環境が変わるたびにディレクトリ名変えたり、再構成したり、いろいろ試行錯誤していましたが、最終的には$HOME以下もファイルシステム階層標準(Filesystem Hierarchy Standard)に従ってディレクトリを作るようにしています。
ファイルシステム階層標準(Filesystem Hierarchy Standard)
ファイルシステム階層標準(Filesystem Hierarchy Standard)はUNIX系OSでディレクトリ名とその内容を標準化しようってもので、Filesystem Hierarchy StandardでPDFが手に入ります。$HOMEはあれこれディレクトリ名や構成を試行錯誤した結果、一番上の階層はこれに従って作ったほうが楽と思って現在に至ります。$HOME/FHSに従ったディレクトリ
% ls -F1 ~ | grep '^[a-z]'⏎
bin/
localrepos/
share/
tmp/
usr/
var/
~/bin
自分で書いたスクリプトとかコンパイルしたバイナリとか投げ込んでます。環境変数$PATHの一番最初に入れてよく使うコマンド置き場として使っています。~/localrepos
gitのリポジトリ用においています。FHSには定義されていないディレクトリですが、以前~/var/localreposにしていたのをよく出入するので一番上に持ってきました。この中にはgit pushするホスト名のディレクトリを掘って、その中にコードのリポジトリをおいています。例えばbouncehammerなら、~/localrepos/うちのサーバホスト名/bouncehammer/ってなってます。また、githubからcloneしたやつは~/localrepos/github.com/cloneしたやつ/って感じです。~/share
% ls -F1 ~/share/dot-files/⏎
dot.Xresources
dot.exrc
dot.gitconfig
dot.google-macvim-gvimrc
dot.google-macvim-vimrc
dot.kermitrc
dot.mykermrc
dot.procmailrc
dot.tcsh-alias.darwin
dot.tcsh-complete
dot.tcshrc
dot.xinitrc
~/.*で無くなると困るものはshare/dot-filesに実体をおいて、シンボリックリンクを作っています。
% ls -laF ~/ | grep '^l' | awk '{print $9,$10,$11}'⏎
.exrc@ -> share/dot-files/dot.exrc
.gitconfig@ -> share/dot-files/dot.gitconfig
.gvimrc@ -> share/dot-files/dot.google-macvim-gvimrc
.kermitrc@ -> share/dot-files/dot.kermitrc
.mykermitrc@ -> share/dot-files/dot.mykermrc
.tcshrc@ -> share/dot-files/dot.tcshrc
.texmf@ -> share/texmf
.vimrc@ -> share/dot-files/dot.google-macvim-vimrc
以前は~/etcにおいているものもありましたが、~/shareに纏めました。~/etcをやめた理由は忘れました。ファイルは全部gitリポジトリに入れています。~/shareは本棚的なイメージ |
あとは資料作成で使うアイコンとか画像は~/share/graphics, ~/share/iconsに、LaTeX用スタイルとかマクロは~/share/texmfに、Terminal.appの設定をExportしたファイルは~/share/terminalに、Vimのプラグインとかは~/share/vimにそれぞれ配置しています。
~/tmp
物置です。再起動しても消えませんが、~/Makefileをおいていて、cd ~ && make cleanで掃除をしています、たまに。~/usr
この中にlocal/src, local/httpdとかあって、どっかから取ってきたソフトウェアのコンパイル場所、インストール先として使ってます。Macでは実験的に使ってみるものはここという位置づけで、常に使う定番のソフトウェアは/usr/local/srcでコンパイルして/usr/local/*に投げ込んでます。~/var
これも/varと同じ用に変化の多いファイル置き場にしています。% ls -1F ~/var/spool⏎
adium/
chrome/
firefox/
safari/
skype/
ブラウザでダウンロードしたファイル置き場、IMで受け取ったファイル置き場として~/var/spoolを使っています。Macに最初からある~/Downloadsは大文字で始まるし、指が~/varまで入力するのに慣れているし、等の理由でvar/使ってます。~/varの中には他に~/var/tmp(もう一つの物置、滅多に掃除しない), ~/var/backups/vim(Vimのバックアップファイル用), ~/var/archive(よく使うソフトウェアのアーカイブ置き場)があります。
Macに最初からあるディレクトリ
~/Documents
最初からあるディレクトリでよく使う~/Documentsは~/docsとしてシンボリックリンクを張っています。MacBook Airに引っ越した時にCase sensitiveにするのを忘れていたので、cd ~/documents/でも移動できるのですが、先頭が大文字Dでシェルが補完してくれないので~/docs → ~/Documentsとしてリンクしています。これで小文字dから始まるのはdocsだけなので、~/Documentsへの出入りが快適になります。~/Documentsの中は、これもどうやってファイルを分類するか試行錯誤していましたが、何年か前から、その書類を必要としているところのドメイン名なディレクトリに投げ込むという方法に落ち着きました。
例えばKansai.pm用に作った発表資料は~/docs/kansai.pm.org/slidesに、Kyoto.pm用なら~/docs/kyoto.pm.org/slidesに、bounceHammerのCVSワーキングコピーは~/docs/bouncehammer.jp/workingcopyに入れています。ディレクトリ名に使うドメイン名が存在するかどうかは気にせず、です。
0 件のコメント:
コメントを投稿