Mac初心者が知っておきたいターミナル基本操作

Web開発

はじめに

Macでプログラミングを始めようとするとき、最初に戸惑うのがターミナルの操作ではないでしょうか。
ファイルの作成やフォルダ移動など、普段はFinderでマウスやトラックパッドを使って行う作業を、ターミナルだと文字を入力して行います。
慣れないうちは地味で難しそうに感じるかもしれませんが、ターミナルを扱えるようになると作業効率が上がり、さまざまな開発ツールの活用もスムーズになります。
さらにプログラミングにおいては、ターミナル上でしか実行できないコマンドや設定も多く存在します。
そのため、本格的にプログラミングを学ぶならターミナルはぜひ押さえておきたい操作環境です。

本記事では、プログラミング未経験や初心者の方向けに、Macのターミナルで覚えておきたい基本操作をしっかり解説します。
ファイル操作やシェルの設定、実務でよく使われるコマンドなど、幅広い内容を網羅しながら具体例をふまえて紹介していきますので、ぜひ参考にしてみてください。

この記事を読むとわかること

  • Macのターミナルを開く方法と簡単なカスタマイズのやり方
  • よく使う代表的なコマンド(ファイル操作や権限設定など)の具体的な操作
  • シェルの種類や違い、選択時のポイント
  • 実務で想定される活用シーンと、ターミナルを活用するメリット
  • ショートカットや小技など、作業効率を上げる工夫

ここに挙げるポイントは、初心者がつまずきやすい部分でもあります。
文章を追いかけつつ、手元のMacで一緒に試してみるとより理解が進むでしょう。
それではさっそく始めていきましょう。

ターミナルとは何か

ターミナルはコマンドラインインターフェイス(CLI)と呼ばれる操作手段のひとつです。
グラフィカルユーザーインターフェイス(GUI)がマウスや視覚的なボタンを使って操作するのに対し、CLIは文字列コマンドを入力してコンピュータに指示を出します。
Macの場合、「ターミナル.app」という標準アプリが最も手軽で、Finderのアプリケーションフォルダか、Launchpadから「ターミナル」と検索することで起動できます。

CLIの特徴

コマンドラインと聞くと難しそうなイメージを持つ方もいるかもしれません。
しかし、CLIはキーボード操作のみでシステムを扱えるため、一度なれるとGUIよりも細かい制御や高速な作業が可能です。
プログラミングやサーバー管理ではコマンドライン操作が基本となる場面が多く、GUIツールの無い環境(リモートサーバーなど)を扱う際にも必須のスキルです。

Macのターミナルが便利な理由

Macでは、Unix系のシェル環境を標準で備えており、Linuxコマンドとほぼ同じ感覚で操作ができます。
また、多くの開発者がMacを利用しているため、Mac向けのコマンドラインツールやライブラリも充実しています。
そのため、開発環境構築の際にGUIでは対応しきれない部分をスクリプトやコマンドラインでカバーできる点が魅力です。

Macのターミナルを開く方法

Mac初心者の場合、ターミナルを開くだけでも少し戸惑うかもしれません。
そこで、ここでは基本的な起動方法と、初めてターミナルを開いたときにチェックしたいポイントを説明します。

起動方法

  1. Launchpadを開く
  2. 「その他」フォルダの中にある「ターミナル」をクリック
  3. もしくは、Spotlight検索で「ターミナル」と入力して起動

起動すると、白いウィンドウが表示され、カーソルが点滅していると思います。
これがターミナルの画面であり、「入力待ち」の状態です。

最初に確認しておきたい設定

ターミナルの文字サイズや背景色などを変更したい場合は、ターミナル画面上部のメニュー「環境設定」を選びます。
好みの文字サイズ、色、フォントを選ぶことで見やすさが変わるので、長時間作業するときはカスタマイズしておくと便利です。
また、タブを活用すれば、一つのウィンドウで複数のターミナルを開くこともできます。

ターミナルの基本設定

ターミナルの設定には、GUIで行う方法だけでなく、ファイルを編集して自分好みにカスタマイズする方法も存在します。
Macでは現在、初期設定でzshというシェルが使われていますが、bashなど別のシェルを使いたい場合は切り替えが可能です。
このあたりは、将来的により高度な設定や開発作業をする際に必要になるため、ざっくりと押さえておきましょう。

