独学プログラマー16章読んでみた:Bash,コマンド
この章は自分にとってすごい有益でした。
今までいまいちわからずに使っていたコマンドラインのことについて詳しく書いてありました。
Bashとはコマンドラインインターフェースと呼ばれるもので、キーボードで命令(コマンド)を入力すると様々なことができます。BashはMacならターミナルというものをひらけば使うことができます。
基本的なコマンド
- echoコマンド:printの様に表示させる
- historyコマンド:最近使ったコマンドを表示
- pwdコマンド:カレントディレクトリを表示
- cdコマンド:カレントディレクトリの変更
- lsコマンド:カレントディレクトリ内にあるものを表示
- mkdirコマンド:新しいディレクトリを作成
- rmdirコマンド:ディレクトリを削除
- touchコマンド:新しいファイルを作成
- lessコマンド:テキスト・ファイルの内容を観覧, qでlessを終了
- whoamiコマンド:OSでのユーザ名を表示
基本的なコマンドでもこんなにたくさんあります。
ここにBashのコマンドを入力するとそのコマンドの意味を教えてくれるらしいです。こんな便利なサイトがあったなんて。。
絶対パス・相対パス
上で書いたカレントディレクトリを表示させるpwdコマンドは"print working directory"の略らしい。これをターミナルで命令すると( $ pwd )
/Users/名前/Desktop/python/独学プログラマー
と表示されました。私が今独学プログラマーを勉強する用に作った”独学プログラマー”というディレクトリにいるからです。このパスの始まりが" / "で始まっているのは、このパスが絶対パスであることを表していて、ディレクトリの木構造の一番上の親であるルートディレクトリから始まっているということです。
cdを命令する場合、移動先のパスを引数として与える必要があります。絶対パスで与えてもいいですが、相対パスで与える場合、今いるディレクトリからのパスを与えます。
例えば私がDesktopにいる時、$ cd python/独学プログラマーと書きます。
この様に相対パスの時は、" / "をはじめに書かないため、コンピュータはそのパスが絶対パスなのか相対パスなのか見分けることができます。
私はカレントディレクトリを移動する際は、cd を手で書いて、移動先のファイルを掴んでターミナルの上で離すと、勝手にその絶対パスが表示されるので、そうして移動しています。
隠しファイル
知らなかったんですけど、OSや多くのプログラムはたくさんの隠しファイルなるものを持っているらしい。これは普通のファイルと同じですがデフォルトでは見えない様になっているらしいです。これは、ユーザが間違えてそのファイルを変更・削除してしまい、そのファイルを参照するプログラムが正しく動作しなくなることを防ぐためです。優しいですね。
隠しファイルの名前は" .hidden "の様に、" . "で始まります。なので隠しファイルを作る時は、touchコマンドの引数に" . "から始まる名前を与えてあげれば作れます。けど、隠しファイルなので、それを見るときには" $ ls "だけでは見れず、" $ ls -a "と入力しなれけば見れません。
パイプ
Unix系のOSではパイプ( | )と呼ばれるものがあり、これを使うとあるコマンドの実行結果を別のコマンドへの入力として渡せるらしい。
$ ls | less
とするとlsコマンドの実行結果をlessコマンドに渡しているということになります。感覚的にはいつも引数を後ろに書くから変な感じがします。私だけかな。。
環境変数
環境変数とはOSに値を記録しておくための変数です。
$ export [変数名]=[値]
で定義できます。=の前後にスペースを入れるとダメなので気をつけてください。
これはBashのウィンドウ内だけで使えて、ウィンドウを一回閉じるとなくなる変数です。変数の値を出力させるときには、
$ echo $[変数名]
という様に変数名の前に$マークをつける必要があります。
ユーザー
ここでのユーザーはOSを使う人という定義です。複数のユーザーで一つのOSを使えるらしい。ユーザーにはそれぞれどんな操作を許可するのかといった権限(パーミッション)があります。
OSで自分のユーザーが何か知りたいときwhoamiコマンドを命令すると自分のユーザー名を教えてくれます。
OS内で一番強力なユーザーはディレクトリの一番上のrootユーザーです。rootユーザーはもっとも多くの権限を持っています。rootユーザーは色々なことができるため、セキュリティー上、普段はrootユーザーとしてログインしてはいけないとありました。rootユーザーとしてコマンドを実行しなければいけないときに、sudo(superuser do)を実行したいコマンドの前に書くことで実行することができます。
前に調べ物をしてたときQiitaでsudoって出てきて「すどう」ってなんだと思ってたけど、この権限のことだったんですね。調べてもいまいちわからなかったけど、今やっと解決しました。sudoを使うとOSに損害を与える様なコマンドも実行できてしまうので、コマンドがOSに損害を与えない確信がある時だけにするべきらしい。
Qiitaに書いてあるからといってそのままやるのはよくないな〜と思いました。気をつけようっと。
コマンドよく使うのしか知らなかったからすごいありがたい章だった!!
終わり!!