コース一覧
シェル実践
パッケージ管理

シェル実践

シェルスクリプト、条件分岐、ループ、関数、ログ解析、システム管理を学び、定型作業を安全に自動化できるようにします。

1
シェルスクリプト入門
0. シェルスクリプトとは5分
1. 変数と引数5分
2. 条件分岐 if5分
3. ループ処理 for, while5分
4. 関数を定義する5分
5. 実践スクリプト作成5分
6. シェルスクリプトチェック5分
2
実践:ログ解析とシステム管理
0. ログファイルの解析5分
1. システム情報の取得5分
2. パッケージ管理5分
3. cron で定期実行5分
4. 開発環境での Linux 活用例5分
5. 総合チェック5分

シェル実践

01シェルスクリプトとは
02変数と引数
03条件分岐 if
04ループ処理 for, while
05関数を定義する
06実践スクリプト作成
07シェルスクリプトチェック
08ログファイルの解析
09システム情報の取得
10パッケージ管理
11cron で定期実行
12開発環境での Linux 活用例
13総合チェック

シェル実践

パッケージ管理

入れたはずなのに、古い版が入る

新しく借りたサーバーで、必要なコマンドを 1 つ入れようとして Unable to locate package と断られる。あるいは入ったものの、手元より何年も古い版だった。どちらも、同じ原因で起きます。

パッケージマネージャは、インターネットを毎回探しに行くわけではありません。手元に持っている目録を見て、そこに載っている場所から取ってきます。借りたばかりのサーバーの目録は、イメージが作られた日のまま止まっています。

ターミナル

sudo apt update
sudo apt install -y jq

前の 1 行が目録の取り直し、後ろの 1 行が導入です。この 2 つは必ず組で打ちます。-y は確認への返事を省く指定で、自動化するときには必要ですが、手で打つときはあえて外し、何が入るのかを読んでから通す方が安全です。

系統ごとに名前が違うだけで、考え方は共通です。

系統代表的なディストリビューション使うコマンド
Debian 系Ubuntu, Debianapt
Red Hat 系Rocky, AlmaLinux, Fedoradnf
AlpineAlpine Linuxapk

1 つ入れたつもりが、何十個も入る

パッケージは単体では動きません。必要なライブラリを芋づる式に連れてきます。そのため「小さなツールを 1 つ」のつもりが、数百 MB を占めることがあります。実行する前に、何が起きるかを見ておきます。

ターミナル

$ apt install --dry-run nginx | tail -5

--dry-run を付けると、実際には入れずに、入る予定のものだけを並べてくれます。ディスクの残りが少ないサーバーや、構成を変えたくない本番環境では、この確認を挟んでください。

本番で apt upgrade を素で打たない

apt upgrade は、入っているものすべてを新しくします。手元の開発機なら歓迎ですが、動いているサーバーでは話が変わります。アプリが前提にしているライブラリまで上がり、再起動したときに立ち上がらなくなる、という止まり方をします。

目的が 1 つのパッケージの更新なら、対象を指定します。

ターミナル

sudo apt install -y --only-upgrade nginx

逆に、上げてほしくないものには印を付けておけます。

ターミナル

sudo apt-mark hold nginx

hold を付けたパッケージは、全体の更新からも外れます。版を固定したい理由があるときに使い、外すときは unhold に替えます。

なお、Python や Node.js のライブラリは、OS のパッケージ管理とは別の仕組みで入れます。両方から同じものを入れると、どちらが使われているのか分からなくなります。OS の道具は OS の管理で、アプリのライブラリは言語側の管理で、と分けておいてください。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • サーバークライアント(ブラウザなど)がリクエストを送り、サーバーがレスポンスを返す。
  • インターネット世界中のコンピュータをつなぐネットワークの集合体。
  • イメージコンテナのテンプレートとなる静的データ
  • ビュークエリに名前をつけて再利用する仮想表
  • Node.jsJavaScript をサーバ側で動かすランタイム
生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2025/12/19·更新 2026/08/26

関連レッスン

  • cron で定期実行

    `cron`を設定し、コマンドを定期的に実行する方法をターミナルで体験します。

  • 開発環境での Linux 活用例

    開発現場でLinuxがどのように活用されているか、具体的な例を通して学びます。

  • 総合チェック

    Linuxコマンドに関する理解度を測る総合チェックです。ここまでの学習内容を復習しましょう。

分からないところは Tap (AI先生) に質問できます

24 時間いつでも、あなたのレベルに合わせて日本語で答えます。