ターミナルのコマンドってどんなものがあるの?
ターミナルコマンドの使い方が知りたい
Macのパソコンでプログラミングを始めるにあたって、ターミナルの操作が必要になるケーズは多いと言えます。いざターミナルを使おうとすると、普段のパソコンの操作とは勝手が違うのに戸惑ってしまいますよね。
そこでターミナルの使い方やコマンドについて、初心者の方にもわかりやすいように解説していきます。
この記事を読めば、必要なターミナルやコマンドの使い方が理解できるでしょう。
- ターミナルとはMacに備わっているコマンド操作用CUIツール
- 環境構築やコンパイルなどはターミナルで行うことが多い
- コマンドプロンプトはWindowsのCUIツールのこと
ターミナルの使い方は?
ターミナルはMacに備わっているCUI(キャラクターユーザーインターフェース)ツールです。しかし、普通にインターネットを閲覧したりアプリを使用したりするだけなら、ターミナルを使うことはないでしょう。
しかしMacでプログラミングを始めるとなると、ターミナルを使う機会が多くなると言えます。プログラミングをする際に必要な環境構築や、作成したコードのコンパイルなどはターミナルで行います。
ちなみに環境構築とはプログラミングやコードの実行に必要な、ソフトウェアのインストール作業などのことです。
コンパイルはプログラミングしたコードを、コンピューターが実行可能な形式に変換することを言います。
ターミナルを使用する場合は、大きく2つの方法があります。
アプリケーション > ユーティリティ > ターミナル、で起動する
Launchpad > その他 > ターミナルで起動する
ターミナルを起動すると、
PC名:~ ユーザー名$
と表示されてコマンドを入力できる状態になります。
PC名:のすぐ後に現在のディレクトリ(フォルダーのこと)が表示されていて、「~」はホームディレクトリを表す記号です。
ホームディレクトリは名前がユーザー名になっているディレクトリで、ターミナルの起動時にはホームディレクトリが現在のディレクトリになります。
そして、現在のディレクトリのことをカレントディレクトリと言い、ターミナルはカレントディレクトリに対して操作を行います。
末尾の「$ 」はコマンド入力できる状態を示しています。
基本コマンド一覧
ではここからは、ターミナルの基本的で重要なコマンドから見ていきましょう。
ターミナルのコマンドには「ls」「cd」「pwd」といったものがあり、これらのコマンドの後にオプションや引数を指定して実行します。オプションには「-l」や「-a」などがあり、引数に指定するのは操作するディレクトリ名やファイル名です。
ls(ファイルの一覧を表示)
listを略したコマンドで、カレントディレクトリに含まれているディレクトリとファイルの一覧を表示します。
ディレクトリとファイルの一覧(隠しファイルを除く)を表示するには
$ ls
を実行します。このコマンドではファイル名の最初に「.(ドット)」が付けている隠しファイルは表示されません。通常、隠しファイルはデスクトップやFinderにおいても表示されません。
ディレクトリとファイルの一覧を、隠しファイルを含めて表示するには
$ ls -a
を実行します。
ディレクトリとファイルの一覧と、それぞれの詳細情報を表示するには
$ ls -l
を実行します。詳細情報として表示されるのは、ディレクトリとファイルの区別、アクセス制限、所有者、所有グループ、サイズ、更新日時です。
隠しファイルも含めてそれぞれの詳細情報を表示するには
$ ls -la
を実行します。「-la」オプションは「-l」と「-a」を合わせたものです。
cd(カレントディレクトリの変更)
change directoryを略したコマンドで、カレントディレクトリを変更します。引数に変更先のディレクトリを指定します。
sampleディレクトリに移動して、sampleディレクトリをカレントディレクトリにするには
$ cd sample
を実行します。そうすると、ターミナルの表示が
PC名:sample ユーザー名$
になります。
ホームディレクトリをカレントディレクトリに戻すためには
$ cd ~
を実行します。このコマンドはどこからでも、ホームディレクトリに移動できます。
現在のひとつ上の階層のディレクトリをカレントディレクトリにするには
$ cd ..
を実行します。「..(ドット2つ)」はひとつ上の階層を示す記号です。
pwd(カレントディレクトリの絶対パスを表示)
print working directoryを略したコマンドで、カレントディレクトリの絶対パスを表示します。絶対パスはシステムの最上位階層(ルートと言います)から対象とするディレクトリやファイルまでの経路を示したものです。
カレントディレクトリがホームディレクトリのときに
PC名:~ ユーザー名$ pwd
を実行すると、ホームディレクトリ名はユーザー名なので、
/Users/ユーザー名
と表示されます。
カレントディレクトリがdesktopのときに
PC名:desktop ユーザー名$ pwd
を実行すると、
/Users/ユーザー名/desktop
と表示されます。desktopはホームディレクトリに含まれているディレクトリです。
mkdir(新しいディレクトリを作成)
make directoryを略したコマンドで、カレントディレクトリに新しいディレクトリを作成します。引数に新しく作成するディレクトリ名を指定します。
newディレクトリを作成するには、
$ mkdir new
を実行します。
touch(指定したファイルの更新日を変更)
カレントディレクトリに新しくファイルを作成できるコマンドで、引数に作成するファイル名を指定します。
正確に言うとtouchコマンドは、引数に指定したファイルの更新日を変更するコマンドです。しかし、引数に指定したファイルがカレントディレクトリに存在しない場合、新しくファイルが作成されます。
たとえば、テキストファイル「new.txt」を作成するには、
$ touch new.txt
を実行します。
mv
moveを略したコマンドで、ディレクトリやファイルの名前を変更したり、ディレクトリやファイルを移動したりできます。
1つめのの引数に対象のディレクトリやファイルの名前を指定し、2つめの引数に変更後の名前を指定します。2つめの引数が存在するディレクトリ名の場合には、そのディレクトリに1つめの引数の対象を移動させます。
sample1.txtファイルの名前をsample2.txtファイルに変更するには
$ mv sample1.txt sample2.txt
を実行します。
sample2.txtファイルをdesktopディレクトリに移動するには
$ mv sample2.txt desktop
を実行します。
cp(ファイルのコピー)
copyを略したコマンドで、ファイルをコピーします。
1つめの引数にカレントディレクトリに存在するファイル名を指定し、2つめの引数に新しいファイル名を指定すると、1つめの引数のファイルがコピーされた新しい名前のファイルが作成されます。
sample.txtファイルをコピーして、新しくnew.txtファイルを作成するには
$ cp sample.txt new.txt
を実行します。
1つめの引数にカレントディレクトリに存在するファイル名を指定し、2つめの引数にディレクトリ名を指定すると、2つめのディレクトリの中に1つめの引数のコピーファイルが作成されます。
sample.txtファイルのコピーファイルを、desktopディレクトリの中に作成するには
$ cp sample.txt desktop
を実行します。
rm(ファイルの削除)
removeを略したコマンドで指定したファイルやディレクトリを削除しますが、ディレクトリを削除する場合には「-r」オプションを付けます。
sample.txtファイルを削除するには
$ rm sample.txt
を実行します。
sampleディレクトリを削除するには
$ rm -r sample
を実行します。
open(ディレクトリを開く)
引数に指定したディレクトリをFinderで開きます。
sampleディレクトリをFinderで開くには
$ open sample
を実行します。
カレントディレクトリをFinderで開くには
$ open .
を実行します。「.(ドット)」はカレントディレクトリを示す記号です。
ホームディレクトリをFinderで開くには
$ open ~
を実行します。「~」はホームディレクトリを示す記号です。
source(指定したファイルをシェルで実行)
引数に指定したファイルをシェルで実行するコマンドで、シェルはターミナルから受け取ったコマンドをシステムに反映させるソフトウェアです。
ターミナルの起動時に実行されるシェルの設定ファイルの.bash_profileを、ターミナルを終了させずに適用するには
$ source .bash_profile
を実行します。
history(コマンドの履歴を表示)
ターミナルで実行したコマンドの履歴を表示します。また、「-c」オプションを付けて実行するとコマンドの履歴を消去できます。
実行したコマンドの履歴を500件表示するには
$ history
を実行します。
実行したコマンドの履歴を消去するには
$ history -c
を実行します。
終了するには?
プログラミングしたコードのファイルを実行していると、稀に無限ループに陥って実行されている処理を終了できなくなります。
実行中の処理を終了するには
control + c
をタイピングします。
ターミナル便利な技まとめ
ここでは、知っておくと便利なコマンドやタイピングを紹介しておきます。
1つ前のディレクトリに戻る
カレントディレクトリを変更した後で、1つ前にいたディレクトリに戻るには、
$ cd -
を実行します。すると、1つ前にいたディレクトリの絶対パスが表示され、カレントディレクトリが戻ります。
ちなみに以下のコマンドでも同様に1つ前のディレクトリに戻ることができます。
複数のディレクトリを一気に作る
カレントディレクトリに、new1、new2、new3 の3つのディレクトリを作成するには
$ mkdir new1 new2 new2
のように、ディレクトリ名を半角スペースで区切って並べ実行します。
コマンドを履歴から実行する
同じコマンドを繰り返して実行する際には、「↑」矢印で実行したコマンドを遡れます。
また、「control + r」に続けて文字を入力することで、実行したコマンドの履歴を検索できます。
例えば、「control + r」に続けて「mk」と入力すると
(reverse-i-search)`mk': mkdir new1 new2 new3
のように、過去に実行されたコマンドが表示され実行できます。
画面を消す
ターミナルの画面表示を消去(クリア)するには
control + l
をタイピングします。
ターミナル・コマンドプロンプト違いとは?
ターミナルのようにコマンドで操作する方式をCUI(キャラクターユーザーインターフェース)と言います。この場合のキャラクターは文字という意味です。
ターミナルがMacのCUIツールであるように、コマンドプロンプトはWindowsのCUIツールです。今でこそ、MacのターミナルとWindowsのコマンドプロンプトは同じように使用できますが、その成り立ちには違いがあります。
もともとは大型のUnixコンピューターに画面とキーボードの端末(ターミナル言われる所以)を複数接続し、複数の人でコンピューターを共有して使用していました。Unix系のMacは現在でも、内部的には中核のシステム(カーネルと言います)にシェル(ソフトウェア)がターミナルを繋いでいます。
一方、個人用のコンピューター(PC)のOSだったMS-DOSを基盤としてWindowsが誕生しました。当初、WindowsのCUIツールはMS-DOSプロンプトと呼ばれていました。
その後、MS-DOSプロンプトはコマンドプロンプトに呼び名を変え、WindowsXPの登場によってMS-DOSのシステムは完全に排除されています。コマンドプロンプトはターミナルに似ていても、中核システムと末端を繋ぐような構造にはなっていません。
まとめ
ここでは、ターミナルの使い方や基本的なコマンドについて紹介しました。
マウスを使用して視覚的に操作するGUI(グラフィックユーザーインターフェース)に慣れていると、ターミナルのようなコマンドで操作するCUI(キャラクターユーザーインターフェース)は難しく感じますよね。
ターミナルに対して尻込みすることなく、立ち向かえるような気持ちになって頂けたとしたら幸いです。