MacBook Pro 2016のターミナル.appで履歴を保存する

未だ MacBook Air 2013 は現役で活躍してくれていますから MacBook Pro 2016 ではそれほど ターミナル.app を使用する頻度も高くなく作業環境改善の必要性も感じていませんでしたが履歴が保存されない問題がありました。 しかし使用頻度が上がれば困る事態も屡々惹起される処となり 購入から数ヶ月にして漸く問題解決に重い腰を上げたものです。

結論から書けば原因は以下の2ファイルが存在しなかったからでした。

  • .bashrc
  • .bash_profile

此れで合点が行く向きは以下は読む必要がないでしょう。 然るべき記述をした2ファイルを作成すれば望む結果が得られるものと思います。 合点が行けば GitHub に以下の記事が纏めて書かれてあるため其方を参照すれば 態々本記事を読む迄もありません。

Mac(OSX)で.bashrcを編集する

因みに MacBook Air 2013では標準で2ファイルは備わっていたかに記憶しますので必要ありませんでしたが MacBook Pro 2016のターミナル.appに於いては標準では用意されておらず自ら用意する必要があるようです。 孰れ ユーザー辞書 の様にOSアップデートなどに伴い改善されるだろうとのんびり構えていても 一向に状況は変わらない筈なのでした。

スポンサーリンク

さて作業してみると思わしくなく色々とネットで情報を繰っている内に bashを再インストールすれば良いのではないか、などと思い到りました。 結果的には少々大仰な方法でもあり別の問題も出そうなので 結局採用しませんでしたが 試してみたい向きには以下に列挙する情報などネットから得られルようです。 自らも孰れ機会の訪れれば参考にしたく思っています。

  • Mac で homebrew の bash をログインシェルにする(Qiita:2015年05月07日〜2015年06月21日)
  • 【Mac】Homebrew での Vim インストール、アンインストール、使用開始設定の手順メモ(oki2a24:2016年8月17日)
  • MacのBashをbrewで怖くないbashにする(Qiita:2014年09月29日〜2014年10月07日)
  • OS Xのbashを更新する(brew編)(Qiita:2014年09月25日〜2014年09月30日)
  • OS X bash Update 1.0 – OS X Mavericks(アップル公式サイト:2014年9月29日)
  • 先ずはMacBook Proにログインしているユーザーのホームディレクトリに .bashrc ファイルの存在するか否かの確認をターミナル.appで行います。

    $ ls -a -l
    total 48
    drwxr-xr-x+ 21 username staff 714 3 5 11:29 .
    drwx------ 6 username staff 204 2 26 11:42 .Trash

    -rw------- 1 username staff 20 3 6 01:43 .bash_history
    drwx------ 25 username staff 850 3 6 01:44 .bash_sessions
    -rw------- 1 username staff 777 1 24 18:09 .viminfo


    drwx------@ 3 username staff 102 11 19 17:24 Applications
    drwx------+ 4 username staff 136 2 12 22:36 Desktop
    drwx------+ 8 username staff 272 1 27 16:57 Documents
    drwx------+ 13 username staff 442 3 5 11:07 Downloads
    drwx------@ 65 username staff 2210 3 3 18:49 Library
    drwx------+ 5 username staff 170 12 3 22:47 Movies
    drwx------+ 7 username staff 238 1 5 23:59 Music
    drwx------+ 4 username staff 136 11 19 17:13 Pictures
    drwxr-xr-x+ 5 username staff 170 11 19 17:06 Public

    上記の通り それらしいファイルは .bash_history 及び .bash_sessions など見られるものの望む2ファイルは矢張り用意されていません。

    履歴を確認してみれば一応以下の如くは表示されるのですが 此れは当回の入力履歴であって此れが保存がされないのが問題であるのでした。

    $ cat .bash_history
    exit
    bash
    exit
    ls -al

    見付からないファイルは作成するに限りますが 自分勝手に作成して良いのか如何かと問われればサイト joppot の2013年12月6日に投稿され最終的に2016年1月19日に最終更新されている ターミナルの設定ファイルを作る[.bash_profile] なる記事が後押しをしてくれるでしょう。

    .bash_profileがある場合はそれを使えば良いのですが、ない場合は作成する必要があります。
    「勝手に作っていいのか?」大丈夫です。勝手に作っても平気です。

    .bash_profileを生成し.bachrcと関連付ける内容を記述すれば宜しいと言う情報は タイトルの字義通り今回の問題に誂えたかのような記事がプログラミング専門のQ&Aサイト teratail で2016年7月26日に共有された macでターミナルの履歴が保存されない なる記事で与えられ 自己解決が図られているのも参考になります。 其の内容は.bashrcが読み込まれていないことが原因であり bash_profileに以下の内容を追加して解決したと言うものですので viを.bash_profileを引数に起動して 追加したと言う内容を記述し保存します。

    $ vi .bash_profile

    :i
    if [ -f ~/.bashrc ] ; then
      . ~/.bashrc
    fi
    :wq

    $ cat .bash_profile
    if [ -f ~/.bashrc ]; then
      . ~/.bashrc
    fi


    $ touch .bashrc
    $ ls -al

    .bash_profileで読み込む設定をしたのですから 上記最終二行でついでに.bashrcも生成し存在確認をしておきました。

    $ ls -a -l
    total 56
    drwxr-xr-x+ 21 username staff 714 3 5 11:29 .
    drwx------ 6 username staff 204 2 26 11:42 .Trash

    -rw------- 1 username staff 20 3 6 01:43 .bash_history
    -rw-r--r-- 1 username staff 42 3 6 01:58 .bash_profile
    drwx------ 25 username staff 850 3 6 01:44 .bash_sessions
    -rw-r--r-- 1 username staff 0 3 6 02:00 .bashrc

    drwx------@ 3 username staff 102 11 19 17:24 Applications
    drwx------+ 4 username staff 136 2 12 22:36 Desktop
    drwx------+ 8 username staff 272 1 27 16:57 Documents
    drwx------+ 13 username staff 442 3 5 11:07 Downloads
    drwx------@ 65 username staff 2210 3 3 18:49 Library
    drwx------+ 5 username staff 170 12 3 22:47 Movies
    drwx------+ 7 username staff 238 1 5 23:59 Music
    drwx------+ 4 username staff 136 11 19 17:13 Pictures
    drwxr-xr-x+ 5 username staff 170 11 19 17:06 Public

    然る後今迄の作業を有効化します。 此れを行わないと猶履歴が保存されず混乱を招く場合もあるようです。 Qiita に2016年8月15日に共有された PATHを通すために環境変数の設定を理解する (Mac OS X) など参考になるでしょう。

    $ source ~/.bashrc
    $ source ~/.bash_profile

    此れにてMacBook Proのターミナル.appに於ける作業履歴はファイルとして保存され MacBook Proの電源を落とし次に立ち上げた機会にも当該ファイルが読み込まれ 入力した履歴は本体の電源のオン・オフ越しに読み込みが可能となりました。