プロが教えるわが家の防犯対策術!

現在、CentOSを使って、Unixコマンドを勉強しているのですが、
コマンドプロンプト[root@localhost ~]#の
"~" の意味がわかりません。
現在、どのディレクトリにいるのでしょうか。
初歩の初歩的な質問で申し訳ございません。
宜しくお願い致します。

A 回答 (3件)

>"~" の意味がわかりません。



「操作中のユーザのホームディレクトリ」です。
作業中のユーザはwhoamiコマンドで確認できるでしょう。
# まぁ、プロンプトにも出ているんですけど。

>現在、どのディレクトリにいるのでしょうか。

pwdコマンドで表示されるかと。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …
こんな例もあったりします。
    • good
    • 0
この回答へのお礼

ありがとうございます。助かりました。

お礼日時:2012/08/10 09:50

~は、自分(ログインユーザー)のホームディレクトリーを意味する特殊な記号として使われています。



ですから、fooとbarというユーザーがいたとします。
そして
touch ~/test.txt
という内容のスクリプトを実行したとします。

スクリプトは、誰もが共通に使えるように書かれたため
どのログインユーザーが実行しても
書きこみ(と削除など)の権限がある自分自身のホームディレクトリーにファイルが作成されます。

rootが実行した場合は、/home/rootではなく、/rootがホームディレクトリーです。
suやsudoを使った場合は、また挙動が違うんですが、いまいち私は理解していません。
(たぶん、suやsudoを使ったユーザーのホームディレクトリーが対象となります)


余談ですが、こういった特殊な記号やコマンド出力を代入した処理は
UNIX系OSでのコマンドラインではいろいろと使われます。
それが合理的で便利だからです。


たとえば、`uname -r`も特殊な表現で…
(`はTYUIOP@と並んだ日本語キーボードで、SHIFT+@で入力される記号です)
この記号でくくったuname -rというコマンドの出力は
使用中のカーネルバージョンを意味し、それが代入されることによって
カーネルバージョンごとのディレクトリー群の中から
使用中のカーネルに合わせたディレクトリーを指定することができます。
    • good
    • 0
この回答へのお礼

とてもわかりやすくて助かりました。ありがとうございます。

お礼日時:2012/08/10 09:48

> [root@localhost ~]#の


> "~" の意味がわかりません。

GNOME端末を起動すると、GNOME端末上に
[root@localhost ~]#
の表示が出ます。
この表示はシェルプロンプト(コマンドの入力を促す記号)といい、ユーザーからの指示待ちの状態を表しています。
ここでそれぞれは、
root 現在のユーザー名
localhost ホスト名
~ カレントディレクトリ
をそれぞれ示します。
今現在のディレクトリは、
pwd
コマンドで何時でも参照できます。

特にroot権限になるときの一般ユーザーでログインした後の次のコマンド、
su
su -
の違いはpwdコマンドで比較すると面白いですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!