このページでは、初めて Mac でターミナルアプリを使用する方向けに、ターミナルの基本的な使い方と、ターミナルでのコマンド実行を行う上で知っておいた方が良い知識の紹介をしていきたいと思います!
ターミナルを利用することで、さまざまな操作をマウスなしで、コマンドだけで実行することができるようになります。
コマンドだけでいろんな操作ができるようになるので、手順化しやすい&手順を自動化しやすいというメリットもあります。
慣れるのには時間がかかるかもしれませんが、慣れてしまえばマウスを使うよりも効率的に様々な操作を行うことができるようになります!
具体的にターミナルでどのような操作が行えるか、つまりどのようなコマンドがあるかについては下記ページでまとめていますので、こちらを知りたい方は下記リンク先を参照していただければと思います。
Macのターミナルでよく使うコマンド集(初心者向け)Contents
ターミナルの使い方
ターミナルは Mac にプリインストールされている(元々インストールされている)アプリになります。
ターミナルの起動
このターミナルアプリは下記の場所に存在します。
- 「アプリケーション」フォルダ → 「ユーティリティ」フォルダ
下の図のアイコンが「ターミナル」のアイコンになります。
このアイコンをダブルクリックすれば、ターミナルアプリが起動して下の図のような画面が表示されます。
ターミナルの起動直後は、ユーザーは通常 /Users/[ユーザー名]
というディレクトリにいる事になります。
ディレクトリとは、要はフォルダのことです。
このディレクトリに関してはターミナルでのコマンドを利用する上で知っておくと良いことで詳しく解説します。
このターミナルでは、今いるディレクトリから他のディレクトリに移動したり、今いるディレクトリや他のディレクトリにあるファイルに対してさまざまな操作を行うことができます。
そして、これらを行う際に実行するのが「コマンド」です。
スポンサーリンク
ターミナルでのコマンド実行
ターミナルでは、コマンドを実行することでファイル・ディレクトリに対してさまざまな操作を行うことが可能です。また Mac の設定を変更するような操作も行うことができます。
キーボード入力だけでさまざまな操作を行うことができ、慣れてくるとマウスを使うよりも、効率よく操作を行うことができるようになります。
例えば、プログラミングを行うような場合は、下記を全てターミナルでのコマンドにより行うこともできます。
- ソースコード記述
- コンパイル
- プログラム実行
続いてはこのコマンドについて解説していきたいと思います。
コマンドの書式
基本的なコマンドの書式は下記のようになります。
コマンド名 オプション パス
例えばターミナルアプリ上で下記のコマンドを入力し、エンターキーを押してみましょう!
ls -l .
実行すると、下記のようにファイルやディレクトリの名前の一覧が表示されると思います。
$ ls -l . total 0 drwx------+ 3 daeu staff 96 4 13 10:19 Desktop drwx------+ 3 daeu staff 96 4 13 10:19 Documents drwx------+ 3 daeu staff 96 4 13 10:19 Downloads drwx------@ 26 daeu staff 832 4 13 10:20 Library drwx------ 3 daeu staff 96 4 13 10:19 Movies drwx------+ 3 daeu staff 96 4 13 10:19 Music drwx------+ 3 daeu staff 96 4 13 10:19 Pictures drwxr-xr-x+ 4 daeu staff 128 4 13 10:19 Public
実行したコマンドは、前述の書式に照らし合わせると下記のようになります。
- コマンド名:
ls
- オプション:
-l
- パス:
.
「コマンド名」は実行したいコマンド(命令)の名前です。
例えば ls
は、ディレクトリ内に存在する “ファイルやディレクトリの一覧” を表示するコマンドになります。
また、コマンドによっては、そのコマンドを実行する “対象” を指定する必要がある場合があります。”対象” を指定するとは、要は “どのファイル” や “どのディレクトリ” に対してコマンドを実行するかを指定することです。
この対象の指定は、”パス” により行います。パスというのは各ファイルや各ディレクトリを指定するための識別のようなものです。
このパスについてはターミナルでのコマンドを利用する上で知っておくと良いことで詳しく解説します。
例えば ls
コマンドの場合は、”どのディレクトリ” に対して “一覧表示を行うか” を指定するために、そのディレクトリのパスを引数として指定します。
上記では .
を指定しており、これは現在いるディレクトリのパスであることを示しています。
また、コマンドの動作の詳細を “オプション” で指定することが可能です。
例えば上記の -l
は、ls
による一覧表示を “リスト形式で行うことを指定する” オプションになります。
オプションは省略したり、複数指定したりすることも可能です。また、コマンドごとに用意されているオプションが異なります。
例えば ls
コマンドを、オプションを省略して下記のように実行した場合、
$ ls .
表示結果は下記のようになります。
Desktop Downloads Movies Pictures tmp Documents Library Music Public
一方で、下記のようにオプションとして -a
と -l
の2つを指定した場合、
$ ls -a -l .
表示結果は下記のようになります。
drwxr-xr-x+ 15 daeu staff 480 4 15 15:38 . drwxr-xr-x 6 root admin 192 4 13 10:19 .. -rw------- 1 daeu staff 4 4 13 10:19 .CFUserTextEncoding -rw------- 1 daeu staff 1077 4 13 15:24 .viminfo -rw------- 1 daeu staff 357 4 15 13:56 .zsh_history drwx------ 9 daeu staff 288 4 15 15:38 .zsh_sessions drwx------+ 3 daeu staff 96 4 13 10:19 Desktop drwx------+ 4 daeu staff 128 4 15 09:03 Documents drwx------+ 3 daeu staff 96 4 13 10:19 Downloads drwx------@ 26 daeu staff 832 4 13 10:20 Library drwx------ 3 daeu staff 96 4 13 10:19 Movies drwx------+ 3 daeu staff 96 4 13 10:19 Music drwx------+ 3 daeu staff 96 4 13 10:19 Pictures drwxr-xr-x+ 4 daeu staff 128 4 13 10:19 Public drwxr-xr-x 5 daeu staff 160 4 13 15:24 tmp
上記の表示結果はあくまでも例で、使用している PC によっては異なる結果になると思います。ここで注目していただきたいの点は、ls
コマンドでの一覧の表示の仕方がオプション指定によって変わっているところです。
このようにオプションを指定することで、コマンドの動作を詳細に設定することが可能です。
ちなみにオプションを複数指定する場合は、下記のように1つにまとめて指定するようなこともできます。
$ ls -al .
他のコマンドの実行例
今度はいろんなコマンドを実行してみましょう!
まずはターミナルに下記を入力してエンターキーを押してみましょう($
は省いて入力してください)。
$ pwd
エンターキーを押すと、下記のように表示されると思います([ユーザー名]
部分にはあなたのユーザー名が表示されます)。
/User/[ユーザー名]
pwd
はユーザーが現在いる(つまり、あなたが現在いる)ディレクトリのパスを表示するコマンドになります。この pwd
のように、コマンド実行時にパスを指定しなくても良いコマンドもあります。
続いて下記を入力してエンターキーを押してみましょう。
$ cd Documents
cd
コマンドはディレクトリを移動するコマンドです。さらに、パスに Documents
を指定しているので、Documents
ディレクトリに移動した事になります。
続いて再度 pwd
を実行してみましょう。
$ pwd
次は下記のように表示されるはずです。
/User/[ユーザー名]/Documents
先ほどと表示結果が異なりますね!これはユーザーが現在いるディレクトリが cd
コマンドで変わったことを表しています。つまり、ユーザーがディレクトリを移動したという事ですね!
続いて下記コマンドを実行してみましょう!mkdir
コマンドはディレクトリを作成するコマンドです。mkdir
の後ろ側に指定した名前のディレクトリが作成されます。
$ mkdir daeu_test_dir
今度は ls -l
コマンドを実行してみましょう!
$ ls -l .
いろんなファイルやディレクトリも表示されるかもしれませんが、その中に mkdir
で作成したディレクトリも存在するはずです。
$ ls -l . 〜略〜 drwxr-xr-x 2 daeu staff 64 4 15 07:58 daeu_test_dir 〜略〜
今度は作成したディレクトリに cd
コマンドで移動してみましょう。
$ cd daeu_test_dir
そして、今度は下記コマンドを実行してみます。
$ pwd > pwd.txt
コマンドの後ろに >
を付加することで、コマンド実行結果がターミナルに表示されるのではなく、>
の後ろ側のファイルに保存されるようになります。
つまり、pwd
のコマンド実行結果が pwd.txt
に保存される事になります。
このように、表示結果の出力先を変更することをリダイレクトと呼びます。
さらに ls -l
を実行すると、一覧の中にリダイレクトにより作成された pwd.txt
が存在することが確認できるはずです。
$ ls -l . total 8 -rw-r--r-- 1 daeu staff 44 4 15 07:56 pwd.txt
次は下記のコマンドを実行してみましょう!
$ cat pwd.txt
すると、下記のように表示されるはずです。
/Users/[ユーザー名]/Documents/daeu_test_dir
cat
コマンドは、指定したパスのファイルの中身を表示するコマンドになります。
pwd.txt
には、先ほどのリダイレクトによって pwd
コマンドの結果が保存されていますので、今いるディレクトリのパスが表示されことになります
最後に、作成したディレクトリを削除してみましょう。
まず下記のコマンドで1つ上の階層に戻ります。
$ cd ..
..
は1つ上の階層のディレクトリを表すパスになります。
さらに、下記コマンドを実行します。
$ rm -r daeu_test_dir
rm
コマンドはファイルを削除するコマンドで、さらに -r
オプションを付加することでディレクトリを削除することも可能です。したがって、上記では mkdir
で作成した daeu_test_dir
が削除されることになります。
ここまで実行してきたコマンドで行なったのは、主に下記のような操作ですね!
- ディレクトリを移動する
- ディレクトリの下に存在するファイルやディレクトリを表示する
- ディレクトリを作成する
- ファイルを保存する
- ファイルの中身を表示する
- ディレクトリを削除する
こんな感じで、いつもマウス操作で行なっていた上記のような操作も、ターミナルからのコマンドで実行できることが実感していただけたと思います。
もちろんターミナルには他にもさまざまなコマンドが用意されています。どのようなコマンドがあるかについては、下記ページでまとめていますので、こちらも参考にしていただければと思います。
Macのターミナルでよく使うコマンド集(初心者向け)上記のページで紹介したコマンド以外のものコマンドももちろんありますし、さらにソフトウェアをインストールすることで利用できるコマンドを追加することもできます。そのインストールもコマンドで実行することも可能です。
慣れてくるとマウス操作よりも手軽に&速くファイルやディレクトリなどの操作ができるようになります!
ターミナルでのコマンドを利用する上で知っておくと良いこと
続いては、ターミナルでコマンド実行をする上で “知っておいた方が良い知識” について紹介していきたいと思います。
ディレクトリとパス
このコマンド実行においては、ディレクトリとパスが非常に重要で、これを理解しておくことでターミナルでのコマンドが扱いやすくなります。
ディレクトリとターミナル
ディレクトリとは、要はフォルダのことです。
マウス操作でファイルを開くような場合に、Finder でフォルダを辿って目当てのファイルが存在するフォルダまで移動し、移動してからそのファイルをダブルクリックなどで開くことありますよね?
ターミナルでコマンドを実行するときも、結局はこの Finder での操作の感覚と同じです。
ターミナルアプリ起動時には、ユーザーはホームディレクトリと呼ばれるディレクトリにいる事になります。
そして、他のディレクトリのファイルを操作するような場合は、そのディレクトリに移動し、移動してからコマンドを実行してファイルの操作を行います。
ただし、後に説明する “パス” を利用すれば、ディレクトリを移動しなくても、他のディレクトリからファイルの操作を行うことも可能です。
ここで重要なのは、ターミナルを利用しているということは、必ずユーザー(つまり、あなた)が “どこかのディレクトリにいる” ということです。
ここがちょっと GUI でマウス操作している時とはちょっと感覚が違うところなので、この点をしっかり意識しておいた方がターミナルでのコマンド実行が上達しやすくなると思います。
ディレクトリ構造とパス
Mac のディレクトリは下の図な構造になっています。ちょうど木の上下を逆向きにしたような構造です。
1つ1つの四角がディレクトリを表しています。各ディレクトリにはファイルが存在しますが、この図ではファイルは省略しています。
また、線が繋がっているディレクトリに関しては、上側のディレクトリの中に下側のディレクトリが存在することを表しています。
例えば上の図では、Users
ディレクトリの中には daeu
ディレクトリと hanako
ディレクトリが存在することを表しています。
各ディレクトリの位置は、”パス” によって表されます。
パスとはまさに経路のことで、最上位のディレクトリからどのディレクトリを辿った位置に存在するかを示す情報になります。
例えば Documents
ディレクトリは最上位の /
ディレクトリから下記の経路を辿った位置に存在します。
/
→Users
→daeu
→Documents
これらの経路上の各ディレクトリを /
で区切り文字として繋げたものが Documents
ディレクトリのパスになります。
/Users/daeu/Documents
ファイルのパスも同様の考え方でパスが設定されています。
例えば Documents
ディレクトリの下に memo.txt
というファイルが存在するのであれば、この memo.txt
のパスは下記のようになります。
/Users/daeu/Documents/memo.txt
全てのディレクトリやファイルは異なるパスになりますので、このパスによってコマンドの対象を一意に指定することが可能です。
ここで、特別な意味合いを持つディレクトリとそのパスを紹介しておきます。
- ルートディレクトリ:
/
- 最上位のディレクトリ
- カレントディレクトリ:
.
- 現在いるディレクトリ
- ホームディレクトリ:
~
- 各ユーザー用に用意されたディレクトリ
/Users/[ユーザー名]
- ユーザー名が
daeu
の場合は/Users/daeu
- ユーザー名が
- ターミナルを起動した直後にユーザーがいるのはこの “ホームディレクトリ”
例えばルートディレクトリへの操作は、下記のようにパスに /
(スラッシュ)を指定することができます。
cd /
また、カレントディレクトリへの操作は、下記のようにパスに .
(ドット)を指定することができます。
ls .
さらに、ホームディレクトリへの操作は、下記のようにパスに ~
(チルダ)を指定することができます。
cd ~
ターミナルアプリでは、コマンドでディレクトリを移動する場合、”どのディレクトリ” に移動するかを指定する必要があります。この “どのディレクトリ” はパスにより指定します。
また、コマンドでファイルを操作する場合、”どのファイル” を操作するかを指定する必要があります。この “どのファイル” はパスにより指定します。
こんな感じで、コマンドを実行する場合は “パス” を指定する必要があることが多く、この “パス” についてはしっかり理解しておくことで、ターミナルでのコマンド実行をスムーズに行うことができるようになります。
パスの指定方法
続いて、その “パスの指定方法” について紹介していきたいと思います。
ターミナルでのコマンド実行時の対象のパスの指定方法は、大きく分けて下記の2通りがあります。
- 絶対パス指定
- 相対パス指定
絶対パス指定とは、相対パス指定と区別するための用語であり、結局はディレクトリ構造とパスで説明したパスと同じです。
要は、ルートディレクトリからの経路上のディレクトリを /
を区切り文字として連結したものを指定する指定方法です。
ルートディレクトリからの全ての経路を示すパスになりますので、フルパスと呼ばれることもあります。
例えば、下の図の Documents
ディレクトリにいる状態で Desktop
ディレクトリの memo.txt
を “絶対パス” で指定することを考えてみましょう!
ルートディレクトリから memo.txt
までに経由するディレクトリ名を /
を区切り文字として連結したものが絶対パスになりますので、絶対パス指定では下記を指定することになります。
/Users/daeu/Desktop/memo.txt
絶対パス指定においては、どのディレクトリから指定しても同じパスになるというところがポイントになります。
また、絶対パス指定の場合、パスの先頭の文字は必ず /
になります。
一方で、相対パス指定は、カレントディレクトリからの経路上のディレクトリを /
を区切り文字として連結したものを指定する指定方法になります。
1つ上の階層のディレクトリを経由する場合は、そのディレクトリ名ではなく ..
を用いて表現します。
例えば、上の図の Documents
ディレクトリにいる状態で Desktop
ディレクトリの memo.txt
をパス指定する場合、相対パス指定では下記のようにパスを指定することになります。
../Desktop/memo.txt
memo.txt
は Documents
ディレクトリから見て下記を辿った位置に存在しますので、これらを /
を区切り文字として連結したものが、この場合の相対パスとなります。
..
(1つ上の階層のディレクトリ)Desktop
memo.txt
もし daeu
ディレクトリにいるのであれば、同じファイルであっても異なるパスを指定する事になります。
Desktop/memo.txt
このように、カレントディレクトリ(現在いるディレクトリ)によって、同じファイルやディレクトリであっても異なるパス指定になるところが相対パス指定のポイントになります。
コマンド実行時にパスを指定する場合は、基本的に “絶対パス指定” と “相対パス指定” のどちらを利用しても良いです。
コマンドの対象となるファイルがカレントディレクトリから近い位置にある場合は、相対パスの方が便利かなぁとは思います。逆にルートディレクトリ / を経由する必要があるくらい遠い位置にある場合は絶対パスの方をよく使いますかね。
スポンサーリンク
便利なキー入力
次はターミナル利用時に知っておくと便利な「キー入力」を紹介していきます。
tab
キー
コマンド実行時に一番使用するキーは tab
だと思います。
コマンドの入力途中やパスの入力途中に tab
キーを押すことで、コマンドやパスを自動補完してくれたり、コマンドやパスの候補を表示してくれたりします。
例えば下記のように chm
のみを入力した状態で tab
キーを押してみましょう!
$ chm
おそらく自動補完が動作して chmod
というコマンドが入力されるはずです。
$ chmod
このように、候補が1つしか無い場合(上記の場合は chm
から始まるコマンドの候補が1つしか無い)、tab
を押すことで自動的にコマンド名を補完することができます
次は ch
のみを入力した状態で tab
キーを押してみましょう。
$ ch
今度は ch
から始まるコマンドの候補一覧を表示してくれます。
chat checknr chgrp chmod chroot chdir chflags chktest chown chsh checkgid chfn chktrust chpass
候補が1つしか無い場合は前述の通り、コマンド名を補完してくれますが、複数の候補がある場合はこのようにその候補の一覧が表示されます。
同様にパスの場合も、パスを途中まで入力した状態で tab
キーを押せば、コマンドと同様に自動補完もしくは候補の一覧表示をしてくれます。
コマンド名やパスを覚えておくのは大変なので、この tab
キーでヒントを得ながらコマンド入力を行うのが良いと思います。
上下キー
ターミナルでは上キーを押すことで、以前に入力したコマンドを表示することができます。
上キーを一度押すと、直前に入力したコマンドを表示することが可能です。
この表示されたコマンドは、エンターキーを押して実行することができますし、コマンドの一部を変更してエンターキーを押して実行することも可能です。
また、上キーを押すたびにどんどん古いコマンドの入力履歴を表示することができます。
さらに、下キーを押せば、今度はどんどん新しいコマンドの入力歴を表示することができます。
毎回コマンド全体を入力するのは大変ですが、これらの上下キーを活用することで、以前に入力したコマンドをそのまま、もしくは一部分だけ変更して実行するようなこともできます
control
+ c
また、実行したコマンドは control
+ c
で終了させることができます。
コマンドによってはすごく時間がかかる場合があります。そのようなときに、途中でそのコマンドを終了させたい場合は control
+ c
を押すことで強制的に終了させることが可能です。
コマンドを調べる man
コマンド
前述の通り、tab
キー入力により、コマンドの候補が表示できるので、どのようなコマンドが存在するのかはある程度は調べることができると思います。
ただ、コマンド名だけだと、そのコマンドがどのようなものであるかがわからないですよね…。
コマンド名からコマンドの詳細を知りたい場合は、man
コマンドが便利です。
man
コマンドは下記のように man
の後ろに詳細を知りたいコマンドの名前を指定して実行します。
$ man 詳細を知りたいコマンドの名前
すると、このコマンド名で指定したコマンドの詳細説明がターミナル上に表示されます。
各コマンドの書式やオプションの詳細が記載されているので、ターミナルからコマンドの詳細を調べるときには非常に便利です。
man
コマンドを実行時には、例えば下記のようなキー操作によりスクロールや検索などを行うことが可能です。終了したい場合は q
キーを入力します。
スクロール |
|
検索文字列指定 |
|
次へ検索 | 検索文字列指定後に n キーを押す |
前へ検索 | 検索文字列指定後に shift+n キーを押す |
先頭から検索 | 検索文字列指定後に p キーを押す |
終了 | q キーを押す |
コマンドをもっと知りたい方へのおすすめ参考書(PR)
最後にコマンドについてもっと詳しく知りたい方へのオススメ参考書を紹介しておきます。
特にコマンドをほとんど使ったことない方には下記の「macOS×コマンド入門」がおすすめです。
ターミナルやコマンドだけでなく、コマンドを扱うのに必要な知識である Finder やファイルシステムについても解説してくれており、Mac でのコマンド初学者向けの内容になっています。OS についての知識もつくので、より深くコマンドについて理解することができます。
とにかくコマンドを知りたいという方、さらに Linux も利用するという方には下記の「Linuxコマンドポケットリファレンス」がオススメです。
本の最初に「コマンドの1行要約つき」の目次がありますので、一覧でどのようなコマンドがあるかを把握することができます。
基本的なコマンドに関しては Linux と MacOS 共通で使用できるものが多いです。コマンドの辞書的な参考書としてパソコンに置いておくすぐにコマンドが調べられて便利です。
Linux も利用する&重要なコマンドからまず学習したいという方には下記の「LinuxコマンドABCリファレンス」がオススメです。こちらの本はコマンド別に重要度が3段階で設定されており、重要度の高いコマンドから勉強していくようなことができます。
これらの参考書は「コマンドに関する知識を身につける・どんなコマンドがあるかを知る」上では良い参考書だと思います。ただ、どの参考書を利用するにしても、最終的に一番詳しい情報は man
コマンドで表示される解説になると思います。
なので、参考書で幅広い知識をつけながら、コマンドの使い方やオプションの指定方法などに困った時には man
コマンドで補うのが良いと思います。
スポンサーリンク
まとめ
今回は Mac ユーザー向けにターミナルの使い方について解説しました!
また、特にターミナルでコマンド実行を行う上で重要なディレクトリやパスについての解説を行いました。
コマンドは最初は使うのに抵抗感があるかもしれませんが、慣れてしまえばマウス操作よりもコマンド実行の方がパソコン操作がやりやすくなることも多いです。
そして、やはりコマンド実行をたくさん試すのが慣れるための一番の近道だと思います。
ターミナルで扱える基本的なコマンドについては下記ページで紹介していますので、是非こちらを参考にいろんなコマンドを試してみてください!
Macのターミナルでよく使うコマンド集(初心者向け)