Linux コマンド
Linuxコマンドは、Linuxオペレーティングシステムで様々なタスクを実行するために使用される一連の命令です。これらのコマンドは、コマンドラインインターフェイス(CLI)またはシェルスクリプトから実行できます。基本的なファイル操作コマンドから高度なネットワークおよびシステム管理コマンドまで、多数のLinuxコマンドがあります。
pwd
Linuxのpwd
コマンドは「Print Working Directory」の略で、ターミナルに現在の作業ディレクトリを表示するために使用されます。作業ディレクトリとは、現在の場所またはコマンドプロンプトが指しているディレクトリのことです。
以下は、 pwd
コマンドの使用例です。
bash:bash
$ pwd
このコマンドを実行すると、現在の作業ディレクトリの完全なパスがターミナルに表示されます。例えば、ユーザー「john」のホームディレクトリにいる場合、出力は次のようになります。
/home/john
pwd
コマンドは、スクリプトの現在のディレクトリを知る必要がある場合や、ファイルシステムをナビゲートして現在の位置を確認したい場合など、多くの状況で役立ちます。
cd
Linuxのcd
コマンドは、現在の作業ディレクトリを変更してファイルシステムをナビゲートするために使用されます。このコマンドを使用することで、ユーザーはディレクトリ間を移動してシステム上の様々なファイルやディレクトリにアクセスできます。
例えば、「Documents」ディレクトリに移動したい場合、次のようにしてcd
コマンドを使用できます。
$ cd Documents/
これにより、現在の作業ディレクトリが「Documents」ディレクトリに変更されます。これで、このディレクトリ内のファイルやサブディレクトリを表示できます。
前のディレクトリに戻りたい場合は、次のコマンドを使用できます。
$ cd ..
これにより、現在の作業ディレクトリが現在のディレクトリの親ディレクトリに変更されます。 cdコマンドを使用してファイルシステムをナビゲートし、必要なファイルやディレクトリにアクセスするために、続けてcd
コマンドを使用できます。
ls
Linuxのls
コマンドは、現在の作業ディレクトリのファイルとディレクトリをリストするために使用されます。 ls
コマンドはユーザーがディレクトリの内容を表示し、ファイルシステムをナビゲートするのに役立ちます。
例えば、現在の作業ディレクトリのファイルとディレクトリをリストする場合は、次のようにls
コマンドを使用できます。
$ ls
これにより、現在の作業ディレクトリのファイルとディレクトリの詳細なリストが表示され、許可、所有者、サイズ、変更された日付などが含まれます。
特定のディレクトリ内のファイルとディレクトリをリストするには、例えば、「Documents」ディレクトリのファイルとディレクトリをリストするには、次のコマンドを使用できます。
$ ls -l
これにより、現在の作業ディレクトリのファイルとディレクトリの長いリストが表示され、許可、所有者、サイズ、および変更日付などの情報が含まれます。
また、ls
コマンドを使用して特定のディレクトリ内のファイルとディレクトリのリストを表示することもできます。例えば、「Documents」ディレクトリ内のファイルとディレクトリをリストするには、次のコマンドを使用できます。
$ ls Documents/
これにより、「Documents」ディレクトリ内の全てのファイルとディレクトリのリストが表示されます。
cp
Linuxのcp
コマンドは、ファイルやディレクトリを別の場所にコピーするために使用されます。
現在の作業ディレクトリから「file1.txt」という名前のファイルを「Documents」というディレクトリにコピーしたい場合、cp
コマンドを使用して次のように行うことができます。
$ cp file1.txt Documents/
これにより、「Documents」ディレクトリに「file1.txt」のコピーが作成されます。
ディレクトリ全体とその内容を新しい場所にコピーするには、次のコマンドを使用できます。
cp -r directory1/ Documents/
これにより、「Documents」ディレクトリに「directory1」およびその内容のコピーが作成されます。
また、cp
コマンドを使用して、新しいファイルで既存のファイルを上書きすることもできます。例えば、既存の「file1.txt」を新しい「file2.txt」で置き換えたい場合は、次のコマンドを使用できます。
$ cp file2.txt file1.txt
これにより、"file1.txt" を "file2.txt" で上書きします。
mv
Linuxのmv
コマンドは、ファイルシステム上のファイルやディレクトリを移動または名前変更するために使用されます。
例えば、"file1.txt" という名前のファイルを "file2.txt" に名前変更したい場合、mv
コマンドを使って次のようにします。
$ mv file1.txt file2.txt
これにより、"file1.txt" が "file2.txt" に名前変更されます。
また、現在の作業ディレクトリから "Documents" というディレクトリにある "file1.txt" というファイルを移動したい場合、次のコマンドを使用できます。
$ mv file1.txt Documents/
これにより、"file1.txt" が "Documents" ディレクトリに移動されます。
さらに、mv
コマンドを使用して、ディレクトリ全体とその内容を新しい場所に移動することもできます。例えば、"directory1" というディレクトリとその内容を "Documents" という新しい場所に移動したい場合、次のコマンドを使用します。
$ mv directory1/ Documents/
これにより、"directory1とその内容が"Documents"ディレクトリに移動されます。
rm
Linuxのrm
コマンドは、ファイルシステムからファイルやディレクトリを削除するために使用されます。
現在の作業ディレクトリから "file1.txt" というファイルを削除したい場合、rm
コマンドを使用して次のようにします。
$ rm file1.txt
これにより、現在の作業ディレクトリからfile1.txt
を削除します。
ディレクトリ全体とその内容を削除する場合、次のコマンドを使用できます。
$ rm -r directory1/
これにより、directory1
とその内容がファイルシステムから削除されます。
rm
コマンドを使用して複数のファイルを一度に削除することもできます。例えば、現在の作業ディレクトリにある拡張子.txt
の全てのファイルを削除したい場合、次のコマンドを使用できます。
$ rm *.txt
これにより、現在の作業ディレクトリにある全ての拡張子が「.txt」のファイルが削除されます。
注意すべき重要な点として、rm
コマンドはファイルシステムからファイルやディレクトリを完全に削除するため、注意して使用する必要があります。
mkdir
Linuxのmkdir
コマンドは、ファイルシステム上に新しいディレクトリを作成するために使用されます。
例えば、現在の作業ディレクトリにDocuments
という新しいディレクトリを作成したい場合、次のようにmkdir
コマンドを使用できます。
$ mkdir Documents
これにより、現在の作業ディレクトリにDocuments
という名前の新しいディレクトリが作成されます。
また、mkdir
コマンドを使用して複数のディレクトリを一度に作成することもできます。例えば、現在の作業ディレクトリにDocuments
とPictures
という2つのディレクトリを作成したい場合は、次のコマンドを使用できます。
$ mkdir Documents Pictures
これにより、現在の作業ディレクトリにDocuments
とPictures
という2つの新しいディレクトリが作成されます。
特定のパスにディレクトリを作成する場合は、次のコマンドを使用できます。
$ mkdir /home/user/Documents
これにより、/home/user
ディレクトリにDocuments
という名前の新しいディレクトリが作成されます。
cat
Linuxのcat
コマンドは、1つ以上のファイルの内容を連結してターミナル上に表示するために使用されます。
file1.txt
というファイルの内容をターミナルで表示したい場合、cat
コマンドを使用して次のように行います。
$ cat file1.txt
これにより、file1.txt
の内容がターミナルに表示されます。
複数のファイルの内容を表示したい場合は、次のコマンドを使用できます。
$ cat file1.txt file2.txt
これは、file1.txt
とfile2.txt
の内容を端末に表示します。
また、cat
コマンドを使用して新しいファイルを作成したり、既存のファイルに追記したりすることもできます。例えば、新しいファイルfile3.txt
を作成し、テキストを追加したい場合は、次のコマンドを使用できます。
$ cat > file3.txt
これにより、テキストを入力できる新しい行が開きます。入力が完了したら、ファイルを保存して終了するには、Ctrl + Dを押します。
touch
Linuxのtouch
コマンドは、新しいファイルを作成するか、既存のファイルの変更とアクセスのタイムスタンプを更新するために使用されます。
現在の作業ディレクトリにfile1.txt
という新しいファイルを作成したい場合、次のようにtouch
コマンドを使用できます。
$ touch file1.txt
これにより、現在の作業ディレクトリに新しい空のファイルfile1.txt
が作成されます。
既存のファイルのタイムスタンプを変更する場合は、次のコマンドを使用できます。
$ touch file1.txt
これにより、file1.txt
の変更とアクセスのタイムスタンプが現在の時間に更新されます。
touch
コマンドを使用して、複数のファイルを一度に作成することもできます。例えば、現在の作業ディレクトリにfile1.txt
、file2.txt
、file3.txt
の3つの新しいファイルを作成したい場合は、次のコマンドを使用できます。
$ touch file1.txt file2.txt file3.txt
これにより、現在の作業ディレクトリに3つの新しい空のファイルが作成されます。
chmod
Linuxのchmod
コマンドは、ファイルやディレクトリのファイルモード(許可)を変更するために使用されます。これは、ユーザーがファイルやディレクトリの許可を変更して、誰がそれらを読み取り、書き込み、実行できるかを制御することができるシンプルなツールです。
例えば、ファイル名がfile1.txt
のファイルの所有者にファイルを読み書きする権限を与え、他のユーザーにはアクセスできないようにしたいとします。chmod
コマンドを使用して、次のように行うことができます。
$ chmod 600 file1.txt
これにより、file1.txt
のファイルモードが600に設定され、所有者はファイルを読み書きできますが、他の全てのユーザーには許可がありません。
所有者と特定のグループにファイルへのアクセスを許可する場合は、次のコマンドを使用できます。
$ chmod 640 file1.txt
これにより、file1.txt
のファイルモードが640に設定され、所有者はファイルを読み書きできます。同じグループに属するユーザーはファイルを読むことができますが、他の全てのユーザーには許可がありません。
chmod
コマンドを複数のファイルに一度に適用するか、ディレクトリやサブディレクトリで再帰的に許可を変更するためにも使用できます。
chown
Linuxのchown
コマンドは、ファイルやディレクトリの所有者とグループを変更するために使用されます。これは、ユーザーがファイルやディレクトリの所有権を変更して、誰がそれらにアクセスできるかを制御することができるシンプルなツールです。
例えば、file1.txt
という名前のファイルの所有者をalice
という名前のユーザーに変更したい場合は、chown
コマンドを使用して次のように行うことができます。
$ chown alice file1.txt
これにより、file1.txt
の所有者がalice
に変更されます。グループも変更する場合は、次のコマンドを使用できます。
$ chown alice:users file1.txt
これにより、file1.txt
の所有者がalice
に、グループがusers
に変更されます。
また、chown
コマンドを使用して、一度に複数のファイルの所有権を変更するか、ディレクトリとサブディレクトリの所有権を再帰的に変更することもできます。
apt-get
Linuxのapt-get
コマンドは、DebianとUbuntuベースのシステムでソフトウェアパッケージをインストール、更新、削除するためのパッケージ管理ユーティリティです。
例えば、UbuntuシステムにApache Webサーバーをインストールしたい場合は、次のようにapt-get
コマンドを使用します。
$ apt-get install apache2
これにより、Apache Webサーバーとその依存関係がダウンロードされ、インストールされます。
また、`apt-getコマンドを使用してシステムパッケージを更新することもできます。
$ apt-get update
これにより、設定されたリポジトリから最新のパッケージ情報がダウンロードされます。
さらに、システムパッケージを最新バージョンにアップグレードする場合は、次のようにします。
$ apt-get upgrade
これにより、システム上でインストールされた全てのパッケージが、設定されたリポジトリで利用可能な最新バージョンにアップグレードされます。
apt-get
コマンドには、Linuxシステム上でソフトウェアを効果的に管理するために、多くの他のオプションと機能があります。
systemctl
Linuxのsystemctl
コマンドは、systemdシステムおよびサービスマネージャを使用する現代のLinuxディストリビューションでシステムサービスおよびデーモンを管理するために使用されるシステムユーティリティです。
Linuxシステム上でApache Webサーバーを起動したい場合、systemctl
コマンドを使用して次のように行います。
$ systemctl start apache2
これにより、Apache Webサーバーサービスが開始されます。
systemctl
コマンドを使用してサービスを停止することもできます。
$ systemctl stop apache2
これにより、Apache Webサーバーサービスが停止されます。
また、サービスを再起動するには次のコマンドを使用します。
$ systemctl restart apache2
これにより、Apache Webサーバーサービスが停止され、その後再開されます。
systemctl
コマンドには、サービスの有効化や無効化、サービスの状態の確認、特定のサービスに関連するシステムログメッセージの検査など、システムサービスを効果的に管理するための多くのオプションと機能があります。
top
Linuxのtop
コマンドは、CPU、メモリ、およびディスク使用状況を含む、システムリソース使用状況に関する情報を表示するシステムモニタリングユーティリティです。
ターミナルでtop
コマンドを実行すると、システムリソースの使用状況、CPU、メモリ、およびディスク使用状況をリアルタイムで表示します。
$ top
これにより、CPU使用率によってソートされたシステム上で実行中の全てのプロセスのリストが表示されます。 top
コマンドには、プロセスリストを並べ替えたりフィルタリングしたり、更新間隔を変更したり、表示形式を調整したりするための様々なオプションとインタラクティブコマンドが用意されています。
top
コマンドの便利な機能の1つは、画面の上部にシステムリソース使用状況のサマリーを表示できることです。このサマリーには、プロセスの総数、CPU使用率、メモリ使用量、およびスワップスペース使用量に関する情報が含まれます。
top
コマンドには、出力形式をカスタマイズするオプションも提供されており、出力をファイルに保存したり、プロセスリストを特定の基準で並べ替えたりすることができます。
ps
Linuxのps
コマンドは、Linuxシステム上で実行中のプロセスに関する情報を表示するために使用されるユーティリティです。これは、PID(プロセスID)、CPU使用率、メモリ使用量、その他のシステムリソースを含め、全てのアクティブなプロセスの状態を表示することができる強力なツールです。
ps
コマンドを使用する方法の例を以下に示します。
$ ps -ef
このコマンドは、PID、親プロセスID、CPU使用率、その他の情報を含め、Linuxシステム上で実行中の全てのプロセスのリストを表示します。 -efオプションは、全てのプロセスを詳細に、ツリーのような構造で表示するために使用されます。
ps
コマンドの別の便利なオプションは、-aux
です。これにより、他のユーザーが所有するプロセスを含め、システム上で実行中の全てのプロセスのリストが表示されます。これは、システム管理者がリソースを消費しすぎたり、システムのパフォーマンスの問題を引き起こしているプロセスを特定する必要がある場合に役立ちます。
$ ps -aux
ps
コマンドには、CPU使用率、メモリ使用量、プロセス名など、様々な基準に基づいてプロセスリストをフィルタリングおよびソートするオプションが用意されています。
$ ps -ef --sort=-%cpu | head -n 10
このコマンドは、CPU使用率の降順にプロセスリストをソートし、もっとも高いCPU使用率を持つトップ10のプロセスを表示します。
kill
Linuxのkill
コマンドは、実行中のプロセスを終了するために使用されるユーティリティです。
以下は、kill
コマンドの使用例です。
$ kill 1234
このコマンドは、PIDが1234のプロセスに終了シグナルを送信し、プロセスを停止させます。
kill
コマンドの別の便利なオプションは、強制終了シグナルを送信して、プロセスを直ちに終了する「-9」です。
$ kill -9 1234
kill
コマンドには、SIGTERM(終了シグナル)またはSIGKILL(強制終了シグナル)など、プロセスに送信するシグナルの種類を指定するオプションも用意されています。
$ kill -SIGTERM 1234
このコマンドは、PIDが1234のプロセスにSIGTERMシグナルを送信し、プロセスを終了させます。
tar
Linuxのtar
コマンドは、ファイルやディレクトリをアーカイブ化して圧縮するために使用されるツールです。tar
コマンドは、アーカイブ化したい全てのファイルとディレクトリが含まれる単一のファイル、通常はtarボールを作成します。 tar
コマンドは、gzipやbzip2などの異なるアルゴリズムでtarボールを圧縮することもできます。
以下は、ディレクトリのtarボールを作成するためにtar
コマンドを使用する方法の例です。
$ tar -cvf myfiles.tar mydirectory/
この例では、-c
オプションは新しいアーカイブを作成するためにtar
に指示し、-v
オプションはアーカイブ化されているファイルとディレクトリの名前を表示するために使用され、-f
オプションは作成するアーカイブファイルの名前を指定します。 myfiles.tar
は作成されるtarボールの名前であり、mydirectory/
はアーカイブ化したいディレクトリです。
tarボールが作成されたら、tar
コマンドを-xオプションを使って使用して、その内容を抽出できます。
$ tar -xvf myfiles.tar
この例では、-x
オプションは、アーカイブの内容を抽出するためにtar
に指示し、-f
オプションは抽出するアーカイブファイルの名前を指定します。 myfiles.tar
は抽出したいtarボールの名前です。
tar
コマンドは、多くのオプションと機能を持つ強力なツールです。マニュアルページやオンラインリソースを読むことで、より多くの機能を探索できます。
grep
Linuxにおけるgrep
コマンドは、ファイル内または他のコマンドの出力内の特定のテキストパターンを検索するために使用されます。大量のテキストを検索するための非常に強力なツールです。
以下は、ファイル内のパターンを検索するためにgrep
コマンドを使用する例です。
$ grep "pattern" filename.txt
この例では、patternはfilename.txt
ファイル内で検索したいテキスト文字列です。
grep
コマンドは、他のコマンドからの出力やファイル内の特定のテキストパターンを検索するためにも使用できます。例えば、ps
コマンドを使用してシステム上で実行中の全てのプロセスをリストし、grep
を使用して出力をフィルタリングして特定のキーワードを含むプロセスのみを表示することができます。
$ ps aux | grep "keyword"
この例では、ps aux
はシステム上で実行中の全てのプロセスをリストし、|(パイプ)
記号は、ps
コマンドの出力をgrep
コマンドに送信するために使用されます。keyword
は、ps
コマンドの出力内で検索したいテキスト文字列です。
grep
コマンドには様々なオプションがあり、正規表現を使用してパターンを検索するなど、より高度な検索操作に使用することができます。
sed
sed
コマンドは、Linuxでテキストを操作するために使用されます。これは、入力ストリーム(ファイルまたは他のコマンドの出力)のテキスト変換を実行してから出力するストリームエディターです。
この例では、ファイル内の特定のテキスト文字列を置換するためにsed
コマンドを使用する方法を示します。
$ sed 's/old_string/new_string/' filename.txt
この例では、old_string
は置換したいテキスト文字列であり、new_string
はそれを置換するテキスト文字列です。 filename.txt
は、置換を実行するファイルです。
sed
コマンドは、特定の行をファイルから削除するためにも使用できます。
$ sed '3d' filename.txt
この例では、3d
コマンドは、filename.txt
の3行目を削除するようsedに指示します。
sed
コマンドは、正規表現をサポートしており、より複雑なテキスト変換を行うために使用できます。
awk
awk
コマンドは、Linuxでのテキスト処理とデータ抽出に使用される多目的なツールです。ファイルまたは他のコマンドの出力からデータを読み取り、パターンに基づいて操作を実行します。
以下は、awk
コマンドを使用してファイルの最初の列を表示する方法の例です。
$ awk '{print $1}' filename.txt
この例では、$1
はファイルの最初の列を表します。awk
コマンドは、ファイルの各行を読み取り、最初の列を表示します。
awk
コマンドは、データの列に対して算術演算を実行するためにも使用できます。
$ awk '{total += $3} END {print total}' filename.txt
この例では、awk
コマンドは、filename.txt
の3列目を読み取り、全ての値を合計します。最後に、合計値が表示されます。
awk
コマンドは、正規表現もサポートしており、データ内の特定のパターンを検索して操作するために使用できます。
curl
curl
コマンドは、LinuxでデータをHTTP、FTP、SMTPなどの様々なプロトコルを使用してサーバーに転送するために使用される人気のあるツールです。このコマンドは、ユーザーがコマンドラインインターフェイスを通じてサーバーにリクエストを送信し、レスポンスを受信することを可能にします。
以下は、ウェブサイトのHTMLコンテンツを取得するためにcurl
コマンドを使用する方法の例です。
$ curl https://www.example.com
この例では、curl
コマンドはhttps://www.example.com
にHTTP GETリクエストを送信するために使用されます。サーバーは、WebサイトのHTMLコンテンツで応答し、ターミナルに表示されます。
curl
コマンドは、フォームの提出など、サーバーにデータを送信するためにも使用できます。
$ curl -d "username=john&password=secret" https://www.example.com/login
この例では、-d
フラグを使用して、キーと値のペアの形式でサーバーに送信するデータを指定します。curl
コマンドは、指定されたデータを含むPOSTリクエストをhttps://www.example.com/login
に送信します。サーバーはそのデータを処理し、新しいページを返したり、リクエストの成功または失敗を示すメッセージを返します。
wget
wget
コマンドは、インターネットからファイルをダウンロードするために広く使用されているLinuxコマンドです。HTTP、HTTPS、FTPなどの様々なプロトコルをサポートしています。 wget
を使用すると、単一のファイル、複数のファイル、またはディレクトリ全体をダウンロードできます。
単一のファイルをダウンロードするには、単にダウンロードしたいファイルのURLを指定するだけです。例えば、ウェブサイトからexample.zip
という名前のファイルをダウンロードするには、次のコマンドを使用します。
$ wget http://example.com/example.zip
複数のファイルまたはディレクトリ内の全てのファイルをダウンロードするには、-r
オプションを使用できます。例えば、ウェブサイトからdocs
という名前のディレクトリ内の全てのファイルをダウンロードするには、次のコマンドを使用します。
$ wget -r http://example.com/docs/
また、-P
オプションを使用して、ダウンロードしたファイルを保存するディレクトリを指定できます。例えば、docs
という名前のディレクトリ内の全てのファイルをダウンロードして、それらをmy-docs
という名前のディレクトリに保存するには、次のコマンドを使用します。
$ wget -r -P my-docs http://example.com/docs/