[備忘録] Mac PC がまた入院した時のために

愛用の Macbook Pro:computer: が Apple Store に修理入院:hospital: = 初期化...
ということで、元気になって戻ってきた時に困らないように諸々の設定情報:gear:をメモしておきます。

# メモリスト:pencil:
この辺りが重要と聞いたので、メモです。

- 環境変数とPath
- テキストエディタ
- ブラウザ
- アプリケーション
- npm パッケージ
- SourceTree のリポジトリブックマーク
- その他

# 環境変数 と Path:wrench:
Terminal 環境内における変数である「環境変数」とコマンドの格納先である「Path」。

### 環境変数
##### [設定の確認]
- printenv コマンドで設定している環境変数を表示 (一部のみ抜粋)

```terminal
$ printenv

TERM_PROGRAM=Apple_Terminal
SHELL=/bin/bash
USER=***
PWD=/Users/***
LANG=ja_JP.UTF-8
HOME=/Users/***
LOGNAME=***
```
- 設定情報をファイルに出力

```terminal
$ printenv > EnvironmentVariable.txt
```
##### [新規設定]

- 旧環境の設定を新環境に設定

```terminal
$ export {VARIABLE NAME}={value}
```

- ~/.bash_profile に環境変数の書き込み

```terminal
$ vi ~/.bash_profile

export {VARIABLE NAME}={value}
```

- 永続的に設定が保存されるように 再起動またはsource コマンドを実行 (上記のみだと Terminal を開くたびに設定が必要)

```terminal
$ source ~/.bash_profile
```

***

### Path
Path は環境変数のうちの一つ。
コマンドが格納されている先を登録しておくと、都度パスを指定してコマンドを実行する必要がなくなる。
例えば、```/bin``` という PATH が通っていると、以下のように ```/bin/pwd``` を ```pwd``` で実行できる。

```terminal
$ pwd
$ /bin/pwd
```

##### [設定の確認]
- echo コマンドで現在の設定を表示 (一部のみ抜粋)

```terminal
$ echo $PATH

PATH=/Users/***/.pyenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Users/***/cli-kintone
```

- 設定情報をファイルに出力

```terminal
$ echo $PATH > path.txt
```

##### [新規設定]

- 旧環境の設定を新環境に設定

```terminal
$ export PATH={Path}:$PATH
```

※ 以下のように記述すると Path の設定がすべて上書きされるので注意。

```terminal
$ export PATH={Path}
```

- ~/.bash_profile に Path の書き込み

```terminal
$ vi ~/.bash_profile

export PATH={Path}:$PATH
```

- 永続的に設定が保存されるように 再起動またはsource コマンドを実行 (上記のみだと Terminal を開くたびに設定が必要)

```terminal
$ source ~/.bash_profile
```

##### [おまけ]
- Path の優先順位は左から (```:``` で区切って複数追加)

```terminal
$ echo $PATH

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
```

- コマンドの格納パスを探す際は、which コマンド

```terminal
$ which pwd

/bin/pwd
```

# テキストエディタ:page_facing_up:
ユーザー設定 と 拡張機能設定 は 一からやり直すの大変なので、メモ必須。
(※ VSCode Ver.)

