【これで完璧】よく使うLinuxの基本コマンド一覧とオプションを紹介

Linuxコマンドとオプション

Linuxは、CUI(キャラクタユーザインタフェース)での操作が基本となります。

このCUI操作とは、「コマンド」を実行してLinuxに命令することを指します。

簡単にいうと、コマンドさえ使いこなせれば、Linuxの操作も容易になるということです。

今回は、よく使うLinuxのコマンドからオプションを使った応用まで、初学者にもわかりやすく紹介していきます!

Linuxコマンドとは

CUIとは

コマンドとは、簡単にいうと「Linuxへの命令」です。

Linuxは、このコマンド(命令)に従って動きます。

ちなみに、「上の図の意味が全然わからない!」という方は、さきに以下の記事を読んでから進むことをおすすめします。

つまり、このコマンドの使い方さえ覚えてしまえば、Linuxを思いのまま操れるってこと。

そのためにも、まずはLinuxコマンドの基本構成を理解する必要があります。

Linuxコマンドの構成
コマンド 引き数1 引き数2 … 引き数n

コマンドのあとに引数を続けて書くのが基本スタイルですが、コマンドによっては引数がないものもあります。また、引数の数や意味はコマンドによっても違ってきます。

では、ここで「rm(remove)」コマンドで「index.html」ファイルを削除する例を見てみましょう。

Linuxコマンドの構成
rm index.html

「rm」がコマンドで、「index.html」が引数です。簡単ですね。

キツネ

プログラミングの関数と引数に似ているね!

Linuxコマンドの正体はプログラム

Linuxコマンドの正体は、ただの「プログラム(実行ファイル)」です。

つまり、僕らは特定の場所(「/bin」や「/sbin」など)にあるプログラムを、ただ実行しているだけなんですよね。

キツネ

プログラムはLinuxのどこかに必ず存在するよ!

Linuxコマンドはどこにある?

Linuxコマンドの正体は、プログラム(実行ファイル)でした。

そして、このLinuxコマンドはユーザーがどのディレクトリにいても実行できます。

それはなぜでしょうか?

答えは「パスが通ってる」からです!(よくこういう言い方をします)

具体的には、Linuxの環境変数である「$PATH」に、「/bin」や「/sbin」などのパス(場所)があらかじめ格納されているからなんです。

環境変数ってのは、Linux自身(OS)が持っている特殊な変数のことで、「$PATH」もその1つ。

「$PATH」に格納された場所にある実行ファイルであれば、カレントディレクトリに関係なく実行できるようになります。

逆にいうと、「$PATH」に格納されていない場所にある実行ファイルは、実行時にフルパスを指定してあげないと実行できないということです。

キツネ

自分で追加した実行ファイルは、自分でパスを通さないといけないよ!

オプションとは

Linuxコマンドで使われるオプションとは、コマンドの機能をカスタマイズするものです。

たとえば、「rm」コマンドだけではファイルの削除しかできませんが、「-r」オプションをつけることでディレクトリの削除ができるようになります。

オプションを指定
rm -r /path/to/dir

「-r」オプションをつけることで「dir」ディレクトリを再帰的(recursive)に削除することができるようになります。

また、オプションは1度に複数指定することもできます。

オプションを複数指定
rm -r -f /path/to/dir
rm -rf /path/to/dir

ちなみに「-f」オプションをつけることで、強制的(force)に削除することができます。詳しくはのちほど。

また、オプションには「-(ハイフン)」で始まるものや「--(ハイフン2つ)」で始まるもの、「ハイフンがない」ものなどがあります。

たとえば、以下のコマンドのように短縮オプションが用意されている場合もあります。もちろん、実行結果はどちらも同じです。

オプションの種類
rm -r -f /path/to/dir
rm --recursive /path/to/dir

キツネ

コマンドによって、指定できるオプションにも色々あるんだね!

よく使うLinuxの基本コマンド一覧

ここからは、実際の業務でよく使うLinuxの基本コマンドやオプションをメインに紹介していきます。

非常にたくさんの種類がありますが、すべて覚える必要はありません。

必要になったタイミングで見直すようにしましょう!

カレントディレクトリ確認

カレントディレクトリ(現在いるディレクトリ)の場所を確認したいときは、「pwd」コマンドを使います。

カレントディレクトリ確認
# カレントディレクトリのパスを表示
pwd

キツネ

自分がいまどこにいるかわからなくなったら使おう!

カレントディレクトリ変更

カレントディレクトリを変更したいときは、「cd(change directory)」コマンドを使います。

カレントディレクトリ変更
# 「~(ホーム)」に移動
cd

# 「/path/to/dir」に移動
cd /path/to/dir

ファイル作成

ファイルを作成したいときは、「touch」コマンドや「vi」コマンドを使います。

ファイル作成
# 空ファイル「file」を作成
touch file

# viで「file」という名前で新規ファイルを開く
vi file

ただの空ファイルを作ることって実務ではあまりないので、普通は「vi」コマンドで新規ファイルを作成して何かを書き込んで保存することが多いです。

