一端の何かになれるか

一生懸命は眩しい

【黒い画面】Terminal使うなら、最低限このくらいまで

ここに「Fjord Bootcampに参加する」という記事を埋め込む予定(だった)。

さて、Fjord Bootcampを少しづつ進めているが、本日はその課題。
Webデザイナーの為の「本当は怖くない」“黒い画面”入門をPart.09まで読み進めます。

(タイトル:ターミナル触るなら、このくらいは知っとくべきだったなと思ったので、真面目に)

■ 意識すること

Terminalはそれなりに使っているけど、これまではやりたいことをできればいい感覚だったので課題感がある。この辺りはできる限り解消していきたいところ。

  • いろいろ用語が怪しい
    (ちゃんとしたエンジニアさんと話すと??あ、それのことですか...がよくある)
  • "おまじない" 扱いして理解していないコマンドがある
    (export, chmod)

■ コマンド群

  • 知らなかった、使ったことない

    • env (ENVironment)
      環境変数を表示、変更する
    • man (MANual)
      各コマンドのマニュアルを確認できる
    • open
      ファイルやフォルダを開く
    • chown (CHange OWNer)
      ファイルやグループの所有者を変更する
    • chsh
      使用するシェルを変更する
  • おまじない化していた

    • chmod (CHnage MODe)
      「ん...?パーミションか...? "chmod 777" じゃボケ」とやっていた。
      過去に何度か調べてるけど、定着していないのでこの記事でもう一度確認。
      よく理解せずに、不必要なことをしない。
      • 最初の1文字目はファイル種別 (-=ファイル, d=ディレクトリ, l=シンボリックリンク)
      • 以降は下記の順 (4=r=読み取り, 2=w=書き込み, 1=x=実行)
        • ファイルの所有者に対する権限
        • ファイルの所有グループに対する権限
        • その他に対する権限
      • アルファベットでも変更可能 (u=ユーザー, g=グループ, o=その他, a=すべて)
    • export
      環境変数を定義するためのコマンド。
      実務上、JOBの頭に2系のPythonをアクティベートするのに仕込んであったため認知はしていた。
      一時的に2系PythonのPATHを通し、JOBの最後でディアクティベートすることで、普段は3系Pythonスクリプトを実行できていたということのよう(違うかも)。
  • よく使う、使ったことがある

    • cd (Chnage Directory)
    • ls (LiSt)
    • touch
    • mkdir (MaKe DIRectory)
    • pwd (Print Working Directory)
    • mv (MoVe)
    • rm (ReMove)
    • echo
    • cat (conCATenate)
    • less
    • curl (Client for URLs)
    • sudo (SuperUser DO)
    • zip

いつもお世話になっているサイト
なんの略か知りたいときは

■ やってみた

echoで環境変数を確認する

$ echo $PATH
/Users/s_f_w/.rbenv/shims:/Users/s_f_w/anaconda/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

$ echo $USER
s_f_w

$ echo $HOME
/Users/s_f_w

envで環境変数を確認する

$ env 
TERM_PROGRAM=Apple_Terminal
TERM=xterm-256color
SHELL=/bin/bash
-- 略 --
USER=s_f_w
-- 略 --
PATH=/Users/s_f_w/.rbenv/shims:/Users/s_f_w/anaconda/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
PWD=/bin
LANG=ja_JP.UTF-8
-- 略 --
HOME=/Users/s_f_w
-- 略 --

saykanaで学習を促してくるコマンドを作成

注意:この後、OS再インストールするつもりなのでやりますが、一度通したパスを削除するの結構めんどくさいみたいです。この方法は簡単そうだった。

$ pwd
/Users/s_f_w

$ mkdir -p test_command/bin

$ cd test_command/bin

$ pwd
/Users/s_f_w/test_command/bin

$ vim wakeup_study
#! /bin/sh
saykana めわさめた?
read -p "目は覚めましたか?(y or n) :"
saykana きのうのふくしゅうわした?
read -p "復習はしましたか?(y or n) :"
saykana きょうのがくしゅうのじゅんびわできた?
read -p "準備はできましたか?(y or n) :"
saykana よろしい。はよやれ

$ less wakeup_study

$ chmod u+x wakeup_study

$ wakeup_study

$ export PATH=$PATH:/Users/s_f_w/test_command/bin

$ echo $PATH
/Users/s_f_w/.rbenv/shims:/Users/s_f_w/anaconda/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/s_f_w/test_command/bin

そして実行。

$ wakeup_study
目は覚めましたか?(y or n) :y
復習はしましたか?(y or n) :y
準備はできましたか?(y or n) :y

==> saykana 「よろしい。はよやれ」  

やかましわ。でも大事なことですね(いい歳こいてバカみたい。)

■ Terminalに纏わる予備知識

  • ホスト名 = コンピュータに付けた名前
  • プロンプト = ターミナルを開くと出てくる"$"マークまでの部分
    カスタマイズできるらしい...!!!
  • 環境変数 = ターミナル上で初めから定義されている変数
  • bin = binary
  • カレントワーキングディレクト = 今いるディレクト
  • 相対パス = 今いるディレクトリから見たパス
  • オプションの種類
    • ショートネームオプション 例)"ls -l"
    • ロングネームオプション 例)"ls -list"
  • パッケージマネージャ = ソフトの依存関係をバージョンを考慮して管理してくれるシステム
    • Homebrew
    • Anaconda
    • pip (Pip Installs Python)
  • SDK (Software Development Kit) = ソフトウェアを作るために必要なものの詰め合わせ
  • shebang = "#!"を指す。shellに対して、以降に記述したディレクトリに、ファイルの内容を処理するように命令する
  • パスを通す = 環境変数ディレクトリを追加して、コマンドとして実行可能にすること
  • 黒い画面
    • Terminal Emulator = ホストコンピュータに対する入出力装置
      • iTerm ... Macのターミナルが貧弱だったため使われていた
    • shell = プロンプトを表示してユーザーからの入力を待ち、入力されたファイル名のプログラムを実行、終了したらまたプロンプトを表示して待つプログラム

■ 感想

  • 「昔は大きな”ホストコンピューター”に多数の”端末”を接続して使っていました。」
    今でもあるところにはあるんだよなぁ...
  • /bin
    UNIXコマンドたち。そんなとこにおったんかワレ...
  • "open ."
    こんな単純なやり方が。README.mdをエディタでガシガシ書き変えたい時に便利
  • "cat"
    本来そんな役割やったんかワレ...
  • komagataさん、中日ファンなのだろうか(ドアラ...