知っておくべき最も一般的に使用される Linux コマンド


Linux は、プログラマーや通常のユーザーの間で非常に人気のあるオペレーティング システム (OS) です。その人気の主な理由の 1 つは、その優れたコマンド ライン サポートです。 Linux オペレーティング システム全体をコマンド ライン インターフェイス (CLI) のみで管理できます。これにより、ほんの数コマンドで複雑なタスクを実行できます。

このガイドでは、経験豊富なシステム管理者または初心者に役立つ、一般的に使用されるコマンドについて説明します。このガイドに従えば、ユーザーは自信を持って Linux システムを操作できるようになります。

整理しやすいように、これらのコマンドは、ファイル システム、ネットワーク、およびシステム情報の 3 つのセクションにグループ化されています。

Linux ファイル システム コマンド

このセクションでは、Linux のファイルとディレクトリに関連する便利なコマンドのいくつかについて説明します。

cat コマンドは、主にファイルの内容を表示するために使用されます。ファイルの内容を読み取り、標準出力 (stdout) に表示します。

cat コマンドの一般的な構文は次のとおりです。

$ cat [OPTIONS] [FILE1] [FILE2] ...

cat コマンドを使用して、/etc/os-release ファイルの内容を表示してみましょう。

$ cat /etc/os-release

さらに、コマンドの -n オプションを使用して、内容を行番号とともに表示することもできます。

$ cat -n /etc/os-release

cp コマンドは、ファイル、ファイルのグループ、およびディレクトリのコピーに役立ちます。

cp コマンドの一般的な構文は次のとおりです。

$ cp [OPTIONS]  

ここで、角括弧 ([]) はオプションの引数を表し、角括弧 (<>) は必須の引数を表します。

/etc/os-release ファイルを /tmp ディレクトリにコピーしましょう:

$ cp /etc/os-release /tmp/new-file.txt

次に、ファイルの内容を表示して、ファイルがコピーされたことを確認します。

$ cat /tmp/new-file.txt

同様に、cp コマンドを使用してディレクトリをコピーできます。 /etc/cron.d ディレクトリを /tmp ディレクトリ内にコピーしましょう。

$ cp -r /etc/cron.d /tmp

-r オプションを cp コマンドで使用しました。これは再帰操作を表します。ファイルとサブディレクトリを含むディレクトリを再帰的にコピーします。

次の例では、ディレクトリが正常にコピーされたことを確認する方法を示します。

$ ls /tmp/cron.d
$ ls -l /tmp/cron.d

ls コマンドを使用して、ディレクトリの内容を一覧表示し、ファイルをサイズと最終更新時刻で降順に並べ替えます。

ls コマンドの一般的な構文は次のとおりです。

$ ls [OPTIONS] [FILE1] [FILE2] ...

ls コマンドに引数を指定しない場合、現在のディレクトリの内容が一覧表示されます。

$ ls

前の例では、/etc/cron.d ディレクトリを /tmp ディレクトリにコピーしました。そこに存在し、必要なファイルが含まれていることを確認しましょう。

$ ls /tmp/cron.d

-l オプションを ls コマンドで使用して、ファイルのアクセス許可、所有者、タイムスタンプ、サイズなどの詳細情報を表示できます。

/tmp/cron.d ディレクトリにあるファイルの詳細を調べてみましょう。

$ ls -l /tmp/cron.d

コンテンツを整理するためにディレクトリ構造を作成することがよくあります。 Linux では、mkdir コマンドを使用して、1 つまたは複数のディレクトリを作成し、ディレクトリに適切な権限を設定できます。

mkdir コマンドの一般的な構文は次のとおりです。

$ mkdir [OPTIONS] <DIRECTORY1> <DIRECTORY2> ...

/tmp ディレクトリに dir-1 という名前のディレクトリを作成しましょう。

$ mkdir /tmp/dir-1

次に、ディレクトリが作成されたことを確認しましょう。

$ ls /tmp/dir-1

ここで、ls コマンドがエラーを報告していないことがわかります。これは、ディレクトリがそこに存在することを意味します。

データ編成を改善するために、ネストされたディレクトリ構造を作成する必要がある場合があります。このような場合、コマンドの -p オプションを使用して、/tmp/dir-1 ディレクトリの下にいくつかのネストされたディレクトリを作成できます。

$ mkdir -p /tmp/dir-1/dir-2/dir-3/dir-4/dir-5

上記の例では、ネストされたディレクトリの 4 つのレベルを作成しました。 ls コマンドを使用して確認しましょう。

$ ls -R /tmp/dir-1

ここでは、コマンドで -R オプションを使用して、ディレクトリの内容を再帰的に表示しています。

最後に実行されたコマンドを監査するには、端末セッションで最後に実行されたコマンドのリストを表示する history コマンドを使用できます。

$ history

コマンド履歴をタイム スタンプ付きで表示するには、bash 履歴にタイムスタンプを設定する必要があります。次のコマンドを実行します。

$ HISTTIMEFORMAT="%d/%m/%y %T "             #Temporarily set the history timestamp
$ export HISTTIMEFORMAT="%d/%m/%y %T "      #Permanently set the history timestamp
$ history

ディスク容量を消費している上位 10 個のファイルを確認するにはどうすればよいでしょうか? du コマンドから作成された単純なワンライナー スクリプトで、主にファイル スペースの使用に使用されます。

