俳句野郎

俳句、俳句、プログラミング、俳句。

インターン二日目(ターミナルの基本との格闘編)。

ターミナルの基礎とHTMLの序章をやりました。ターミナルは〇〇やれ!って命令だとずっと思っていましたが、ただusr/local/binの文字を入力しているだけ、という認識が出来たのがちょっと革命でした。以下、実行したコマンドです。オプションの便利さに感動しました。

curl http://~~

urlからファイルをDL。(後ろに-o ファイル名 をつけると、そのファイル名で保存できる。)

 

・saykana

ニコ生のあの声。オフィスでは怖くて実行出来ませんでした。家でやりました。ニコ生配信してる気分になりました。落ち込んだ時に使いたいです。

 

・Sudo

管理者権限で実行。「Sudo chown -R `whoami`」を実行しました。わかってないのは、どういう時に管理者権限で実行しないといけないのか、ということ。わかったのは、むやみに使うと怖い目に合うということ。

 

・Homebrew

何故かインストールされていたので、ターミナルに打っただけでした。

「Sudo chown -R `whoami` /takushiueda/local」管理者権限を使って、takushiueda/local以下の所有者をtakushiuedaに変更する。

ここからcurlコマンドを使ってHomebrewを導入しようとしたのですが、ちょっとURLが古かったみたいで出来ず→報告。

その後、Homebrewの動作には、Xcodeが必要だということで、もともと入っていたものを5.0にバージョンアップさせました。

 

・man

引数にコマンドを渡すと、マニュアルが見られる。どんなオプションが付いているのか見られる。

 

・バッククォート` `で文字を囲むと、その文字をコマンドとして実行して、出力結果に置き換える。

 

・touch

最終更新日を書き換えるコマンド。引数に関係ない名前を入れると、空ファイルも作れる。

 

・mkdir

ディレクトリを作れる。mkdir -p /usr/document/ディレクトリ名 みたいに、階層も分けられる。声に出した時、最も厨二の感じがして個人的に一番好きです。このコマンドを打つだけの仕事がしたいです。

 

・rm

Removeする。-rをオプションでつけて使うと、ディレクトリごと削除できる。

 

・cp

copyする。cp コピーしたいファイル名/コピーを置きたいディレクトリ、

cp コピーしたいファイル名/コピー後のファイルの名前 とかもできる。

cp -r で、ディレクトリの名前をいれると、ディレクトリごとにコピーできる。

 

・cat

引数に渡した二つのファイルの中身をつなげて表示。

一つだと、単にその中身を表示。

 

・ターミナルの自動化(shとshebang(シバン))

難しかったところその①。

「sh ファイル名」 は、ファイルの中に書かれてあるコマンドを順番に実行していく。

shebang(シバン)は、それを使って、ターミナルを自動化させる。

shebang(シバン)は、中身が#!で始まるファイル名を引数に渡して実行しようとすると、その後に書いてあるコマンドに、2行目以降の全てを渡すことができる。

 

#!/bin/sh

Aコマンド

Bコマンド

Cコマンド

 

みたいなファイル「auto」を作った場合に、

$ chmod u+x auto (→autoというファイル名にユーザー実行権限をプラスしている。)

$ /Users/takushiueda/auto

 

と打つと、AコマンドからCコマンドまで、順に実行してくれる。

ファイルの中の

#!/bin/sh

ここが理解できたときに、ターミナルはただusr/local/binの文字を入力しているだけというのがしっくりきました。

こういう風に作った自動化ファイルをスクリプトと呼ぶそう。

 

・export

難しかったところその②。

自分で作ったスクリプトを置くところは、usr直下にbinディレクトリを作ってそこに置くことが多いそう。けれど、PATHに設定されていないので、その自動化をするためにフルパスを打たないといけないので、自分でPATHを追加するなどの、環境変数を設定するコマンド。

export PATH = $PATH:~/bin

今までPATHに設定されていたものに、~/binを追加する。

~/binの~は、$homeの意味。

これで、自分のスクリプトファイル名を打つだけで、実行できるようになる。

 

理解はしたのですが、言語化できているかは微妙です。

(HTMLの基本との格闘編)に続きます。

 

オプションはコマンドを作った人が好き勝手に設定しているそうなので、共通点もあれば、ないことも多いそう。こまめにmanコマンドで見ていくことを習慣に。