macOSは優れたGUI環境を備えているので、オフィス系アプリケーションソフトやグラフィック系アプリケーションソフト等を中心に使っている方は、通常ターミナルでコマンドを使うことは滅多にないかもしれません。しかし、プログラミングをしたり、サーバー設定やLinux特有の設定をしたりする場合など、やはりターミナルでコマンドを使う必要性が出てきます。
そもそもmacOSは、スティーブ・ジョブズが創り上げたNeXTコンピューターのOPENSTEPの技術をベースに開発されてきたという経緯がありますが、OPENSTEPはLinuxと同じ祖先であるUNIX系のOSです。ご存知の通り、UNIXは本来CUI(Character User Interface)で操作するコンピューターですから、Macにもユーザー・インターフェースの一つとしてCUIが備えられているのも頷けます。ちなみに現在では、macOSはPOSIXに準拠したLinuxの一つという位置付けになっています。
さて、前置きはこのくらいにして本論に入りたいと思いますが、今回は初心者レベルを卒業したと自認するMacユーザーなら是非覚えておきたいターミナルの使い方と設定、及びよく使うLinuxコマンドをまとめてみました。
目次
- ターミナルの基本的な使い方と設定
- 起動する方法
- 環境設定について
- よく使うLinuxコマンド一覧
- まとめ
1. ターミナルの基本的な使い方と設定
起動する方法
まずは起動の方法ですが「ターミナル.app」は「アプリケーション > ユーティリティー」の中にあります。まずは起動してみましょう。
このようなウィンドウが表示されます。上の画面はダークモードに設定されているので、このように見えます。ここでは、2行目に注目してみてください。
yourmac:~ username$
「yourmac」の部分は、コントロールパネルの「共有」で設定されているコンピューター名(の英字表記)です。
「~(チルダ)」は、現在のディレクトリがユーザーのホームディレクトリであることを示しています。
「username」の部分は、Macをセットアップした時のユーザー名(の英字表記)が表示されているはずです。
最後の「$(ドルマーク)」の後にカーソルが表示されていますが、コマンドはここから入力していきます。そして「return」キー押下で入力したコマンドが実行されます。
環境設定
ここでは環境設定についても簡単に言及しておきたいと思います。これは完全に個人的な好みの問題ではありますが、背景色や文字色を好きな色に変更してからでないとなんとなく落ち着きません。そんな方は、下記の方法で設定を好みの設定に変更してみましょう。
ターミナルを起動したら、メニューバーの「ターミナル > 環境設定」を選択することで下の画面を表示させることができます。
この画面のように「プロファイル」の項目では主に表示に関わる設定を変更することができますが、ここで背景や文字色、起動時のウィンドウサイズ等を設定することができます。いくつかのテーマがプリセットされていますので、その中から好みのものを選ぶか、画面のように特定のプロファイルを複製してから好みの設定にカスタマイズすることも可能です。好みで設定してみてください。
2. よく使うLinuxコマンド一覧
ここからはよく使うコマンド集です。必要に応じて使ってみてください。コマンドサンプルの「yourmac:~ username$」の部分は、あくまでもこの記事の一例ですので注意してください。
2-1. コマンド補完機能の活用
Tabキー
コマンドを打つときに欠かせないのが、Tabキーの補完機能です。例えば、現在のディレクトリの特定ファイル名を入力したい場合、途中まで入力してTabキーを押下すると残りの文字列を補完してくれるという便利な機能です。
↑↓キー
すでに入力したコマンドを再び繰り返したい時、↑キーあるいは↓キーを押下するとコマンド入力の履歴が表示されます。これも便利なので、是非覚えておきたいところです。
2-2.ファイル操作系コマンド
pwd
現在のディレクトリをフルパスで表示する。
実行例:
yourmac:~ username$ pwd
/Users/username
ls
現在のディレクトリのファイルリストを表示する。
主なオプション:
-a | ファイル名の先頭にピリオドがあるファイルも表示 |
-l | 長いフォーマットで表示 |
-F | 実行可能なファイル名の後に「*」を表示 |
実行例:
yourmac:~ username$ ls -alF
total 176
drwxr-xr-x+ 45 username staff 1440 2 25 15:12 ./
drwxr-xr-x 6 root admin 192 1 16 2019 ../
-r-------- 1 username staff 7 1 16 2019 .CFUserTextEncoding
-rw-r--r--@ 1 username staff 22532 2 25 14:06 .DS_Store
drwx------ 2 username staff 64 2 25 11:54 .Trash/
-rw------- 1 username staff 12200 2 25 13:45 .bash_history
-rw-r--r-- 1 username staff 1252 12 28 2019 .bash_profile
drwx------ 374 username staff 11968 2 25 14:10 .bash_sessions/
drwx------ 3 username staff 96 2 5 13:43 .ssh/
drwx------@ 11 username staff 352 2 25 14:10 Desktop/
drwx------@ 24 username staff 768 2 25 13:49 Documents/
drwx------+ 6 username staff 192 2 24 18:50 Downloads/
drwx------@ 82 username staff 2624 2 3 17:13 Library/
drwx------+ 8 username staff 256 11 27 2019 Movies/
drwx------+ 5 username staff 160 1 19 2019 Music/
drwx------+ 8 username staff 256 3 10 2020 Pictures/
drwxr-xr-x+ 4 username staff 128 1 16 2019 Public/
cd
現在のディレクトリを変更する。
実行例:
yourmac:~ username$ cd Documents/
yourmac:Documents username$
この実行例では現在のディレクトリを「Documents」フォルダ内に変更しています。なお、一つ上のディレクトリに行きたい場合は「cd ../」、二つ上のディレクトリに行きたい場合は「cd ../../」、ルートディレクトリに行きたい場合は「cd /」と入力します。
mv
ファイルパスを変更する。
実行例:
yourmac:~ username$ mv ./sample.txt ../sample.txt
この実行例では現在のディレクトリにある「sample.txt」を一つ上のディレクトリに移動しています。
cp
ファイルをコピーする。
主なオプション:
-a | サブディレクトリや属性を可能な限り保持しながらコピー |
-r | ディレクトリごと再帰的にコピー |
-f | 同名ファイルが既にある場合、警告なしで上書き |
実行例:
yourmac:~ username$ cp -a ./sample.txt ./sample_copy.txt
この実行例では「sample.txt」を「sample_copy.txt」として複製しています。
rm
ファイルを削除する。
主なオプション:
-r | ディレクトリごと再帰的に削除 |
-f | 同名ファイルが既にある場合、警告なしで削除 |
実行例:
yourmac:Desktop username$ rm -rf sample/
この実行例では、デスクトップ上にある「sample」というフォルダを中のファイルごと全て消去しています。「rm」コマンドはゴミ箱に入れるということではなく、完全消去なのでその点は注意してください。
chmod
ファイルパーミッションを変更する。パーミッションとは「ファイルやフォルダへのアクセス権」のことで、主にMacをWebサーバーとして使用するような時に使用する。
主なオプション:
-R | ディレクトリに含まれる全ファイルを指定 |
実行例:
yourmac:www username$ chmod -R 644 html/
この実行例では、現在のディレクトリ「www」上の「html」というフォルダ、及び中にある全てのファイルのパーミッションを「644」に変更しています。
chown
ファイルオーナーを変更する。
実行例:
yourmac:www username$ chown username sample.html
この実行例では、現在のディレクトリ「www」上の「sample.html」のファイルオーナーを「username」に変更しています。
chgrp
ファイルグループを変更する。
実行例:
yourmac:www username$ chown staff sample.html
この実行例では、現在のディレクトリ「www」上の「sample.html」のファイルグループを「staff」に変更しています。
df
ディスク容量を確認する。特定のディレクトリを指定するとそのディレクトリが格納されているディスク容量のみ確認することができる。
実行例:
yourmac:Desktop username$ df ./
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk1s1 976363488 516187760 450383584 54% 2244545 9223372036852531262 0% /
この実行例では「Desktop」が格納されている「Macintosh HD」の容量が表示されています。
cat
ファイルの中身を全て確認する。
実行例:
yourmac:Desktop username$ cat sample.txt
sample
この実行例では「Desktop」上にある「sample.txt」の中身を表示しています。
more
ファイルの中身を少しずつ確認する。スクロールする場合は、returnキーを押してページサイズ分スクロールするか、スペースキーを押して1行ずつ確認、または「:」の後にスクロールする行数を指定してスクロールすることもできる。
実行例:
yourmac:html username$ more index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
:
この実行例では「html」フォルダ内にある「index.html」の中身を確認しています。
vim (vi)
テキストファイルを作成したり、編集したりする。
実行例:
yourmac:html username$ vi index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
この実行例では「html」フォルダ内にある「index.html」を上書き編集しようとしています。
よく使う編集コマンド:
a | カーソルの後に文字を挿入(escキーで挿入モード解除) |
i | カーソルの前に文字を挿入(escキーで挿入モード解除) |
dl | 文字を一文字ずつ削除 |
dd | 一行ずつ削除 |
:q! | 保存しないで終了 |
ZZ | 上書き保存して終了 |
touch
空のファイルを作成する。
実行例:
yourmac:php username$ touch error.log
この実行例では「php」フォルダ内に空の「error.log」を作成しようとしています。
2-3. インストール系コマンド
brew
macOSまたはLinuxのパッケージマネージャーで、特にMacユーザーの間では人気がある。macOSで提供されていない様々なパッケージを簡単に導入することができる。使うにはインストールが必要。
インストールコマンド:
yourmac:Desktop username$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
なお最新のインストールコマンドや詳細情報は下記を参照してください。
Homebrew
https://brew.sh/index_ja
実行例:
yourmac:Desktop username$ brew install wget
この実行例では、ファイルをダウンロードするための「wget」を導入しようとしています。
2-4. ネットワーク系コマンド
nslookup
IPやドメインについて調査する。正引き・逆引きの両方に対応。
実行例:
yourmac:Desktop username$ nslookup nasa.gov
Server: 2400:4051:a382:3400:21b:8bff:fe59:2f96
Address: 2400:4051:a382:3400:21b:8bff:fe59:2f96#53
Non-authoritative answer:
Name: nasa.gov
Address: 23.22.39.120
Name: nasa.gov
Address: 52.0.14.116
上記の実行例では「nasa.gov」のIPアドレスを正引きしています。
ssh
他のサーバーにssh接続して操作する。
実行例:
yourmac:Desktop username$ ssh pi@raspberrypi.local
この実行例ではラズベリーパイに「pi」ユーザーとしてssh接続しようとしています。
wget
URLを指定してファイルをダウンロードする。macOSでは要インストール。
インストールコマンド:
yourmac:Downloads username$ brew install wget
主なオプション:
-b | バックグラウンドで実行 |
-c | 途中までダウンロードされていたら、続きからダウンロード実行 |
実行例:
yourmac:Downloads username$ wget https://www.handsonplus.com/download/tenki.jp_zenkoku.zip
この実行例では、当サイトから「tenki.jp_zenkoku.zip」というファイルをダウンロードしています。
arp
ローカルネットワーク上の接続マシーンをスキャンして調査する。要インストール。
automakeのインストール:
yourmac:Downloads username$ brew install automake
「arp-scan」のインストール時に「make」コマンドを使うため、「automake」がインストールされていない人はインストールしてください。
arp-scanのインストール:
yourmac:Downloads username$ git clone https://github.com/royhills/arp-scan.git
cd arp-scan
autoreconf --install
./configure
make
sudo make install
任意のディレクトリで実行してください。「git clone」コマンドでダウンロードしてから、2行目以降のコマンドを順番に実行してください。
実行例:
yourmac:Desktop username$ sudo arp-scan -I en1 -l
Password:
Interface: en1, type: EN10MB, MAC: **:**:**:**:**:**, IPv4: 192.168.11.2
Starting arp-scan 1.9.6 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.11.1 **:**:**:**:**:** NEC Platforms, Ltd.
192.168.11.3 **:**:**:**:**:** Apple, Inc.
192.168.11.4 **:**:**:**:**:** (Unknown)
192.168.11.5 **:**:**:**:**:** (Unknown)
「arp-scan -I en1 -l」若しくは「arp-scan -I en0 -l」でローカルネットワーク上にある機器一覧を取得できます。なお上記の実行例ではMACアドレスは伏せてあります。
2-5. 圧縮解凍系コマンド
tar
「tar」コマンドは、複数のファイルを1つにまとめた圧縮アーカイブファイルを作成/展開する機能を持つ。
圧縮/解凍オプション:
-zcvf | *.tar.gzに圧縮 |
-zxvf | *.tar.gzを解凍 |
実行例(圧縮オプション):
yourmac:Desktop username$ tar -zcvf data.tar.gz ./data
この実行例では「data」フォルダを「data.tar.gz」に圧縮しています。
実行例(解凍オプション):
yourmac:Downloads username$ tar -zxvf data.tar.gz
この実行例では「data.tar.gz」を解凍しています。
unzip
zipファイルを解凍する。
実行例:
yourmac:Downloads username$ unzip data.zip
この実行例では「data.zip」を解凍しています。
2-6. その他のコマンド
sudo
特権ユーザー(su)の実行権限でプログラムを実行する。他のコマンドと組み合わせて使う。
実行例:
yourmac:httpd username$ sudo vi httpd.conf
この実行例では現在のディレクトリにある「httpd.conf」を特権ユーザー(su)の実行権限で編集しようとしています。
man
コマンドのマニュアルを参照する。
実行例:
yourmac:Desktop username$ man vi
この実行例では、viコマンド(vim)のマニュアルを参照しようとしています。
history
コマンドの入力履歴を参照したり管理したりするためのコマンド。
オプション:
-w | コマンド履歴の出力 |
-c | コマンド履歴の消去 |
実行例:
yourmac:Desktop username$ history -w history.txt
この実行例では、コマンド履歴を「history.txt」に出力しようとしています。
3. まとめ
今回はMacのターミナルの使い方と環境設定、個人的によく使うLinuxコマンドをまとめてみました。紹介したLinuxコマンドはあくまで備忘録を兼ねた個人的によく使うものに過ぎません。ですので、偏りがありますし使用できるコマンドのごく一部に過ぎないのですが、ちょっとしたコマンド・リファレンスとして使用できるよう今後も加筆修正していきたいと思います。