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)/*
- うまくいかなかったので調べながら。 macOS High Sierra で Ansible 入れようとしたら失敗した。 - Qiita
$(...)
- 実行結果を出力し展開される。バッククォートとほぼ同じ
- ネストするときに便利
$ 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