null mayu

web勉強中の記録・雑記とか

mac terminal操作練習

terminalの基礎的な操作は既にやってあるのでささっと。

 

主なコマンド

ls:一覧表示。

pwd:カレントワーキングディレクトリのパス表示。

echo something:somethingを引数として渡して表示。

$PATH:変数。ここに設定したディレクトリはファイル名だけで実行できる。

env:環境変数一覧表示。

cd /ディレクトリ名:ワーキングディレクトリの変更。

ls -a:一覧表示に.からはじまる名前のものを含めるオプション。

   .:今いるディレクトリ。

     ..:一つ上のディレクトリ(../..と重ねていくことで更に上のディレクトリも指定できる)。

※オプションにはショートオプションとロングオプションがある。

8.1.2 UNIX互換コマンドの記述規則 : JP1/Advanced Shell

 

curl:引数に与えたurlを表示。

curl 引数(url) -o ファイル名:内容を指定したファイル名で保存。

open:渡した引数を開く。普通のファイルは関連付けられたソフトで。URLは標準ブラウザで。open .で今いるディレクトリを開く。

saykana:mac音声合成プログラムsaykanaを入れていると引数として渡したひらがな・カタカナを日本語音声で読み上げてくれるコマンド。
"-s 数字"のオプションで速度調節(100がデフォルト)。

"-o ファイル名.aiff"オプションでaiff(音声ファイル)として保存可能。

"-h"でヘルプ表示。

 

Homebrewを使ってみる

HomebrewはPackage manager。Package Managerそのソフトにどのソフトのバージョン何以上が必要か今インストールされているソフトは何かといった情報を持っているため、必要に応じてソフトを勝手にダウンロードしてきてインストールしてくれる。

以下、導入手順。

手順1:Xcodeをインストールする(既に持っているので省略)。

手順2:$ sudo chown -R `whoami` /usr/local で/usr/localディレクトリの所有者を自分のユーザーに変更。

sudoは引数に渡したコマンドを管理者権限で実行するコマンド。suSuper Userの略で管理者の事。Super Userで実行するからsudosudoは起動に必要なファイルを消すとか致命的なコマンドでも実行できてしまうので注意
chownCHange OwNerの略でファイルやディレクトリの所有者を変更するコマンド。所有者のユーザー名と変更したいファイル・ディレクトリ名を指定。-Rは指定したディレクトリより下全部を変更するというオプション。
whoamiは自分のユーザー名を表示するコマンド。
`(バッククォート)で文字を囲うとその文字をコマンドとして実行して、出力結果に置き換える)

手順3:$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" でHomebrewをインストール。

 

Homebrewをインストールすると/usr/local/binbrewというコマンドが増える。

brewsearch, install, uninstallといったサブコマンドと言われる引数を最初に指定する。

例:"tree"を含むソフトを検索・表示。

gyazo.com

 

"brew install ソフト名"でソフトのインストール。

"brew uninstall ソフト名"でソフトのアンインストール。

 

ファイル操作の基本

$ touch:空ファイルの作成。

$ mkdir:ディレクトリの作成。

$ mkdir -p(例:foo/bar/buz):深い階層のディレクトリを一気に作成。

$ cp :コピーコマンド。

(例:foo /tmp):第一引数のファイルfooを第二引数の場所/tmpにコピー。

(例:foo bar):fooをファイル名を指定(bar)してコピー。

-r:ディレクトリを丸ごとコピーするオプション。

$ mv:ファイルを移動するコマンド。第一引数を第二引数に移動。cpと違って元ファイルは無くなる。cpと違いオプションをつけなくてもディレクトリの移動が可能。

$ rm:ファイルの削除

$ rm -r:-rオプションをつけるとディレクトリごと削除できるが危険。sudoと組み合わせて実行してはいけない。

$ cat:ファイルの中身を表示するコマンド。本来は引数に渡した二つのファイルを繋げて表示するコマンドだが、一つしかファイルを渡さなければ単に中身を表示するため、その用途の方で主に使われている。

作業の自動化

ファイルに実行するコマンドを書いておくと、$ shコマンドにファイル名を渡すと順番に実行してくれる。

・自分の書いたスクリプトをコマンドっぽく実行する。

shebang(シバン):スクリプトを単体で実行する機能。

例:以下をecho-helloというファイル名で保存。

gyazo.com

実行。

gyazo.com

chmodはファイルの権限を変更するコマンド。echo-helloというファイルにユーザー実行権限(u+x)を追加している。

shebang(#!)は、

「“黒い画面”で実行しようとしたファイルの1行目の最初の二文字が#!だったら、その後に書いてあるコマンドに2行目以降の全てを渡す」

という機能。

PATHを設定する

独自のスクリプトを置く場所について。

全ユーザーで共有するものは/user/local/binに、自分だけが使うものはホームディレクトリにbinというディレクトリを作成して置く。

例:

$ mkdir bin
$ mv file名 bin/

デフォルトでは/Users/user名/binはPATHに含まれていないため面倒。PATHを設定する。

gyazo.com

exportは環境変数を設定するコマンド。envコマンドの出力結果のように環境変数名と中身を=(イコール)で区切って渡すとその値に設定される。

~/binは$HOME/binと同じ意味。“黒い画面”では$HOMEを~(チルダ)一文字で表すことができる。

環境変数PATHは:(コロン)で区切ってディレクトリ名をつなげたものだったので、上記は”今までPATHに設定されてたものに~/binを追加する”という意味になる。

これでPATHに追加出来たので、ファイル名を打ち込むだけでスクリプトがコマンドのように使える。