これだけは覚えておきたい!基本的なUNIXコマンド20【初心者向け】

初心者でもこれだけは覚えておきたい【UNIXコマンド】を一覧で20紹介。UNIXコマンドとは何なのか?から解説。Macのターミナルで入力した例もあるので、記事を見ながらディレクトリやファイル操作などがすぐに実践できます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が1,000以上あります。

プログラミングを学んでWeb開発する際に、必要となる知識としてUNIXコマンドがあります。なぜならWebサーバーのOSはLinuxをはじめUNIX系のOSを利用しているからです。また、Macのターミナルを扱う時も使用しますので、覚えておくと何かと便利です。

そこで今回は、プログラミング初心者でも覚えておきたいUNIXコマンドを紹介します。

 

 UNIXコマンドとは

そもそもUNIXコマンドとは何なのか知っておきましょう。ウィンドウやボタン、アイコンといった視覚的なオブジェクトをマウスで操作するインターフェイスをGUI(Graphical User Interface)と呼びます。一方、文字入力によってコンピュータに命令を与えて操作するインターフェイスをCLI(Command Line Interface)、あるいはCUI(Character User Interface)などと呼びます。

「コマンド」とはコンピュータに指示する命令であり、CLI上で用いるプログラム/アプリケーションのことを指します。UNIXに由来するコマンドを「UNIXコマンド」などと呼称します。

現在ではGUIがコンピュータを操作する手法として主流ですが、ある操作の結果を別の操作に用いたり、自動的に複数の操作を行ったりする場合など、CLIの方が適している作業が多く存在します。

 

覚えておきたいUNIXコマンド20

ここからは主要なUNIXコマンドを20紹介します。いずれもMacのターミナルで入力した例を画像で表示しているので、ぜひ自分のPCでも試してみてください。

 

ディレクトリとファイルの確認、移動に使うコマンド

pwd

現在の作業ディレクトリの絶対パスを表示します。なお絶対パスとは、最上位階層から目的のファイルやフォルダまでの道筋を省略なく記述する方式のことです。一方の相対パスは、起点となる現在位置から目的のファイルやフォルダまでの道筋を記述する方式です。

入力例:

pwd

現在どのディレクトリにいるのかを確認するときに使います。

pwd

cd

作業ディレクトリを変更するコマンドです(ディレクトリを移動します)。

入力例:

cd (ディレクトリ名)

cdだけで実行するとホームディレクトリへ移動します。「cd -」とすると、直前にいたディレクトリへ移動します。「cd ..」とすると親ディレクトリへ移動します。

cd

ls

ディレクトリの内容をリスト表示するコマンドです。

入力例:

ls (ディレクトリ名)

lsだけで実行すると、現在のディレクトリに含まれるファイル名をリスト表示します。ディレクトリを指定すると、そのディレクトリに含まれるファイル名をリスト表示します。

また、「ls -l」でパーミッションや所有者などの関連情報を付加して表示、「ls -a」で隠しファイル・隠しフォルダを含めて表示することが可能です。

ls

ディレクトリとファイルの操作で使うコマンド

cp

ファイルをコピーするコマンドです。

入力例:

cp (ファイルA) (ファイルB)

この場合ファイルAをファイルBにコピーします。

また「-f」オプションをつけた場合、コピー先に同名のファイルがあった場合上書きされます。「-i」オプションをつけた場合は上書きするかどうかをファイル毎に確認します。

なおディレクトリを内容ごと(再帰的に)コピーするときは、「-R」オプションをつけます。

cp

mv

ファイルの移動およびリネームを行うコマンドです。

入力例:

mv (ファイルA) (ディレクトリB)
mv (ファイルA) (ファイルB)

1つ目の例ではファイルAをディレクトリBに移動します。2つ目の例では、ファイルAからファイルBに名前を変えることができます。

cpコマンドと同じように、「-f」オプションをつけた場合は移動先に同名のファイルがあった場合上書きされます。「-i」オプションをつけた場合は上書きするかどうかを確認します。

mv

rm

ファイルを削除するコマンドです。

入力例:

rm (ファイル名)

ディレクトリを削除する場合は「-d」オプションを指定しますが、削除できるのは空のディレクトリだけです。ディレクトリに内容物がある場合は「-r」オプションを指定することで、中に入っているファイルを含めてディレクトリを削除します。

ゴミ箱へ入れるのではなく、即座に削除されることに注意してください。

rm

mkdir

ディレクトリを作成するコマンドです。

入力例:

mkdir (ディレクトリ名)

通常、指定したパスの途中のディレクトリが存在しない場合はエラーになります。「-p」オプションをつけると、途中のディレクトリが存在しない場合、それらを含めてディレクトリを作成することが可能です。

mkdir

touch

ファイルの変更日を更新するコマンドです。

入力例:

touch (ファイル名)

「touch file1.txt」とすると、「file1.txt」の変更日時が更新されます。存在しないファイル名を指定した場合、その名前で空のファイルが作成されます。

touch

ln

リンクを作成するコマンドです。

入力例:

ln -s (ファイル名) (リンク名)

