いづいづブログ

アジャイルコーチになりたい札幌在住SEです。アジャイル札幌スタッフ&ScrumFestSapporo実行委員。Like:パクチー/激辛/牡蠣/猫/初期仏教

Terminalの基本を覚える #4

Terminalの基本を覚える学習をしたので記録。

黒い画面入門のPart.7〜Part.9まで。

Part.7

よく使うファイル操作のコマンドを実行してみる。

2018/11/20追記:

Linuxのコマンド一覧に移動しました。

Part.8

スクリプトファイル

いつも同じいくつかのコマンドを同じパターンで実行する場合は、コマンドを羅列したファイルを作成しておき、shコマンドの引数としてそのファイル名を渡してやる。

例えば、このような中身をファイルを作成し、「foofile」という名前をつけておき、

git clone git://github.com/komagata/lokka.git lokka
zip -r lokka.zip lokka
rm -r lokka

このファイルをshの引数に指定する。

sh foofile

そうするとファイルの中に書いてあるコマンドを順番に実行してくれる。このようなファイルを「スクリプト」をよぶ。

shebang(謎のおまじないシバン)

シバンとはスクリプトを単体で実行するための機能。。読み方は「シバン」とか「シェバン」とか。

ファイルの頭に#!をつける。これがシバン。

例えば、以下のようなhelloと表示するコマンドを記述したファイルを「echo-hello」という名前で保存する。

#!/bin/sh
echo hello

ファイルの権限をchmod u+x echo-helloで変更し、ターミナルでファイルを指定する。

/aaa/echo-hello

f:id:izumii-19:20181018002429p:plain

シバンは、「ファイルの先頭が#!の場合、その後ろに書いてあるコマンドに、2行目以降を全部わたす」という機能。 この場合、shecho helloを渡すということになる。

しょっちゅう使う手順や、覚え辛いオプションの組み合わせなどはこのようにスクリプトにすると便利。

Part.9

「黒い画面」の正体

黒い画面はまぎれもなく「ターミナル.app」のこと。でも実はターミナル.appは2つのソフトで成り立っている。

それが「エミュレーター」と「シェル」。

エミュレーター

エミュレーターとは「コンピューターや機械装置の動作・機能を模倣したソフトウェア」のこと。 「emulate = まねる、模倣してしのごうとする」という意味がある。

ターミナル.appは入出力用端末を模倣したエミュレーター。入出力用端末を模倣しているということは、できることはだた文字を入力して、結果を表示するだけというすごく単純なこと。

シェル

シェルとは「殻」の意味。

UNIXLINUXにはその中核を担っているカーネルというものがあり、そのカーネルとユーザーからの入力を仲介する役割をするのがシェル。貝の殻のようにカーネルを包み込むみたいな意味でシェルと呼ばれる。

$マークを表示してユーザーからの入力を待ち、入力されたコマンドのプログラムを実行する。 実行し終わったら再び$マークを表示して入力を待つ。

これまでの「黒い画面入門」で行ってきた「コマンドを入力すると実行される」というのは実はこのシェルがやっている。