Linuxの勉強は何から始めればいいかわからない
コマンドの種類が多くて覚えるのが大変そう
実務でこの数のコマンド扱いきれるのか不安
Linuxのコマンドの総数は非常に多く、ベテランエンジニアであっても、全コマンド覚えている人はほとんどいないです。
しかし、実務の中で頻繁に利用するコマンドはある程度限られていることが多いです。実務の中でも、運用保守なのか構築なのかでも、実行するコマンドは大きく変わります。
今回の記事では、未経験からLinuxを扱うインフラエンジニアになった経験から、下記の内容を紹介します。
- 絶対扱えるようにしておきたいコマンド
- Linuxコマンドを練習する際の注意点
これからインフラエンジニアを目指す方は、ぜひ最後までお読みください。
Linuxで絶対扱えるようにしておきたいコマンド11選

まずは、絶対に扱えるようにしておきたいコマンド11選を紹介します。
- cd
- ls
- pwd
- cat
- vi
- diff
- grep
- touch
- mkdir
- cp
- mv
仕事でLinuxを扱う予定がある方は、ここで紹介するコマンドを扱えるようにしておきましょう。
cd
「Change Directory」の略で、ディレクトリを移動するためのコマンドです。
基本操作方法
「cd 絶対パス」
ターミナル操作は基本的に「今どこにいるか」が前提になるため、最初のうちに押さえておきたいコマンドです。GUI(マウス操作)でフォルダをダブルクリックして開くのと同じ役割を持ちます。
#指定したディレクトリに移動
cd /home/testuser
#1つ上の階層(親ディレクトリ)に戻る
cd ..
#ユーザのホームディレクトリに移動
cd ~
ls
ファイルの情報やディレクトリの中身を確認できるコマンドです。使用する際の例は下記のとおりです。
- 目的のファイルがあるか確認したい
- ディレクトリの中身を確認したい
- ファイルやディレクトリの権限や更新日時を知りたい
単体で実行すると、カレントディレクトリのファイル情報が出力されます。
[centos02@localhost test]$ ls
test01 test02 test03 test04 test05
引数としてパスを指定することで、ディレクトリを移動しなくても指定したパスのファイル情報が確認できます。
[centos02@localhost ~]$ ls /home
centos02
「どんなファイルやディレクトリがあるか」を確認する場面は非常に多く、使用頻度の高いコマンドです。オプションを組み合わせることで、詳細情報や隠しファイルなども確認できます。
ls -la #隠しファイル・詳細情報の表示
ls -ltr #詳細情報を表示し、更新日時が古い順(一番下が最新)に並べる
ls -ld #ディレクトリ・ファイルの情報を表示
ls -laは非常に扱う頻度が高いので、必ず覚えておきましょう。
pwd
現在いるディレクトリの完全なパスを表示するために使用されます。作業中に「今どこで操作しているか分からなくなった」ときに役立ち、cdとセットで使うことが多いです。
[centos02@localhost test]$ pwd #現在の場所を確認
/home/centos02/test
[centos02@localhost test]$
[centos02@localhost test]$ ls #カレントディレクトリのファイルを確認
test02 testdir
[centos02@localhost test]$
[centos02@localhost test]$ cd testdir #ディレクトリを移動
[centos02@localhost testdir]$
[centos02@localhost testdir]$ pwd #現在の場所を確認
/home/centos02/test/testdir
[centos02@localhost testdir]$
cat
ファイルの中身をターミナル上に表示するコマンドです。
基本操作方法
「cat ファイル名」
[centos02@localhost test]$ cat /home/centos02/test/test01
test
設定ファイルの内容を確認したい場面や、ログファイルを見るときに使います。なお、中身が全て表示されるため、長いファイルの場合lessやmoreなどを使い分けた方が見やすいです。
cat -n #行番号を表示
vi
ターミナル上でテキストエディタを起動するコマンドです。Windowsで例えると「メモ帳」です。
基本操作方法
「vi ファイル名」
設定ファイル編集する際に使用し、実務で必ずと言っていいほど使用します。
[centos02@localhost test]$ vi /home/centos02/test/test01
Windowsと比較すると操作は独特で、最初は「ノーマルモード」と「インサートモード」の切り替えに戸惑うでしょう。
下記の基本操作を覚えておくことで、最低限の編集は可能です。
コマンド | 実行後の動作 |
| i キー | インサートモードに切り替え(ノーマルモードの場合のみ) |
| Esc キー | ノーマルモードに切り替え |
| :wq | テキストエディタの内容を保存して終了。(ノーマルモードの場合のみ) |
| :q! | 保存せずに強制終了。(ノーマルモードの場合のみ) |
| /キーワード | 文字列の検索。(ノーマルモードの場合のみ) |
viエディタでどうしてもつまづいてしまった時は、「:q!」で戻りましょう。
diff
2つのファイルの中身を比較し、差分を表示するコマンドです。Windowsの「WinMerge」のような役割を持つコマンドです。
基本操作方法
「diff ファイル1 ファイル2」
設定ファイルを変更した際に、意図通りの変更ができているかや、余計な箇所を触っていないかを確認するために使います。
[centos02@localhost test]$ cat /home/centos02/test/test01
test
[centos02@localhost test]$
[centos02@localhost test]$ cat /home/centos02/test/test02
[centos02@localhost test]$
[centos02@localhost test]$ diff /home/centos02/test/test01 /home/centos02/test/test02
1d0
< test
変更箇所だけを把握できるため、レビューの際にも使うことが多いです。
diff -u #-記号と+記号で変更箇所を示す
grep
指定した特定のテキストを検索するコマンドです。設定ファイルから特定のパラメータの検索や、ログから特定のキーワードを探す際などに使うことが多いです。
基本操作方法
grep 検索したい文字列 ファイル名
例えば、下記のように「01」と記載されたテキストのみ検索が行えます。
[root@localhost ~]# cat /home/centos02/test/test01
test
test01
test02
test03
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# grep "01" /home/centos02/test/test01
test01
[root@localhost ~]#
実務では非常に扱うことが多いコマンドです。必ず扱えるようにしておきましょう。
grep -n #行番号の表示
grep -v #検索キーワードに一致しないものを表示する
grep -c #マッチした行数を表示する
grep -r #ディレクトリを指定した場合に、サブディレクトリ内のファイルも含めて検索
touch
空のファイルを新規作成するコマンドです。
基本操作方法
「touch ファイル名」
スクリプトのテスト用に一時ファイルを作ったり、新しいファイルを素早く作成するときに便利です。
[centos02@localhost test]$ ls
test01
[centos02@localhost test]$
[centos02@localhost test]$ touch test02
[centos02@localhost test]$
[centos02@localhost test]$ ls
test01 test02
サーバ操作中は、一時的なファイルを作成することが多いです。
mkdir
「Make Directory」の略で、新しいディレクトリ(フォルダ)を作成するコマンドです。
基本操作方法
mkdir ディレクトリ名
[centos02@localhost test]$ ls
test01 test02
[centos02@localhost test]$
[centos02@localhost test]$ mkdir /home/centos02/test/testdir
[centos02@localhost test]$
[centos02@localhost test]$ ls
test01 test02 testdir
実務では-pのオプションを使うことが多いです。-pオプションは、途中のディレクトリが無くても、1コマンドでまとめて作成が行えます。
また、既に作成済みの場合のディレクトリが指定されている場合は、変更が加わらずそのままの状態が保持されます。
mkdir -p #途中のフォルダが存在しなくてもまとめて作る
cp
copyの略で、ファイルやディレクトリのコピーが行えるコマンドです。ファイルのバックアップ取得の際に使用されることが多いです。
基本操作方法
cp コピー元 コピー先
[centos02@localhost test]$ ls
test02 testdir
[centos02@localhost test]$
[centos02@localhost test]$ cp test02 test02.bak
[centos02@localhost test]$
[centos02@localhost test]$ ls
test02 test02.bak testdir
実行例では「test02」というファイルをコピーして「test02.bak」というファイルにしています。実務で扱うことが非常に多いコマンドなので、扱えるようにしておきましょう。
cp -p #元のファイルの属性(所有者、パーミッション、タイムスタンプなど)を保持
cp -r #ディレクトリを中身ごとコピー
mv
「move」の略で、ファイルやディレクトリを移動や名前の変更が行えるコマンドです。cpコマンドと違い、元データが移動するので、誤った移動には注意が必要です。
基本操作方法
mv 移動元 移動先
# ファイルのリネーム
[centos02@localhost test]$ ls
test01 test02 testdir
[centos02@localhost test]$
[centos02@localhost test]$
[centos02@localhost test]$ mv test01 test01mv # test01をtest01mvに変更
[centos02@localhost test]$
[centos02@localhost test]$
[centos02@localhost test]$ ls
test01mv test02 testdir
mv /home/user/file.txt /home/user/test/ # ファイルを別ディレクトリへ移動
[centos02@localhost test]$ ls
test01mv test02 testdir
[centos02@localhost test]$
[centos02@localhost test]$
[centos02@localhost test]$ mv test01mv testdir/
[centos02@localhost test]$
[centos02@localhost test]$
[centos02@localhost test]$ ls
test02 testdir
[centos02@localhost test]$
[centos02@localhost test]$
[centos02@localhost test]$ ls testdir/
test01mv
[centos02@localhost test]$
Linuxコマンドを練習する際の3つの注意点

