LINUX — コマンド実践ドリル

Linuxドリル

このサイトは読む講座ではなく、叩く講座です。1ページにつき約30行のコマンドが用意されているので、上から順に手打ちしていくだけで、Linuxコマンドが自然と体に染み込んでいきます。このドリルを平気で叩けるようになった新社会人は、配属初日からサーバー業務にすっと入れる──そのレベルを到達点にしています。動作環境はAmazon Lightsail(Ubuntu 24.04 LTS)を使用します。実際にサーバーを1台契約するところから始めるため、月額課金が発生する点はあらかじめご了承ください(契約手順は第0章で解説します)。物語の軸には、練習用ユーザーyumiを自分のサーバーに作り、一緒にあらゆる操作を練習し、最後は感謝を込めてyumiを削除してサーバーごと片付ける──そんな小さな物語を用意しました。

講師:榊 裕次郎(Excel講師・データサイエンティスト)
ゆみちゃん
ゆみ

この講座のナビゲーター、ゆみです! これから一緒にLinuxのサーバーの中を歩き回っていくよ。黒い画面は最初はちょっと怖いかもしれないけど、コマンドは全部上から順に打てば通るように作ってあるから安心して! 右上のボタンでダークモードにも切り替えられるよ。あと、このサイトには広告が含まれてるから、そこだけ先に断っておくね!

CHAPTER 0

サーバーを手に入れる

まだ何も始まっていない状態から、自分専用のLinuxサーバーを用意するところまでの章です。Amazon Lightsailの契約とUbuntuインスタンスの作成、ブラウザ・ターミナル両方からのSSH接続、そして黒い画面(ターミナル)の読み方に慣れる最初の10コマンドを扱います。

  1. 0 — 1

    Lightsailを契約する

    Amazon LightsailでUbuntuインスタンスを作成するまでを、ブラウザ操作の画面つきで解説します(本講座で唯一ドリルのない回です)。

  2. 0 — 2

    SSHで接続する

    ブラウザ内蔵ターミナルで初接続したあと、Tera Termとpemキーを準備して、自分のPCからサーバーに出入りする感覚を掴みます。

  3. 0 — 3

    ターミナルの読み方

    プロンプトの読み方を押さえたうえで、whoamihostnamedatecalechoclearhistoryman--helpexitという最初の10コマンドを叩きます。

CHAPTER 1

ファイル操作の基本

Linux操作の土台となる、ファイルとディレクトリの基本操作をまとめて身につける章です。今いる場所を確認して移動する、作る、コピー・移動・削除する、中身を見る、困ったときに調べる、そして操作を高速化するショートカットまでを一通り体験します。

  1. 1 — 1

    ファイルシステムを歩く ― pwd・ls・cd

    pwdls(-l -a -lh)・cdを使い、絶対パス・相対パス・ホームディレクトリの考え方を身につけます。

  2. 1 — 2

    ファイルとディレクトリを作る

    mkdir(-p)でディレクトリを、touchで空ファイルを作成し、rmdirtreeで構造を確認します。

  3. 1 — 3

    コピー・移動・削除

    cp(-r)・mvrm(-r)を練習用ディレクトリ内で使い、安全な削除の作法を身につけます。

  4. 1 — 4

    ファイルの中身を見る

    catlessheadtail(-n -f)・filewcで、ファイルの中身と量を確認する方法を学びます。

  5. 1 — 5

    困ったときの調べ方

    man--helpwhichtypewhatisaproposで、コマンド自身に助けを求める方法を身につけます。

  6. 1 — 6

    履歴とショートカット

    history!!!n・Ctrl+R・Tab補完・Ctrl+A/E/C/Lを使い、コマンド入力を高速化します。

CHAPTER 2

ユーザーと権限 ― yumiを迎える

本講座の物語が本格的に動き出す章です。管理者権限の正体を知り、練習用ユーザーyumiをサーバーに迎え入れ、ユーザーを切り替えながらパーミッションと所有者の仕組みを学びます。最後にyumiと共有ディレクトリを作る総合演習で締めくくります。

  1. 2 — 1

    sudoとrootの正体

    sudosu -でroot権限に触れ、/etc/sudoersを覗きながら管理者権限の考え方を学びます。

  2. 2 — 2

    yumiを作成する

    adduserで練習用ユーザーyumiを作成し、id/etc/passwd/home/yumiを確認します。

  3. 2 — 3

    ユーザーを切り替える

    su - yumiwhoamipasswdexitを使い、ユーザーごとに見える世界が違うことを体験します。

  4. 2 — 4

    パーミッションを読む

    ls -lの権限表示の読み方と、chmod(数字指定・記号指定)による755・644の設定を学びます。

  5. 2 — 5

    所有者とグループ

    chownchgrpgroupsusermod -aGを使い、sudoグループへの追加までを扱います。

  6. 2 — 6

    権限総合演習

    yumiと共有するディレクトリを実際に作りながら、この章で学んだ権限操作を総合的に練習します。

CHAPTER 3

テキスト処理

