このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux:ホームディレクトリとチルダ展開

 Linuxシステムを操作する際、ユーザーのホームディレクトリは頻繁にアクセスする重要な場所です。効率的に作業を進めるためには、ホームディレクトリへの迅速な移動方法や、その下層ディレクトリへのアクセス方法を知っておくことが不可欠です。ここでは、ホームディレクトリへの移動方法と、シェルのチルダ展開機能を活用したパス指定について詳しく解説します。

ホームディレクトリへの移動

 ホームディレクトリはユーザーごとに割り当てられた作業領域で、設定ファイルや個人のデータが保存されています。Linuxでは、ホームディレクトリへの移動が非常に簡単に行えるようになっています。以下にその方法を示します。

cdコマンドによるホームディレクトリへの移動

 cdコマンドはカレントディレクトリを変更するコマンドですが、引数を指定せずに実行すると、自動的にホームディレクトリに移動します。

操作例

1./usr/local ディレクトリに移動します。
user01@ubuntu:~$ cd /usr/local
user01@ubuntu:/usr/local$
2.カレントディレクトリを確認します。
user01@ubuntu:/usr/local$ pwd
/usr/local
3.引数なしで cd コマンドを実行し、ホームディレクトリに移動します。
user01@ubuntu:/usr/local$ cd
user01@ubuntu:~$
4.カレントディレクトリがホームディレクトリになっていることを確認します。
user01@ubuntu:~$ pwd
/home/user01

チルダ展開

 ホームディレクトリへの移動や、その配下のディレクトリへのアクセスには、~(チルダ)を使用する方法もあります。

  • ~(チルダ):シェルにおいて、現在のユーザーのホームディレクトリを示します。

 この機能をチルダ展開と呼びます。シェルはコマンドラインで ~ を見つけると、自動的にその部分をユーザーのホームディレクトリのパスに置き換えます。

チルダ展開を利用したパス指定

ホームディレクトリ配下のディレクトリに移動する際、~ を用いると簡潔にパスを指定できます。

操作例

1./usr/local ディレクトリにいる状態から、ホームディレクトリ内の snap ディレクトリに移動します。
user01@ubuntu:~$ cd /usr/local
user01@ubuntu:/usr/local$ cd ~/snap
user01@ubuntu:~/snap$
2.カレントディレクトリを確認します。
user01@ubuntu:~/snap$ pwd
/home/user01/snap

シェルは ~/home/user01 に展開し、/home/user01/snap に移動しています。

他のユーザーのホームディレクトリへのアクセス

~ の後にユーザー名を続けることで、他のユーザーのホームディレクトリを指すこともできます。

 まず、user02を作成し、パスワード「password」を設定します。useraddコマンドには「-m」オプションを指定することで、そのユーザーのホームディレクトリを作成します。次に /home/user02 ディレクトリ内に空の file を作成しておきます。

ser01@ubuntu:~/snap$ sudo useradd -m user02
user01@ubuntu:~/snap$ sudo passwd user02
新しいパスワード: 
正しくないパスワード: このパスワードは辞書チェックに失敗しました - 辞書の単語に基づいています
新しいパスワードを再入力してください: 
passwd: パスワードは正しく更新されました
user01@ubuntu:~/snap$ sudo touch /home/user02/file

操作例

例: ~user02 はユーザー user02 のホームディレクトリを示します。

user01@ubuntu:~/snap$ sudo ls ~user02
file

注意: 他のユーザーのホームディレクトリにアクセスするには、適切な権限が必要です。ここでは、sudorootユーザー権限でディレクトリ内のファイルを表示しています。

まとめ

 ホームディレクトリは日常的によく使用するディレクトリであり、迅速にアクセスできる方法を知っておくと作業効率が向上します。

  • 引数なしで cd コマンドを実行すると、ホームディレクトリに移動します。
  • ~(チルダ)を使用すると、ホームディレクトリやその配下のディレクトリを簡潔に指定できます。
  • チルダ展開はシェルの機能で、~ をユーザーのホームディレクトリパスに自動的に置き換えます。

これらのテクニックを活用して、効率的なディレクトリ移動を行いましょう。