"cd ~" で指定する ~ の意味は？


VirtualBox にCentOSを入れてみました。  
初めにrootでログインしたんですが、`root@localhost ~`となっています。`~` って何だろうと思って `cd ..` してから `ls`
すると以下のファイル群が並んでいます。

[code]

    bin dev home lib64 mnt proc run srv tmp var
    boot etc lib media opt root sbin sys usr
    
[/code]

ここには、`~` が並んでいないんですが、半信半疑で試しに `cd ~` とすると、また `root@localhost ~` に戻ってこれます。

この `~` とは何なんでしょうか？




`~` とは、シェル (bash/sh/zsh)
に対する引数において、ホームディレクトリとして展開してくれ、という指示を表す省略記号のようなものです。正式名称は [Tilde
Expansion](https://www.gnu.org/software/bash/manual/html_node/Tilde-
Expansion.html) です。プロンプトで表示される `root@localhost ~` は、逆にシェルが、「今 `root` で
localhost  
にログインしていて、カレントディレクトリは `~` (つまりホームディレクトリ) だよ」ということを伝えてきています。

一般的な linux ディストリビューションにおいては、 root ユーザーのホームディレクトリは `/root` に設定されています。なので、

  * `~` から `cd ..`: カレントディレクトリがルートディレクトリ(`/`) になる。
  * `cd ~`: `cd /root` と等価。

`bin` や `dev` は、ルートディレクトリ直下のディレクトリ群です。




`~` とは、シェル (bash/sh/zsh)
に対する引数において、ホームディレクトリとして展開してくれ、という指示を表す省略記号のようなものです。正式名称は [Tilde
Expansion](https://www.gnu.org/software/bash/manual/html_node/Tilde-
Expansion.html) です。プロンプトで表示される `root@localhost ~` は、逆にシェルが、「今 `root` で
localhost  
にログインしていて、カレントディレクトリは `~` (つまりホームディレクトリ) だよ」ということを伝えてきています。

一般的な linux ディストリビューションにおいては、 root ユーザーのホームディレクトリは `/root` に設定されています。なので、

  * `~` から `cd ..`: カレントディレクトリがルートディレクトリ(`/`) になる。
  * `cd ~`: `cd /root` と等価。

`bin` や `dev` は、ルートディレクトリ直下のディレクトリ群です。