zshとbashの違い

zshやbashはいずれもシェルと呼ばれる仕組みで、入力したコマンドを解釈してOSに指示を送る役割を担います。
いずれもUnix系にルーツを持ち、コマンド自体はほぼ共通ですが、コマンド補完や設定ファイルの場所が若干異なります。
プログラミングや開発チームによっては、bashが使われている環境もあり、あらかじめbashとの違いを把握しておくと混乱が減ります。

設定ファイルの役割

ターミナルを起動すると、ユーザーごとに設定ファイルを読み込みます。
zshなら「.zshrc」、bashなら「.bashrc」や「.bash_profile」というファイルが代表的です。
エイリアス(別名コマンド)や環境変数の設定などは、これらのファイルを編集して行います。
初心者の方は無理に設定ファイルをいじらなくてもかまいませんが、追加でコマンドをインストールする場合には設定ファイルを編集するケースがあることを覚えておくといいでしょう。

ファイル・ディレクトリ操作の基本

プログラミングをするとき、ファイルやフォルダ(ディレクトリ)の作成、編集、削除は必ず行います。
GUI操作ではなく、ターミナル上で実行する基本コマンドを知っておくと便利です。
ここでは最もよく使う代表的なコマンドを紹介します。

現在の場所を確認: pwd

「自分が今いるディレクトリはどこか」を確認するコマンドが pwd です。
ターミナルを起動した直後は、通常ユーザーのホームディレクトリ(/Users/ユーザー名)にいます。
慣れないうちは、迷子になったら pwd を入力するといいでしょう。

ディレクトリの内容を表示: ls

今いるディレクトリに何のファイルやフォルダがあるかを一覧表示するコマンドが ls です。
ls -l とすると、ファイルやフォルダの詳細情報(パーミッションや更新日時など)が表示されます。
隠しファイルも見たい場合は、ls -a というオプションを追加することで確認できます。

ディレクトリの移動: cd

ディレクトリを移動するときは cd (change directory)を使います。
例として、ホームディレクトリにある「Documents」フォルダに移動するなら cd Documents と入力します。

cd Documents

別のフォルダに移動したいとき、パスを正しく入力する必要があります。
ひとつ上のディレクトリに戻りたいときは cd .. というように、「..」を使います。

ディレクトリの作成: mkdir

新たにフォルダを作成するには mkdir を使います。
例として、「test」という名前のディレクトリを作成したい場合は次のようになります。

mkdir test

mkdirに「-p」オプションを付けると、まだ存在しない上位フォルダまでまとめて作成できるので、ツリー構造を一気に作るときに便利です。

ファイルの作成: touch

空のファイルを作成するときに使えるのが touch です。
touch sample.txt とすれば、sample.txt という空のファイルができます。
ファイル名を間違えたら rm などで削除できますが、消したくない大事なファイルをうっかり削除しないよう注意しましょう。

ファイルの削除: rm

ファイルを削除するコマンドは rm です。
フォルダを削除したい場合は rm -r のように「-r」オプションを付けて、再帰的に中身も含めて削除する必要があります。
一度消すとゴミ箱に入らないので、取り返しがつかない点に注意してください。

ファイル名・ディレクトリ名の変更: mv

ファイル名やディレクトリ名を変更したり、別の場所に移動したりするのが mv です。
例えば「sample.txt」を「test.txt」に名前を変える場合は、次のように入力します。

mv sample.txt test.txt

別のディレクトリに移動する場合は、移動先フォルダのパスを指定します。
同じコマンドで「移動」と「名前変更」ができるので慣れてしまうと便利ですが、慣れないうちは混乱しやすい点でもあります。

パーミッションについて

Unix系システムであるmacOSでは、ファイルやディレクトリごとにパーミッション(アクセス権限)が設定されています。
パーミッションは「読み取り(r)」「書き込み(w)」「実行(x)」の3種類があり、所有者(user)、グループ(group)、その他(others)の3つのユーザー区分に対して設定できます。

