多くの初心者がLinuxコマンド操作に苦手意識を持つ傾向があります。初心者からは「黒い画面に文字を打つなんて難しそう」という声が聞かれることがありますが、実際に触ってみると、よく使うコマンドは意外と限られていることに気づくケースが多いようです。
経験的に、日常業務で使うコマンドは基本的なものが中心になることが多いとされています。つまり、すべてを覚える必要はなく、頻出コマンドから順に覚えていけば十分なのです。
Linuxコマンドは「コマンド名」「オプション」「引数」の3つで構成されます。例えばls -l /homeという場合、lsがコマンド名、-lがオプション、/homeが引数です。この基本構造を理解しておくと、新しいコマンドを覚える際もスムーズになります。
Linux環境は今や開発現場の標準となっており、多くのWebサーバーやクラウドサービスがLinux上で動いています。特にOSSやスタートアップ企業のサービスではLinuxが広く採用されているため、バックエンド・インフラ系エンジニアにとって基本コマンドの習得は基盤的なスキルといえるでしょう。
この記事では、一般的な開発業務で頻出する基本コマンドを厳選し、カテゴリ別に解説していきます。全部を一度に覚える必要はありません。まずは気になるものから実際に手を動かして試してみてください。
ファイル・ディレクトリ操作の必須コマンド
現在地確認と移動の基本
Linuxでは、今自分がどこにいるのかを把握することが最初の一歩です。
pwd(print working directory)は現在いるディレクトリの絶対パスを表示します。迷子になったときに役立つ確認コマンドです。
cd(change directory)はディレクトリを移動するコマンドです。cd /home/userで指定したパスに移動、cd ..で一つ上の階層へ、cd ~でホームディレクトリに戻れます。相対パスと絶対パスの両方が使えるので、状況に応じて使い分けましょう。
ls(list)はディレクトリ内のファイルやフォルダを一覧表示します。オプション-lで詳細情報、-aで隠しファイルも含めて表示できます。ls -laは頻出のコマンド組み合わせです。
ファイル・ディレクトリの作成と削除
mkdir(make directory)は新しいディレクトリを作成します。mkdir -p dir1/dir2/dir3のように-pオプションを付けると、途中のディレクトリも一度に作成できて便利です。
touchは空のファイルを作成したり、既存ファイルのタイムスタンプを更新したりします。touch test.txtで新規ファイルが作成できます。
rm(remove)はファイルやディレクトリを削除します。ただし、Linuxには「ゴミ箱」がないため、削除したら復元できません。rm -rfは特に強力で、デフォルトでは確認なしにディレクトリごと削除されるため注意が必要です(-iオプションで確認プロンプトを追加することも可能です)。
cp(copy)はファイルをコピーします。cp file1.txt file2.txtで同じディレクトリ内にコピー、cp -r dir1 dir2でディレクトリごとコピーできます。
mv(move)はファイルの移動や名前変更に使います。mv old.txt new.txtで名前変更、mv file.txt /home/user/で別ディレクトリへ移動します。
テキスト表示・検索の実用コマンド
ファイル内容の確認
cat(concatenate)はファイルの内容を一度に表示します。短いファイルの確認に最適で、複数ファイルを連結して表示することもできます。
lessは長いファイルを1画面ずつ表示します。ログファイルの確認などに便利で、上下スクロールしながら読めます。qキーで終了します。
headとtailはそれぞれファイルの先頭と末尾を表示します。head -n 20 file.txtで先頭20行、tail -f log.txtでファイルの末尾をリアルタイムで監視できます。後者はログ監視で非常に重宝します。
文字列の検索と操作
grepはファイル内から指定した文字列を検索します。grep “error” logfile.txtでエラーを含む行を抽出できます。-iで大文字小文字を区別せず、-rでディレクトリ内を再帰的に検索できます。
findはファイルやディレクトリを検索します。find . -name “*.log”でカレントディレクトリ以下の.logファイルをすべて見つけられます。ファイル名だけでなく、更新日時やサイズでも検索可能です。
echoは文字列を表示したり、ファイルに書き込んだりします。echo “Hello”で画面に表示、echo “text” > file.txtでファイルに上書き、>>で追記できます。シェルスクリプトでも頻繁に使います。
権限管理とシステム情報の確認コマンド
ユーザーと権限の基本
whoamiは現在ログインしているユーザー名を表示します。複数ユーザーを切り替えながら作業する際の確認用です。
sudo(superuser do)は管理者権限でコマンドを実行します。システムファイルの変更やパッケージのインストールなど、重要な操作に必要です。sudo apt install gitのように使います。
chmod(change mode)はファイルやディレクトリの権限を変更します。chmod 755 script.shのように数値で指定するのが一般的です。数値は3桁で構成され、各桁が所有者・グループ・その他のユーザーに対応します。各桁は読み取り(4)・書き込み(2)・実行(1)の合計で表され、例えば7は読み取り(4)+書き込み(2)+実行(1)、5は読み取り(4)+実行(1)を意味します。
システム情報とプロセス管理
ps(process status)は実行中のプロセスを表示します。ps auxですべてのプロセスを詳細表示できます。
topはシステムのリソース使用状況をリアルタイムで表示します。CPUやメモリの使用率を確認でき、どのプロセスが重いかすぐわかります。
df(disk free)はディスク容量を表示します。df -hで人間に読みやすい単位で表示されます。ディスクが満杯になるとシステムが動かなくなるので、定期的に確認しましょう。
wgetとcurlはWebからファイルをダウンロードしたり、APIにアクセスしたりします。wget https://example.com/file.zipでファイルをダウンロード、curl -X GET https://api.example.comでAPI呼び出しができます。
効率的なLinuxコマンド学習法と次のステップ
実践的な学習アプローチ
コマンドを効率的に習得するには、実際に手を動かすことが何より重要です。よく推奨される方法として、自分専用の「チートシート」を作る方法があります。よく使うコマンドとオプションをメモしておき、必要に応じて参照します。
また、manコマンドや–helpオプションを活用しましょう。man lsでlsコマンドの詳細なマニュアルが表示されます。すべてを暗記する必要はなく、「調べ方」を知っていることが大切です。
実際に試しながら学ぶことが効果的な学習方法とされています。本番環境で試すのは危険ですが、ローカルのLinux環境やクラウドの無料枠を使えば、安心して実験できます。
学習環境の準備
Windows環境ならWSL2(Windows Subsystem for Linux)、MacならデフォルトのターミナルでLinuxコマンドが使えます。VirtualBoxで仮想マシンを作る方法もあり、WSL2は選択肢の一つとして初心者向けのガイドが多く公開されています。
クラウドサービスの無料枠を使う手もあります。AWSやGoogle Cloudは無料期間があり、実際のサーバー環境で練習できます。
レベルアップのためのロードマップ
基本コマンドに慣れたら、次のステップとしてシェルスクリプトの学習が推奨されます。複数のコマンドを組み合わせて自動化できるようになると、作業効率の向上が期待できます。
vimやnanoといったエディタの操作も覚えておくと便利です。vimは最初は操作が独特で戸惑いますが、慣れると非常に強力なツールです。
さらに、パイプ(|)やリダイレクト(>、>>)を使ったコマンドの連携を学ぶと、Linuxの真の力が実感できます。cat access.log | grep “404” | wc -lのように、コマンドをつなげて複雑な処理を一行で実現できます。
資格取得も体系的に学ぶには効果的です。LinuC(Linux技術者認定)やLPIC(Linux Professional Institute Certification)は、Linux知識を証明する資格として業界で認知されています。ただし、資格制度の詳細や提供状況については公式サイトで最新情報を確認してください。
まとめ:Linuxコマンドは「完璧」より「実践」重視で
Linuxコマンドの学習で大切なのは、すべてを暗記しようとしないことです。頻出の基本コマンドを優先的に覚え、あとは必要に応じて調べる習慣をつけましょう。
今回紹介したコマンドは、ファイル操作(ls、cd、cp、mv、rm)、テキスト処理(cat、grep、less)、システム管理(chmod、ps、top)など、多くの開発現場で使われているものばかりです。まずはこれらを実際に試してみてください。
多くの学習ガイドで推奨されているように、継続的な学習は習得に有効とされています。エラーが出ても焦らず、エラーメッセージを読んで調べる習慣が付けば、段階的にスキルを習得できます。
Linuxコマンドは、インフラ・バックエンド領域では基盤的なスキルであり、多くのエンジニア職にとって重要なスキルです。今日からでも遅くありません。まずはターミナルを開いて、lsと打ってみることから始めてみてはいかがでしょうか。


コメント