Macのターミナルの使い方と、よく使うUNIXコマンド(初心者向け)
Macユーザで、初めてターミナルを使う人向けに、よく使うコマンドをまとめています。
ターミナルについて
2019年11月現在、MacOS Mojave(バージョン 10.14)の場合をもとにしています。
ターミナルの起動
下記の場所から起動できます。
Macintosh HD→アプリケーション→ユーティリティ→ターミナル.app
ターミナル起動後に、画面左上の「ターミナル」の「環境設定」から、いろいろカスタマイズができます。
ターミナルの環境設定画面です。
書体や文字サイズ、見た目も変更できます。下記は、背景透過にしてみたものです。
※PC名、アカウント名の箇所は黒塗にしています。
エディタからのターミナル起動
Atom、Visual Studio Codeなどのエディタの中でも、ターミナルは起動できます。実際はこれらのエディタで、コードを書きながらコマンドを実行すると開発が楽にできると思います。macOS、Windows、Linuxで使え、両方とも日本語化できます。
下記の画像は、Visual Studio Codeからターミナルを使っているところです。(ウィンドウで、上のテキストファイルの中身を、下のターミナルで確認している状態です)
※PC名、アカウント名の箇所は黒塗にしています。
ターミナルで使えるUNIXコマンド
コマンドにはオプション(コマンドの後ろに半角スペースを空けて、-r、-V、-nameなどをつける)がありますが、ここではオプションの詳細には触れておりません(初心者向けのため)。
※ 後述のコマンドで書いている「$」は、ターミナルを起動すれば表示されます。コマンドであることを明示するために「$」を書いています。そのため、実行時には「$」は書かずに、その後の英文字列を書いてください。
※Windowsのコマンドプロンプトは、ここに記載のものとは、違うコマンドで動くものがありますので、ご注意くだい。
※FILE_NAME、DIRECTORY_NAMEなど、大文字で記載の箇所はご自分の環境に合わせて変更してください。
ディレクトリ移動
ディレクトリを移動します。(chage directoryの略)
(1)1階層下に移動する。
$ cd DIRECTORY_NAME
(2)2階層、下に移動する(3階層以下も同じ)。
$ cd DIRECTORY_NAME/DIRECTORY_NAME/
(3)1階層、上に移動する。
$ cd ../
(4)2階層上に移動する(3階層以上も同じ)。
$ cd ../../
(5)1階層上に移動して、そこの別のディレクトリに移動する。
$ cd ../DIRECTORY_NAME/
(6)ホームディレクトリに移動する。(cdのみ使う)
$ cd
(7)ルートディレクトリへ移動する。
$ cd /
(8)デスクトップへ移動する。
$ cd desktop
ファイル作成
本来は、touchコマンドは、ファイルのタイムスタンプ(変更日時)を更新するコマンドです。しかし、そのディレクトリ内に「存在しないファイル名」を指定することで、ファイルを新規作成できます。(これがUNIXコマンドで一番簡単な新規ファイル作成方法です)
$ touch FILE_NAME.txt
存在するファイルの場合は、タイムスタンプ(変更日)が更新されます(コマンドは、上記と同じ)。
$ touch FILE_NAME.txt
ファイルの中身を確認
ファイルの中身を確認する。(catenateの略)
本来は、複数のファイルを結合して中身を表示するコマンドですが、1つのファイルの場合は、1つのファイルの中身を表示します。中身が何もなければ何も表示されません。プログラムなどのテキストファイルの中身の確認で使います。そのため、画像や動画など(バイナリファイル)のファイル容量が多いものの中身を確認すると、処理が止まらなかったり、大量の文字化けなどが表示されますので、ご注意ください。
$ cat FILE_NAME.txt
ディレクトリ作成
ディレクトリを作成する。(make directoyの略)
$ mkdir DIRECTORY_NAME
カレントディレクトリの確認
カレントディレクトリ(ワーキングディレクトリとも言う)を確認する。(print working directoryの略)
カレントディレクトリは、今いる場所のことです。
$ pwd
ファイル一覧を表示
そのディレクトリにある、ディレクトリやファイルの一覧を表示する。(listの略)
$ ls
ファイルとディレクトリの移動
ファイル、ディレクトリを移動する。(moveの略)
(1)ファイルを、指定のディレクトリに移動する。
mvのあとに、移動したいファイル名で、半角スペース空けて、2番目に書くのが移動先のディレクトリ名です。
$ mv FILE_NAME.txt DIRECTORY_NAME
(2)ディレクトリを、指定のディレクトリに移動する。
最初のディレクトリ名が移動したいディレクトリ名で、2番目のディレクトリ名が移動先です。
$ mv DIRECTORY_NAME_01 DIRECTORY_NAME_02
ファイルとディレクトリのリネーム
ファイル名やディレクトリ名を変更する。(moveの略)
前述の移動と同じmvでリネームも行います。下記のコマンドですが、ディレクトリ名も同じ方法です。最初のファイル名が変更したいもので、2番目のファイル名が変更後のものです。
$ mv FILE_NAME_01.txt FILE_NAME_02.txt
ファイルのコピー
ファイルをコピーする。(copyの略)
cpのあとに、コピーしたいファイル名を、半角スペース空けて、2番目にコピー後のファイル名を書きます。
$ cp FILE_NAME_01.txt FILE_NAME_02.txt
ディレクトリのコピー
ディレクトリをコピーする。
cpのあとに、半角開けて、-rを書き、半角空けて、コピーしたいディレクトリ名を、2番目にコピー後のディレクトリ名を書きます。
$ cp -r DIRECTORY_NAME_01 DIRECTORY_NAME_02
ファイルを削除
ファイルを削除する。(removeの略)
$ rm FILE_NAME.txt
ディレクトリを削除
ディレクトリを削除する。
$ rm -r DIRECTORY_NAME
その他、ターミナルで使えるTips
強制終了のショートカット
「control + c」で、実行中のプロセスを強制終了します。なんらかのループなどに入ってしまって処理が止まらなくなった時や、すごく重いファイルを開いてしまい、処理がいつまでも終わらなさそうな場合などは「control + c」のキーを打つことで、処理から抜け出せます。
コマンドのコピペ
コマンドはすべてを打ち込まなくても、ターミナルへ「コペー&ペースト」で、コマンドを貼り付けることができます。自分が実行したいコードを、検索などで探したWebページなどから、簡単に持って来ることができます。
過去に使ったコマンド
過去に実行したコマンドは、キーボードの「↑(上矢印)」を押すと、再表示され、もう一度、実行することができます。何回でも前のコマンドまで戻れますが、すごく過去のものを確認した場合は、下記のコマンドを使います。
(1)過去につかったコマンドのすべてを確認
$ history
(2)過去に使ったコマンドを100回まで確認
$ history 100
さらに、コマンドを学びたい人へ
参考になるWebページをまとめてみました。
・Webでレッスン(eラーニング)を受けられるサイト
基本的なところは無料で受けられます。
Command Line 基礎編(Progate)
https://prog-8.com/languages/commandline
UNIXコマンド入門 [一般ユーザー編](ドットインストール)
https://dotinstall.com/lessons/basic_unix_v2
シェルスクリプト入門(ドットインストール)
https://dotinstall.com/lessons/basic_shellscript_v2
・ざっくりと、コマンドの一覧を確認したい人向け参考URL
これから学ぶmacOSターミナル
https://gist.github.com/gushernobindsme/58ddb4d7d190686ba6b5a28fdda077f4
UNIXコマンド
http://www.ritsumei.ac.jp/~tomori/unix.html
FreeBSD(PC-UNIX) コマンド集
http://www.tomosan.org/dev/bsd/commands.html
・がっつりと、コマンドの一覧を確認したい人向け参考URL
UNIX主要コマンド一覧
http://aitech.ac.jp/~milabo/unixmanual/man2.html
各社のUNIXでサポートされているコマンドのうち、ハードウェア依存性のあるものを除いたおおかたのコマンドをとりあげている。
ジャンル別UNIX/Linuxコマンド一覧
http://x68000.q-e-d.net/~68user/unix/genre.html
FreeBSD, Redhat Enterprise Linux, CentOS, Ubuntu, Amazon Linux 等で使用できるコマンドを集めたもの。
【Linuxコマンド集】Linuxコマンド詳細含めて総まとめ
https://eng-entrance.com/category/linux/linux-command
一つのコマンドごとに、かなりのボリュームがまとめられている
最後まで読んで頂き、ありがとうございます。