### ユーザー設定
- インデントや拡大縮小レベルなどの初期設定を表示 (歯車マーク > User Settings > 右上の `{}` マーク)
![VSCode_userSetting.png](https://qiita-image-store.s3.amazonaws.com/0/90265/072cf9b5-f1b2-23e9-64c7-e24fca7c10e7.png)

- settings.json を保存
![VSCode_settingsJson.png](https://qiita-image-store.s3.amazonaws.com/0/90265/26688889-d0a0-50d6-911e-09999547184e.png)

- 新規環境でも保存しておいた settings.json を設定し直すだけで OK!

### 拡張機能設定
- code コマンドでプラグインの設定を表示 (一部のみ抜粋)

※ code コマンドが入っていない場合は、 Command Palette を開き `Shell Command` と検索して、`Shell Command: Install 'code' command in PATH command.` を選択する。

```terminal
$ code --list-extensions

RoscoP.activefileinstatusbar-1.0.3
akamud.vscode-theme-onedark-2.1.0
anseki.vscode-color-0.4.5
arcticicestudio.nord-visual-studio-code-0.7.1
azemoh.one-monokai-0.3.7
christian-kohler.path-intellisense-1.4.2
dbaeumer.vscode-eslint-1.8.2
donjayamanne.githistory-0.4.6
dracula-theme.theme-dracula-2.17.0
```

- 拡張機能リストのファイルを作成

```terminal
$ code --list-extensions > extensions
```

- インストール用のシェルスクリプトを作成

```install_extensions.sh
#!/bin/sh

cat ./extensions | while read line
do
  code --install-extension $line
done
``` 

- extensions ファイルがあるディレクトリでシェルスクリプトを実行

```terminal
$ sh install_extensions.sh
```

これでエディタの設定は元通り( ｰ`дｰ´)ｷﾘｯ

# ブラウザ:bookmark:
ブックマークや拡張機能の設定も重要。

### ブックマーク
##### [設定の保存]
- ブックマークの設定を表示 (ブラウザの右上の `︙` > ブックマーク > ブックマークマネージャ)
- ブックマークの設定をエクスポート (右上の `︙` > ブックマークをエクスポート)
- HTMLファイルが出力されるので、保存

##### [新規設定]
- ブックマークの設定をインポート (右上の `︙` > ブックマークと設定をインポート)

### 拡張機能
インストール済みの拡張機能は Chrome の標準機能ではエクスポートすることはできないので、新規にそれ用の拡張機能を入れてエクスポートする。

##### [設定の保存]
- [Chrome ウェブストア](https://chrome.google.com/webstore/category/extensions?hl=ja) にある　[Export links of all extensions](https://chrome.google.com/webstore/detail/export-links-of-all-exten/cmeckkgeamghjhkepejgjockldoblhcb/related?hl=ja) を追加する
- 拡張機能ボタンをクリックすると、現在インストール済みの拡張機能をリスト化した extensions.html ファイルが出力される

##### [新規設定]
- 保存した extensions.html を Chrome ブラウザで開く
- Enabled 内のリストのリンクをクリックして、拡張機能をインストール
![extensions.png](https://qiita-image-store.s3.amazonaws.com/0/90265/f56e8cf2-8c67-d1bf-3e73-0161f2c87e43.png)

これでブラウザもバッチリ(≧∇≦)b

# アプリケーション:mag_right:
アプリケーションは1つずつインストールのし直しが必要だが、リストはあって損ないので Application ディレクトリから調べておく。

- Application ディレクトリを表示してファイルに出力

```terminal
$ cd /Applications
$ ls > ApplicationList.txt
```

# npm パッケージ:package:
npm インストールしているパッケージのリスト化。

- npm list コマンドでリストを表示してファイルに出力

```terminal
$ npm list > npmList.txt
```

# SourceTree のリポジトリブックマーク:books:
Git クライアントの [SourceTree](https://sourcetreeapp-marketing.atlassian.com/)　のリポジトリブックマーク管理。

##### [設定の保存]
- SourceTree ディレクトリ内の browser.plist を保存

```terminal
$ cd $HOME/Library/Application Support/SourceTree
$ browser.plist > SourceTree_browser.plist
```
 
##### [新規設定]
- browser.plist を元の場所に戻して、ブックマークの復元

```terminal
$ cd {SourceTree_browser.plistのバックアップ先パス}
$ cp SourceTree_browser.plist > "$HOME/Library/Application Support/SourceTree/browser.plist"
```

# その他:keyboard:
必要に応じて以下の設定もメモしておく。

- プリンタ設定
- キーバインド

これ以外は必要になったタイミングで新環境で設定するようにすれば無駄もなさそう(・∀・)

# 参考リンク:link:
以下の記事を参照・一部文面で使わせていただきました。

- [Pathを通すとは、環境変数とは](https://qiita.com/fuwamaki/items/3d8af42cf7abee760a81)
- [PATHを通すために環境変数の設定を理解する (Mac OS X)](https://qiita.com/soarflat/items/d5015bec37f8a8254380)
- [.bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの？](https://qiita.com/hirokishirai/items/5a529c8395c4b336bf31)
- [本当に正しい .bashrc と .bash_profile の使ひ分け](https://qiita.com/magicant/items/d3bb7ea1192e63fba850)
- [[Mac]環境変数PATHの設定・変更・追加・確認・順番入れ替えの方法](https://gabekore.org/mac-path-environmental-variable)
- [Visual Studio Codeで設定ファイル・キーバインディング・拡張機能を共有する](https://qiita.com/mottox2/items/581869563ce5f427b5f6)
- [ブックマークを保持したままSourcetreeをアンインストール/再インストールする方法](https://qiita.com/nwtgck/items/479ba285e4c4a3388052)