📌

未経験者による未経験者のための、Ubuntuのターミナルコマンド講座!【ls編】

2024/07/18に公開3

こんにちは!株式会社ヘッドウォータースの新卒1年目のやのと申します!最近、Ubuntuを使い始めたばかりですが、その中で学んだターミナルコマンドであるlsについて説明したいと思います。この記事では、基本的な使い方や応用方法を紹介します。ぜひ参考にしてみてください!

______________________________________________

ls コマンドとは何か?

lsコマンドとは、ディレクトリの内容を表示するコマンドです。
ターミナルでlsコマンドを入力すると、ディレクトリ内のファイルを表示させることが出来ます。
以下のようなディレクトリ構造の場合、

/home/user
├── dir1
│   └── file1.txt
└── file2.txt
$ ls /home/user
dir1  file2.txt

というようにディレクトリ内のファイルを見ることが出来ます。

流れとしては以下のようになります。

ls コマンドの応用

応用コマンド: ls -lah /home/user/projects

以下の図を見てください。

/home/user/projectsディレクトリ内のすべてのファイルとディレクトリ(隠しファイルを含む)を詳細表示します。

プロジェクトディレクトリの内容を確認し、隠し設定ファイルも含めて一覧表示できます。

さらに、lsコマンドの応用には出力の順番や仕方を変えるコマンドも存在します。

一貫してできないことや例外としては、存在しないディレクトリを指定するとエラーが表示されます。
その時は、ls: cannot access '/home/user/projects': No such file or directoryと表示されます。

隠しファイルを含めて表示(ls -aコマンド)

基本的な使い方としては、

ls -a [directory]

となります。
リストしたいディレクトリのパスを後ろにつけます。指定しない場合は、カレントディレクトリが対象となります。

以下のようなディレクトリ構造があるとします。

/home/user
├── .hidden_file
├── file1.txt
└── .hidden_dir/
    └── file2.txt

lsコマンドだと

$ ls /home/user
file1.txt

このように、.hidden_fileと .hidden_dirは通常のlsコマンドでは表示されません。

しかし、

$ ls -a /home/user
.  ..  .hidden_file  .hidden_dir  file1.txt

ls -a コマンドを使えばこのように表示することが出来ます。

更新日時でソート(ls -ltコマンド)

基本的にlsコマンドは、ファイルとディレクトリをアルファベット順に並べます。

それに対してls -ltコマンドは、ディレクトリの中のファイルやサブディレクトリを更新日時順に並べ替え、新しいものから順に表示するために使用されます。

また、2つ前の画像であったls -lコマンド(詳細な情報を得るコマンド)の応用でもあるため、ls -ltコマンドでは、パーミッション、所有者、サイズ、更新日時といった詳細な情報を得ることが出来ます。

例えば、file1.txt file2.txt file13.txtといった3つのファイルがあった際にls -ltコマンドを使った時の出力を見てみましょう。

-rw-r--r--  1 user user  1024 Jul 14 10:00 file3.txt
-rw-r--r--  1 user user  2048 Jul 13 09:30 file2.txt
-rw-r--r--  1 user user  4096 Jul 12 08:00 file1.txt

このように出力されます。
出力内容としては以下のようになります。

・パーミッション: -rw-r--r--はこのファイルのアクセス権を示しています。ここでは、所有者が読み書きでき、グループと他のユーザーが読み取りのみ可能です。

・リンク数: 1は、このファイルに対するハードリンクの数を示しています。

・所有者: userはこのファイルの所有者を示しています。

・グループ: userはこのファイルの所有グループを示しています。

・サイズ: 1024はファイルのサイズをバイト単位で示しています。

・更新日時: Jul 14 10:00はファイルの最終更新日時を示しています。

・ファイル名: file3.txtはファイルの名前を示しています。

このようにして、ls -ltコマンドはディレクトリの中のファイルを更新日時順に並べ替え、その詳細情報を表示することが出来るのです。

色付きで表示(ls --color=autoコマンド)

ls --color=autoコマンドを打つと以下の色に各出力の色が変わります。
・ディレクトリ:青色
・シンボリックリンク:シアン(明るい青色)
・実行ファイル:緑色
・アーカイブファイル(.tar, .gz, .zip など):赤色
・イメージファイル:マゼンタ(紫色)

もし、色を変えたいという時はLS_COLORS環境変数を使って、色の設定をカスタマイズできます。

export LS_COLORS="di=34:ln=36:so=32:pi=33:ex=35:*.tar=31:*.zip=31"

上記のコードでは、
di=34:ディレクトリは青色(34)
ln=36:シンボリックリンクはシアン色(36)
so=32:ソケットは緑色(32)
pi=33:FIFOは黄色(33)
ex=35:実行ファイルはマゼンタ色(35)
*.tar=31:.tarファイルは赤色(31)
*.zip=31:.zipファイルは赤色(31)
という風に設定を変えることが出来ました。

ちなみに、

alias ls='ls --color=auto'

こちらをターミナルで打ち込むと、コマンドを打たなくても色を変えてくれるようになります!
便利ですので、ぜひ使ってみてください。

再帰的に表示(ls -Rコマンド)

ls -Rコマンドは、指定したディレクトリとそのサブディレクトリの内容を再帰的にリストするためのオプションです。ディレクトリツリーの構造を把握することが出来ます。
基本的には、

ls -R [directory]

というようにリストしたいディレクトリのパスを後ろにつけます。指定しない場合は、カレントディレクトリが対象となります。

例えば、以下のようなディレクトリ構造があるとします。

/home/user
├── dir1
│   ├── file1.txt
│   └── subdir1
│       └── file2.txt
└── dir2
    └── file3.txt

このディレクトリ構造で ls -R コマンドを実行すると、次のように表示されます。

$ ls -R /home/user
/home/user:
dir1  dir2

/home/user/dir1:
file1.txt  subdir1

/home/user/dir1/subdir1:
file2.txt

/home/user/dir2:
file3.txt

このように上から順番にどのディレクトリに何が入っているのかを教えてくれます。

終わりに

lsコマンドに関して説明しましたが、他にもたくさんの応用コマンドがあります。
ご自身でもたくさん調べて使ってみてください!

ヘッドウォータース

Discussion

jemiyajemiya

わかりやすい記事やね!!ちなみにUbuntuだけでなくて、lsコマンドは基本的にどのLinuxOSにも使えるでー!

矢野 陽輝矢野 陽輝

コメントありがとうございます!
Ubuntuしか使ったことがなかったので、気づきませんでした!
知識の共有ありがとうございます!