2019/04/14

ターミナルについて学習。新しく知ったことなどメモ。
(教材:Webデザイナーの為の「本当は怖くない」“黒い画面”入門

ファインダー

  • フォルダに移動(直接指定できる): Shift + Command + G

ls コマンド

bin

  • bin: バイナリ(binary)
  • pwd: Print Working Directory
  • cd: Change Directory

echo

  • echo $PATHでPATH一覧。
  • $が先頭につくことで、中身を表示するという合図になっている。
  • $USERでユーザ名、$HOMEでホームディレクトリが表示できる。
  • ターミナルで最初から設定されている変数が、環境変数。PATHもその一部。

オプション

  • ハイフン一つがショートネームオプション、2つがロングネームオプション。
  • -f と --fileとか、-v と --versionとか。
  • -hか --helpでコマンドの使い方が表示される。$ cd --helpのように。

man

  • 'man ls'でマニュアル表示。

curl

  • Client for URLs
  • 引数にURLを指定するとネットから撮ってきて表示する

    -o、--output

  • -oオプションにファイル名を渡すと、内容をそのファイル名で保存する

open

  • open .で今いるディレクトリをFinderで開く
  • URLもファイルも開ける
  • ファイルはその拡張子のデフォルトアプリで開かれる

sudo chown -R $(whoami) $(brew --prefix)/*

$(...)

  • 実行結果を出力し展開される。バッククォートとほぼ同じ
  • ネストするときに便利
$ cd /home/user
$ basename $(pwd)
user

sudo

  • sudo [オプション] [実行するコマンド]
  • スーパーユーザや別のユーザの権限でcommandを実行する
  • 今回はオプションなし、コマンドがchown

chown

  • chown [オプション] ユーザー[:グループ] ファイル
  • 指定したファイルやディレクトリの所有権(所有者)を変更する

-R

$(whoami)

  • whoamai は自分のユーザ名を表示する
  • $()なので出力される
  • chownの[ユーザー]にあたる

$(brew --prefix)/*

  • brewのインストール先を返す
  • chownの[ファイル]にあたる
  • 今回は$(brew --prefix)がusr/localなので、usr/local/*
  • usr/local/*でディレクトリ内のすべてのファイル 以下のディレクトリをすべて個別にchown usr/local内のすべてのファイル所有者を自分に変更する

    まだ謎

  • /* を追加するとchownできるようになったのはなぜか
  • どうしてこの作業が必要だったのか

cat

  • conCATenate (連結する) ファイルの名前を表示する。
  • 引数に2つ渡すと連結するが、ひとつだと単に中身を表示する。その用途で使われることも多い。

shebang

#!/bin/sh
echo hello

ファイル名 echo-hello で保存。

$ chmod u+x echo-hello
$ (ファイルの絶対パス)/echo-hello

でecho-helloの中身が実行される。

  • chmodはChenge MODeの略でファイルの権限を変更する。
  • echo-helloファイルにユーザー実行権限(u+x)を追加している。
  • #!shebang。ターミナルで実行するファイルの最初が#!だったら、その後のコマンドに2行目以降の全てを渡す
  • #!は使用するインタプリタの指定をしている(RubyとかPythonも指定できる)
  • 実行ファイルとして動かすのに必要
  • shをパワーアップしたシェルがbash
  • /bin/shはbin/bashシンボリックリンク
  • ターミナルにわたすってこと?ターミナルに複数行のコマンドを渡すのをまとめてやりたいときとかに使うのかな

PATH

$ export PATH=$PATH:~/bin
  • exportで環境変数を設定する。$PATH:~/binが中身。
  • ~で $HOME(ホームディレクトリ)を表すことができる