Macのターミナルをそれとなく理解してコマンドを使う
HTML/CSSを覚えてもターミナル(俗に言う黒い画面)を扱う機会はほとんど無く畑違いのツールという感じだった。
検索で調べたコマンドを入れれば処理は行われるが、動かなかった場合にコマンドが違うのか自分の環境の場合だと何かを変えないといけないのか、そもそも言語が違うのかも分からず。
今でこそ、それとなく使っている(たまに)けれど、理解が深まってきたのはここ最近のこと。全体感が少しでもつかめていたら、無作為なコマンド入力も減っていただろう。なので、これからターミナルを触るようなwebデザイナーが迷わないよう、大まかにまとめておきたい。
ターミナルの立ち位置
ターミナルはmacOS デフォルトアプリケーションの1つ。黒い画面に >_
と顔文字みたいな文字列が表示されているアプリアイコン。Bashという優秀なシェル(コマンドをコンピューター受け渡すシステム)が搭載されていて、コマンド(文字)入力だけでmacOSを効率的に動かせる。
ターミナルがBashを介して入力できるコマンド言語はUNIXコマンド。これが使えるのは、macOSがUNIXというOSの派生版をベースに作られているから。
UNIXはweb創世記に爆発的に広がった古参のOS。簡単なコマンドで柔軟に動かせる(正規表現を含む)のは勿論、マルチタスク・マルチユーザー・安全なネットワーク機能などを実現していた。
汎用性の高いC言語製&オープンソースだったのもあり流行ったが、途中で純正ライセンスを厳しくしたのもあり、多くの派生版・ゼロベースで模したLinuxなどが生まれている。実はAndroidがLinuxベースだったり。
派生や類似のOSを総称してUNIX系と言い、同じようなコマンドが使える。ベースが異なるWindowsだとそうはいかない。文字通りウィンドウをマウスで扱うことが主体なので、コマンドプロンプトというツールではUNIX系程の柔軟なコマンド操作ができず、Linux互換のツールを入れるなどの工夫が必要となる。
つまり、MacはUNIX系だからコマンド操作が得意。それを担うデフォアプリのターミナルにはBashが入っていて良い感じだと。UNIX系のOSは多くwebで見かけるコマンドが似通っているのも頷ける。
ターミナルに関わる用語
ターミナルで行うようなコマンド入力はコマンドラインと呼ばれることが多い。また、コマンドラインだけで操作する仕組みをCLI(コマンドラインインタフェース)やCUI(キャラクターユーザーインターフェース)と略す。
逆に、画面の絵的な表示を見ながらマウス操作&キーボード入力する仕組みはGUI(グラフィカルユーザーインターフェース)。
コマンドラインについて調べていると似た単語でCIというものも出てくるが、これは継続的インテグレーションと言って、コマンドラインなどの入力や処理を自動化する仕組みのことを指している。インストール型のJenkinsや、Webサービス型のTravis CI・CircleCIが有名。略語が似ていて紛らわしい。
ターミナル入力の基本
ターミナルを立ち上げると、最初にMac名・場所(ディレクトリ名)・ユーザー名・ $
マークが表示され、入力箇所が点滅している状態になる。この $
は「ここから入力開始できますよ」を表す記号(Winの場合は >
)。記号を含めた手前の情報をプロンプトと言い、設定や状態により自動で表示される。
なので、webで見かけるコマンドの最初に書いてある $
は入力開始の目印であって、実際に使う場合には入力する必要がないものなので注意しよう。
ターミナルでは、このプロンプトの後に以下のような書式で入力するのが基本。
$ 「コマンド」 「-オプション」 「引数(ファイル名・フォルダ名など)」
オプションはハイフン1つか2つで始まる書き方になっている。オプションや引数はコマンドや操作の目的によって入力しない場合も多い。
ターミナル入力の例
例えば、場所を移動するコマンド cd
と、移動した場所のファイル一覧を表示するコマンド ls
を使ってみよう。以下では僕が作っているGitHubのShitaji.CSSディレクトリ(フォルダ)に移動して一覧を表示している。
cd
で github/shitajicss
を指定。コマンドを入力したら enter
を押す。
$ cd github/shitajicss
↓
$ cd github/shitajicss
shitajicss $
プロンプトに表示されているディレクトリが shitajicss
に変わった。ターミナルの参照場所がそこに移動できたことを示している。再び $
マークの後に入力が可能となったので続けて ls
を入力して enter
を押す。
$ cd github/shitajicss
shitajicss $ ls
↓
$ cd github/shitajicss
shitajicss $ ls
README.md node_modules src
docs package-lock.json
gulpfile.js package.json
shitajicss $
ファイルとフォルダの一覧が表示、次のプロンプトも表示された。これで目的のコマンドは成功。
このように、コマンドを入力して enter
、結果を見て次のコマンドを入力するというのがターミナル操作の流れとなる。あとは、その時に実行したいコマンドを(必要があれば使いたい対象を指定して)使っていこう。