パーミッションの確認方法

ファイルやフォルダの詳細を見たい場合は ls -l を使います。
例として ls -l sample.txt とすると、以下のような形式で情報が表示されます。

-rw-r--r--   1 username  staff  0 Feb  6 10:00 sample.txt

先頭の「-rw-r--r--」という部分がパーミッションを表しています。
それぞれの文字が、所有者、グループ、その他に対して読み書き実行を許可しているかを示します。

パーミッションの変更: chmod

パーミッションを変更するには chmod コマンドを使います。
「読み取り」「書き込み」「実行」に対応した数値(r=4、w=2、x=1)を組み合わせる表記が一般的です。
例えば所有者に読み書き(4+2=6)、グループとその他は読み取りのみ(4)の場合は「644」となり、次のように入力します。

chmod 644 sample.txt

シェルスクリプトなどを実行可能にする場合は、所有者に実行権限を付与した「700」などを指定することが多いです。

システム管理コマンド

Macのターミナルを使ってシステム関連の状態を確認したり、複数のアプリケーションが同時に動いている状況を整理することもできます。
ここでは代表的なコマンドをいくつか紹介します。

プロセス確認: ps, top

現在動作中のプロセスを確認するには pstop を使います。
ps aux でユーザーごとに動作しているプロセスが一覧表示され、top を実行すると、リアルタイムでCPUやメモリ使用量が表示されます。
アプリの異常停止やサーバーが重いと感じたときに調べるのに役立ちます。

プロセスの強制終了: kill

不要になったプロセスやフリーズしたアプリがある場合、kill コマンドで終了させることができます。
kill -9 プロセスID で強制的にプロセスを止められますが、実行する際は細心の注意が必要です。

再起動やシャットダウン

コマンドラインからシステムを再起動したりシャットダウンしたりする方法もあります。
sudo shutdown -r now で再起動、sudo shutdown -h now でシャットダウンが可能です。
ただし、現在の作業内容が失われる恐れがあるので、実務で使うときは確実にデータを保存してからにしましょう。

Linux系のコマンドの成り立ち

macOSのターミナルは、内部的には多くの部分でLinux(あるいはUnix系)の思想を受け継いでいます。
そのため、学習リソースやコマンドの多くは「Linuxコマンド」として紹介されているものをそのまま使うことができます。
名前や動作が似ているものが多く、ls, cd, pwd などはLinux系のほぼ共通のコマンドです。

バージョン違いによる挙動の差

macOSにプリインストールされているコマンドは、Linuxディストリビューションで使われているものと微妙にオプションが違う場合があります。
プログラミングの現場では、MacとLinuxサーバーで操作感が違うことがあるため、エラーが出たときに「どうして動かないのか?」と焦る方が多いです。
オプションが認識されなかったり、出力形式が異なったりするケースに備えて、使いたいコマンドのマニュアル(man コマンド名)を読んで確認するのがおすすめです。

ターミナルでのテキスト編集

ファイルの中身を確認したり編集したりするときも、ターミナルだけで作業できます。
慣れると軽快に作業できるため、プログラミングやサーバー管理でよく使われます。
ここでは、どのような方法があるかを簡単に紹介します。

cat, less, more

ファイルの中身を一気に表示するには cat ファイル名 を使います。
ただし、長いファイルは画面を超えてしまうので、lessmore でページ送りをしながら見るほうが便利です。
q キーで終了できます。

vim, nanoなどのエディタ

ターミナルで直接ファイルを編集するときは vimnano といったテキストエディタを使います。
vim は慣れれば効率のよいエディタですが、操作が難しいと感じる方もいるため、初心者のうちは nano などシンプルなエディタを利用すると良いでしょう。

nano sample.txt

上記のように実行すると、ターミナル上で直接ファイルを編集できます。
終了するときは、コマンド一覧を画面下部で確認できますが、例として「Control + X」などで抜ける操作が一般的です。

さまざまなシェルの使い分け

Mac標準のシェルはzshですが、先ほど触れたようにbashを選択することもできます。
さらに、fishやtcshなど、さまざまなシェルが存在します。
どのシェルを使うかは好みやチームの方針によって異なりますが、初心者のうちはzshかbashに慣れておけば十分です。

