先日macOSをHigh SierraからMojaveに更新した際に、普段使っていたbashのエイリアスが使えなくなって困ったので復旧手順をメモしておく。

[Mojave以前に設定したエイリアスが使えなくなった]
React Nativeアプリの開発をしている時に、シミュレータでiOSを起動することがよくある。その際、毎回react-native run-iosというコマンドを打ち込むのが面倒だったので、riosというエイリアスを設定していた。
ところが。

Mojave様をお迎えした直後、いつものようにriosコマンドを入力してiOSシミュレータを起動しようとすると、command not foundと表示されてしまった。
エイリアスは/etc/bashrcで設定していたので、cat /etc/bashrcで確認すると、エイリアスの設定が消えていた。

どこにもaliasの文字が見当たらない。
そういえば、 プロンプトの表示フォーマットも変わっている。カレントディレクトリのフルパスが表示されるように設定していたのに……。
[/etc/bashrc~previousから復旧する]
もしかしてバックアップファイルのようなものが残っていないかと、/etcディレクトリの中をls /etc/ | grep bashrcのコマンドで確認する。

/etc/bashrc~previousなるそれっぽいファイルがあるので、中身を確認する。

そういえば、GOPATHとかもこの辺で設定したので、今度Goを触った時にビルドできなくて困るところだった。
/etcディレクトリに移動して、mv bashrc bashrc~defaultで退避を試みると、Permission deniedのエラーが出たので、sudo mv bashrc bashrc~defaultにしてパスワードを入力して、まずは退避完了。

次にmv bash-previous bashrcで復旧を試みる。アホなのでまたPermission deniedのエラー。同じくsudoをつけて復旧完了。
復旧が完了したのでそのままriosコマンドを実行しようと試みるも、やはりcommand not found。そういえば再起動が必要なのでした。

別のターミナルを起動し、React Nativeアプリのプロジェクトのディレクトリに移動してriosコマンドを実行すると、無事iOSシミュレータの起動ログが流れ始めた。めでたしめでたし。

[まとめ]
macOSのバージョンアップ時には/etc/bashrcを/etc/bashrc~previousから復旧できる。
今日のブログ執筆BGMはこちら。