Ymotoのブログ

主にプログラミング学習記録

Terminalの勉強

今日はWebデザイナーの為の「本当は怖くない」“黒い画面”入門MacのTerminalの基本を勉強しました。「黒い画面」と呼ばれるらしい。私のTerminalは初期設定の白画面だったため「黒い画面」というと、ハッカーが使うアレか。という認識だったがどうやら違うらしい。設定でHomebrewに変更しました。
黒い画面は

プログラムのファイル名をその画面に打ち込むことで実行します。

(↑重要)

ササッと勉強したことがあったのでわかっているつもりでしたが、そのコマンドがどうやって実行されているのか理解せずに打ち込んでいました。
例えばlsというコマンド、以前は「とりあえずこれ打っとけば一覧が表示される的なやつ」とおぼえていましたが、実際にはbinファイルにls というプログラムが入っている。lsというプログラムを実行するためにはディレクトリとファイル名を指定しなければいけない。(例 : /bin/ls)しかしPATHという機能によってわざわざ/bin/lsと打ち込むことなくlsのみで実行できるという流れ
これらのことを一から復習できたため理解が深まったような気がします。

以下学んだことざっくりメモ

1

  • $ : promptの意味。ここに入力してくれと"促す"画面。私は”ダラー”と勝手に読んでいた。恥ずかしい。

  • bin : binaryの略。実行可能なプログラムのこと。コンピューターは0と1のみで作業するので実行できるプログラムのことをbinary ファイルと呼ぶらしい

  • pwd : print working directoryの略。その名の通り現在いるディレクトリの場所を示す

2

  • echo : 引数として与えた文字をそのまま画面に表示する
  • 引数 : プログラムに渡す文字
  • PATH : ここにディレクトリ名を設定しておくとディレクトリ名を省略してファイル名だけで実行できる。
    /bin/lsls

  • 黒い画面には「$から始まる文字はそういう名前の設定項目の中身を表示する」機能がある。

  • 環境変数:“黒い画面”で最初から設定されている変数。$ env で一覧を見ることが出来る

3

4

  • オプション:ハイフンの後にローマ字一文字。わかりやすくしたのがハイフン2つのやつ(ロングネームオプション)コマンドに違う動作をして欲しいときにつかう  (例)$ls -a : .(ドット)から始まる名前のものを表示する
  • .ファイル(ドットファイル):隠しファイルのこと

5

  • curl : Client for URLsの略。ネットからファイルをダウンロード出来る。

6

  • パッケージマネージャ : ソフトの依存関係を管理してくれる
  • chown : change owner。ファイルやディレクトリのオーナーを変える。
  • ` : バッククォートで囲むとその文字をコマンドとして実行し、出力結果を置き換える。

    (例)$ ls `pwd`

    $ ls /Users/komagata

7

  • $ mkdir -p foo/bar/buz : 深い階層にディレクトリが作れる
  • $ cp foo /bar fooをbarディレクトリにコピー
  • $ cp foo bar : fooの複製、barを作成
  • $ cp -r foo /bar : ディレクトリをまるごとコピー
  • cat : concatenate連結させるという意味だが、一つしかファイルを渡さなければファイルの中身を表示し、主にその用途でしか使われない。

8

  • Script : 実行して欲しいコマンドを順番に書いたファイル
  • 自作スクリプトはホームディレクトリのbinに作って置く。
  • shebang : #! 実行しようとしたファイルの一行目の最初の二文字が#!ならば、その後に書いてあるコマンドに二行目以降のすべてをわたす。

9

  • 昔はホストコンピュータに複数の端末を接続し、端末から文字を打つとホストコンピュータから結果が帰ってきて端末のディスプレイに表示されていた。この端末をソフトウェアで模倣(emulate)したものがterminal.app。正確にはTerminal Emulator。しかし、ターミナルは「文字を入力することと結果を表示すること」しかできない。
  • shell : $マークを出しているソフト。shellにはいくつか種類がある。/bin/sh。黒い画面の「ファイル名を入力するとそれを実行する」機能はこれが行っている。/binディレクトリには様々なshellがある。
  • よって黒い画面は上記2つ、Terminal Emulatorとshellの2つで成り立っている。
  • bash : Bourne-Again Shellの略。Bourneさんが作ったBourne Shellの強化版。これがshの正式名称
  • iTerm : terminal.appの代替ソフト。昔のterminal.appがダメだったのでよく使われていた。

最後

  • オプションの使い方、新しいのが出てきたらその都度調べる。
  • part8、少し理解が怪しいので(shebangあたり)復習