コマンドの実行例を読んで、実際に手を動かして練習しようと思う方も居られるでしょう。ここでは、Linuxコマンドを練習する際の3つの注意点を解説します。
- 最初は本番環境ではなく検証環境で試す
- root権限を乱用しない
- コマンドの意味を理解してから実行する
ここで解説することに注意して、コマンド操作の練習を行いましょう。
最初は本番環境ではなく検証環境で試す
挙動がわからないコマンドを試す場合は、検証環境で実行しましょう。
たった一行のコマンドでも、設定変更やファイル削除、権限変更など、システム全体に影響を与える場合があります。特に、コマンドの挙動やオプションの意味を理解していない状態では、誤りがあっても気づけないでしょう。
コマンドの挙動を理解する前は、万が一のことがあっても問題ない検証環境で試してみることがおすすめです。手軽に用意できる検証環境の例として、VirtualBoxのような仮想マシンにLinuxOSを立ち上げて実験する方法があります。
どうしても検証環境が用意できず、本番環境でしか試せない場合には、チームメンバーへのレビューを徹底しましょう。コマンドの理解が浅い場合には、失敗しても安全に試せる環境で実行してみて、挙動を理解することが重要です。
root権限を乱用しない
エラーが出た際に考えなくrootにスイッチして実行することや、sudoをつけて実行することは避けましょう。
Linuxでは、root 権限(管理者権限)を使うことで、システム全体に対して自由に操作できます。しかし、権限の強さの関係上、使い方を誤ると取り返しのつかない事態を招く危険性があります。
例えば、root状態で以下のようなコマンドを実行すると、システムの重要なファイルをすべて削除してしまいます。
rm -rf /*
通常ユーザーでは、パーミッションエラーで守られる場面でも、rootは問答無用で実行してしまいます。管理者権限を使う前に「何をするコマンドなのか」「どこに影響するのか」などを確認する癖をつけるようにしましょう。
コマンドの意味を理解してから実行する
コマンドを学習するときは「何をするコマンドなのか」「オプションが何を意味するのか」を理解したうえで実行しましょう。
コマンドの意味を理解しないまま実行することは、今何をしているかわからない状態で作業することと同じです。場合によっては、予期しないトラブルの原因になります。
また、ネット上に記載されているコマンドは、古い情報である可能性も考えられます。さらに、掲載している人と環境や前提条件が異なれば、想定しない結果になることもあるでしょう。
実行前には、manコマンドやサポートデスクを活用し、どんな操作をすることになるのかを確認することが重要です。
なお、コマンド実行後にエラーが出なかったとしても、正しい操作だったとは限らないです。意味を理解していれば、結果が正しいかどうかの判断もできるようになります。
コマンドを覚えることより、コマンドを実行することで何をしているかを理解することが重要です。


コメント