Linuxは、CUI(キャラクタユーザインタフェース)での操作が基本となります。
このCUI操作とは、「コマンド」を実行してLinuxに命令することを指します。
簡単にいうと、コマンドさえ使いこなせれば、Linuxの操作も容易になるということです。
今回は、Linuxのコマンドの使い方から、オプションを使った応用まで、Linux初心者にもわかりやすく紹介していきます!
もくじ
Linuxコマンドとは
コマンドとは、簡単にいうと「Linuxへの命令」のこと。
Linuxは、このコマンド(命令)に従って動きます。
ちなみに、「上の図の意味が全然わからない!」という方は、さきに以下の記事を読んでから進むことをおすすめします。

つまり、このコマンドの使い方さえ覚えてしまえば、Linuxを思いのまま操れるってことです。
そのためにも、まずはLinuxコマンドの基本構成を理解する必要があります。
コマンド 引数1 引数2 … 引数n
コマンドのあとに続けて「引数」を書くのが基本スタイルですが、コマンドによっては引数がないものもあります。また、引数の数や意味はコマンドによっても違ってきます。
では、ここで「rm(remove)」コマンドを使って、「index.html」ファイルを削除する例を見てみましょう。
rm index.html
「rm」がコマンドで、「index.html」が引数です。簡単ですね。
Linuxコマンドの正体はプログラム
Linuxコマンドの正体は、ただの「プログラム(実行ファイル)」です。
つまり、僕らは特定の場所(「/bin」や「/sbin」など)にあるプログラムを、ただ実行しているだけなんですよね。

Linuxコマンドはどこにある?
Linuxコマンドの正体は、プログラム(実行ファイル)でした。
そして、このLinuxコマンドはユーザーがどのディレクトリにいても実行できます。
それは、一体なぜでしょうか?
答えは「パスが通ってる」からです!(よくこういう言い方をします!)
具体的には、Linuxの環境変数である「$PATH」に、「/bin」や「/sbin」などのパス(場所)が、あらかじめ格納されているからなんです。
環境変数ってのは、Linux自身(OS)が持っている特殊な変数のことで、「$PATH」もその1つ。
「$PATH」に格納された場所にある実行ファイルであれば、カレントディレクトリに関係なく実行できるようになります。
逆にいうと、「$PATH」に格納されていない場所にある実行ファイルは、実行時にフルパス(正確なパス)を指定してあげないと、実行できないということです。
Linuxコマンドのオプションとは
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」はデフォルトでは入っていませんので、自分でインストールする必要があります。
どのエディタを使うにしろ操作に癖があるので、使いこなすには少し時間がかかるかもしれません。まあ、慣れですね。

ファイル確認
ファイルの中身を確認するコマンドはたくさんありますが、「less」、「cat」、「tail」だけ覚えておけば大丈夫。
用途によって、コマンドを使い分けられるようになるといいですね。
# 「file」の中身を画面に出力(行数が少ない場合に便利)
cat file
# 「file」の中身を1画面ずつ表示(行数が多い場合に便利)
less file
# 頻繁には使わないけど知っておくべきコマンド
more file
head file
ファイルコピー
ファイルをコピーしたいときは、「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」コマンドの詳しい使い方については、こちらの記事をお読みください。

所有者とグループ変更
所有者とグループを変更したいときは、「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」の使い方は、こちらの記事をお読みください。

ログファイル確認
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」の実行結果を「grep」の引数に渡して、「nginx」というキーワードが存在するかをチェックしているのです。
プロセス停止
プロセスを停止させたいときは、「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操作に慣れることができるのでおすすめですよ。
またね、キツネ(@kitaaaa_kitsune)でした!