ファイル編集

ファイルを編集したいときは、「vi」や「vim」、「emacs」などのCUIエディタを使います。

ファイル編集
# viエディタで「file」を開く
vi file

# vimエディタで「file」を開く
vim file

# emacsエディタで「file」を開く
emacs file

Linuxのディストリビューションによりますが、「emacs」や「vim」はデフォルトでは入っていませんので、自分でインストールする必要があります。

どのエディタを使うにしろ操作に癖があるので、使いこなすには少し時間がかかるかもしれません。まあ、慣れですね。

キツネ

ちょこっとの編集なら「vi」で十分!

ファイル確認

ファイルの中身を確認するコマンドはたくさんありますが、「less」、「cat」、「tail」だけ覚えておけば大丈夫。

用途によって、コマンドを使い分けられるようになるといいですね。

ファイル確認
# 「file」の中身を画面に出力(行数が少ない場合に便利)
cat file

# 「file」の中身を1画面ずつ表示(行数が多い場合に便利)
less file

# 頻繁には使わないけど知っておくべきコマンド
more file
head file

キツネ

「vi」や「emacs」でもファイルの確認はできるよ!

ファイルコピー

ファイルをコピーしたいときは、「cp(copy)」コマンドを使います。

ファイルコピー
# 「file_1」を「file_2」という名前でコピー 
cp file_1 file_2

# 「file_1」を「dir」ディレクトリの下にコピー
cp file_1 dir

ファイル移動

ファイルを他のディレクトリに移動させるには、「mv(move)」コマンドを使います。

ファイル移動
# 「file」を「dir」ディレクトリに移動
mv file dir

ファイル削除

ファイルを削除したいときは、「rm」コマンドを使います。

ファイル削除
# 「file」を削除
rm file

# 「file_1」と「file_2」を削除
rm file_1 file_2

ファイル名変更

ファイル名を変更したいときは、「mv」コマンドを使います。

ファイル名変更
# 「file_1」を「file_2」のファイル名に変更
mv file_1 file_2

ファイル内検索

ファイル内に含まれている特定のキーワードを検索したいときは、「grep」コマンドを使います。

ファイル内検索
# 「file」の中に「keyword」という文字があるか検索
grep keyword file

# 「dir」ディレクトリ以下にあるファイルの中に「keyword」という文字があるか検索
grep -r keyword dir

「-r」オプションで「dir」ディレクトリの中を再帰的(recursive)に検索しています。

ファイル、ディレクトリ検索

ファイルやディレクトリを検索したいときは、「find」コマンドを使います。

ファイル、ディレクトリ検索
# 「/path/to」の中に「file_name」というファイルやディレクトリがあるか検索
find /path/to -name file_name

# 「/path/to」の中に「.txt」拡張子がついているファイルがあるか検索
find /path/to -name "*.txt"

「-name」オプションで、ファイル名やディレクトリ名をパターンで検索できるようにしています。

ディレクトリ一覧

ディレクトリの一覧を表示するときは、「ls」コマンドを使います。

ディレクトリ一覧
# 「dir」ディレクトリの中身を表示
ls dir

# 「-l」オプションで長いフォーマットで表示 「-a」オプションで隠しファイルを表示
ls -al dir

上のオプションは「-a」と「-l」を一緒に指定しています。

ディレクトリ作成

ディレクトリを作成したいときは、「mkdir(make directory)」コマンドを使います。

ディレクトリ作成
# カレントディレクトリに「dir」ディレクトリを作成
mkdir dir

# 「/path/to」に「dir」ディレクトリを作成
mkdir dir /path/to

ディレクトリコピー

ディレクトリをコピーしたいときは、「cp(copy)」コマンドを使います。

ディレクトリコピー
# 「dir_1」ディレクトリを「dir_2」ディレクトリの下にコピー
cp -r dir_1 dir_2

「cp」コマンドは、ファイルのコピーでも使いましたね。

ただ、ディレクトリの場合は「-r」オプションをつけているのがポイント。

このオプションをつけることで、ディレクトリの中を再帰的(recursive)にコピーします。

ディレクトリ移動

ディレクトリを他のディレクトリに移動させるには、「mv(move)」コマンドを使います。

ディレクトリ移動
# 「dir_1」ディレクトリを「dir_2」ディレクトリに移動
mv dir_1 dir_2

ディレクトリ削除

ディレクトリを削除したいときは、「rm(remove)」コマンドを使います。

ディレクトリ削除
# 「dir」ディレクトリを削除
rm -rf dir

「rm」コマンドもファイルの削除で紹介しました。

ただ、今回は「-r(recursive)」で再帰的にディレクトリの中身を削除し、「-f(force)」で削除するかどうかの確認をスキップしています。

シンボリックリンク作成

シンボリックリンクを作成したいときは、「ln」コマンドを使います。

シンボリックリンク作成
# 「link_name」に「file」へのシンボリックリンクを貼る
ln -s file link_name

