見出し画像

【Mac備忘録】ないものだらけ編

MacBook Airが届いてから数日が経った。

実は大学で統計学をほんのちょっぴりかじっていたこともあり、いつの日かのために統計学等々を勉強しなおしてやろうではないか!と思い、いろいろインストールしたり調べてみたりしていたのだが。

Catalinaの罠

(感じの悪い見出しなのはさておき)
今回購入したMacBook AirのOSはCatalinaというもので、
一つ前のMojave(へんな名前!)とは少々異なる点が。

macOS Catalina から、Mac は zsh をデフォルトのログインシェルおよびインタラクティブシェルとして使うようになります。それ以前のバージョンの macOS でも、zsh をデフォルトにすることができます。
(Appleサポート:https://support.apple.com/ja-jp/HT208050)

要は、デフォルトのシェルがbashからzshになっている!!と。
(まぁわたしはPCに疎いのでバッシュだかゼッシュだか知らんけど。。という感想しかなかったわけだが。)

そもそもシェルってなによ

完全に勉強不足でシェルすらピンとこなかったので調べてみた。
ざっくり理解した感じでは、

ユーザ ⇔ ターミナル ⇔ シェル ⇔ カーネル(中核)

って感じになってて、
ユーザ(わたしたち)は、一番右端のカーネルとは直接やりとりができないらしく(カーネルはPCの大事な部分を管理しているから容易に触られたら危ないから、ってことらしい)、
その仲介役になるのがシェルなんだそうで。

ちなみにターミナルはコンピュータに命令を送るための画面で、Macではデフォルトではターミナルで、好みでiTermとかをインストールして使う人もいる。Windowsだとコマンドプロンプトにあたる理解でいいと思う、たぶん。

本題に戻すと、シェルというのはユーザとカーネルの対話ができるようにしているプログラムということみたいだ。
(さっきからカーネルって打つたびにわたしの脳裏にはカーネル・サンダースさんが出てくる。お腹が空いてきてしまった。)

bashかzshか、それが問題だ

(ハムレット風に)

結局どっちを使ったらいいのかな?と思い、いろいろ調べてみたものの、どっちでもいいっぽかった。(なんだそれ!)
Catalinaからデフォルトとなったzshは、いわばbashの上位互換のようなものらしい。
わたしはとりあえずbashにした(正直に書くなら、わけわからんくなってMac OS Mojaveを使用しているパートナーに変えてもらった)。

あとから自分でもいじってみたよ。
bash⇔zshの変更方法は次の通り。

ターミナルの「環境設定」 > 「一般」タブ > 「開くシェル」 > 「コマンド(完全パス)」を選択、
パスに「/bin/bash」を入力する。

スクリーンショット 2020-05-18 17.35.55

もうひとつは、ターミナルでchshというコマンドを使う方法がある。
パスワードが要求されるのでPC起動時のパスワードを入力してEnterを押すと、

スクリーンショット 2020-05-18 20.48.18

こんな感じのが出てくるので、Shell:のところに「/bin/bash」を入れて保存する。

.bash_profileとか.bashrcもデフォルトではないんだって

なんか、いろいろやろうとしてネットで調べていると

・.bash_profile(バッシュプロファイル)
・.bashrc(バッシュアールシー)

というのがチラチラ目に入るのだけど、Macでは初期状態ではこれらが入っていないのだ。またしても罠かよ!
入れといてくれてもいいじゃんね。

.bash_profileか.bashrcか、それが問題だ

(またしてもハムレット風に)

.bash_profileや.bashrcは各ユーザのhomeディレクトリにあるらしい。
(まぁ、ないんですけど!)
で、新しい環境変数を設定するときには、基本的には.bash_profileの方に書いていけばいいらしい。

もう一方の.bashrcには、エイリアス、シェル関数、コマンドラインの補完を設定するといいらしい(って読んだだけで理解できていない、これから勉強するもん!)。

あと、両者の違いとしては、.bash_profileはログイン時に一度だけ読み込まれるのに対し、.bashrcはbashを起動するたびに読み込まれる。また、コマンドbashを叩けば再度読み込みしてくれる。らしい。

(このへんの確認は次回あたりに。。)

実は、.bash_profileの方は何日か前にパートナー氏に作成してもらっちゃってるので、この度、PCに疎いぴこ自身で.bashrcを作成してみた!

.bashrcつくろ〜♪

(ゆきだるまつくろ〜♪的な)(実際うたおうとしたら語呂悪すぎて逆におもろい)

①.bashrcを作成する
 touchコマンドはファイルに触るという意味で、後ろに続くファイルがない場合には空のファイルを作ってくれる(今回)。ファイルがある場合には更新時間が現在時刻に変更されるらしい。

touch .bashrc

②.bashrcになにか書いてみる!
そのままターミナルで編集するには「vim .bashrc」と叩き、さらに「i」(Insertの意味)を打つことで編集ができる。終わるときはescキーを押してから「:wq」で保存して終了。

エディタで編集してもOK(わたしはSublimeというアプリケーションを呼び出してその中で編集してみた)。

.bashrcになにを書くかって、なんでもいいんだけど、上述したとおりエイリアスの定義とかがいいって聞いたから書いてみる。
そんで、エイリアスの説明ってどれも難しい。
超ざっくりの理解では、エイリアスは「別名」って意味で、下のコードのとおり、本来は’ls -a’が本名だけど、「別名」として'la'とさせてくださいな、って感じ(だと思ってる)。

alias la = 'ls -a'

③設定を読み込ませる。
sourceは、ファイルの設定を読み込み有効にするためのコマンド。.bashrcに記述したのでそれを有効にするために。

source .bashrc

④反映を確認。
一度ターミナルを閉じて、再度開き、②で定義したコマンドを打ってみる。わたしの場合、②でlaを定義したのでそれを実行。するとls -aと打ったときと同じ結果が!できたっぽい。

.bash_profileの設定も確認

基本的に、.bash_profileの方には、homeディレクトリに.bashrcがあったら読み込むという記述をしておくみたい。

#.bashrcを読み込む
if [ -f ~/.bashrc ] ; then
	. ~/.bashrc
fi


ここまでなんとかできて達成感!
(慣れている人からすれば入口手前のチケット販売ブースまで来れたくらいの感じかもだけど)

まとめ

★Mac OSがMojaveからCatalinaに変わった!
☆その変更点はデフォルトのシェルがbashからzshになったこと。
(ほかにも変更点はあると思うけど)
☆bashかzshかはどっちでもいい。けど、今後はzshの流れになるのかなぁとか思ったり。ひとまず自分はbashで慣れてからzshとの違いを学ぶ予定(いつになるやら)。どっちも使えたら問題ないもんね。

★.bash_profileや.bashrcは初期の段階では入っていないので自分で作る。
☆.bash_profileはログイン時に一度だけ読み込まれるもので、環境変数を設定するときに記載するとよい。
☆.bashrcはbashを起動(ターミナルを閉じて開くとか、bashと叩くとか)するたびに読み込まれるもので、エイリアスなどなどを記載するとよい。
☆.bash_profileに.bashrcを読み込む記述も忘れずに。

やっと必要そうな設定?みたいなのができてきた感じがするな〜。
本来の目的である統計の勉強やプログラミングの練習にたどり着けるようがんばろう。
そしてMacも使いこなしたい〜!

最後までお読みいただきありがとうございます。いただいたサポートは夢を叶えるための資金とさせていただきます。