Linuxサーバーの多くの作業はテキストファイルの読み書きに帰着します。エディタでの編集から、リダイレクトとパイプによるコマンド連結、検索・整形・集計まで、テキストを自在に操るための道具を揃える章です。

  1. 3 — 1

    nanoでファイルを編集する

    nanoエディタで設定ファイル風のメモを書き、保存・上書きするところまでを一通り練習します。

  2. 3 — 2

    vim入門

    モードの概念、i:wq:q!ddyyp・検索(/)というvimの基本操作を学びます。

  3. 3 — 3

    リダイレクトとパイプ

    echo>>><|teeを組み合わせ、コマンドの出力を自在に組み立てます。

  4. 3 — 4

    grepで検索する

    grep(-i -n -v -r -c)を使い、/etc/passwdからyumiの行を探し出す実践的な検索を練習します。

  5. 3 — 5

    テキスト加工ツール

    sortuniqcuttrwcをパイプでつなぎ、テキストデータを加工・集計します。

  6. 3 — 6

    sedとawkでミニ集計

    sed(s///、-i)による置換と、awk(print $1、-F)によるミニ集計を体験します。

CHAPTER 4

システムを観察する

サーバーの「今の状態」を見る力を養う章です。動いているプロセス、ディスクとメモリの使用状況、ファイル探索、アーカイブ化、そしてリンクとinodeの仕組みまで、システムの中身を覗き込むための道具を揃えます。

  1. 4 — 1

    プロセスを見る

    ps auxtopkillsleep &jobsfgbgで動いているプロセスの制御を学びます。

  2. 4 — 2

    ディスクとメモリ

    df -hdu -shfree -huptimelscpuで、サーバーのリソース状況を確認します。

  3. 4 — 3

    findとlocateで探す

    find(-name -type -mtime -exec)とlocateupdatedbで、目的のファイルを探し出す方法を学びます。

  4. 4 — 4

    アーカイブとバックアップ

    tar(czf/xzf/tzf)・gzipzip/unzipを使い、ファイルの圧縮とバックアップ作成を練習します。

  5. 4 — 5

    リンクとinode

    lnln -sls -ireadlinkを使い、シンボリックリンクとリンク切れの実体験までを扱います。

CHAPTER 5

管理者の仕事

サーバー管理者としての実務に踏み込む章です。パッケージ管理、サービスの起動・停止、定期実行、ログの追い方、ネットワークの確認、そしてファイアウォールとSSH設定まで、Lightsailならではの「壊しても作り直せる」安心感のもとで扱います。

  1. 5 — 1

    apt でパッケージ管理

    apt update/upgrade/install/remove/searchdpkg -lでソフトウェアを管理します。

  2. 5 — 2

    systemdでサービス管理

    systemctl status/start/stop/enableを使い、サービスという考え方を身につけます。

  3. 5 — 3

    cronで定期実行

    crontab -e/-lと5フィールドの書式を学び、1分ごとにログを吐く実験を行います。

  4. 5 — 4

    ログを読む

    journalctl(-u -f --since)と/var/logtail -fによるリアルタイム監視を練習します。

  5. 5 — 5

    ネットワークを確認する

    ip ass -tlnppingcurlwgetで、ホスト名とDNSまわりの基礎を確認します。

  6. 5 — 6

    ファイアウォールとSSH設定

    ufw(status/allow/enable)とLightsailファイアウォールの関係、sshd_configの中身を確認します。

CHAPTER 6

シェルの力

コマンドを組み合わせて自動化する、シェルスクリプトの世界に入る章です。変数の扱いから最初のスクリプト作成、条件分岐と繰り返し、引数と関数、そして自分好みのプロンプトを作るところまでを扱います。

  1. 6 — 1

    変数と環境変数

    シェル変数、exportenv$PATH$HOME$(command)によるコマンド置換を学びます。

  2. 6 — 2

    初めてのシェルスクリプト

    #!/bin/bashchmod +xで最初のスクリプトを作成し、readで入力を受け取ります。

  3. 6 — 3

    条件分岐と繰り返し

    iftest([ ])・forwhileを使った判定ドリルでスクリプトの制御構造を身につけます。

  4. 6 — 4

    引数と関数、実用スクリプト

    $1$#などの引数、関数の定義を学び、実用的なログ整理スクリプトを作成します。

  5. 6 — 5

    エイリアスとプロンプト設定

    alias.bashrcの編集、PS1によるプロンプトのカスタマイズを行います。

CHAPTER 7

卒業制作 ― yumiを見送る

講座の総仕上げとなる最終章です。自分のサーバーでWebページを公開し、これまで学んだ全章の集大成としてバックアップスクリプトとcronを組み合わせ、最後にyumiを削除してインスタンスを片付ける「卒業」までを描きます。

  1. 7 — 1

    自分のページを公開する

    nginxをaptで導入しsystemctlで起動、echo >で作った自分のページをcurlとブラウザで確認します。

  2. 7 — 2

    総合演習 ― 全章の集大成

    yumiのホームディレクトリをバックアップするスクリプトを作成し、cronに登録するところまでを、全章の知識を使って仕上げます。

  3. 7 — 3

    yumiを見送り、サーバーを片付ける

    userdel -rでyumiを削除し、パッケージ削除・スナップショット作成を経て、インスタンス削除まで行い講座を締めくくります。

FEEDBACK — 質問・ご意見をお寄せください

わからない箇所、ありませんでしたか?

コマンドを打っていて「エラーが出て先に進めない」「ここの意味がわからない」という箇所がありましたら、ぜひお寄せください。可能な範囲でお返事いたします。いただいた質問は、本講座の改善や新しい解説コンテンツの題材としても活用させていただきます。

質問・ご意見を送る

※Microsoft Formsで開きます。匿名で送信できます。