bashが求められる場合

チームの共有スクリプトがbash用に書かれている場合や、サーバーのシェルがbashの場合には、ローカルでもbashを使うほうが混乱しないでしょう。
シェルスクリプトの構文レベルでは大きな違いはありませんが、一部zsh専用の機能がbashでは動作しないケースもあります。

zshのメリット

zshは補完機能が強力で、入力途中のコマンドやディレクトリを自動で候補表示してくれます。
また、プラグイン管理ツールが充実しており、テーマや便利な機能を追加しやすい点が特徴です。
色分けやプロンプトのカスタマイズなど、視覚的にもわかりやすいため、zshを使う開発者は多いです。

実務での活用シーン

ターミナルの基本操作を学んだ後は、実務でどのように活用されるのかをイメージすると理解が深まります。
ここでは代表的なシーンをいくつか取り上げます。

開発環境のセットアップ

プログラミングで使う開発環境を整えるときは、ターミナルからコマンドラインツールをインストールすることが多いです。
多くのパッケージ管理システムはGUIではなくCLIで行うため、コマンドの入力に慣れておく必要があります。
環境変数を設定して動作に影響を与えたいときも、設定ファイルをターミナル上で編集しがちです。

バッチ処理やスクリプトの作成

大量のファイルを一括で処理したり、定期的なバックアップを自動化したりするスクリプトを作成する場合も、ターミナルの知識が欠かせません。
ファイル操作コマンドを組み合わせるだけで簡単なバッチ処理を実現できるため、毎回GUIで同じ作業を繰り返す手間を省くことができます。

リモートサーバーへの接続

SSHなどを使ってリモートサーバーにアクセスする際は、ターミナルが主な入口になります。
このとき、ローカルでのターミナル操作とほぼ同様のコマンド操作でサーバーを管理できます。
クラウド上の仮想マシンを扱うときもGUIがない場合が多いので、ターミナル操作は必須です。

ターミナルで作業効率を上げるコツ

初めは慣れなくて戸惑うかもしれませんが、少しずつコツを押さえるとターミナル操作の効率が上がります。
ここでは、初心者でも簡単に取り入れやすいテクニックを紹介します。

オートコンプリート機能

ターミナル上でTabキーを押すと、コマンドやファイル名を自動補完してくれる場合があります。
特にディレクトリ名が長いときは、最初の数文字を打ってTabキーを押すだけで補完してくれるため、入力の手間が削減できます。
エラーの減少にもつながるため、積極的に使ってみてください。

コマンド履歴の活用

ターミナルで入力したコマンドは履歴として記憶されています。
上矢印キーを押すと過去のコマンドが表示されるので、同じコマンドを何度も再入力する必要はありません。
検索したい場合は Ctrl + R を使った履歴検索なども活用すると便利です。

エイリアスの設定

よく使うコマンドや長いコマンドは、エイリアス(別名)を設定すると作業効率が上がります。
例えば「git status」を「gs」に短縮したいなら、zshの場合は「.zshrc」に以下のように書いておきます。

alias gs="git status"

ターミナルを再起動するか、設定ファイルを読み込めば、gs と打つだけで git status が実行されます。

エラーやトラブルシュートの基礎

ターミナルを使っていると、コマンドが見つからない、権限が足りない、パスが通っていないなど、さまざまなエラーに遭遇します。
そんなときの基本的な対処法を知っておくと、落ち着いて問題に取り組めるでしょう。

パス(PATH)を確認する

新しくインストールしたコマンドを実行しようとしたら「command not found」と出る場合があります。
これは、ターミナルが探す「PATH」というリストに、そのコマンドがあるディレクトリが含まれていない可能性があります。
echo $PATH で現在のPATHを確認し、必要なら設定ファイルにディレクトリを追加してみてください。

権限エラー

「Permission denied」というエラーが出る場合は、ファイルやディレクトリの所有者やパーミッションを見直します。
自分が所有権を持っていないファイルに書き込みや実行をしようとすると、このエラーが発生します。
sudoコマンドで権限を上げるのは最終手段なので、あまり多用しないようにしましょう。