# 「link_name」に「dir」へのシンボリックリンクを貼る
ln -s dir link_name

「-s」オプションが、「シンボリック(symbolic)」をあらわしています。

パーミッション変更

ファイルやディレクトリのパーミッションを変更したいときは、「chmod(change mode)」コマンドを使います。

パーミッション変更
# 「dir」ディレクトリを「755」のパーミッションに変更
chmod 755 dir

「chmod」コマンドの詳しい使い方については、「Linuxのパーミッション(権限)とは?確認や変更方法も一緒に紹介!」をお読みください。

所有者とグループ変更

所有者とグループを変更したいときは、「chown(change owner)」コマンドを使います。

所有者のグループ変更
# 「file」の所有者を「user」、グループを「group」に設定
chown user:group file

# 「dir」ディレクトリの所有者を「user」、グループを「group」に設定
chown -R user:group dir

「-R」オプションで、ディレクトリに対し再帰的(recursive)に適用します。

管理者権限で実行

パーミッションエラーが出た場合、その原因のほとんどが実行権限がないことによるものです。

そんなときは、実行したいコマンドの前に「sudo」をつけてみましょう。

「sudo」をつけることで、root(管理者)権限でコマンドを実行することができます。

管理者権限で実行
# root権限でコマンドを実行
sudo chown -R user:group dir

パッケージのインストール

CentOS(RedHat系Linux)にパッケージをインストールしたいときは、「yum」コマンドを使います。

パッケージのインストール
# 「package_name」をインストール
yum install package_name

詳しい「yum」の使い方は「yumとは?コマンドの使い方やリポジトリなどの仕組みが丸わかり!」をお読みください。

ログファイル確認

WebサーバーやAPサーバーなどのログをリアルタイムに確認したいときは、「tail」コマンドを使います。

ログファイル確認
# 「file」の中をリアルタイムに表示
tail -f file

「tail」コマンドは「-f」オプションをつけることで、ファイルの中をリアルタイムに確認できます。

監視を終了したいときは、「Ctrl + c」を押してください。

プロセス確認

プロセス(起動しているプログラム)を確認したいときは、「ps」コマンドを使います。

用途としては、プロセスが起動しているか確認したいときや、プロセスを停止させるために必要なプロセス番号(PID)を調べるときに使います。

プロセス確認
# 起動中のプロセスに「nginx」があれば表示
ps aux | grep nginx

aux」オプションは、詳細な情報を表示するために使います。

  • 「a」…端末操作のプロセスを表示
  • 「u」…CPUやメモリの使用率などを表示
  • 「x」…端末操作以外のプロセスを表示

キツネ

「ps aux」でセットだと覚えておこう!

また、「|(パイプ)」は前のコマンドの結果を、次のコマンドの引数に渡したいときに使います。

ここでは、「ps aux」の実行結果を「grep」の引数に渡して、「nginx」というキーワードが存在するかをチェックしているのです。

キツネ

「| grep keyword」は他のコマンドと組み合わせてよく使うよ!

プロセス停止

プロセスを停止させたいときは、「kill」コマンドを使います。

プロセス停止
# 「PID」に紐づくプロセスを停止
kill -9 PID

「PID(プロセス番号)」は、さきほどの「ps」コマンドを使うことで調べられます。

そして、「-9」は「強制終了」というシグナルをLinuxに送るためのオプションです。

オプションを省略すると、「キーボードからの割り込み終了」になり、少し意味が変わってきます。

キツネ

結果は同じく「プロセスの終了」なんだけどね!

コマンド履歴

ユーザーが実行したコマンド履歴を調べるときは、「history」コマンドを使います。

コマンド履歴
# コマンド実行履歴をすべて表示
history

# コマンド実行履歴から「ruby」が含まれる行を表示
history | grep ruby

キツネ

やっぱり「|(パイプ)」は便利だね!

コマンドの場所を確認

コマンド自身のプログラムがどこにあるかを調べたいときは、「which」コマンドを使います。

コマンドの場所を確認
# 「ls」コマンドのパス(場所)を表示
which ls

キツネ

頻繁に使うコマンドじゃないけど、気になったら使ってみると勉強になるよ!

コマンドのヘルプ確認

コマンドの詳細やオプションが知りたいときは、「--help」オプションを使います。

コマンドのヘルプ確認
# 「ls」コマンドのヘルプを表示
ls --help

キツネ

どんなオプションが使えるかを調べるときに便利だよ!

まとめ

よく使うコマンドをざっと紹介しましたが、これだけでも結構な数がありますね。(自分も書いてて疲れました)

すべて暗記する必要はないですが、どれも業務でよく使うコマンドばかりなので、Linuxを触りながら少しずつ覚えていきましょう。

自分の思ったとおりにLinuxを動かせることで、苦手意識を克服できるだけじゃなく、Linuxを触ることが楽しくなるはずです。

【Linuxの基本操作】業務で使うショートカットキーを覚えよう!」を読むと、さらにLinux操作に慣れることができるのでおすすめです。

テキストのコピーはできません。