どうも、ちゃちゃまる(@chachmaru)です。
CLI、kernel、shell、きつい
いやきついっすよ、CLI。
CLIってコマンド・ライン・インターフェースのことなんですけど、いつも慣れ親しんでるMacのGUIとは違ってわかりにくい。文字だけしかない。でもカッコいい。
僕は今LIG(http://liginc.co.jp)で見習いデザインエンジニアをやってるのですが、やはり要所要所でコマンドを使うことがあります。なので、カッコつけたいので(あと自分の勉強にもなるので)コマンド初心者の僕がコマンド初心者の皆さんに向けて色々語っていきます。
kernelとは
「カーネル」と読みます。OSの核を成すソフトウェアで、動いてるアプリケーションの管理やハードウェア(キーボードやマウスなど)とアプリケーションのリンク、メモリの割り当てなど、とにかく中心的な存在。一言で言うと、ソフトウェアとハードウェアの架け橋。しかしこいつ、実はユーザーと直接コミュニケーションをすることが出来ないコミュ障なやつなんです。
shellとは
ここでshell(シェル)が登場。kernelとユーザーの仲介役をしてくれます。ユーザーの命令をshellが聞き取り、kernelが分かるように噛み砕いて、kernelに命令をするのが一般的な流れです。
つまり、コマンド=shellコマンド
そもそもコマンドってなんなんだ?って僕は疑問に思っていたのですが、やっと分かりました。shellコマンドのことをコマンドって言うんです。kernelへの命令はshellが行ってくれるため、僕たちユーザーがすべきことはshellに要望を伝えることです。
shellの種類
実はshellっていうのは一般名称みたいなもので、色々な種類があります。Terminalを起動するとデフォルトではbashというshellが立ち上がります。
bash
bashは多くのUNIX系OS(MacもUNIX系)で使われるshellで、最近使われるような機能は実装されています。でも僕、bashあんま好きじゃないです。なぜなら、初心者だから。オートサジェスチョン欲しい。コマンドとかパラメータとかに色ついて欲しい。
そこでfish
そんな中僕が気に入ったのは、fishというshell。キャッチコピーは「a command line shell for the 90s」。直訳で「90年代のコマンドラインシェル」。なんか一見古そうですが、個人的に結構ありがたい機能が結構あります。勝手に「90年代生まれのためのコマンドラインシェル」と読み替えてます。
fishのいいところ
- 補完機能:コマンドを入力すると入力履歴から補完してくれます
- リアルタイムエラー判定:存在しないコマンドやディレクトリの場合、文字が赤くなります
- 色付け機能:コマンド、パラメータ、コメント、エラーなど、それぞれ色の指定ができます
- GUIの設定画面:設定がGUIでできます(後述)
インストール手順
- ターミナルを起動。
- まだの人はHomebrewをインストール。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
をターミナルに貼り付けてEnterを押すだけ。 -
brew install fish
でfishをインストール。 - bash(デフォルト)の状態で
fish
とうつとfishが立ち上がる。
fishをデフォルトにしたい場合、
-
echo "/usr/local/bin/fish" | sudo tee -a /etc/shells
と入れ、Macのパスワードを入力。この時パスワードの文字数を表す●は表示されないので注意。 -
chsh -s /usr/local/bin/fish
と入れ、またパスワード。 - ターミナルを再起動して、最初からfishになっていれば成功。
fishの設定
さきほど、fishはGUIで設定ができると言ったのですが、正確にはブラウザで設定します。
fish_config
と入れると、ブラウザが立ち上がります。ここで色の設定などができます。
以上です。ではまた!