タイプミス・シンタックスエラー

ターミナルでは、一文字のミスで全く違うコマンドになってしまうことがあります。
エラーメッセージがよくわからないときは、スペルをよく確認し、オプションのスペルやファイルパスが正しいかを確かめてみてください。
また、bashやzshのスクリプトを書くときは構文のミスがないかを慎重にチェックする必要があります。

ターミナルが苦手な方へのアドバイス

初めてターミナルに触れると、「どんなコマンドがあるのかわからない」「すぐにエラーが出る」といった不安を感じることが多いようです。
しかし、基本的なコマンドを少しずつ覚えていけば、徐々に使いこなせるようになります。
以下の点を意識すると習得がスムーズになるかもしれません。

自分の手でタイピングして慣れる

チュートリアルを読むだけでなく、実際にコマンドを入力して結果を確かめるのが最も効果的な学習方法です。
間違ってもすぐに修正ができるテスト用のファイルやディレクトリを作って、実験的にコマンドを試してみると理解が深まります。

一度にすべて覚えようとしない

コマンドの数は膨大で、すべてを一度に覚えるのは大変です。
まずは「ls」「cd」「pwd」「mkdir」「rm」「mv」「cp」といった基礎コマンドから始めて、必要になったタイミングで都度調べるほうが効率的です。
ショートカットやエイリアスなどのテクニックは後回しにして、まずはコマンド操作そのものを体にしみこませるのがおすすめです。

ターミナルを活用した開発プロセス例

具体的にターミナルがどのようにプログラミングの流れに組み込まれるか、簡単なイメージを紹介します。
ここでは仮に、Gitを使った開発フローを想定してみましょう。

リポジトリのクローンからファイル編集

  1. ターミナルでプロジェクト用ディレクトリに移動(cd Projects など)
  2. GitHubなどのリポジトリURLを指定して git clone URL
  3. cd でクローンしたフォルダに入る
  4. code . や任意のエディタを開いてファイルを編集
  5. 編集後にターミナルで git statusgit add を実行

このように、GUIで扱える部分も多いですが、バージョン管理やリポジトリ操作はターミナル操作が中心になりやすいです。

ビルドやテストの実行

プロジェクトによっては、コンパイルやテストをターミナルから実行することが一般的です。
例として、JavaScriptのプロジェクトであれば npm run buildnpm test のようなコマンドを入力し、実行結果を確認します。
ターミナルでログがすぐに確認できるため、バグ修正やデバッグにもターミナル操作が密接に関わります。

セキュリティ面の注意

ターミナルは強力な操作ができる反面、権限を間違えると大事なファイルを消してしまったり、システムを不安定にしてしまうリスクもあります。
そこで、セキュリティや安定性を確保するために気をつけたいポイントを挙げておきます。

sudoの使い方

sudo は管理者(root)権限でコマンドを実行する仕組みです。
正しく理解しないまま多用すると、重要なシステムファイルを破壊してしまう可能性があります。
本当に必要なとき以外は sudo を付けないほうが安全でしょう。

実行ファイルのダウンロードと実行

実行ファイルをインターネットからダウンロードして、ターミナル上で実行する場合は十分な注意が必要です。
悪意あるコードが仕込まれている場合は、ウイルス対策ソフトや開発元の信頼性を考慮した上で行うことをおすすめします。

新しいコマンドやスクリプトをダウンロードしたときは、どこから入手したものなのかを確認しましょう。

システム領域へのアクセス

通常のユーザー権限ではアクセスできないシステム領域に対して、無理やり書き込みを行うのはトラブルの元です。
拡張機能などをインストールする際には、インストール手順とファイルの設置先をよく確認しましょう。

ターミナルのカスタマイズで作業効率をアップ

ターミナルに慣れてきたら、プロンプトの色や表示内容を自分好みにカスタマイズすると作業が楽になります。
zshのプラグイン管理ツールを使えば、テーマや補完などを素早く導入できます。
面倒だと感じる場合は、ターミナル.appの「環境設定」で背景色やフォントを変更するだけでも、集中しやすい環境になるでしょう。

プロンプトに現在のディレクトリやGitブランチを表示