$ du -hsx * | sort -rh | head -10

上記の du コマンドのオプションとスイッチの説明。

  • du – ファイル容量の使用量を見積もります。
  • -hsx – (-h) 可読形式、(-s) 要約出力、(-x) 1 つのファイル形式、他のファイル形式のディレクトリをスキップ
  • sort – テキスト ファイルの行を並べ替えます。
  • -rh – (-r) 比較の結果を逆にします。(-h) は人間が読める形式で比較します。
  • head – ファイルの最初の n 行を出力します。

stat コマンドは、ファイルのサイズ、アクセス許可、アクセス時刻、およびファイルのユーザー ID とグループ ID に関する情報を取得するために使用されます。

$ stat anaconda-ks.cfg

Linux ネットワーク コマンド

このセクションでは、ネットワーク関連の問題のトラブルシューティングについて説明します。

任意のネットワークで実行される非常に一般的な操作の 1 つは、特定のホストが到達可能かどうかを確認することです。 ping コマンドを使用して、他のホストとの接続を確認できます。

ping コマンドの一般的な構文は次のとおりです。

$ ping [OPTIONS] <destination>

ここで、宛先は、IP アドレスまたは google.com などの完全修飾ドメイン名 (FQDN) にすることができます。現在のシステムが Google と通信できることを確認しましょう。

$ ping -c 4 google.com

上記の例では、コマンドはネットワーク通信に関する統計を表示します。これは、4 つのネットワーク要求 (パケット) すべてに対して応答が受信されたことを示しています。コマンドで -c オプションを使用して、特定のホストに送信されるリクエストの数を制限していることに注意することが重要です。

2 つのホスト間の通信が切断された場合の例を見てみましょう。

このシナリオをシミュレートするために、到達不可能な IP アドレスに到達しようとします。この場合、192.168.10.100 です。

$ ping -c 4 192.168.10.100

ここでは、どのネットワーク リクエストに対しても応答を受信していないことがわかります。したがって、コマンドはエラーを報告します – Destination Host Unreachable.

場合によっては、特定のドメインの IP アドレスを見つける必要があります。これを実現するために、DNS ルックアップを実行し、FQDN を IP アドレスに、またはその逆に変換する host コマンドを使用できます。

ホスト コマンドの一般的な構文は次のとおりです。

$ host [OPTIONS] <destination>

ここで、宛先には IP アドレスまたは FQDN を指定できます。

host コマンドを使用して、google.com の IP アドレスを調べてみましょう。

$ host google.com

登録されたドメインに関するすべての詳細は中央データベースに保存され、特定のドメインに関する詳細を表示する whois コマンドを使用して照会できます。

whois コマンドの一般的な構文は次のとおりです。

$ whois [OPTIONS] <FQDN>

google.com の詳細を見てみましょう。

$ whois google.com

ここでは、ドメインの登録/更新/有効期限、ドメイン プロバイダーなどの詳細な情報を確認できます。

whois コマンドは、すべてのシステムでデフォルトで使用できるわけではないことに注意してください。ただし、パッケージマネージャーを使用してインストールできます。たとえば、apt パッケージ マネージャーでは次のようになります。

$ sudo apt install whois

RHEL ベースおよびその他のディストリビューションでは、示されているようにインストールできます。

$ sudo yum install whois         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a net-misc/whois  [On Gentoo Linux]
$ sudo apk add whois             [On Alpine Linux]
$ sudo pacman -S whois           [On Arch Linux]
$ sudo zypper install whois      [On OpenSUSE]    

Linux システム情報コマンド

このセクションでは、現在のシステムに関する詳細を提供できるいくつかのコマンドについて説明します。

uptime コマンドを使用して、システムが最後にいつ再起動されたかを確認することは非常に一般的な要件です。これにより、システムが実行されている時間がわかります。

現在のシステムの稼働時間を調べてみましょう。

$ uptime -p

12:10:57 up  2:00,  1 user,  load average: 0.48, 0.60, 0.45

この例では、 -p オプションを使用して出力をきれいな形式で表示しています。

多くの場合、ユーザーは、インストール済み、使用可能、および使用済みのメモリに関する詳細を見つける必要があります。この情報は、パフォーマンスの問題をトラブルシューティングする際に重要な役割を果たします。 free コマンドを使用して、メモリに関する詳細を見つけることができます。

$ free -m

ここでは、出力をメビバイト単位で表示するコマンドで -m オプションを使用しています。

同様に、-g-t、および -p オプションを使用して、出力をギビバイト、テビバイト、およびそれぞれペビバイト。

コンピュータ システムは、データをブロック デバイスに保存します。ブロック デバイスの例としては、ハード ディスク ドライブ (HDD)、ソリッド ステート ドライブ (SSD) などがあります。 lsblk コマンドを使用して、ブロック デバイスに関する詳細情報を表示できます。

$ lsblk

この例では、ブロック デバイスが 1 つしかなく、その名前が /dev/sda であることがわかります。そのブロック デバイスには 3 つのパーティションが作成されます。

この記事では、Linux の初心者に役立ついくつかのコマンドについて説明しました。最初に、ファイル システム コマンドについて説明しました。次に、ネットワーク コマンドについて説明しました。最後に、現在のシステムに関する詳細を提供するいくつかのコマンドについて説明しました。