名称未設定のデザイン

「ターミナルなんとなくわかる」から、完全理解するための知識をつける

プログラミングといえば「黒い画面でカタカタ打ってる」イメージ。今まで黒い画面=ターミナルの知識は
・ cdでディレクトリ移動などのCUI操作
・gitの操作をするところ
なんていうざっくりとした理解で進めていました。

フィヨルドのカリキュラムで最初にPCのCPUやメモリについて学んだあとにターミナルの結構深いところまで学ぶようになっていたので、noteにまとめていきたいと思います。

binや$PATHやsudoが出てくるとよくわかんなくて逃げたくなっちゃう自分が嫌だったので克服したいと思っていました。

binディレクトリにコマンドがセットされてる!

コンピューターにはbinというフォルダがあって、そこに「ls」「cd」などおなじみのコマンドから知らないものまでセットされている

$/bin/ls

と打ち込むことで「binファイルの中にあるlsを開く」プログラムが実行されると。いままではコマンドラインで魔法の司令を送ってるのかと思っていたからbinの中にあるファイルを開いてそれが実行されてるのか!とわかったときは少し黒い画面の怪しげな影が取れたような気がしました。
ちなみにbinはbinaryのbin。

binディレクトリのbinって何?
binはbinary(バイナリー)の略です。binaryには”対になった物”という意味があります。コンピューターのCPUが実際に実行するプログラムの中身は0と1だけになります。そこから、実行できるプログラムのことをbinaryファイルと言います。lsはbinaryファイルです。昔、二手に別れたペンギンの夫婦を操ってゴールを目指すバイナリーランドというファミコンゲームがありましたが、正にそのバイナリーです。

引用>http://fjord.jp/articles/548.html

$PATHのおかげで毎回パス指定を$/binからせずに済んでいた

でも今まで$/bin/cdみたいに長く打ってなかったよなーなんでだ?と思ったら、どうやらPATHという環境変数にディレクトリ名を設定しておくと、その中にあるプログラムはディレクトリ名を省略してファイル名を打ち込めば開けるようになるみたいです。
$PATHの役割ありきでエンジニアとしての道を進むところでした。ありがとう、$PATHよ。

実際$PATHを覗いてみたいときは

$ echo $PATH

こんな感じで見れる。echo pathだとpathが出力されるけど、$PATHとすることで環境変数として認識される。: (コロン)がついてるのが環境変数にセットされているディレクトリ。

“黒い画面”は自由に文字を打ち込んで良いように見えますが、結局はプログラムのファイル名を打ち込んでいるだけです。$PATHを見て、そこに書いてあるディレクトリにもその打ち込んだ文字と同じファイル名のプログラムがなければエラー。ただそれだけです。(ドアラというファイルはどのディレクトリにも無いようですね・・・)

引用>http://fjord.jp/articles/563.html

ターミナルで打つ$cd 〇〇の〇〇は引数だった

$cd hoge
$mv foo
$ls

のように日頃から入力しているけど、cdを実行するプログラムにhogeを引数として渡してる。確かに言われてみればそうだよねって感じだけど今まで当たり前のように直感で操作してた私からすると、「そっか!普段何の気なしに触っているコマンドもプログラムされてるのか」とハッとする。
引数は複数渡すこともできるものが多い。オプションをつけたりすることが多い。

オプションの疑問。。。  -f と --fileって違うの?

結論から言うと一緒。-fみたいなハイフンひとつと一文字のオプションをショートネームオプション、--fileのようにハイフン2つつ単語まるまるで表すオプションをロングネームオプションという。
-fはなんだったか忘れちゃう、、みたいな人も多いみたい。自分だったらよく使うオプションはショートネームを覚えたいけどロングネームオプションが有るとうろ覚えでも使えそうでイイ👏

新しいコマンドに出会ったらとりあえず--help(もしくは-h)しよう

--helpオプションをつけるとかんたんな使い方を知ることが出来る!
詳しい使い方を知るには

$man ls

のようにmanコマンドでUsage(使用法)を調べられるけど全部英語だからググったほうが早そう笑


一日目は色々準備に時間がかかってしまったけど、こんな感じで超基礎となるターミナルのあれこれを学びました!

あしたは続編をやっていきます!

この記事が気に入ったらサポートをしてみませんか?