先日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はこちら。