【Mac】ターミナルの使い方

Macにはターミナルというアプリが最初からインストールされています。
このターミナルというアプリでは、コマンドという命令文を入力してOS(Mac)を操作することができます

パソコンでネットサーフィンしたりゲームをしたりする場合であれば使用する必要はないのですが、プログラミングを行う場合はターミナルを用いる場面がしばしばあります。

このターミナルは「コマンドライン」と呼ばれる命令行を記述します。Enterキーを押したり改行コードを含めるなど、行が終了するとコマンドが実行されます

他の一般的なアプリと異なりキーボードのみの操作となります。
そのため、慣れないうちはとっつきにくいと感じることもあると思いますが、必須の知識と言えるので基本の操作は覚えておきましょう。

ターミナルを開く

  1. ⌘ + スペース で 検索用アプリ Spotlight を起動します。
  2. 「ターミナル」と入力してください。
  3. 以下の画像の「ターミナル」を見つけて起動してください。
Spotlightで「ターミナル」を検索する
Spotlightで「ターミナル」を検索
ターミナルアイコン
検索結果
ターミナルを開いた直後の画像
ターミナルを開いた直後

zshbash

ターミナルのウィンドウにzshまたはbashと表示されていると思います。
zshbashもどちらもUNIX/Linux系OSで標準的に使用されるシェルスクリプト(Shell Script)です。

MacOS X Catalina以降をお使いの方は、zshがデフォルトで使用されるようになっています。

zshの場合、コマンドラインを入力する先頭には%が自動的に表示されます。bashの場合は、$が表示されます。

例えば、以下のように記載していた場合、実際にターミナルに打ち込むコードは git --versionとなります
打ち込んだ後にEnterキーを押すと、コマンドが実行されて下の行に結果が出力されます。


% git --version     
git version 2.24.3 (Apple Git-128)
    

特に記述がない場合、zshbashも同じコマンドで実行できるので、解説では%と記載されていたとしても、それ以降のコマンドをbash$以降に記述して実行してください。

ディレクトリ操作のチュートリアル

ここでは基本的なコマンドを実際に実行してみましょう。

ターミナルを新しく開いてください。

pwd(Print Working Directory)

現在の作業ディレクトリを表示するコマンドです。

以下のコマンドを実行することで、現在どのディレクトリで操作しているのかを絶対パスで確認することができます。


% pwd
/Users/[ユーザー名]
    

絶対パスとは、一番上の階層(ルート)から特定のファイルまたはディレクトリまでのパスのことです。
パスは階層ごとにスラッシュ(/)で区切られています。また、絶対パスは多くの場合先頭がスラッシュ(/)から始まります

mkdir(Make Directories)

ディレクトリ(フォルダ)を新しく作成します。

以下のようにコマンドを実行すれば、現在の作業ディレクトリに新しくtestというディレクトリを作成します。


% mkdir test
    

絶対パスでは /User/[ユーザー名]/test というディレクトリを作成したことになります。

更に、以下のようにコマンドを実行するとtestディレクトリの中にhogeというディレクトリを作成することができます。


% mkdir test/hoge
    

この test/hoge というのは相対パスと言います。

絶対パスとの違いは、相対パスの場合、先頭がスラッシュ(/)から始まらないことと、現在の作業ディレクトリを基準とした相対的なパスを用いることです。

また、絶対パスと同様にディレクトリの下層ディレクトリ(またはファイル)を指すときはディレクトリ名と下層ディレクトリ名をスラッシュ(/)で区切ります

cd(Change the current Directory)

現在の作業ディレクトリを他のディレクトリに移動します。

コマンドの後に入力するパラメータはディレクトリの場所(パス)である必要があります。

以下のコマンドで、先ほど作成したhogeディレクトリに移動します。


% cd test/hoge
hoge %
    

相対パスで上の階層のtestを指す場合はドットを2つ重ねて..とします。

一つ上のtestディレクトリに移動する場合は以下のようにコマンドを実行します。


hoge % cd ..
test %
    

ls(List directory contents)

このコマンドを実行することで、ディレクトリ内のファイルやディレクトリをリスト形式で表示することができます。


test % ls
hoge
    

オプションで -l を使用すればファイルの詳細情報を表示することができます。
表示されるものは左から[ファイルタイプパーミッション、ハードリンクの数、オーナー名、グループ名、ファイルサイズ、タイムスタンプ、ファイル名]です。


test % ls -l
drwxr-xr-x  2 [オーナー名]  staff  64 11 30 19:18 hoge
    

rmdir (Remove empty directories)

このコマンドは空のディレクトリを削除する場合に使用します。

hogeディレクトリを削除してみましょう。


test % rmdir hoge
    

lsコマンドを実行するとhogeディレクトリが削除され、何も出力されないことが分かります。

ただし、もしhogeディレクトリの中に他のファイルやディレクトリが存在する場合、つまり空ではないディレクトリを削除しようと場合は、以下のようにエラーが出力されます。


test % rmdir hoge
rmdir: hoge: Directory not empty
    

rmdirは空のディレクトリしか削除できません。
空ではないディレクトリを削除するためには次で説明するrm コマンドを使用します。

rm(Remove file or directories)

このrmコマンドはファイルとディレクトリを削除する事ができます。空のディレクトリのみ削除できるrmdirコマンドと比べ、ひとつ上の力を持ったコマンドとなります。

現在testディレクトリには何も入っていないのでrmコマンドを検証するために新しくfugaディレクトリを作成しましょう。


test % mkdir fuga
    

作成できたので、一つ上の階層に移動します。


test % cd ..
    

これで、空ではないtestディレクトリを削除する方法を検証することができます。

まずは普通にrmコマンドを試してみましょう。


% rm test
rm: test: is a directory
    

testはディレクトリなので、このままでは削除できません。

rmコマンドでディレクトリを削除する場合は-rオプションを使用します。


% rm -r test
    

これでtestディレクトリを削除することができました。

lsコマンドでtestディレクトリが表示されないことを確認しましょう。

チュートリアルを試してみよう!

前のレッスン
次のレッスン

Twitterでアウトプット

理解したことや分からないところはTwitterでつぶやいてみよう!

この学習ページで学んだことをTwitterでアウトプットしてください。

アウトプットするメリット

学習仲間が増える

同じ課題を持った仲間が増えるため、学習へのモチベーションが継続しやすくなります。

より深く理解する

頭では理解したと思っていても、文章化することで初めて気づくことがあります。