ホームに戻る
Linuxコマンド コース
必須のLinuxコマンドライン操作をマスターしましょう
初
初級
無料で学習可能
初級基本ナビゲーション
問題1: pwd - 現在のディレクトリを表示
pwdコマンド(print working directory)は、現在作業しているディレクトリの絶対パスを表示します。Linuxシステムでの自分の位置を確認する最も基本的なコマンドです。ディレクトリを移動した後、pwdを使って現在地を確認する習慣を身につけましょう。
初級基本ナビゲーション
問題2: cd - ディレクトリの移動
cdコマンド(change directory)は、ディレクトリ間を移動するためのコマンドです。相対パス(..や~)と絶対パス(/から始まる)の両方を使えるようになることが重要です。ホームディレクトリへの移動、親ディレクトリへの移動、絶対パスでの移動など、様々な移動方法をマスターしましょう。
初級基本ナビゲーション
問題3: ls - ファイルとディレクトリの一覧表示
lsコマンド(list)は、ディレクトリ内のファイルとサブディレクトリを一覧表示します。オプションを使うことで、隠しファイルの表示、詳細情報の表示、ファイルサイズを人間が読みやすい形式で表示するなど、様々な表示方法を学びましょう。
初級基本ナビゲーション
問題4: mkdir - ディレクトリの作成
mkdirコマンド(make directory)は、新しいディレクトリを作成します。単一のディレクトリ作成、複数のディレクトリを同時に作成、ネストされたディレクトリ構造の作成、特定の権限でのディレクトリ作成など、様々な作成方法を学びましょう。
初級基本ナビゲーション
問題5: rmdir - 空のディレクトリの削除
rmdirコマンド(remove directory)は、空のディレクトリを削除します。単一のディレクトリ削除、複数のディレクトリを同時に削除、ネストされた空ディレクトリの一括削除などを学びましょう。rmdirは空のディレクトリのみ削除できることに注意してください。
初級ファイル操作
問題6: touch - ファイルの作成とタイムスタンプ更新
touchコマンドは、新しい空のファイルを作成したり、既存のファイルのタイムスタンプ(更新日時)を更新したりします。ファイルが存在しない場合は新規作成、存在する場合はタイムスタンプのみ更新するという便利な動作をします。
初級ファイル操作
問題7: cp - ファイルとディレクトリのコピー
cpコマンド(copy)は、ファイルやディレクトリをコピーします。単純なコピーから、タイムスタンプや権限を保持したコピー、ディレクトリ全体の再帰的コピー、確認プロンプト付きコピーなど、様々なコピー方法を学びましょう。
初級ファイル操作
問題8: mv - ファイルとディレクトリの移動・名前変更
mvコマンド(move)は、ファイルやディレクトリを移動したり、名前を変更したりします。単純な名前変更、別のディレクトリへの移動、複数ファイルの一括移動、確認プロンプト付き移動など、様々な操作方法を学びましょう。
初級ファイル操作
問題9: rm - ファイルとディレクトリの削除
rmコマンド(remove)は、ファイルやディレクトリを削除します。単一ファイルの削除、複数ファイルの一括削除、確認プロンプト付き削除、ディレクトリの再帰的削除など、注意深く使う必要がある重要なコマンドです。
初級ファイル操作
問題10: cat - ファイル内容の表示
catコマンド(concatenate)は、ファイルの内容を表示したり、複数のファイルを連結して表示したりします。基本的な表示、行番号付き表示、複数ファイルの連結、ファイルへの出力など、様々な使い方を学びましょう。
初級ファイル操作
問題11: less - ファイルのページャ表示
lessコマンドは、大きなファイルをページ単位で表示するページャです。上下スクロール、検索、行番号表示、ファイルの末尾から表示など、長いファイルを効率的に閲覧する方法を学びましょう。
初級ファイル操作
問題12: file - ファイルタイプの確認
fileコマンドは、ファイルの種類を判定して表示します。拡張子に頼らずにファイルの実際の形式を確認でき、テキストファイル、バイナリファイル、画像、実行ファイルなどを識別できます。
初級権限とユーザー
問題13: chmod - ファイルの権限変更
chmodコマンド(change mode)は、ファイルやディレクトリのアクセス権限を変更します。シンボリック表記(+x、-wなど)と数値表記(755、644など)の両方を学び、実行権限の設定、書き込み権限の削除、再帰的な権限変更などをマスターしましょう。
初級権限とユーザー
問題14: chown - ファイルの所有者変更
chownコマンド(change owner)は、ファイルやディレクトリの所有者とグループを変更します。ユーザーのみの変更、グループのみの変更、両方の同時変更、そして再帰的な所有者変更について学びましょう。システム管理では重要なコマンドです。
初級権限とユーザー
問題15: whoami - 現在のユーザー名表示
whoamiコマンドは、現在ログインしているユーザー名を表示します。sudoで実行した場合の動作、suコマンドでユーザーを切り替えた後の確認、シェルスクリプト内での使用など、様々な場面での活用方法を学びましょう。
初級権限とユーザー
問題16: id - ユーザーとグループID表示
idコマンドは、ユーザーのUID(ユーザーID)、GID(グループID)、所属するグループの情報を表示します。-uオプションでUIDのみ、-gオプションでGIDのみ、-nオプションで名前表示など、様々なオプションの使い方を学びましょう。
初級テキスト処理
問題17: echo - テキストの出力
echoコマンドは、テキストを標準出力に表示します。単純なテキスト出力から、改行なし出力、エスケープシーケンスの使用、変数の展開など、様々な出力方法を学びましょう。シェルスクリプトでのメッセージ表示やデバッグにもよく使われます。
初級テキスト処理
問題18: head - ファイルの先頭部分を表示
headコマンドは、ファイルの先頭部分を表示します。デフォルトでは最初の10行を表示しますが、-nオプションで行数を指定できます。ログファイルやデータファイルの冒頭を確認する際によく使用されます。
初級テキスト処理
問題19: tail - ファイルの末尾部分を表示
tailコマンドは、ファイルの末尾部分を表示します。デフォルトでは最後の10行を表示します。ログファイルの最新エントリを確認したり、ファイルの終端部分を見る際に便利です。-n +NでN行目から最後までを表示することもできます。
初級テキスト処理
問題20: tail -f - リアルタイムログ監視
tail -fオプションは、ファイルの更新をリアルタイムで監視し、新しい内容が追加されるたびに表示します。ログファイルの監視や、実行中のプロセスの出力を確認する際に非常に便利です。Ctrl+Cで監視を終了します。
初級テキスト処理
問題21: wc - 行数・単語数・文字数をカウント
wcコマンド(word count)は、ファイルの行数、単語数、バイト数をカウントします。テキストファイルの規模を把握したり、処理結果の件数を確認する際によく使用されます。パイプと組み合わせて使うことも多いコマンドです。
初級ヘルプとドキュメント
問題22: man - マニュアルページ
manコマンド(manual)は、コマンドの詳細なマニュアル(説明書)を表示します。使い方、オプション、例などが記載されており、Linuxコマンドを学ぶ上で最も重要なツールの一つです。スペースキーで次のページ、qで終了します。
初級ヘルプとドキュメント
問題23: --help - コマンドヘルプ
--helpオプションは、コマンドの簡潔な使用方法を表示します。manページよりも短く、主要なオプションと使用例が確認できます。ほとんどのコマンドでサポートされており、素早くオプションを確認したい時に便利です。
初級ヘルプとドキュメント
問題24: which - コマンドの場所
whichコマンドは、実行可能なコマンドのフルパスを表示します。システムに同じ名前のコマンドが複数ある場合、どれが実行されるかを確認できます。コマンドがインストールされているかの確認にも使用されます。
初級ヘルプとドキュメント
問題25: type - コマンドタイプ
typeコマンドは、コマンドの種類(外部コマンド、シェル組み込み、エイリアス、関数など)を表示します。whichと異なり、シェルの組み込みコマンドやエイリアスも識別できるため、より詳細な情報が得られます。
中
中級
無料で学習可能
中級高度なファイル操作
問題26: find - ファイルとディレクトリの検索
findコマンドは、ファイルシステムを検索して条件に一致するファイルやディレクトリを見つける強力なツールです。名前、サイズ、更新日時、権限など様々な条件で検索でき、見つかったファイルに対してコマンドを実行することもできます。
中級高度なファイル操作
問題27: locate - データベースベースの高速検索
locateコマンドは、実際のファイルシステムではなく事前に構築されたデータベースを検索することで、ファイルを高速に見つける方法を提供します。findよりもずっと高速ですが、updatedbで定期的にデータベースを更新する必要があります。ファイル名がわかっている場合の素早い検索に最適です。
中級高度なファイル操作
問題28: tar - アーカイブの作成と展開
tar(tape archive)コマンドは、アーカイブファイルの作成と展開に使用されます。複数のファイルやディレクトリを1つのアーカイブファイルにまとめることができ、オプションで圧縮も可能です。一般的な形式には.tar(非圧縮)、.tar.gz(gzip圧縮)、.tar.bz2(bzip2圧縮)があります。
中級高度なファイル操作
問題29: zip/unzip - ZIPファイルの圧縮と解凍
zipとunzipコマンドは、異なるオペレーティングシステム間で広く互換性のあるZIPアーカイブを作成・展開します。ZIPアーカイブは複数のファイルとディレクトリを組み込み圧縮でまとめるため、ファイル共有に理想的です。
中級テキスト処理
問題30: grep - パターンマッチング検索
grepコマンド(global regular expression print)は、ファイル内のテキストパターンを検索する強力なツールです。基本的な文字列検索から、正規表現を使った高度なパターンマッチングまで、ログ解析やコード検索に欠かせないコマンドです。
中級テキスト処理
問題31: sed - ストリームエディタによるテキスト処理
sed(stream editor)コマンドは、テキストストリームに対してパターンマッチングと編集操作を行う強力なツールです。ファイルを直接編集することなく、置換、削除、挿入などの操作を行えます。設定ファイルの自動更新やログファイルの加工に広く使用されています。
中級テキスト処理
問題32: awk - パターンスキャンと処理
awkは、テキストファイルのパターンスキャンと処理を行うプログラミング言語です。各行をフィールドに分割し、条件に基づいて処理を実行できます。データの抽出、フォーマット変換、簡単な集計処理に最適で、CSVファイルやログファイルの解析に広く使用されています。
中級テキスト処理
問題33: sort - テキストのソート
sortコマンドは、テキストファイルの行をアルファベット順や数値順にソートします。複数のソートキーの指定、逆順ソート、重複行の削除など、様々なオプションを提供します。データの整理や、他のコマンド(uniqなど)と組み合わせたデータ処理に不可欠なツールです。
中級テキスト処理
問題34: uniq/cut - 重複行の処理とフィールドの抽出
uniqコマンドは連続する重複行を処理し、cutコマンドはテキストから特定のフィールドや文字を抽出します。uniqは重複の削除やカウントに使用され、cutはCSVファイルやログファイルから必要な部分だけを取り出すのに使用されます。両コマンドともパイプラインでの使用が一般的です。
中級プロセス管理
問題35: ps - プロセスの表示
psコマンドは実行中のプロセスを表示します。現在のシステムで動作しているプロセスの情報(PID、CPU使用率、メモリ使用量、実行コマンドなど)を確認できます。さまざまなオプションを組み合わせることで、必要な情報を詳細に表示できます。
中級プロセス管理
問題36: top/htop - リアルタイムプロセス監視
topコマンドはシステムのプロセスをリアルタイムで監視します。CPU使用率、メモリ使用量、負荷平均などのシステム情報と、各プロセスのリソース使用状況を動的に表示します。htopはtopの改良版で、より使いやすいインターフェースを提供します。
中級プロセス管理
問題37: kill - プロセスの終了
killコマンドはプロセスにシグナルを送信してプロセスを制御します。最も一般的な使用方法はプロセスの終了ですが、一時停止や再開など、さまざまなシグナルを送信できます。プロセスIDまたはプロセス名を指定して操作を行います。
中級プロセス管理
問題38: jobs/bg/fg - ジョブ制御
シェルのジョブ制御機能を使用して、複数のプロセスを管理します。jobsコマンドで現在のジョブを確認し、bgコマンドでバックグラウンド実行、fgコマンドでフォアグラウンドに戻すことができます。Ctrl+Zで実行中のプロセスを一時停止できます。
中級ネットワーク基礎
問題39: ping - ネットワーク接続確認
pingコマンドは、ネットワーク上のホストへの接続性を確認する基本的なツールです。ICMP(Internet Control Message Protocol)パケットを送信し、応答時間やパケットロスを測定します。ネットワークトラブルシューティングの第一歩として広く使用されています。
中級ネットワーク基礎
問題40: curl - URLからデータを取得
curlコマンドは、様々なプロトコルを使用してデータを転送する強力なツールです。HTTPやHTTPSを使ったWebページの取得、APIへのリクエスト送信、ファイルのダウンロードなど、幅広い用途に使用されます。RESTful APIの開発やテストに欠かせないツールです。
中級ネットワーク基礎
問題41: wget - ファイルのダウンロード
wgetコマンドは、ウェブからファイルをダウンロードする専用ツールです。再帰的なダウンロード、中断された転送の再開、Webサイト全体のミラーリングなど、高度な機能を提供します。curlよりもダウンロードに特化しており、大量のファイルダウンロードに適しています。
中級ネットワーク基礎
問題42: netstat/ss - ネットワーク接続状態
netstatとssコマンドは、ネットワーク接続、ルーティングテーブル、インターフェース統計などを表示します。ssはnetstatの後継で、より高速で機能豊富です。開いているポート、確立された接続、リスニング状態のサービスなどを確認でき、セキュリティ監視やトラブルシューティングに重要です。
中級環境変数とシェル
問題43: export - 環境変数の設定
exportコマンドは、環境変数を設定してサブプロセスに引き継ぐために使用します。環境変数は、プログラムの動作を制御したり、システム設定を保存したりするのに重要です。PATHやHOMEなどのシステム変数から、アプリケーション固有の設定まで、様々な用途で使用されます。
中級環境変数とシェル
問題44: source/. - ファイルの実行と読み込み
sourceコマンド(または.)は、指定したファイルを現在のシェル環境で実行します。新しいシェルを起動せずに、ファイル内のコマンドを実行し、変数や関数を現在の環境に読み込みます。設定ファイルの読み込みや環境変数の設定に広く使用されます。
中級環境変数とシェル
問題45: alias - コマンドエイリアス
aliasコマンドは、よく使うコマンドに短い別名を付ける機能です。長いコマンドやオプションの組み合わせを簡潔に実行できるようになり、作業効率が大幅に向上します。一時的なエイリアスはセッション終了で消えますが、.bashrcに記述すると永続化できます。
中級環境変数とシェル
問題46: history - コマンド履歴の操作
historyコマンドは、実行したコマンドの履歴を表示・操作します。過去に実行したコマンドを再実行したり、履歴から検索したりできます。!記号を使った履歴展開機能により、効率的なコマンド操作が可能になります。bashでは通常500〜1000件の履歴が保存されます。
中級パイプとリダイレクト
問題47: | (パイプ) - コマンドの連結
パイプ(|)は、あるコマンドの出力を別のコマンドの入力として渡すことができる強力な機能です。複数のコマンドを連結して、複雑な処理を簡潔に記述できます。UNIXの哲学「一つのことをうまくやる小さなプログラムを組み合わせる」を体現する重要な機能です。
中級パイプとリダイレクト
問題48: > (リダイレクト) - 出力のリダイレクト
リダイレクト演算子(>)を使用すると、コマンドの標準出力をファイルに保存できます。既存のファイルがある場合は上書きされます。これは、コマンドの結果を保存したり、ログファイルを作成したりする際に非常に便利です。
中級パイプとリダイレクト
問題49: >> (追記) - 出力の追記
追記演算子(>>)を使用すると、コマンドの出力を既存のファイルの末尾に追加できます。ログファイルの作成や、複数のコマンドの結果を一つのファイルにまとめる際に非常に有用です。>との違いは、既存の内容を保持する点です。
中級パイプとリダイレクト
問題50: < (入力リダイレクト) と 2> (エラー出力) - ファイル入力とエラー処理
入力リダイレクト(<)はファイルの内容をコマンドの標準入力として使用し、エラーリダイレクト(2>)は標準エラー出力を別途処理できます。これらを組み合わせることで、入出力とエラーを柔軟に制御できます。&>は標準出力とエラー出力の両方をリダイレクトします。
上
上級
無料で学習可能
上級シェルスクリプト
問題51: 変数とパラメータ - シェル変数の使い方
シェルスクリプトにおける変数の定義、代入、参照、そしてスクリプトのコマンドライン引数(パラメータ)の使い方を学びます。変数のスコープ、特殊変数($0、$1、$#、$@など)、変数展開の様々な形式を理解し、堅牢なスクリプトを書くための基礎を身につけましょう。
上級シェルスクリプト
問題52: 条件分岐 (if/case) - 条件処理
シェルスクリプトにおける条件分岐の実装方法を学びます。if文での条件判定、test コマンド([ ])の使い方、case文による複数条件の分岐処理を理解し、適切な条件分岐ロジックを実装できるようになりましょう。
上級シェルスクリプト
問題53: ループ (for/while) - 繰り返し処理
シェルスクリプトでの繰り返し処理を学びます。for文による値のリストやファイルの処理、while文による条件付きループ、readを使ったファイル読み込みループなど、様々なループパターンを習得しましょう。
上級シェルスクリプト
問題54: 関数 - シェル関数の定義と使用
シェルスクリプトにおける関数の定義、呼び出し、引数の受け渡し、戻り値の扱い方を学びます。関数内でのローカル変数の使用、コマンド置換による戻り値の取得など、再利用可能なコードを書くための技術を習得しましょう。
上級シェルスクリプト
問題55: エラーハンドリング - エラー処理とデバッグ
シェルスクリプトにおけるエラーハンドリングとデバッグ技術を学びます。set オプションによるエラー時の動作制御、trap によるエラー捕捉、デバッグモードの使用、適切なエラーメッセージの出力方法を習得し、堅牢なスクリプトを作成しましょう。
上級システム管理
問題56: systemctl - サービス管理
systemd を使用したサービスの管理方法を学びます。サービスの起動・停止、自動起動の設定、ステータス確認、設定のリロードなど、システム管理に必要な systemctl コマンドの使い方を習得しましょう。
上級システム管理
問題57: cron/crontab - スケジュールされたタスク
cron を使用したタスクのスケジューリング方法を学びます。crontab の編集・表示・削除、cron の時間指定書式、定期実行の設定方法など、自動化に必須の cron の使い方を習得しましょう。
上級システム管理
問題58: df/du - ディスク使用状況の確認
ディスク使用状況の確認方法を学びます。df コマンドによるファイルシステムの使用率確認、du コマンドによるディレクトリサイズの計算、inode 使用率の確認など、システム管理に必要なディスク管理コマンドを習得しましょう。
上級システム管理
問題59: mount/umount - ファイルシステムのマウント
ファイルシステムのマウント管理を学びます。デバイスのマウント・アンマウント、ファイルシステムタイプの指定、読み取り専用マウント、マウント状態の確認など、ストレージ管理に必要な mount/umount コマンドを習得しましょう。
上級ネットワーク詳細
問題60: tcpdump - パケットキャプチャ
tcpdump を使用したネットワークパケットのキャプチャ方法を学びます。インターフェース指定、ポートフィルタリング、パケット数制限、詳細表示、ファイルへの保存など、ネットワーク解析に必要な tcpdump の使い方を習得しましょう。
上級ネットワーク詳細
問題61: iptables - ファイアウォール設定
iptables を使用した Linux ファイアウォールの設定方法を学びます。ルールの表示、追加、挿入、削除、ポートやIPアドレスによるフィルタリングなど、セキュリティ管理に必要な iptables の操作を習得しましょう。
上級ネットワーク詳細
問額62: nc (netcat) - ネットワークスイスアーミーナイフ
nc (netcat) を使用したネットワーク通信の方法を学びます。ポートリスニング、クライアント接続、ポートスキャン、UDP通信、タイムアウト設定など、ネットワークデバッグやテストに便利な nc の機能を習得しましょう。
上級パフォーマンス監視
問題63: top/htop - プロセス監視
top と htop を使用したシステムリソースの監視方法を学びます。バッチモード、更新回数制限、更新間隔設定、ユーザーフィルタリング、ツリー表示など、パフォーマンス監視に必要な top/htop の機能を習得しましょう。
上級パフォーマンス監視
問題64: iostat/vmstat - I/Oとメモリ統計
iostat と vmstat を使用したシステム統計情報の収集方法を学びます。ディスクI/O統計、CPU使用率、メモリ使用状況、プロセス統計など、パフォーマンス分析に必要な統計情報の取得方法を習得しましょう。
上級パフォーマンス監視
問題65: strace/lsof - システムコールとファイルディスクリプタ
strace と lsof を使用したシステムレベルのデバッグ方法を学びます。システムコールのトレース、特定コールのフィルタリング、オープンファイルの表示、ネットワーク接続の確認など、トラブルシューティングに必要な技術を習得しましょう。
上級高度なテキスト処理
問題66: sed 高度な使い方 - ストリームエディタ
sed の高度な機能を学びます。インプレース編集、行番号指定、パターンによる削除、行の追加、範囲指定など、複雑なテキスト処理に必要な sed の高度なテクニックを習得しましょう。
上級高度なテキスト処理
問題67: awk 高度な使い方 - パターンスキャン言語
awk の高度な機能を学びます。フィールドセパレータの指定、条件付き処理、BEGIN/END ブロック、変数の使用、組み込み変数など、データ処理に必要な awk の高度なテクニックを習得しましょう。
上級高度なテキスト処理
問題68: perl ワンライナー - 強力なテキスト処理
Perl のワンライナーを使用した高度なテキスト処理を学びます。正規表現による置換、パターン抽出、フィールド分割、行番号表示、集計処理など、Perl の強力なテキスト処理機能を習得しましょう。
上級高度なテキスト処理
問題69: jq - JSON処理
jq を使用したJSONデータの処理方法を学びます。基本的な選択、配列処理、フィルタリング、マッピング、生出力など、JSONデータの操作に必要な jq の機能を習得しましょう。
上級高度なテキスト処理
問題70: 構造化データ処理 - XML/YAML/CSV
構造化データの処理方法を学びます。xmlstarlet によるXML処理、yq によるYAML処理、csvkit によるCSV処理など、様々なフォーマットの構造化データをコマンドラインで処理する技術を習得しましょう。