「-s」オプションを付けることで、シンボリックリンクを作成します。シンボリックリンクは、ディレクトリやファイルのショートカットとして用いられます。

ln

chmod

ファイルのパーミッション(所有権)を変更します。

入力例:

chmod 750 (ファイル名)

この入力例は、ファイル所有者に全ての権限を与え、グループに読み込みと実行権、その他のユーザーは権限なしにするコマンドです。

パーミッションは「mode」引数に8進数字あるいは記号で指定します。上記の入力例は8進数字の指定です。

8進数字指定する場合は、3桁の値で指定します。1桁目が「ファイル所有者」のアクセス権、2桁目が「グループ」のアクセス権、3桁目が「その他のユーザー」のアクセス権となります。各桁の値は、読み込み権を表す4と、書き込み権を表す2と、実行権を表す1の和を指定します。例えば、読み込み権と実行権のみを与える場合には、4と1の和である「5」を指定します。それぞれの権限の組み合わせと値は下記の表をご覧ください。

アクセス権
0 権限なし
1 実行権
2 書き込み権
3 書き込み権と実行権
4 読み込み権
5 読み込み権と実行権
6 読み込み権と書き込み権
7 すべての権限

 

また、記号で指定する場合は、以下の記号を組み合わせてパーミッションを指定します。

chmod a+w (ファイル名)

この入力例の場合、全てのユーザーに書き込み権限を付加します。

記号 誰に
a すべてのユーザ
u 所有者
g グループ
o 他のユーザ

 

記号 付加・除去
+ 付加
除去
= 全クリア

 

記号 権限の種類
r 読み
w 書き
x 実行

chmod

chown

ファイル・ディレクトリの所有者とグループを変更します。

入力例:

chown (ユーザー名) (ファイル名)

この例では、指定したファイルの所有者を指定したユーザーに変更します。

なお、ファイルの所有者とグループはファイルのパーミッション範囲に関係してきます(あるユーザのみアクセス可能など)。所有者の変更はスーパーユーザのみ可能です。

chown

chgrp

ファイルのグループを変更します。

入力例:

chgrp (グループ名) (ファイル名)

この例では、指定したファイルの所属グループを変更します。

chownと同じく、グループはファイルのパーミッション範囲に関係してきます(あるグループに属しているユーザのみアクセス可能など)。

chgrp

 

ファイル内容の表示、閲覧するときに使うコマンド

cat

ファイルの内容を結合し、表示するコマンドです。

入力例:

cat (ファイルA) (ファイルB)

複数ファイルの内容を結合して表示します。ファイルを1つだけ指定して、たんにその内容を表示する場合にも使用可能です。

cat

less

ファイルの内容をスクロール可能な状態で表示するコマンドです。

入力例:

less (ファイル名)

ファイル内容を一画面しか見ることができない(スクロールできない)catコマンドとは異なり、スクロール可能な状態で表示するコマンドです。qを入力すると表示が終了します。

less

 

ファイルの検索で使うコマンド

find

ファイルを検索するコマンドです。

入力例:

find (ディレクトリ名)
find (ディレクトリ名) -name (文字列)

1つ目の入力例ではディレクトリ内にあるファイルを表示します。-nameを付けることで、ディレクトリ内にある文字列を指定して検索することも可能です。

また「find . -ctime -1h」とすると、現在のディレクトリ以下で1時間以内に変更のあったファイルを検索します。

find

grep

指定パターンの文字列を検索するコマンドです。

入力例:

grep (検索文字列) (ファイル名)

例えばgrep ba text.txtとすると、「text.txt」ファイルから「ba」が含まれる行を検索し、表示します。他にもgrep ba *とすることで、ディレクトリ内のファイルの中で「ba」の文字列が入ってるファイルを探すことでも使います。

grep

リモートへの接続で使うコマンド

 ssh

リモートマシンにSSHでログインし、リモートマシン上でコマンドを実行できるコマンドです。

入力例:

ssh (ホスト名) (コマンド名)

ネットワーク越しにリモートのマシンにログインします。IPアドレスやユーザー名を指定してコマンドを実行できます。

「-p」オプションでポート番号を指定することも可能です。

ssh -p 56789 username@hostname

ssh

 

プロセス関連のコマンド

ps

実行中のプロセス一覧を表示するコマンドです。

入力例:

ps
ps a

「ps a」では全ユーザのプロセスの状態を一覧で表示します。また「ps aux」とすると、実行中のすべてのプロセスをCPU使用率などの詳細な情報つきで表示します。

ps

kill

プロセスを終了、あるいはシグナルを送信するコマンドです。

入力例:

kill (プロセスID)

終了させるプロセスのプロセスID(PID)を指定します。PIDは前項の「ps」コマンドで調べましょう。

kill

exit

シェルを終了するコマンドです。

入力例:

exit

コマンドライン操作を終了するときに「exit」します。

exit

 

今回の記事は以上です。

ぜひこの記事を参考に使いこなしてみてください。

[お知らせ]TechAcademyでは、最短4週間でオリジナルWebサービスが開発できるオンラインブートキャンプを開催しています。開発しながらUNIXコマンドも学ぶことができます。