muroiです。
今日はshellの使い方という事で、シンボリックリンクと環境変数について学習しました。
以下は授業内容となります。
シンボリックリンク
そもそもシンボリックリンクってなんだろう?って事だったのですが、これはWindowsでいうショートカットみたいなものだそうです。
実際にはそこに存在しなく、リンクだけが存在する・・・という事です。
ln -s ’指定するファイルのパス’ ’ショートカット先の名前とパス’
これでシンボリックリンクを作成する事ができます。
例としてシンボリックリンクを作ってみたいと思います。
・ファイル名が「curry.txt」
・このテキストのあるディレクトリは「~/curryHome」
・ショートカット先のディレクトリは「~/curryHouse」
・ショートカット先のファイル名は「curryrice.txt」
このような例で作成すると以下となります。
ln -s ~/curryHome/curry.txt ~/curryHouse/curryrice.txt
これで「~/curryHouse」ディレクトリにシンボリックリンクを作成する事ができ、このディレクトリで「curryrice.txt」を開くと「curry.txt」の中身を参照され開く事ができます。
以下は「ls -al ~/curryHouse」で確認した際の状態
curryrice.txt -> ~/curryHome/curry.txt
といった感じで、リンク先を表示させる事ができます。
また、シンボリックリンクの他にハードリンクといったものが存在するらしいですが、あまり使われる事はないそうです。
書き方もシンボリックリンクの「-s」オプションを除けばハードリンクとして作る事ができます。
ハードリンクについては簡単にしか学習をしていないのですが、パーティションをまたぐリンクを作成する事はできないそうです。(これはシンボリックリンクでは作成可能)
環境変数について
まず始めに「printenv」というコマンドで設定されている環境変数を確認しました。
実際にこれでPATHという設定を確認する事ができ、この設定のおかげで普段よく使うコマンド等が利用できるという事を知りました。
次にこのPATHの設定を消すとどうなるかも試してみました。
export PATH=
この「export」というもので、環境変数を設定する事ができるのですが、上記の記述ではPATHの設定を空に設定しています。こうする事により「ls」、「printenv」等のコマンドが一切利用する事ができなくなります。
ちなみに、これは現在開いているshellにのみ有効となるので開き直せば戻せます。
次は、現在開いているshellにのみ有効な環境変数を設定するためのコマンドです。
以下は新しく環境変数を作成しています。
export hoge=huga
これで、「hoge」という環境変数を作成する事ができました。
実際に確認をしてみようと思うのですが「printenv」コマンドでは、全ての設定が出てしまい見づらいです・・。
とそこで以下のコマンドを利用すれば指定したものだけの環境変数の値を確認する事ができます。
echo $hoge
表示結果
huga
これでhoge環境変数を確認する事ができました。
さらにここに環境変数「hoge」に値を追加してみたいと思います。
記述方法は以下となり、新しい部分と古い部分は「セミコロン(:)」でつないでいきます。
export $hoge=$hoge:addCurry
これで内容を追加する事ができます。
「echo $hoge」で確認してみると以下のようになるかと思います。
huga:addCurry
となっています。
しかし、今までの上の方法では、現在開いているshellにのみ有効で、一度閉じたりしてしまったり新しいのを開き直すと設定は反映されていません。
これをどのshellでも有効にするにはどうすればいいか・・という事でMacやLinuxでは、予め用意されている「.bashrc」や「.bash_profile」に上記の設定を記述していきました。
これらはターミナルを起動した際に毎回読み込まれるファイルであるので、ここに書いておけば何度でも設定した環境変数を反映させる事ができます。
ちなみに・・設定ファイルをいじった際に反映させるには、一度ターミナルを再起動するしかないと思っていました。しかし以下のコマンドを使用する事により即時反映させる事ができます。
source [設定したファイル名]
これで、再起動しなくてもすぐに反映させる事ができます。
今回の研修で、環境変数について以前よりも理解が深まったと思います。
以前viやshellの研修で行った設定も、分からないまま書いてた時より分かるようになれた事はすごく良かったです。
この調子で色々と覚えていきたいです!
—-
(2008/06/27 18:24 hirafuji追記)
順番が前後してしまいました>< 動画をご覧下さい!

コメントをどうぞ