zshなら「prompt」というコマンド、またはプラグインを使ってプロンプトにGitブランチなどを表示できます。
現在どのブランチ上にいるのかが一目でわかるため、Git操作のミスが減る利点があります。
また、ディレクトリ名を色分けしておくことで、ぱっと見ただけで作業場所を把握しやすくなります。

ショートカットキー設定

ターミナル.app自体にもショートカットキーのカスタマイズ機能があります。
ウィンドウの切り替えや新規タブ作成など、自分好みのキーに割り当てれば、マウス操作を減らしてスピーディに作業できるでしょう。

ターミナル学習のステップ

初心者がターミナル操作を着実に身につけるには、段階を踏むことが大切です。
ここでは、どんなステップで学習していくのが理想的か簡単にまとめます。

ステップ1: 基本コマンドに慣れる

  • pwd, ls, cd, mkdir, rm など最低限のファイル操作コマンド
  • touch, nano, cat などファイル生成・編集関連のコマンド

このあたりを繰り返し使い、「ディレクトリを移動して、ファイルを作成・削除する」流れをスムーズにこなせるようにします。

ステップ2: シェルの設定を理解する

  • zshの設定ファイル(.zshrc)を軽く編集してみる
  • エイリアスや環境変数を設定してみる

細かい設定をいじるうちに、シェルの仕組みが少しずつわかってきます。
自分なりの使いやすい環境づくりに興味が湧くタイミングでしょう。

ステップ3: 実務のフローに組み込む

  • Gitでのバージョン管理作業
  • CLIベースのビルドやデプロイ
  • リモートサーバー管理

プログラミングを具体的に進める中で「ターミナルでしかできない作業」が自然と増えていきます。
そのときに学んだコマンドやエラー解決法は、経験値として大きな財産になるでしょう。

実務でよく使うその他の便利コマンド例

コマンドの数は膨大なので全部を把握する必要はありませんが、以下のようなコマンドが比較的よく使われます。
必要になったら調べ、都度習得するスタイルで問題ありません。

grep

テキストの中からキーワードを検索したり、特定の文字列を含む行を抽出したりするために使われます。
ログファイルが大きい場合などに、必要な情報だけを取り出すのに便利です。

find

条件に合ったファイルやディレクトリを探すコマンドです。
名前・更新日時・ファイルサイズなど、多彩な条件を指定できます。
大量のファイルがあるフォルダから特定の拡張子だけを探すといった用途によく使われます。

sort, uniq

テキストファイルの行を並べ替えたり、重複行をまとめたりする際に使用します。
ログ解析やデータ集計で役立ちます。

head, tail

ファイルの先頭行や末尾行だけを表示するコマンドです。
ログが増え続けるファイルのチェックをするとき、tail -f ログファイル でリアルタイムに追いかけることが可能です。

これらのコマンドは単体でも便利ですが、パイプ「|」でつなげて組み合わせると、さらに強力なテキスト処理ができます。

まとめ

ここまで、Macのターミナルで覚えておきたい基本操作を中心に、初心者が最初につまずきやすいポイントを詳しく解説してきました。
最初は慣れないタイピングやコマンド名の暗記が大変に思えるかもしれませんが、実際に手を動かしてみることで少しずつスピードが上がっていきます。

ターミナルを扱えるようになると、開発に必要な環境構築やファイルの一括処理、リモートサーバーでの作業など、GUIではカバーしきれない幅広いタスクを効率的にこなせるようになります。
プログラミング未経験の方でも、今回紹介したコマンドやコツを押さえておけば、実務でも十分に活用できるはずです。

マウス操作だけでは見えない世界が、コマンドライン操作によってぐっと広がります。
最初は戸惑いやミスがあるかもしれませんが、焦らずに一つひとつ手を動かして確かめながらターミナルと仲良くなっていきましょう。
それでは、皆さんのプログラミング学習や開発がスムーズに進むことを願っています。

Shell Scriptをマスターしよう

この記事で学んだShell Scriptの知識をさらに伸ばしませんか?
Udemyには、現場ですぐ使えるスキルを身につけられる実践的な講座が揃っています。