こんにちは、インフラエンジニアのryuです。
AIに質問すれば、LinuxコマンドやAWS CLIの書き方をすぐに教えてもらえる時代になりました。目的を伝えるだけで、オプションを含めたコマンドまで作ってくれます。
とても便利です。
一方で、これからLinuxを学ぶ方は、こんな疑問を持つのではないでしょうか?
AIがコマンドを教えてくれるなら、わざわざ暗記する必要はないのではないか。
ls、grep、chmod、systemctlなど、コマンドは数が多く、さらにオプションまであります。すべて覚えようとすると、学習を始めたばかりの方ほど大変に感じますよね。
先に私の考えをお伝えします。
すべてのコマンドを暗記する必要はありません。ただし、よく使う基本コマンドは、考えなくても使える状態まで身につけた方がよいです。
AI時代に必要なのは、暗記をやめることではありません。覚えるものと、調べながら使うものを分けることです。
この記事では、エンジニア歴10年の経験をもとに、AI時代のコマンド学習について初心者向けに解説します。
AIがあってもコマンドを覚えた方がよい理由¶
AIは、やりたいことを伝えるとすぐにコマンドを提案してくれます。
たとえば、Nginxのエラーログからerrorを含む直近20行を確認したいとします。AIに聞くと、次のようなコマンドが返ってくるでしょう。
grep -i "error" /var/log/nginx/error.log | tail -n 20
このコマンドをコピーして実行すれば、目的のログを確認できるかもしれません。
では、実行できればそれで十分なのでしょうか。
私は、そうではないと考えています。
grepは文字列を検索するコマンドです。-iは大文字と小文字を区別せず、|は左側の結果を右側へ渡し、tail -n 20は最後の20行を表示します。
ここまで理解できれば、結果が出なかったときに検索文字を変えたり、ログファイルの場所を確認したりできます。
意味を知らずに貼り付けただけでは、なぜ結果が出ないのか分かりません。AIが間違ったファイルを指定していても、気づけない可能性があります。
AI時代に必要なのは、コマンドを一字一句思い出す力だけではありません。
AIが作ったコマンドを読み、自分の環境で使ってよいか判断する力が必要です。
AI時代に基礎を学ぶ意味については、AI時代にインフラの基礎を学ぶ重要性とは?でも詳しく解説しています。
暗記することと理解することは違う¶
コマンドの勉強というと、単語帳のようにコマンド名と意味を覚えるイメージがあるかもしれません。
しかし、コマンド名を覚えていても、どの場面で使うのか分からなければ実務では使えません。
たとえば、grepは文字列を検索するコマンドだと覚えたとします。それだけでは、ログ調査や設定ファイルの確認で、どのように使えばよいのかイメージしにくいでしょう。
実際には、次のような場面で使います。
grep "Failed password" /var/log/auth.log
これは、認証ログからFailed passwordを含む行を探す例です。
コマンドの意味だけでなく、どのファイルに対して、何を調べるために使ったのかまでセットにすると記憶に残りやすくなります。
つまり、目指したいのは丸暗記ではありません。
目的とコマンドが結びついている状態を目指しましょう。
覚えるコマンドと調べるコマンドを分けよう¶
Linuxには多くのコマンドがあります。一つのコマンドに、数十個のオプションが用意されていることもあります。
これらをすべて暗記するのは現実的ではありません。
そこで、私はコマンドを3つに分けて考えるのがおすすめだと思っています。
| 分類 | 学習の目安 | コマンドの例 |
|---|---|---|
| よく使うので覚える | 基本形を見ずに使える | pwd、ls、cd、cat、less、grep、cp、mv |
| 用途を理解して調べる | 何ができるか説明できる | find、sed、awk、tar、journalctl、ss |
| 実行前に毎回確認する | 対象と影響範囲を確認する | rm -rf、chmod -R、chown -R、ディスク操作系 |
毎日のように使うコマンドは、自然に手が動く状態にしておいた方が効率的です。
現在地を確認するたびにAIへpwdの使い方を聞いていたら、作業の流れが止まってしまいます。
一方で、数か月に一度しか使わない複雑なコマンドは、無理に覚える必要はありません。何ができるコマンドなのかを知っていれば、必要になったときにAIや公式ドキュメントで調べられます。
また、削除や権限変更に関するコマンドは、覚えていても確認してから実行した方が安全です。
暗記していることと、安全に使えることは別です。
初心者は何個くらい覚えればよいのか¶
最初から50個、100個と覚える必要はありません。
まずは、Linuxの中を移動し、ファイルを確認し、必要な情報を探せるようになることを目指しましょう。
初心者が最初に使えるようになりたいコマンドを整理すると、次のようになります。
| 目的 | コマンド例 | 覚えたい内容 |
|---|---|---|
| 現在地を確認する | pwd |
今いるディレクトリを確認する |
| ファイルを一覧表示する | ls -la |
隠しファイルや権限も表示する |
| ディレクトリを移動する | cd |
絶対パスと相対パスを使う |
| ファイルを見る | cat、less、tail |
ファイルの大きさで使い分ける |
| 文字列を探す | grep |
ログや設定から必要な行を探す |
| コピーや移動をする | cp、mv |
実行先を確認して操作する |
| プロセスを確認する | ps |
動いているプログラムを調べる |
| サービスを確認する | systemctl status |
起動状態やエラーを確認する |
最初は10個前後で十分です。
基本コマンドの使い方を先に確認したい方は、初心者向けのよく使うLinuxコマンド10選も参考にしてください。
ここで大切なのは、一つずつ孤立させて覚えないことです。
たとえば、Nginxのログを確認する練習なら、次のような流れで操作します。
pwd
cd /var/log/nginx
ls -la
tail -n 50 error.log
grep -i "error" error.log
現在地を確認し、ログがある場所へ移動し、ファイルを探し、中身を読み、必要な行を検索しています。
5つのコマンドが、一つの目的につながっています。
grepは検索するコマンドとだけ覚えるより、エラーを探すために使った経験の方が強く残ります。
オプションはすべて覚えなくてよい¶
コマンド名は分かっても、-a、-l、-r、-fなどのオプションで混乱する方は多いです。
同じ-rでも、コマンドによって意味が違う場合があります。すべて覚えようとすると、かなり大変です。
オプションは、よく使う組み合わせだけ覚えれば問題ありません。
たとえば、ls -laやtail -n 50を何度も使っていれば、自然に身につきます。
使う頻度が低いものは、実行前に--helpやmanで確認しましょう。
ls --help
man grep
systemctl --help
AIに確認する方法もあります。ただし、完成したコマンドだけを聞くのではなく、オプションの意味も説明してもらいましょう。
このLinuxコマンドを初心者向けに分解してください。
各オプションの意味、実行対象、変更される内容、
実行前に確認することも教えてください。
この聞き方をすると、AIを答えを出す道具ではなく、コマンドを分解してくれる先生として使えます。
エンジニア歴10年で感じたコマンド学習の変化¶
私はエンジニアとして10年、サーバー構築や運用、トラブル対応に関わってきました。
以前は、分からないコマンドがあれば検索し、複数の記事やマニュアルを読み比べることが一般的でした。今はAIに状況を伝えるだけで、かなり具体的な候補が返ってきます。
調査のスピードは確実に上がりました。
しかし、現場で必要な力がなくなったわけではありません。
むしろ、AIが出した答えを確認する力が以前より重要になったと感じています。
実務では、コマンドが実行できたかだけでは不十分です。どこが変わったのか、他の設定に影響しないか、元に戻せるかまで考える必要があります。
また、障害対応では一つのコマンドだけで原因が分かることは多くありません。
サービスの状態を確認し、ログを見て、ポートを調べ、設定との差を確認します。その流れを考えるのは人間です。
これまでの経験から感じるのは、仕事ができる人は何でも暗記している人ではないということです。
基本操作は迷わず行い、分からない部分は正確に調べ、実行結果を自分で確認できる人が現場では強いです。
AIが作ったコマンドをそのまま実行してはいけない¶
AIの回答は、文章が自然で自信があるように見えます。
しかし、AIはあなたのサーバー構成、OS、権限設計、運用ルールをすべて把握しているとは限りません。
たとえば、ファイルへ書き込めないと相談したとき、次のようなコマンドを提案されることがあります。
sudo chmod -R 777 /var/www/html
これで権限エラーが消える可能性はあります。
ただし、指定したディレクトリ以下を、誰でも読み書き実行できる状態に変更するため、本番環境で適切とは限りません。
先に現在の状態を確認する必要があります。
whoami
ls -ld /var/www/html
ls -l /var/www/html
Webサーバーはどのユーザーで動いているのか。所有者やグループは正しいのか。書き込みが必要なのは、本当にディレクトリ全体なのか。
このように順番に確認してから、必要な範囲だけ変更します。
特に、sudo、rm、chmod、chown、パッケージ削除、ファイアウォール変更を含むコマンドは注意してください。
AIの提案でエラーが消えても、安全な状態になったとは限りません。
AIを使いながらコマンドを身につける方法¶
AIを使うとコマンドが覚えられなくなる、と心配する必要はありません。
使い方を工夫すれば、検索時間を短くしながら理解を深められます。
最初に自分の予想を考える¶
AIへ質問する前に、どのコマンドを使えそうか少しだけ考えてみましょう。
正解する必要はありません。予想してから答えを見ると、自分が分かっていない部分に気づきやすくなります。
コマンドを分解してもらう¶
完成したコマンドだけでなく、コマンド名、オプション、引数、パイプの役割まで説明してもらいます。
その説明を読んだあと、自分の言葉で何をするコマンドなのか言えるか確認しましょう。
練習環境で試す¶
変更を伴うコマンドは、いきなり本番サーバーで試してはいけません。
仮想マシン、Dockerコンテナ、学習用シミュレーターなど、壊しても戻せる環境で試しましょう。
実行前後を比較する¶
コマンドを打ったら終わりではありません。
ファイル操作ならls -la、サービス操作ならsystemctl statusなどを使い、何が変わったのか確認します。
翌日にもう一度やってみる¶
最後に、AIの回答を見ずに同じ操作を再現してみましょう。
思い出せなかった部分だけを確認すれば、自分に必要なコマンドから少しずつ定着していきます。
コマンドは小さな課題で覚えよう¶
コマンド一覧を眺め続けても、なかなか使えるようにはなりません。
おすすめは、目的のある小さな課題を作ることです。
たとえば、今日はログからエラーを探す、明日はサービスの状態を調べる、次はファイルの権限を確認する、という形です。
一つの課題の中で、3個から5個ほどのコマンドを繰り返します。
| 課題 | 使用するコマンド例 | 身につく内容 |
|---|---|---|
| ログからエラーを探す | cd、ls、tail、grep |
移動、確認、検索 |
| Webサーバーの状態を見る | systemctl、journalctl、ss |
サービス、ログ、ポート |
| ファイルを整理する | mkdir、cp、mv、rm |
作成、コピー、移動、削除 |
| 権限を確認する | ls -l、id、chmod |
ユーザーとアクセス権限 |
こうした練習を繰り返すと、コマンド名と利用場面が結びつきます。
InfraAcademyでは、Linuxコマンドを実際に入力しながら練習できます。練習方法については、Linuxコマンド100本ノックを作成しましたもご覧ください。
自分専用のコマンドメモを作る¶
AIに聞いた内容を毎回忘れてしまう場合は、自分専用のコマンドメモを作りましょう。
ただし、AIの回答をすべて保存する必要はありません。自分が実際に使い、動作を確認したものだけを残します。
## Nginxのエラーログを直近50行確認する
コマンド: tail -n 50 /var/log/nginx/error.log
目的: エラーログの末尾を確認する
確認結果: 直近のエラーを時系列で確認できた
注意: ログの場所は環境によって異なる
目的、結果、注意点を一緒に書くことがポイントです。
数週間後に見返したとき、コマンドだけが残っているメモよりも、なぜ使ったのかが分かるメモの方が役立ちます。
また、自分で確認した内容なので、AIの回答をそのまま保存するよりも信頼できます。
AI時代に避けたいコマンドの勉強方法¶
ここまで、AIを使いながら学ぶ方法を解説しました。
反対に、初心者の方におすすめしないのは、コマンド一覧を最初から丸暗記する学習です。
使ったことがないコマンドは、覚えてもすぐに忘れてしまいます。覚えられない自分に向いていないと感じ、学習をやめてしまう原因にもなります。
また、AIの回答を理解せずに貼り付け続ける方法もおすすめできません。
コマンドが動くと、できるようになった気持ちになります。しかし、少し条件が変わっただけで対応できなくなります。
エラーが消えた時点で終わりにするのも、もったいない勉強方法です。
なぜエラーが出たのか。どのコマンドで状態を確認したのか。何を変更したら直ったのか。
短くてもよいので、この3つを残すと次のトラブル対応に活かせます。
まとめ:AI時代も基本コマンドは身につけよう¶
今回の記事では、AI時代にコマンドを暗記する必要があるのかについて解説しました。
すべてのコマンドやオプションを暗記する必要はありません。
よく使う基本コマンドは自然に使えるようにし、利用頻度が低いものは、用途を理解したうえで必要なときに調べれば大丈夫です。
そして、削除や権限変更のように影響が大きいコマンドは、覚えていても実行前に確認しましょう。
AIは、コマンド学習を楽にしてくれる便利な道具です。
ただし、AIが作ったコマンドを読み、実行してよいか判断し、結果を確認するのは自分です。
エンジニア歴10年の経験から言うと、現場で役立つのは、コマンドを何個知っているかだけではありません。
基本操作を迷わず行い、分からない部分を正しく調べ、問題を一つずつ切り分けられることが大切です。
最初から多くのコマンドを覚えようとしなくても大丈夫です。
まずは10個ほどの基本コマンドを使い、小さな課題を繰り返してみてください。
AIを使いながら、少しずつ自分だけで操作できる範囲を広げていきましょう。
ここまでお読みいただき、ありがとうございました。