diff --git a/.bash.d/bashrc_alias b/.bash.d/bashrc_alias new file mode 100644 index 0000000..4dde28f --- /dev/null +++ b/.bash.d/bashrc_alias @@ -0,0 +1,18 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_alias +## Name : bash 設定ファイル [エイリアス設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +alias ls='ls -F --color=auto --show-control-chars' +alias ll='ls -l' +alias la='ls -a' +alias cp='cp -i' +alias mv='cp -i' +alias rm='rm -i' +alias grep='grep --color=auto' diff --git a/.bash.d/bashrc_alias b/.bash.d/bashrc_alias new file mode 100644 index 0000000..4dde28f --- /dev/null +++ b/.bash.d/bashrc_alias @@ -0,0 +1,18 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_alias +## Name : bash 設定ファイル [エイリアス設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +alias ls='ls -F --color=auto --show-control-chars' +alias ll='ls -l' +alias la='ls -a' +alias cp='cp -i' +alias mv='cp -i' +alias rm='rm -i' +alias grep='grep --color=auto' diff --git a/.bash.d/bashrc_path b/.bash.d/bashrc_path new file mode 100644 index 0000000..973fa8e --- /dev/null +++ b/.bash.d/bashrc_path @@ -0,0 +1,17 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_path +## Name : bash 設定ファイル [パス設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +PATH=.:~/bin +PATH=${PATH}:/bin:/sbin +PATH=${PATH}:/usr/bin:/usr/sbin +PATH=${PATH}:/usr/local/bin:/usr/local/sbin +export PATH + diff --git a/.bash.d/bashrc_alias b/.bash.d/bashrc_alias new file mode 100644 index 0000000..4dde28f --- /dev/null +++ b/.bash.d/bashrc_alias @@ -0,0 +1,18 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_alias +## Name : bash 設定ファイル [エイリアス設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +alias ls='ls -F --color=auto --show-control-chars' +alias ll='ls -l' +alias la='ls -a' +alias cp='cp -i' +alias mv='cp -i' +alias rm='rm -i' +alias grep='grep --color=auto' diff --git a/.bash.d/bashrc_path b/.bash.d/bashrc_path new file mode 100644 index 0000000..973fa8e --- /dev/null +++ b/.bash.d/bashrc_path @@ -0,0 +1,17 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_path +## Name : bash 設定ファイル [パス設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +PATH=.:~/bin +PATH=${PATH}:/bin:/sbin +PATH=${PATH}:/usr/bin:/usr/sbin +PATH=${PATH}:/usr/local/bin:/usr/local/sbin +export PATH + diff --git a/.bash.d/bashrc_prompt b/.bash.d/bashrc_prompt new file mode 100644 index 0000000..fce21d0 --- /dev/null +++ b/.bash.d/bashrc_prompt @@ -0,0 +1,92 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_prompt +## Name : bash 設定ファイル [プロンプト設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +# git-prompt.sh 読み込み +SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE:-$0}); pwd) +if [ -f "${SCRIPT_DIR}/git-prompt.sh" ]; then + echo "[load] git-prompt.sh" + . "${SCRIPT_DIR}/git-prompt.sh" +fi + + +# プロンプト設定 +# PS1 : 通常プロンプト定義 +# PS2 : サブプロンプト定義(コマンド入力未完了の際のプロンプト) +# +# 特殊文字指定 +# \d : 日付 +# \e : エスケープ +# \h : ホスト名(最初の「.」まで) +# \H : ホスト名 +# \n : 改行 +# \s : シェルの名前 +# \t : 現在時刻 (24時間表示 HH:MM:SS) +# \T : 現在時刻 (12時間表示 HH:MM:SS) +# \@ : 現在時刻 (12時間表示 [am/pm 形式]) +# \u : 現在のユーザー名 +# \w : 作業ディレクトリ +# \W : 作業ディレクトリ[当該ディレクトリのみ] +# \! : コマンド履歴番号 +# \# : コマンド番号 +# $ : 実行UIDが0の場合#、それ以外の場合$ +# \nnn : 8進数nnnに対応する文字 +# \[ : 非表示文字シーケンス開始 +# \] : 非表示文字シーケンス終了 +# +# 以下、ANSIエスケープコードで、echo -e による出力にも利用可能です。 +# +# 装飾 +# 装飾無 : \e[0m +# 太字 : \e[1m +# 細字 : \e[2m +# イタリック : \e[3m +# 下線 : \e[4m +# ブリンク : \e[5m +# 高速ブリンク: \e[6m ※未対応の端末が多い +# 反転表示 : \e[7m +# 表示を隠す : \e[8m ※コピーは可能 +# 取り消し : \e[9m +# +# 色 : 文字色 高輝度文字 背景色 高輝度背景色 +# 黒色 : \e[30m \e[90m \e[40m \e[100m +# 赤色 : \e[31m \e[91m \e[41m \e[101m +# 緑色 : \e[32m \e[92m \e[42m \e[102m +# 黄色 : \e[33m \e[93m \e[43m \e[103m +# 青色 : \e[34m \e[94m \e[44m \e[104m +# 紫色 : \e[35m \e[95m \e[45m \e[105m +# 水色 : \e[36m \e[96m \e[46m \e[106m +# 白色 : \e[37m \e[97m \e[47m \e[107m +# +# デフォルト : \e[39m \e[49m +# +# +# 移動系 +# n 上に移動 : \e[nA +# n 下に移動 : \e[nB +# n 右に移動 : \e[nC +# n 左に移動 : \e[nD +# n 行下移動 : \e[nE +# n 行上移動 : \e[nF +# n 列に移動 : \e[nG +# n,m に移動 : \e[n;;mH or \e[n;mf +# 消去 : \e[0J カーソル以降を消去 +# \e[1J カーソル以前を消去 +# \e[2J 全体を消去 +# 行消去 : \e[0K カーソル以降を消去 +# \e[1K カーソル以前を消去 +# \e[2K 全体を消去 +# スクロール : \e[nS n 行分次にスクロール +# \e[nT n 行分前にスクロール +# SGR : \e[nm +# +# +PS1='\[\e[0m\e[36m\][\u@\h:\W$(__git_ps1 " (%s)")]$ \[\e[0m\e[37m\]' +PS2='>' diff --git a/.bash.d/bashrc_alias b/.bash.d/bashrc_alias new file mode 100644 index 0000000..4dde28f --- /dev/null +++ b/.bash.d/bashrc_alias @@ -0,0 +1,18 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_alias +## Name : bash 設定ファイル [エイリアス設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +alias ls='ls -F --color=auto --show-control-chars' +alias ll='ls -l' +alias la='ls -a' +alias cp='cp -i' +alias mv='cp -i' +alias rm='rm -i' +alias grep='grep --color=auto' diff --git a/.bash.d/bashrc_path b/.bash.d/bashrc_path new file mode 100644 index 0000000..973fa8e --- /dev/null +++ b/.bash.d/bashrc_path @@ -0,0 +1,17 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_path +## Name : bash 設定ファイル [パス設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +PATH=.:~/bin +PATH=${PATH}:/bin:/sbin +PATH=${PATH}:/usr/bin:/usr/sbin +PATH=${PATH}:/usr/local/bin:/usr/local/sbin +export PATH + diff --git a/.bash.d/bashrc_prompt b/.bash.d/bashrc_prompt new file mode 100644 index 0000000..fce21d0 --- /dev/null +++ b/.bash.d/bashrc_prompt @@ -0,0 +1,92 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_prompt +## Name : bash 設定ファイル [プロンプト設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +# git-prompt.sh 読み込み +SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE:-$0}); pwd) +if [ -f "${SCRIPT_DIR}/git-prompt.sh" ]; then + echo "[load] git-prompt.sh" + . "${SCRIPT_DIR}/git-prompt.sh" +fi + + +# プロンプト設定 +# PS1 : 通常プロンプト定義 +# PS2 : サブプロンプト定義(コマンド入力未完了の際のプロンプト) +# +# 特殊文字指定 +# \d : 日付 +# \e : エスケープ +# \h : ホスト名(最初の「.」まで) +# \H : ホスト名 +# \n : 改行 +# \s : シェルの名前 +# \t : 現在時刻 (24時間表示 HH:MM:SS) +# \T : 現在時刻 (12時間表示 HH:MM:SS) +# \@ : 現在時刻 (12時間表示 [am/pm 形式]) +# \u : 現在のユーザー名 +# \w : 作業ディレクトリ +# \W : 作業ディレクトリ[当該ディレクトリのみ] +# \! : コマンド履歴番号 +# \# : コマンド番号 +# $ : 実行UIDが0の場合#、それ以外の場合$ +# \nnn : 8進数nnnに対応する文字 +# \[ : 非表示文字シーケンス開始 +# \] : 非表示文字シーケンス終了 +# +# 以下、ANSIエスケープコードで、echo -e による出力にも利用可能です。 +# +# 装飾 +# 装飾無 : \e[0m +# 太字 : \e[1m +# 細字 : \e[2m +# イタリック : \e[3m +# 下線 : \e[4m +# ブリンク : \e[5m +# 高速ブリンク: \e[6m ※未対応の端末が多い +# 反転表示 : \e[7m +# 表示を隠す : \e[8m ※コピーは可能 +# 取り消し : \e[9m +# +# 色 : 文字色 高輝度文字 背景色 高輝度背景色 +# 黒色 : \e[30m \e[90m \e[40m \e[100m +# 赤色 : \e[31m \e[91m \e[41m \e[101m +# 緑色 : \e[32m \e[92m \e[42m \e[102m +# 黄色 : \e[33m \e[93m \e[43m \e[103m +# 青色 : \e[34m \e[94m \e[44m \e[104m +# 紫色 : \e[35m \e[95m \e[45m \e[105m +# 水色 : \e[36m \e[96m \e[46m \e[106m +# 白色 : \e[37m \e[97m \e[47m \e[107m +# +# デフォルト : \e[39m \e[49m +# +# +# 移動系 +# n 上に移動 : \e[nA +# n 下に移動 : \e[nB +# n 右に移動 : \e[nC +# n 左に移動 : \e[nD +# n 行下移動 : \e[nE +# n 行上移動 : \e[nF +# n 列に移動 : \e[nG +# n,m に移動 : \e[n;;mH or \e[n;mf +# 消去 : \e[0J カーソル以降を消去 +# \e[1J カーソル以前を消去 +# \e[2J 全体を消去 +# 行消去 : \e[0K カーソル以降を消去 +# \e[1K カーソル以前を消去 +# \e[2K 全体を消去 +# スクロール : \e[nS n 行分次にスクロール +# \e[nT n 行分前にスクロール +# SGR : \e[nm +# +# +PS1='\[\e[0m\e[36m\][\u@\h:\W$(__git_ps1 " (%s)")]$ \[\e[0m\e[37m\]' +PS2='>' diff --git a/.bash.d/bashrc_set b/.bash.d/bashrc_set new file mode 100644 index 0000000..afad796 --- /dev/null +++ b/.bash.d/bashrc_set @@ -0,0 +1,38 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_set +## Name : bash 設定ファイル [set オプション] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +# set 設定 +# -o 設定有効 +# +o 設定無効 +# +# set -o emacs # bash の編集モードを emacs モードにする。 [デフォルト] +# set -o vi # bash の編集モードを vi モードにする。 +# set -f (=set -o noglob) # * などによるファイル名の展開を無効化する。 +# set -m (=set -o monitor) # バックグラウンドのジョブ結果を表示する。[デフォルト有効] +# set -o ignoreof # Ctrl+D でシェルを終了しないようにする。 +# set -B (=set -o braceexpand) # ブレース展開を有効にする。 +# set -C (=set -o noclobber) # 既存ファイルへの出力リダイレクトを禁止する。(>|にて可能) +# set -H (=set -o histexpand) # !形式のヒストリ置換を有効にする。 +# set -P (=set -o physical) # ファイルのシンボリック・リンクをたどらない。 +# +# <主にシェルで使用する設定オプション> +# set -e (=set -o errexit) # コマンドが 0 以外のステータスで終了した場合、即終了します。 +# set -u (=set -o nounset) # 置換時に未設定の変数をエラーとして扱います。 +# set -o pipefail # pipe の処理途中で失敗した場合、エラーとする。 +# set -x (=set -o xtrace) # コマンドと実行時の引数を表示する。 +# set -v (=set -o verbose) # シェル入力行を読み取ったときに出力する。 +# set -n (=set -o noexec) # コマンドを読み取るが実行しない(=文法チェックに利用できる)。 +# set -t (=set -o onecmd) # コマンドを1つ読み込み、実行後終了する。 +# +# 上記以外の設定については、help set で確認のこと。 +# +set -o vi + diff --git a/.bash.d/bashrc_alias b/.bash.d/bashrc_alias new file mode 100644 index 0000000..4dde28f --- /dev/null +++ b/.bash.d/bashrc_alias @@ -0,0 +1,18 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_alias +## Name : bash 設定ファイル [エイリアス設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +alias ls='ls -F --color=auto --show-control-chars' +alias ll='ls -l' +alias la='ls -a' +alias cp='cp -i' +alias mv='cp -i' +alias rm='rm -i' +alias grep='grep --color=auto' diff --git a/.bash.d/bashrc_path b/.bash.d/bashrc_path new file mode 100644 index 0000000..973fa8e --- /dev/null +++ b/.bash.d/bashrc_path @@ -0,0 +1,17 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_path +## Name : bash 設定ファイル [パス設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +PATH=.:~/bin +PATH=${PATH}:/bin:/sbin +PATH=${PATH}:/usr/bin:/usr/sbin +PATH=${PATH}:/usr/local/bin:/usr/local/sbin +export PATH + diff --git a/.bash.d/bashrc_prompt b/.bash.d/bashrc_prompt new file mode 100644 index 0000000..fce21d0 --- /dev/null +++ b/.bash.d/bashrc_prompt @@ -0,0 +1,92 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_prompt +## Name : bash 設定ファイル [プロンプト設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +# git-prompt.sh 読み込み +SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE:-$0}); pwd) +if [ -f "${SCRIPT_DIR}/git-prompt.sh" ]; then + echo "[load] git-prompt.sh" + . "${SCRIPT_DIR}/git-prompt.sh" +fi + + +# プロンプト設定 +# PS1 : 通常プロンプト定義 +# PS2 : サブプロンプト定義(コマンド入力未完了の際のプロンプト) +# +# 特殊文字指定 +# \d : 日付 +# \e : エスケープ +# \h : ホスト名(最初の「.」まで) +# \H : ホスト名 +# \n : 改行 +# \s : シェルの名前 +# \t : 現在時刻 (24時間表示 HH:MM:SS) +# \T : 現在時刻 (12時間表示 HH:MM:SS) +# \@ : 現在時刻 (12時間表示 [am/pm 形式]) +# \u : 現在のユーザー名 +# \w : 作業ディレクトリ +# \W : 作業ディレクトリ[当該ディレクトリのみ] +# \! : コマンド履歴番号 +# \# : コマンド番号 +# $ : 実行UIDが0の場合#、それ以外の場合$ +# \nnn : 8進数nnnに対応する文字 +# \[ : 非表示文字シーケンス開始 +# \] : 非表示文字シーケンス終了 +# +# 以下、ANSIエスケープコードで、echo -e による出力にも利用可能です。 +# +# 装飾 +# 装飾無 : \e[0m +# 太字 : \e[1m +# 細字 : \e[2m +# イタリック : \e[3m +# 下線 : \e[4m +# ブリンク : \e[5m +# 高速ブリンク: \e[6m ※未対応の端末が多い +# 反転表示 : \e[7m +# 表示を隠す : \e[8m ※コピーは可能 +# 取り消し : \e[9m +# +# 色 : 文字色 高輝度文字 背景色 高輝度背景色 +# 黒色 : \e[30m \e[90m \e[40m \e[100m +# 赤色 : \e[31m \e[91m \e[41m \e[101m +# 緑色 : \e[32m \e[92m \e[42m \e[102m +# 黄色 : \e[33m \e[93m \e[43m \e[103m +# 青色 : \e[34m \e[94m \e[44m \e[104m +# 紫色 : \e[35m \e[95m \e[45m \e[105m +# 水色 : \e[36m \e[96m \e[46m \e[106m +# 白色 : \e[37m \e[97m \e[47m \e[107m +# +# デフォルト : \e[39m \e[49m +# +# +# 移動系 +# n 上に移動 : \e[nA +# n 下に移動 : \e[nB +# n 右に移動 : \e[nC +# n 左に移動 : \e[nD +# n 行下移動 : \e[nE +# n 行上移動 : \e[nF +# n 列に移動 : \e[nG +# n,m に移動 : \e[n;;mH or \e[n;mf +# 消去 : \e[0J カーソル以降を消去 +# \e[1J カーソル以前を消去 +# \e[2J 全体を消去 +# 行消去 : \e[0K カーソル以降を消去 +# \e[1K カーソル以前を消去 +# \e[2K 全体を消去 +# スクロール : \e[nS n 行分次にスクロール +# \e[nT n 行分前にスクロール +# SGR : \e[nm +# +# +PS1='\[\e[0m\e[36m\][\u@\h:\W$(__git_ps1 " (%s)")]$ \[\e[0m\e[37m\]' +PS2='>' diff --git a/.bash.d/bashrc_set b/.bash.d/bashrc_set new file mode 100644 index 0000000..afad796 --- /dev/null +++ b/.bash.d/bashrc_set @@ -0,0 +1,38 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_set +## Name : bash 設定ファイル [set オプション] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +# set 設定 +# -o 設定有効 +# +o 設定無効 +# +# set -o emacs # bash の編集モードを emacs モードにする。 [デフォルト] +# set -o vi # bash の編集モードを vi モードにする。 +# set -f (=set -o noglob) # * などによるファイル名の展開を無効化する。 +# set -m (=set -o monitor) # バックグラウンドのジョブ結果を表示する。[デフォルト有効] +# set -o ignoreof # Ctrl+D でシェルを終了しないようにする。 +# set -B (=set -o braceexpand) # ブレース展開を有効にする。 +# set -C (=set -o noclobber) # 既存ファイルへの出力リダイレクトを禁止する。(>|にて可能) +# set -H (=set -o histexpand) # !形式のヒストリ置換を有効にする。 +# set -P (=set -o physical) # ファイルのシンボリック・リンクをたどらない。 +# +# <主にシェルで使用する設定オプション> +# set -e (=set -o errexit) # コマンドが 0 以外のステータスで終了した場合、即終了します。 +# set -u (=set -o nounset) # 置換時に未設定の変数をエラーとして扱います。 +# set -o pipefail # pipe の処理途中で失敗した場合、エラーとする。 +# set -x (=set -o xtrace) # コマンドと実行時の引数を表示する。 +# set -v (=set -o verbose) # シェル入力行を読み取ったときに出力する。 +# set -n (=set -o noexec) # コマンドを読み取るが実行しない(=文法チェックに利用できる)。 +# set -t (=set -o onecmd) # コマンドを1つ読み込み、実行後終了する。 +# +# 上記以外の設定については、help set で確認のこと。 +# +set -o vi + diff --git a/.bash.d/bashrc_shopt b/.bash.d/bashrc_shopt new file mode 100644 index 0000000..cf3c328 --- /dev/null +++ b/.bash.d/bashrc_shopt @@ -0,0 +1,37 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_shopt +## Name : bash 設定ファイル [shopt オプション] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +# shopt 設定 +# -s 設定を有効 +# -u 設定を無効 +# +# shopt -s autocd # PATHを指定すると cd の引数として指定されたものとみなす。 +# shopt -s cdapell # スペルミスがあっても自動補正して cd する。 +# shopt -s checkwinsize # コマンド実行の度にターミナルのウィンドウサイズを確認する。 +# shopt -s cmdhist # 複数行コマンド1つの履歴エントリに登録する。 +# shopt -s direxpand # tab によるパス補完時に変数を展開する。 +# shopt -s dirspell # ディレクトリのスペルミスがあっても自動補完する。 +# shopt -s dotglob # . ではじまるファイルもワイルドカードでマッチする。 +# shopt -s extglob # 拡張パターンマッチング機能を有効にする。 +# shopt -s globstar # ** パターンがパス展開で使われる場合、深さ0以上のディレクトリ、 +# # サブディレクトリのファイルにマッチする。直後に / が続く場合は、 +# # ディレクトリとサブディレクトリのみにマッチする。 +# shopt -s histhappend # シェル終了時に HISTFILE で指定されたファイルに履歴を追加する。 +# shopt -s hostcomplete # @を含む単語を補完する際、ホスト名補完する。 +# shopt -s huponexit # 終了時ジョブに対して SIGHUB シグナルを送信する。 +# shopt -s interactive_comments # 対話モードで # 以降を無視する。 +# shopt -s lithist # cmdhist が有効時、複数行のコマンドをセミコロンではなく +# # 改行区切りで履歴を保存する。 +# shopt -s progcomp # プログラム補完機能が有効になる。 +# shopt -s xpg_echo # echo がデフォルトでバックスラッシュによるエスケープシーケンスを展開する。 +shopt -s cmdhist +shopt -s lithist + diff --git a/.bash.d/bashrc_alias b/.bash.d/bashrc_alias new file mode 100644 index 0000000..4dde28f --- /dev/null +++ b/.bash.d/bashrc_alias @@ -0,0 +1,18 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_alias +## Name : bash 設定ファイル [エイリアス設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +alias ls='ls -F --color=auto --show-control-chars' +alias ll='ls -l' +alias la='ls -a' +alias cp='cp -i' +alias mv='cp -i' +alias rm='rm -i' +alias grep='grep --color=auto' diff --git a/.bash.d/bashrc_path b/.bash.d/bashrc_path new file mode 100644 index 0000000..973fa8e --- /dev/null +++ b/.bash.d/bashrc_path @@ -0,0 +1,17 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_path +## Name : bash 設定ファイル [パス設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +PATH=.:~/bin +PATH=${PATH}:/bin:/sbin +PATH=${PATH}:/usr/bin:/usr/sbin +PATH=${PATH}:/usr/local/bin:/usr/local/sbin +export PATH + diff --git a/.bash.d/bashrc_prompt b/.bash.d/bashrc_prompt new file mode 100644 index 0000000..fce21d0 --- /dev/null +++ b/.bash.d/bashrc_prompt @@ -0,0 +1,92 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_prompt +## Name : bash 設定ファイル [プロンプト設定] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +# git-prompt.sh 読み込み +SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE:-$0}); pwd) +if [ -f "${SCRIPT_DIR}/git-prompt.sh" ]; then + echo "[load] git-prompt.sh" + . "${SCRIPT_DIR}/git-prompt.sh" +fi + + +# プロンプト設定 +# PS1 : 通常プロンプト定義 +# PS2 : サブプロンプト定義(コマンド入力未完了の際のプロンプト) +# +# 特殊文字指定 +# \d : 日付 +# \e : エスケープ +# \h : ホスト名(最初の「.」まで) +# \H : ホスト名 +# \n : 改行 +# \s : シェルの名前 +# \t : 現在時刻 (24時間表示 HH:MM:SS) +# \T : 現在時刻 (12時間表示 HH:MM:SS) +# \@ : 現在時刻 (12時間表示 [am/pm 形式]) +# \u : 現在のユーザー名 +# \w : 作業ディレクトリ +# \W : 作業ディレクトリ[当該ディレクトリのみ] +# \! : コマンド履歴番号 +# \# : コマンド番号 +# $ : 実行UIDが0の場合#、それ以外の場合$ +# \nnn : 8進数nnnに対応する文字 +# \[ : 非表示文字シーケンス開始 +# \] : 非表示文字シーケンス終了 +# +# 以下、ANSIエスケープコードで、echo -e による出力にも利用可能です。 +# +# 装飾 +# 装飾無 : \e[0m +# 太字 : \e[1m +# 細字 : \e[2m +# イタリック : \e[3m +# 下線 : \e[4m +# ブリンク : \e[5m +# 高速ブリンク: \e[6m ※未対応の端末が多い +# 反転表示 : \e[7m +# 表示を隠す : \e[8m ※コピーは可能 +# 取り消し : \e[9m +# +# 色 : 文字色 高輝度文字 背景色 高輝度背景色 +# 黒色 : \e[30m \e[90m \e[40m \e[100m +# 赤色 : \e[31m \e[91m \e[41m \e[101m +# 緑色 : \e[32m \e[92m \e[42m \e[102m +# 黄色 : \e[33m \e[93m \e[43m \e[103m +# 青色 : \e[34m \e[94m \e[44m \e[104m +# 紫色 : \e[35m \e[95m \e[45m \e[105m +# 水色 : \e[36m \e[96m \e[46m \e[106m +# 白色 : \e[37m \e[97m \e[47m \e[107m +# +# デフォルト : \e[39m \e[49m +# +# +# 移動系 +# n 上に移動 : \e[nA +# n 下に移動 : \e[nB +# n 右に移動 : \e[nC +# n 左に移動 : \e[nD +# n 行下移動 : \e[nE +# n 行上移動 : \e[nF +# n 列に移動 : \e[nG +# n,m に移動 : \e[n;;mH or \e[n;mf +# 消去 : \e[0J カーソル以降を消去 +# \e[1J カーソル以前を消去 +# \e[2J 全体を消去 +# 行消去 : \e[0K カーソル以降を消去 +# \e[1K カーソル以前を消去 +# \e[2K 全体を消去 +# スクロール : \e[nS n 行分次にスクロール +# \e[nT n 行分前にスクロール +# SGR : \e[nm +# +# +PS1='\[\e[0m\e[36m\][\u@\h:\W$(__git_ps1 " (%s)")]$ \[\e[0m\e[37m\]' +PS2='>' diff --git a/.bash.d/bashrc_set b/.bash.d/bashrc_set new file mode 100644 index 0000000..afad796 --- /dev/null +++ b/.bash.d/bashrc_set @@ -0,0 +1,38 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_set +## Name : bash 設定ファイル [set オプション] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +# set 設定 +# -o 設定有効 +# +o 設定無効 +# +# set -o emacs # bash の編集モードを emacs モードにする。 [デフォルト] +# set -o vi # bash の編集モードを vi モードにする。 +# set -f (=set -o noglob) # * などによるファイル名の展開を無効化する。 +# set -m (=set -o monitor) # バックグラウンドのジョブ結果を表示する。[デフォルト有効] +# set -o ignoreof # Ctrl+D でシェルを終了しないようにする。 +# set -B (=set -o braceexpand) # ブレース展開を有効にする。 +# set -C (=set -o noclobber) # 既存ファイルへの出力リダイレクトを禁止する。(>|にて可能) +# set -H (=set -o histexpand) # !形式のヒストリ置換を有効にする。 +# set -P (=set -o physical) # ファイルのシンボリック・リンクをたどらない。 +# +# <主にシェルで使用する設定オプション> +# set -e (=set -o errexit) # コマンドが 0 以外のステータスで終了した場合、即終了します。 +# set -u (=set -o nounset) # 置換時に未設定の変数をエラーとして扱います。 +# set -o pipefail # pipe の処理途中で失敗した場合、エラーとする。 +# set -x (=set -o xtrace) # コマンドと実行時の引数を表示する。 +# set -v (=set -o verbose) # シェル入力行を読み取ったときに出力する。 +# set -n (=set -o noexec) # コマンドを読み取るが実行しない(=文法チェックに利用できる)。 +# set -t (=set -o onecmd) # コマンドを1つ読み込み、実行後終了する。 +# +# 上記以外の設定については、help set で確認のこと。 +# +set -o vi + diff --git a/.bash.d/bashrc_shopt b/.bash.d/bashrc_shopt new file mode 100644 index 0000000..cf3c328 --- /dev/null +++ b/.bash.d/bashrc_shopt @@ -0,0 +1,37 @@ +# vim: ts=4 sw=4 sts=4 +################################################################################ +## Script : bashrc_shopt +## Name : bash 設定ファイル [shopt オプション] +## Version : 0.0.1 +## Copyright : 2018-2019 Nomura Kei +## License : BSD-2-Clause +################################################################################ +[[ "$-" != *i* ]] && return +echo "[load] ${BASH_SOURCE:-$0}" + +# shopt 設定 +# -s 設定を有効 +# -u 設定を無効 +# +# shopt -s autocd # PATHを指定すると cd の引数として指定されたものとみなす。 +# shopt -s cdapell # スペルミスがあっても自動補正して cd する。 +# shopt -s checkwinsize # コマンド実行の度にターミナルのウィンドウサイズを確認する。 +# shopt -s cmdhist # 複数行コマンド1つの履歴エントリに登録する。 +# shopt -s direxpand # tab によるパス補完時に変数を展開する。 +# shopt -s dirspell # ディレクトリのスペルミスがあっても自動補完する。 +# shopt -s dotglob # . ではじまるファイルもワイルドカードでマッチする。 +# shopt -s extglob # 拡張パターンマッチング機能を有効にする。 +# shopt -s globstar # ** パターンがパス展開で使われる場合、深さ0以上のディレクトリ、 +# # サブディレクトリのファイルにマッチする。直後に / が続く場合は、 +# # ディレクトリとサブディレクトリのみにマッチする。 +# shopt -s histhappend # シェル終了時に HISTFILE で指定されたファイルに履歴を追加する。 +# shopt -s hostcomplete # @を含む単語を補完する際、ホスト名補完する。 +# shopt -s huponexit # 終了時ジョブに対して SIGHUB シグナルを送信する。 +# shopt -s interactive_comments # 対話モードで # 以降を無視する。 +# shopt -s lithist # cmdhist が有効時、複数行のコマンドをセミコロンではなく +# # 改行区切りで履歴を保存する。 +# shopt -s progcomp # プログラム補完機能が有効になる。 +# shopt -s xpg_echo # echo がデフォルトでバックスラッシュによるエスケープシーケンスを展開する。 +shopt -s cmdhist +shopt -s lithist + diff --git a/.bash.d/git-prompt.sh b/.bash.d/git-prompt.sh new file mode 100644 index 0000000..1d510cd --- /dev/null +++ b/.bash.d/git-prompt.sh @@ -0,0 +1,564 @@ +# bash/zsh git prompt support +# +# Copyright (C) 2006,2007 Shawn O. Pearce +# Distributed under the GNU General Public License, version 2.0. +# +# This script allows you to see repository status in your prompt. +# +# To enable: +# +# 1) Copy this file to somewhere (e.g. ~/.git-prompt.sh). +# 2) Add the following line to your .bashrc/.zshrc: +# source ~/.git-prompt.sh +# 3a) Change your PS1 to call __git_ps1 as +# command-substitution: +# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' +# ZSH: setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ ' +# the optional argument will be used as format string. +# 3b) Alternatively, for a slightly faster prompt, __git_ps1 can +# be used for PROMPT_COMMAND in Bash or for precmd() in Zsh +# with two parameters,
 and , which are strings
+#        you would put in $PS1 before and after the status string
+#        generated by the git-prompt machinery.  e.g.
+#        Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
+#          will show username, at-sign, host, colon, cwd, then
+#          various status string, followed by dollar and SP, as
+#          your prompt.
+#        ZSH:  precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
+#          will show username, pipe, then various status string,
+#          followed by colon, cwd, dollar and SP, as your prompt.
+#        Optionally, you can supply a third argument with a printf
+#        format string to finetune the output of the branch status
+#
+# The repository status will be displayed only if you are currently in a
+# git repository. The %s token is the placeholder for the shown status.
+#
+# The prompt status always includes the current branch name.
+#
+# In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
+# unstaged (*) and staged (+) changes will be shown next to the branch
+# name.  You can configure this per-repository with the
+# bash.showDirtyState variable, which defaults to true once
+# GIT_PS1_SHOWDIRTYSTATE is enabled.
+#
+# You can also see if currently something is stashed, by setting
+# GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed,
+# then a '$' will be shown next to the branch name.
+#
+# If you would like to see if there're untracked files, then you can set
+# GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're untracked
+# files, then a '%' will be shown next to the branch name.  You can
+# configure this per-repository with the bash.showUntrackedFiles
+# variable, which defaults to true once GIT_PS1_SHOWUNTRACKEDFILES is
+# enabled.
+#
+# If you would like to see the difference between HEAD and its upstream,
+# set GIT_PS1_SHOWUPSTREAM="auto".  A "<" indicates you are behind, ">"
+# indicates you are ahead, "<>" indicates you have diverged and "="
+# indicates that there is no difference. You can further control
+# behaviour by setting GIT_PS1_SHOWUPSTREAM to a space-separated list
+# of values:
+#
+#     verbose       show number of commits ahead/behind (+/-) upstream
+#     name          if verbose, then also show the upstream abbrev name
+#     legacy        don't use the '--count' option available in recent
+#                   versions of git-rev-list
+#     git           always compare HEAD to @{upstream}
+#     svn           always compare HEAD to your SVN upstream
+#
+# You can change the separator between the branch name and the above
+# state symbols by setting GIT_PS1_STATESEPARATOR. The default separator
+# is SP.
+#
+# By default, __git_ps1 will compare HEAD to your SVN upstream if it can
+# find one, or @{upstream} otherwise.  Once you have set
+# GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
+# setting the bash.showUpstream config variable.
+#
+# If you would like to see more information about the identity of
+# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
+# to one of these values:
+#
+#     contains      relative to newer annotated tag (v1.6.3.2~35)
+#     branch        relative to newer tag or branch (master~4)
+#     describe      relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
+#     tag           relative to any older tag (v1.6.3.1-13-gdd42c2f)
+#     default       exactly matching tag
+#
+# If you would like a colored hint about the current dirty state, set
+# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
+# the colored output of "git status -sb" and are available only when
+# using __git_ps1 for PROMPT_COMMAND or precmd.
+#
+# If you would like __git_ps1 to do nothing in the case when the current
+# directory is set up to be ignored by git, then set
+# GIT_PS1_HIDE_IF_PWD_IGNORED to a nonempty value. Override this on the
+# repository level by setting bash.hideIfPwdIgnored to "false".
+
+# check whether printf supports -v
+__git_printf_supports_v=
+printf -v __git_printf_supports_v -- '%s' yes >/dev/null 2>&1
+
+# stores the divergence from upstream in $p
+# used by GIT_PS1_SHOWUPSTREAM
+__git_ps1_show_upstream ()
+{
+	local key value
+	local svn_remote svn_url_pattern count n
+	local upstream=git legacy="" verbose="" name=""
+
+	svn_remote=()
+	# get some config options from git-config
+	local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
+	while read -r key value; do
+		case "$key" in
+		bash.showupstream)
+			GIT_PS1_SHOWUPSTREAM="$value"
+			if [[ -z "${GIT_PS1_SHOWUPSTREAM}" ]]; then
+				p=""
+				return
+			fi
+			;;
+		svn-remote.*.url)
+			svn_remote[$((${#svn_remote[@]} + 1))]="$value"
+			svn_url_pattern="$svn_url_pattern\\|$value"
+			upstream=svn+git # default upstream is SVN if available, else git
+			;;
+		esac
+	done <<< "$output"
+
+	# parse configuration values
+	for option in ${GIT_PS1_SHOWUPSTREAM}; do
+		case "$option" in
+		git|svn) upstream="$option" ;;
+		verbose) verbose=1 ;;
+		legacy)  legacy=1  ;;
+		name)    name=1 ;;
+		esac
+	done
+
+	# Find our upstream
+	case "$upstream" in
+	git)    upstream="@{upstream}" ;;
+	svn*)
+		# get the upstream from the "git-svn-id: ..." in a commit message
+		# (git-svn uses essentially the same procedure internally)
+		local -a svn_upstream
+		svn_upstream=($(git log --first-parent -1 \
+					--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
+		if [[ 0 -ne ${#svn_upstream[@]} ]]; then
+			svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
+			svn_upstream=${svn_upstream%@*}
+			local n_stop="${#svn_remote[@]}"
+			for ((n=1; n <= n_stop; n++)); do
+				svn_upstream=${svn_upstream#${svn_remote[$n]}}
+			done
+
+			if [[ -z "$svn_upstream" ]]; then
+				# default branch name for checkouts with no layout:
+				upstream=${GIT_SVN_ID:-git-svn}
+			else
+				upstream=${svn_upstream#/}
+			fi
+		elif [[ "svn+git" = "$upstream" ]]; then
+			upstream="@{upstream}"
+		fi
+		;;
+	esac
+
+	# Find how many commits we are ahead/behind our upstream
+	if [[ -z "$legacy" ]]; then
+		count="$(git rev-list --count --left-right \
+				"$upstream"...HEAD 2>/dev/null)"
+	else
+		# produce equivalent output to --count for older versions of git
+		local commits
+		if commits="$(git rev-list --left-right "$upstream"...HEAD 2>/dev/null)"
+		then
+			local commit behind=0 ahead=0
+			for commit in $commits
+			do
+				case "$commit" in
+				"<"*) ((behind++)) ;;
+				*)    ((ahead++))  ;;
+				esac
+			done
+			count="$behind	$ahead"
+		else
+			count=""
+		fi
+	fi
+
+	# calculate the result
+	if [[ -z "$verbose" ]]; then
+		case "$count" in
+		"") # no upstream
+			p="" ;;
+		"0	0") # equal to upstream
+			p="=" ;;
+		"0	"*) # ahead of upstream
+			p=">" ;;
+		*"	0") # behind upstream
+			p="<" ;;
+		*)	    # diverged from upstream
+			p="<>" ;;
+		esac
+	else
+		case "$count" in
+		"") # no upstream
+			p="" ;;
+		"0	0") # equal to upstream
+			p=" u=" ;;
+		"0	"*) # ahead of upstream
+			p=" u+${count#0	}" ;;
+		*"	0") # behind upstream
+			p=" u-${count%	0}" ;;
+		*)	    # diverged from upstream
+			p=" u+${count#*	}-${count%	*}" ;;
+		esac
+		if [[ -n "$count" && -n "$name" ]]; then
+			__git_ps1_upstream_name=$(git rev-parse \
+				--abbrev-ref "$upstream" 2>/dev/null)
+			if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
+				p="$p \${__git_ps1_upstream_name}"
+			else
+				p="$p ${__git_ps1_upstream_name}"
+				# not needed anymore; keep user's
+				# environment clean
+				unset __git_ps1_upstream_name
+			fi
+		fi
+	fi
+
+}
+
+# Helper function that is meant to be called from __git_ps1.  It
+# injects color codes into the appropriate gitstring variables used
+# to build a gitstring.
+__git_ps1_colorize_gitstring ()
+{
+	if [[ -n ${ZSH_VERSION-} ]]; then
+		local c_red='%F{red}'
+		local c_green='%F{green}'
+		local c_lblue='%F{blue}'
+		local c_clear='%f'
+	else
+		# Using \[ and \] around colors is necessary to prevent
+		# issues with command line editing/browsing/completion!
+		local c_red='\[\e[31m\]'
+		local c_green='\[\e[32m\]'
+		local c_lblue='\[\e[1;34m\]'
+		local c_clear='\[\e[0m\]'
+	fi
+	local bad_color=$c_red
+	local ok_color=$c_green
+	local flags_color="$c_lblue"
+
+	local branch_color=""
+	if [ $detached = no ]; then
+		branch_color="$ok_color"
+	else
+		branch_color="$bad_color"
+	fi
+	c="$branch_color$c"
+
+	z="$c_clear$z"
+	if [ "$w" = "*" ]; then
+		w="$bad_color$w"
+	fi
+	if [ -n "$i" ]; then
+		i="$ok_color$i"
+	fi
+	if [ -n "$s" ]; then
+		s="$flags_color$s"
+	fi
+	if [ -n "$u" ]; then
+		u="$bad_color$u"
+	fi
+	r="$c_clear$r"
+}
+
+# Helper function to read the first line of a file into a variable.
+# __git_eread requires 2 arguments, the file path and the name of the
+# variable, in that order.
+__git_eread ()
+{
+	test -r "$1" && IFS=$'\r\n' read "$2" <"$1"
+}
+
+# see if a cherry-pick or revert is in progress, if the user has committed a
+# conflict resolution with 'git commit' in the middle of a sequence of picks or
+# reverts then CHERRY_PICK_HEAD/REVERT_HEAD will not exist so we have to read
+# the todo file.
+__git_sequencer_status ()
+{
+	local todo
+	if test -f "$g/CHERRY_PICK_HEAD"
+	then
+		r="|CHERRY-PICKING"
+		return 0;
+	elif test -f "$g/REVERT_HEAD"
+	then
+		r="|REVERTING"
+		return 0;
+	elif __git_eread "$g/sequencer/todo" todo
+	then
+		case "$todo" in
+		p[\ \	]|pick[\ \	]*)
+			r="|CHERRY-PICKING"
+			return 0
+		;;
+		revert[\ \	]*)
+			r="|REVERTING"
+			return 0
+		;;
+		esac
+	fi
+	return 1
+}
+
+# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
+# when called from PS1 using command substitution
+# in this mode it prints text to add to bash PS1 prompt (includes branch name)
+#
+# __git_ps1 requires 2 or 3 arguments when called from PROMPT_COMMAND (pc)
+# in that case it _sets_ PS1. The arguments are parts of a PS1 string.
+# when two arguments are given, the first is prepended and the second appended
+# to the state string when assigned to PS1.
+# The optional third parameter will be used as printf format string to further
+# customize the output of the git-status string.
+# In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
+__git_ps1 ()
+{
+	# preserve exit status
+	local exit=$?
+	local pcmode=no
+	local detached=no
+	local ps1pc_start='\u@\h:\w '
+	local ps1pc_end='\$ '
+	local printf_format=' (%s)'
+
+	case "$#" in
+		2|3)	pcmode=yes
+			ps1pc_start="$1"
+			ps1pc_end="$2"
+			printf_format="${3:-$printf_format}"
+			# set PS1 to a plain prompt so that we can
+			# simply return early if the prompt should not
+			# be decorated
+			PS1="$ps1pc_start$ps1pc_end"
+		;;
+		0|1)	printf_format="${1:-$printf_format}"
+		;;
+		*)	return $exit
+		;;
+	esac
+
+	# ps1_expanded:  This variable is set to 'yes' if the shell
+	# subjects the value of PS1 to parameter expansion:
+	#
+	#   * bash does unless the promptvars option is disabled
+	#   * zsh does not unless the PROMPT_SUBST option is set
+	#   * POSIX shells always do
+	#
+	# If the shell would expand the contents of PS1 when drawing
+	# the prompt, a raw ref name must not be included in PS1.
+	# This protects the user from arbitrary code execution via
+	# specially crafted ref names.  For example, a ref named
+	# 'refs/heads/$(IFS=_;cmd=sudo_rm_-rf_/;$cmd)' might cause the
+	# shell to execute 'sudo rm -rf /' when the prompt is drawn.
+	#
+	# Instead, the ref name should be placed in a separate global
+	# variable (in the __git_ps1_* namespace to avoid colliding
+	# with the user's environment) and that variable should be
+	# referenced from PS1.  For example:
+	#
+	#     __git_ps1_foo=$(do_something_to_get_ref_name)
+	#     PS1="...stuff...\${__git_ps1_foo}...stuff..."
+	#
+	# If the shell does not expand the contents of PS1, the raw
+	# ref name must be included in PS1.
+	#
+	# The value of this variable is only relevant when in pcmode.
+	#
+	# Assume that the shell follows the POSIX specification and
+	# expands PS1 unless determined otherwise.  (This is more
+	# likely to be correct if the user has a non-bash, non-zsh
+	# shell and safer than the alternative if the assumption is
+	# incorrect.)
+	#
+	local ps1_expanded=yes
+	[ -z "${ZSH_VERSION-}" ] || [[ -o PROMPT_SUBST ]] || ps1_expanded=no
+	[ -z "${BASH_VERSION-}" ] || shopt -q promptvars || ps1_expanded=no
+
+	local repo_info rev_parse_exit_code
+	repo_info="$(git rev-parse --git-dir --is-inside-git-dir \
+		--is-bare-repository --is-inside-work-tree \
+		--short HEAD 2>/dev/null)"
+	rev_parse_exit_code="$?"
+
+	if [ -z "$repo_info" ]; then
+		return $exit
+	fi
+
+	local short_sha=""
+	if [ "$rev_parse_exit_code" = "0" ]; then
+		short_sha="${repo_info##*$'\n'}"
+		repo_info="${repo_info%$'\n'*}"
+	fi
+	local inside_worktree="${repo_info##*$'\n'}"
+	repo_info="${repo_info%$'\n'*}"
+	local bare_repo="${repo_info##*$'\n'}"
+	repo_info="${repo_info%$'\n'*}"
+	local inside_gitdir="${repo_info##*$'\n'}"
+	local g="${repo_info%$'\n'*}"
+
+	if [ "true" = "$inside_worktree" ] &&
+	   [ -n "${GIT_PS1_HIDE_IF_PWD_IGNORED-}" ] &&
+	   [ "$(git config --bool bash.hideIfPwdIgnored)" != "false" ] &&
+	   git check-ignore -q .
+	then
+		return $exit
+	fi
+
+	local r=""
+	local b=""
+	local step=""
+	local total=""
+	if [ -d "$g/rebase-merge" ]; then
+		__git_eread "$g/rebase-merge/head-name" b
+		__git_eread "$g/rebase-merge/msgnum" step
+		__git_eread "$g/rebase-merge/end" total
+		if [ -f "$g/rebase-merge/interactive" ]; then
+			r="|REBASE-i"
+		else
+			r="|REBASE-m"
+		fi
+	else
+		if [ -d "$g/rebase-apply" ]; then
+			__git_eread "$g/rebase-apply/next" step
+			__git_eread "$g/rebase-apply/last" total
+			if [ -f "$g/rebase-apply/rebasing" ]; then
+				__git_eread "$g/rebase-apply/head-name" b
+				r="|REBASE"
+			elif [ -f "$g/rebase-apply/applying" ]; then
+				r="|AM"
+			else
+				r="|AM/REBASE"
+			fi
+		elif [ -f "$g/MERGE_HEAD" ]; then
+			r="|MERGING"
+		elif __git_sequencer_status; then
+			:
+		elif [ -f "$g/BISECT_LOG" ]; then
+			r="|BISECTING"
+		fi
+
+		if [ -n "$b" ]; then
+			:
+		elif [ -h "$g/HEAD" ]; then
+			# symlink symbolic ref
+			b="$(git symbolic-ref HEAD 2>/dev/null)"
+		else
+			local head=""
+			if ! __git_eread "$g/HEAD" head; then
+				return $exit
+			fi
+			# is it a symbolic ref?
+			b="${head#ref: }"
+			if [ "$head" = "$b" ]; then
+				detached=yes
+				b="$(
+				case "${GIT_PS1_DESCRIBE_STYLE-}" in
+				(contains)
+					git describe --contains HEAD ;;
+				(branch)
+					git describe --contains --all HEAD ;;
+				(tag)
+					git describe --tags HEAD ;;
+				(describe)
+					git describe HEAD ;;
+				(* | default)
+					git describe --tags --exact-match HEAD ;;
+				esac 2>/dev/null)" ||
+
+				b="$short_sha..."
+				b="($b)"
+			fi
+		fi
+	fi
+
+	if [ -n "$step" ] && [ -n "$total" ]; then
+		r="$r $step/$total"
+	fi
+
+	local w=""
+	local i=""
+	local s=""
+	local u=""
+	local c=""
+	local p=""
+
+	if [ "true" = "$inside_gitdir" ]; then
+		if [ "true" = "$bare_repo" ]; then
+			c="BARE:"
+		else
+			b="GIT_DIR!"
+		fi
+	elif [ "true" = "$inside_worktree" ]; then
+		if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&
+		   [ "$(git config --bool bash.showDirtyState)" != "false" ]
+		then
+			git diff --no-ext-diff --quiet || w="*"
+			git diff --no-ext-diff --cached --quiet || i="+"
+			if [ -z "$short_sha" ] && [ -z "$i" ]; then
+				i="#"
+			fi
+		fi
+		if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] &&
+		   git rev-parse --verify --quiet refs/stash >/dev/null
+		then
+			s="$"
+		fi
+
+		if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
+		   [ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
+		   git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' >/dev/null 2>/dev/null
+		then
+			u="%${ZSH_VERSION+%}"
+		fi
+
+		if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
+			__git_ps1_show_upstream
+		fi
+	fi
+
+	local z="${GIT_PS1_STATESEPARATOR-" "}"
+
+	# NO color option unless in PROMPT_COMMAND mode
+	if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
+		__git_ps1_colorize_gitstring
+	fi
+
+	b=${b##refs/heads/}
+	if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
+		__git_ps1_branch_name=$b
+		b="\${__git_ps1_branch_name}"
+	fi
+
+	local f="$w$i$s$u"
+	local gitstring="$c$b${f:+$z$f}$r$p"
+
+	if [ $pcmode = yes ]; then
+		if [ "${__git_printf_supports_v-}" != yes ]; then
+			gitstring=$(printf -- "$printf_format" "$gitstring")
+		else
+			printf -v gitstring -- "$printf_format" "$gitstring"
+		fi
+		PS1="$ps1pc_start$gitstring$ps1pc_end"
+	else
+		printf -- "$printf_format" "$gitstring"
+	fi
+
+	return $exit
+}

diff --git a/.bash.d/bashrc_alias b/.bash.d/bashrc_alias
new file mode 100644
index 0000000..4dde28f
--- /dev/null
+++ b/.bash.d/bashrc_alias
@@ -0,0 +1,18 @@
+# vim: ts=4 sw=4 sts=4
+################################################################################
+## Script    : bashrc_alias
+## Name      : bash 設定ファイル [エイリアス設定]
+## Version   : 0.0.1
+## Copyright : 2018-2019  Nomura Kei
+## License   : BSD-2-Clause
+################################################################################
+[[ "$-" != *i* ]] && return
+echo  "[load] ${BASH_SOURCE:-$0}"
+
+alias ls='ls -F --color=auto  --show-control-chars'
+alias ll='ls -l'
+alias la='ls -a'
+alias cp='cp -i'
+alias mv='cp -i'
+alias rm='rm -i'
+alias grep='grep --color=auto'
diff --git a/.bash.d/bashrc_path b/.bash.d/bashrc_path
new file mode 100644
index 0000000..973fa8e
--- /dev/null
+++ b/.bash.d/bashrc_path
@@ -0,0 +1,17 @@
+# vim: ts=4 sw=4 sts=4
+################################################################################
+## Script    : bashrc_path
+## Name      : bash 設定ファイル [パス設定]
+## Version   : 0.0.1
+## Copyright : 2018-2019  Nomura Kei
+## License   : BSD-2-Clause
+################################################################################
+[[ "$-" != *i* ]] && return
+echo  "[load] ${BASH_SOURCE:-$0}"
+
+PATH=.:~/bin
+PATH=${PATH}:/bin:/sbin
+PATH=${PATH}:/usr/bin:/usr/sbin
+PATH=${PATH}:/usr/local/bin:/usr/local/sbin
+export PATH
+
diff --git a/.bash.d/bashrc_prompt b/.bash.d/bashrc_prompt
new file mode 100644
index 0000000..fce21d0
--- /dev/null
+++ b/.bash.d/bashrc_prompt
@@ -0,0 +1,92 @@
+# vim: ts=4 sw=4 sts=4
+################################################################################
+## Script    : bashrc_prompt
+## Name      : bash 設定ファイル [プロンプト設定]
+## Version   : 0.0.1
+## Copyright : 2018-2019  Nomura Kei
+## License   : BSD-2-Clause
+################################################################################
+[[ "$-" != *i* ]] && return
+echo  "[load] ${BASH_SOURCE:-$0}"
+
+# git-prompt.sh 読み込み
+SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE:-$0}); pwd)
+if [ -f "${SCRIPT_DIR}/git-prompt.sh" ]; then
+	echo "[load] git-prompt.sh"
+	. "${SCRIPT_DIR}/git-prompt.sh"
+fi
+
+
+# プロンプト設定
+#	PS1		: 通常プロンプト定義
+#	PS2		: サブプロンプト定義(コマンド入力未完了の際のプロンプト)
+#
+# 特殊文字指定
+#	\d		: 日付
+#	\e		: エスケープ
+#	\h		: ホスト名(最初の「.」まで)
+#	\H		: ホスト名
+#	\n		: 改行
+#	\s		: シェルの名前
+#	\t		: 現在時刻 (24時間表示 HH:MM:SS)
+#	\T		: 現在時刻 (12時間表示 HH:MM:SS)
+#	\@		: 現在時刻 (12時間表示 [am/pm 形式])
+#	\u		: 現在のユーザー名
+#	\w		: 作業ディレクトリ
+#	\W		: 作業ディレクトリ[当該ディレクトリのみ]
+#	\!		: コマンド履歴番号
+#	\#		: コマンド番号
+#	$		: 実行UIDが0の場合#、それ以外の場合$
+#	\nnn	: 8進数nnnに対応する文字
+#	\[		: 非表示文字シーケンス開始
+#	\]		: 非表示文字シーケンス終了
+#
+# 以下、ANSIエスケープコードで、echo -e による出力にも利用可能です。
+#
+# 装飾
+#	装飾無		: \e[0m
+#	太字		: \e[1m
+#	細字		: \e[2m
+#	イタリック	: \e[3m
+#	下線		: \e[4m
+#	ブリンク	: \e[5m
+#	高速ブリンク: \e[6m		※未対応の端末が多い
+#	反転表示	: \e[7m
+#	表示を隠す	: \e[8m		※コピーは可能
+#	取り消し	: \e[9m
+#
+# 色			: 文字色	高輝度文字	背景色	高輝度背景色
+#	黒色		: \e[30m	\e[90m		\e[40m	\e[100m
+#	赤色		: \e[31m	\e[91m		\e[41m	\e[101m
+#	緑色		: \e[32m	\e[92m		\e[42m	\e[102m
+#	黄色		: \e[33m	\e[93m		\e[43m	\e[103m
+#	青色		: \e[34m	\e[94m		\e[44m	\e[104m
+#	紫色		: \e[35m	\e[95m		\e[45m	\e[105m
+#	水色		: \e[36m	\e[96m		\e[46m	\e[106m
+#	白色		: \e[37m	\e[97m		\e[47m	\e[107m
+#
+#	デフォルト	: \e[39m	\e[49m
+#
+#
+# 移動系
+#	n 上に移動	: \e[nA
+#	n 下に移動	: \e[nB
+#	n 右に移動	: \e[nC
+#	n 左に移動	: \e[nD
+#	n 行下移動	: \e[nE
+#	n 行上移動	: \e[nF
+#	n 列に移動	: \e[nG
+#	n,m に移動	: \e[n;;mH  or \e[n;mf
+#	消去		: \e[0J		カーソル以降を消去
+#				  \e[1J		カーソル以前を消去
+#				  \e[2J		全体を消去
+#	行消去		: \e[0K		カーソル以降を消去
+#				  \e[1K		カーソル以前を消去
+#				  \e[2K		全体を消去
+#	スクロール	: \e[nS		n 行分次にスクロール
+#				  \e[nT		n 行分前にスクロール
+#	SGR			: \e[nm
+#
+#
+PS1='\[\e[0m\e[36m\][\u@\h:\W$(__git_ps1 " (%s)")]$ \[\e[0m\e[37m\]'
+PS2='>'
diff --git a/.bash.d/bashrc_set b/.bash.d/bashrc_set
new file mode 100644
index 0000000..afad796
--- /dev/null
+++ b/.bash.d/bashrc_set
@@ -0,0 +1,38 @@
+# vim: ts=4 sw=4 sts=4
+################################################################################
+## Script    : bashrc_set
+## Name      : bash 設定ファイル [set オプション]
+## Version   : 0.0.1
+## Copyright : 2018-2019  Nomura Kei
+## License   : BSD-2-Clause
+################################################################################
+[[ "$-" != *i* ]] && return
+echo  "[load] ${BASH_SOURCE:-$0}"
+
+# set 設定
+#   -o 設定有効
+#   +o 設定無効
+#
+# set -o emacs					# bash の編集モードを emacs モードにする。 [デフォルト]
+# set -o vi						# bash の編集モードを vi モードにする。
+# set -f (=set -o noglob)		# * などによるファイル名の展開を無効化する。
+# set -m (=set -o monitor)		# バックグラウンドのジョブ結果を表示する。[デフォルト有効]
+# set -o ignoreof				# Ctrl+D でシェルを終了しないようにする。
+# set -B (=set -o braceexpand)	# ブレース展開を有効にする。
+# set -C (=set -o noclobber)	# 既存ファイルへの出力リダイレクトを禁止する。(>|にて可能)
+# set -H (=set -o histexpand)	# !形式のヒストリ置換を有効にする。
+# set -P (=set -o physical)		# ファイルのシンボリック・リンクをたどらない。
+#
+# <主にシェルで使用する設定オプション>
+# set -e (=set -o errexit)		# コマンドが 0 以外のステータスで終了した場合、即終了します。
+# set -u (=set -o nounset)		# 置換時に未設定の変数をエラーとして扱います。
+# set -o pipefail				# pipe の処理途中で失敗した場合、エラーとする。
+# set -x (=set -o xtrace)		# コマンドと実行時の引数を表示する。
+# set -v (=set -o verbose)		# シェル入力行を読み取ったときに出力する。
+# set -n (=set -o noexec)		# コマンドを読み取るが実行しない(=文法チェックに利用できる)。
+# set -t (=set -o onecmd)		# コマンドを1つ読み込み、実行後終了する。
+#
+# 上記以外の設定については、help set で確認のこと。
+#
+set -o vi
+
diff --git a/.bash.d/bashrc_shopt b/.bash.d/bashrc_shopt
new file mode 100644
index 0000000..cf3c328
--- /dev/null
+++ b/.bash.d/bashrc_shopt
@@ -0,0 +1,37 @@
+# vim: ts=4 sw=4 sts=4 
+################################################################################
+## Script    : bashrc_shopt
+## Name      : bash 設定ファイル [shopt オプション]
+## Version   : 0.0.1
+## Copyright : 2018-2019  Nomura Kei
+## License   : BSD-2-Clause
+################################################################################
+[[ "$-" != *i* ]] && return
+echo  "[load] ${BASH_SOURCE:-$0}"
+
+# shopt 設定
+#   -s 設定を有効
+#   -u 設定を無効
+#
+# shopt -s autocd		# PATHを指定すると cd の引数として指定されたものとみなす。
+# shopt -s cdapell		# スペルミスがあっても自動補正して cd する。
+# shopt -s checkwinsize	# コマンド実行の度にターミナルのウィンドウサイズを確認する。
+# shopt -s cmdhist		# 複数行コマンド1つの履歴エントリに登録する。
+# shopt -s direxpand	# tab によるパス補完時に変数を展開する。
+# shopt -s dirspell		# ディレクトリのスペルミスがあっても自動補完する。
+# shopt -s dotglob		# . ではじまるファイルもワイルドカードでマッチする。
+# shopt -s extglob		# 拡張パターンマッチング機能を有効にする。
+# shopt -s globstar		# ** パターンがパス展開で使われる場合、深さ0以上のディレクトリ、
+#						# サブディレクトリのファイルにマッチする。直後に / が続く場合は、
+#			 			# ディレクトリとサブディレクトリのみにマッチする。
+# shopt -s histhappend	# シェル終了時に HISTFILE で指定されたファイルに履歴を追加する。
+# shopt -s hostcomplete	# @を含む単語を補完する際、ホスト名補完する。
+# shopt -s huponexit	# 終了時ジョブに対して SIGHUB シグナルを送信する。
+# shopt -s interactive_comments # 対話モードで # 以降を無視する。
+# shopt -s lithist		# cmdhist が有効時、複数行のコマンドをセミコロンではなく
+#						# 改行区切りで履歴を保存する。
+# shopt -s progcomp		# プログラム補完機能が有効になる。
+# shopt -s xpg_echo		# echo がデフォルトでバックスラッシュによるエスケープシーケンスを展開する。
+shopt -s cmdhist
+shopt -s lithist
+
diff --git a/.bash.d/git-prompt.sh b/.bash.d/git-prompt.sh
new file mode 100644
index 0000000..1d510cd
--- /dev/null
+++ b/.bash.d/git-prompt.sh
@@ -0,0 +1,564 @@
+# bash/zsh git prompt support
+#
+# Copyright (C) 2006,2007 Shawn O. Pearce 
+# Distributed under the GNU General Public License, version 2.0.
+#
+# This script allows you to see repository status in your prompt.
+#
+# To enable:
+#
+#    1) Copy this file to somewhere (e.g. ~/.git-prompt.sh).
+#    2) Add the following line to your .bashrc/.zshrc:
+#        source ~/.git-prompt.sh
+#    3a) Change your PS1 to call __git_ps1 as
+#        command-substitution:
+#        Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
+#        ZSH:  setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
+#        the optional argument will be used as format string.
+#    3b) Alternatively, for a slightly faster prompt, __git_ps1 can
+#        be used for PROMPT_COMMAND in Bash or for precmd() in Zsh
+#        with two parameters, 
 and , which are strings
+#        you would put in $PS1 before and after the status string
+#        generated by the git-prompt machinery.  e.g.
+#        Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
+#          will show username, at-sign, host, colon, cwd, then
+#          various status string, followed by dollar and SP, as
+#          your prompt.
+#        ZSH:  precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
+#          will show username, pipe, then various status string,
+#          followed by colon, cwd, dollar and SP, as your prompt.
+#        Optionally, you can supply a third argument with a printf
+#        format string to finetune the output of the branch status
+#
+# The repository status will be displayed only if you are currently in a
+# git repository. The %s token is the placeholder for the shown status.
+#
+# The prompt status always includes the current branch name.
+#
+# In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
+# unstaged (*) and staged (+) changes will be shown next to the branch
+# name.  You can configure this per-repository with the
+# bash.showDirtyState variable, which defaults to true once
+# GIT_PS1_SHOWDIRTYSTATE is enabled.
+#
+# You can also see if currently something is stashed, by setting
+# GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed,
+# then a '$' will be shown next to the branch name.
+#
+# If you would like to see if there're untracked files, then you can set
+# GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're untracked
+# files, then a '%' will be shown next to the branch name.  You can
+# configure this per-repository with the bash.showUntrackedFiles
+# variable, which defaults to true once GIT_PS1_SHOWUNTRACKEDFILES is
+# enabled.
+#
+# If you would like to see the difference between HEAD and its upstream,
+# set GIT_PS1_SHOWUPSTREAM="auto".  A "<" indicates you are behind, ">"
+# indicates you are ahead, "<>" indicates you have diverged and "="
+# indicates that there is no difference. You can further control
+# behaviour by setting GIT_PS1_SHOWUPSTREAM to a space-separated list
+# of values:
+#
+#     verbose       show number of commits ahead/behind (+/-) upstream
+#     name          if verbose, then also show the upstream abbrev name
+#     legacy        don't use the '--count' option available in recent
+#                   versions of git-rev-list
+#     git           always compare HEAD to @{upstream}
+#     svn           always compare HEAD to your SVN upstream
+#
+# You can change the separator between the branch name and the above
+# state symbols by setting GIT_PS1_STATESEPARATOR. The default separator
+# is SP.
+#
+# By default, __git_ps1 will compare HEAD to your SVN upstream if it can
+# find one, or @{upstream} otherwise.  Once you have set
+# GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
+# setting the bash.showUpstream config variable.
+#
+# If you would like to see more information about the identity of
+# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
+# to one of these values:
+#
+#     contains      relative to newer annotated tag (v1.6.3.2~35)
+#     branch        relative to newer tag or branch (master~4)
+#     describe      relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
+#     tag           relative to any older tag (v1.6.3.1-13-gdd42c2f)
+#     default       exactly matching tag
+#
+# If you would like a colored hint about the current dirty state, set
+# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
+# the colored output of "git status -sb" and are available only when
+# using __git_ps1 for PROMPT_COMMAND or precmd.
+#
+# If you would like __git_ps1 to do nothing in the case when the current
+# directory is set up to be ignored by git, then set
+# GIT_PS1_HIDE_IF_PWD_IGNORED to a nonempty value. Override this on the
+# repository level by setting bash.hideIfPwdIgnored to "false".
+
+# check whether printf supports -v
+__git_printf_supports_v=
+printf -v __git_printf_supports_v -- '%s' yes >/dev/null 2>&1
+
+# stores the divergence from upstream in $p
+# used by GIT_PS1_SHOWUPSTREAM
+__git_ps1_show_upstream ()
+{
+	local key value
+	local svn_remote svn_url_pattern count n
+	local upstream=git legacy="" verbose="" name=""
+
+	svn_remote=()
+	# get some config options from git-config
+	local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
+	while read -r key value; do
+		case "$key" in
+		bash.showupstream)
+			GIT_PS1_SHOWUPSTREAM="$value"
+			if [[ -z "${GIT_PS1_SHOWUPSTREAM}" ]]; then
+				p=""
+				return
+			fi
+			;;
+		svn-remote.*.url)
+			svn_remote[$((${#svn_remote[@]} + 1))]="$value"
+			svn_url_pattern="$svn_url_pattern\\|$value"
+			upstream=svn+git # default upstream is SVN if available, else git
+			;;
+		esac
+	done <<< "$output"
+
+	# parse configuration values
+	for option in ${GIT_PS1_SHOWUPSTREAM}; do
+		case "$option" in
+		git|svn) upstream="$option" ;;
+		verbose) verbose=1 ;;
+		legacy)  legacy=1  ;;
+		name)    name=1 ;;
+		esac
+	done
+
+	# Find our upstream
+	case "$upstream" in
+	git)    upstream="@{upstream}" ;;
+	svn*)
+		# get the upstream from the "git-svn-id: ..." in a commit message
+		# (git-svn uses essentially the same procedure internally)
+		local -a svn_upstream
+		svn_upstream=($(git log --first-parent -1 \
+					--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
+		if [[ 0 -ne ${#svn_upstream[@]} ]]; then
+			svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
+			svn_upstream=${svn_upstream%@*}
+			local n_stop="${#svn_remote[@]}"
+			for ((n=1; n <= n_stop; n++)); do
+				svn_upstream=${svn_upstream#${svn_remote[$n]}}
+			done
+
+			if [[ -z "$svn_upstream" ]]; then
+				# default branch name for checkouts with no layout:
+				upstream=${GIT_SVN_ID:-git-svn}
+			else
+				upstream=${svn_upstream#/}
+			fi
+		elif [[ "svn+git" = "$upstream" ]]; then
+			upstream="@{upstream}"
+		fi
+		;;
+	esac
+
+	# Find how many commits we are ahead/behind our upstream
+	if [[ -z "$legacy" ]]; then
+		count="$(git rev-list --count --left-right \
+				"$upstream"...HEAD 2>/dev/null)"
+	else
+		# produce equivalent output to --count for older versions of git
+		local commits
+		if commits="$(git rev-list --left-right "$upstream"...HEAD 2>/dev/null)"
+		then
+			local commit behind=0 ahead=0
+			for commit in $commits
+			do
+				case "$commit" in
+				"<"*) ((behind++)) ;;
+				*)    ((ahead++))  ;;
+				esac
+			done
+			count="$behind	$ahead"
+		else
+			count=""
+		fi
+	fi
+
+	# calculate the result
+	if [[ -z "$verbose" ]]; then
+		case "$count" in
+		"") # no upstream
+			p="" ;;
+		"0	0") # equal to upstream
+			p="=" ;;
+		"0	"*) # ahead of upstream
+			p=">" ;;
+		*"	0") # behind upstream
+			p="<" ;;
+		*)	    # diverged from upstream
+			p="<>" ;;
+		esac
+	else
+		case "$count" in
+		"") # no upstream
+			p="" ;;
+		"0	0") # equal to upstream
+			p=" u=" ;;
+		"0	"*) # ahead of upstream
+			p=" u+${count#0	}" ;;
+		*"	0") # behind upstream
+			p=" u-${count%	0}" ;;
+		*)	    # diverged from upstream
+			p=" u+${count#*	}-${count%	*}" ;;
+		esac
+		if [[ -n "$count" && -n "$name" ]]; then
+			__git_ps1_upstream_name=$(git rev-parse \
+				--abbrev-ref "$upstream" 2>/dev/null)
+			if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
+				p="$p \${__git_ps1_upstream_name}"
+			else
+				p="$p ${__git_ps1_upstream_name}"
+				# not needed anymore; keep user's
+				# environment clean
+				unset __git_ps1_upstream_name
+			fi
+		fi
+	fi
+
+}
+
+# Helper function that is meant to be called from __git_ps1.  It
+# injects color codes into the appropriate gitstring variables used
+# to build a gitstring.
+__git_ps1_colorize_gitstring ()
+{
+	if [[ -n ${ZSH_VERSION-} ]]; then
+		local c_red='%F{red}'
+		local c_green='%F{green}'
+		local c_lblue='%F{blue}'
+		local c_clear='%f'
+	else
+		# Using \[ and \] around colors is necessary to prevent
+		# issues with command line editing/browsing/completion!
+		local c_red='\[\e[31m\]'
+		local c_green='\[\e[32m\]'
+		local c_lblue='\[\e[1;34m\]'
+		local c_clear='\[\e[0m\]'
+	fi
+	local bad_color=$c_red
+	local ok_color=$c_green
+	local flags_color="$c_lblue"
+
+	local branch_color=""
+	if [ $detached = no ]; then
+		branch_color="$ok_color"
+	else
+		branch_color="$bad_color"
+	fi
+	c="$branch_color$c"
+
+	z="$c_clear$z"
+	if [ "$w" = "*" ]; then
+		w="$bad_color$w"
+	fi
+	if [ -n "$i" ]; then
+		i="$ok_color$i"
+	fi
+	if [ -n "$s" ]; then
+		s="$flags_color$s"
+	fi
+	if [ -n "$u" ]; then
+		u="$bad_color$u"
+	fi
+	r="$c_clear$r"
+}
+
+# Helper function to read the first line of a file into a variable.
+# __git_eread requires 2 arguments, the file path and the name of the
+# variable, in that order.
+__git_eread ()
+{
+	test -r "$1" && IFS=$'\r\n' read "$2" <"$1"
+}
+
+# see if a cherry-pick or revert is in progress, if the user has committed a
+# conflict resolution with 'git commit' in the middle of a sequence of picks or
+# reverts then CHERRY_PICK_HEAD/REVERT_HEAD will not exist so we have to read
+# the todo file.
+__git_sequencer_status ()
+{
+	local todo
+	if test -f "$g/CHERRY_PICK_HEAD"
+	then
+		r="|CHERRY-PICKING"
+		return 0;
+	elif test -f "$g/REVERT_HEAD"
+	then
+		r="|REVERTING"
+		return 0;
+	elif __git_eread "$g/sequencer/todo" todo
+	then
+		case "$todo" in
+		p[\ \	]|pick[\ \	]*)
+			r="|CHERRY-PICKING"
+			return 0
+		;;
+		revert[\ \	]*)
+			r="|REVERTING"
+			return 0
+		;;
+		esac
+	fi
+	return 1
+}
+
+# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
+# when called from PS1 using command substitution
+# in this mode it prints text to add to bash PS1 prompt (includes branch name)
+#
+# __git_ps1 requires 2 or 3 arguments when called from PROMPT_COMMAND (pc)
+# in that case it _sets_ PS1. The arguments are parts of a PS1 string.
+# when two arguments are given, the first is prepended and the second appended
+# to the state string when assigned to PS1.
+# The optional third parameter will be used as printf format string to further
+# customize the output of the git-status string.
+# In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
+__git_ps1 ()
+{
+	# preserve exit status
+	local exit=$?
+	local pcmode=no
+	local detached=no
+	local ps1pc_start='\u@\h:\w '
+	local ps1pc_end='\$ '
+	local printf_format=' (%s)'
+
+	case "$#" in
+		2|3)	pcmode=yes
+			ps1pc_start="$1"
+			ps1pc_end="$2"
+			printf_format="${3:-$printf_format}"
+			# set PS1 to a plain prompt so that we can
+			# simply return early if the prompt should not
+			# be decorated
+			PS1="$ps1pc_start$ps1pc_end"
+		;;
+		0|1)	printf_format="${1:-$printf_format}"
+		;;
+		*)	return $exit
+		;;
+	esac
+
+	# ps1_expanded:  This variable is set to 'yes' if the shell
+	# subjects the value of PS1 to parameter expansion:
+	#
+	#   * bash does unless the promptvars option is disabled
+	#   * zsh does not unless the PROMPT_SUBST option is set
+	#   * POSIX shells always do
+	#
+	# If the shell would expand the contents of PS1 when drawing
+	# the prompt, a raw ref name must not be included in PS1.
+	# This protects the user from arbitrary code execution via
+	# specially crafted ref names.  For example, a ref named
+	# 'refs/heads/$(IFS=_;cmd=sudo_rm_-rf_/;$cmd)' might cause the
+	# shell to execute 'sudo rm -rf /' when the prompt is drawn.
+	#
+	# Instead, the ref name should be placed in a separate global
+	# variable (in the __git_ps1_* namespace to avoid colliding
+	# with the user's environment) and that variable should be
+	# referenced from PS1.  For example:
+	#
+	#     __git_ps1_foo=$(do_something_to_get_ref_name)
+	#     PS1="...stuff...\${__git_ps1_foo}...stuff..."
+	#
+	# If the shell does not expand the contents of PS1, the raw
+	# ref name must be included in PS1.
+	#
+	# The value of this variable is only relevant when in pcmode.
+	#
+	# Assume that the shell follows the POSIX specification and
+	# expands PS1 unless determined otherwise.  (This is more
+	# likely to be correct if the user has a non-bash, non-zsh
+	# shell and safer than the alternative if the assumption is
+	# incorrect.)
+	#
+	local ps1_expanded=yes
+	[ -z "${ZSH_VERSION-}" ] || [[ -o PROMPT_SUBST ]] || ps1_expanded=no
+	[ -z "${BASH_VERSION-}" ] || shopt -q promptvars || ps1_expanded=no
+
+	local repo_info rev_parse_exit_code
+	repo_info="$(git rev-parse --git-dir --is-inside-git-dir \
+		--is-bare-repository --is-inside-work-tree \
+		--short HEAD 2>/dev/null)"
+	rev_parse_exit_code="$?"
+
+	if [ -z "$repo_info" ]; then
+		return $exit
+	fi
+
+	local short_sha=""
+	if [ "$rev_parse_exit_code" = "0" ]; then
+		short_sha="${repo_info##*$'\n'}"
+		repo_info="${repo_info%$'\n'*}"
+	fi
+	local inside_worktree="${repo_info##*$'\n'}"
+	repo_info="${repo_info%$'\n'*}"
+	local bare_repo="${repo_info##*$'\n'}"
+	repo_info="${repo_info%$'\n'*}"
+	local inside_gitdir="${repo_info##*$'\n'}"
+	local g="${repo_info%$'\n'*}"
+
+	if [ "true" = "$inside_worktree" ] &&
+	   [ -n "${GIT_PS1_HIDE_IF_PWD_IGNORED-}" ] &&
+	   [ "$(git config --bool bash.hideIfPwdIgnored)" != "false" ] &&
+	   git check-ignore -q .
+	then
+		return $exit
+	fi
+
+	local r=""
+	local b=""
+	local step=""
+	local total=""
+	if [ -d "$g/rebase-merge" ]; then
+		__git_eread "$g/rebase-merge/head-name" b
+		__git_eread "$g/rebase-merge/msgnum" step
+		__git_eread "$g/rebase-merge/end" total
+		if [ -f "$g/rebase-merge/interactive" ]; then
+			r="|REBASE-i"
+		else
+			r="|REBASE-m"
+		fi
+	else
+		if [ -d "$g/rebase-apply" ]; then
+			__git_eread "$g/rebase-apply/next" step
+			__git_eread "$g/rebase-apply/last" total
+			if [ -f "$g/rebase-apply/rebasing" ]; then
+				__git_eread "$g/rebase-apply/head-name" b
+				r="|REBASE"
+			elif [ -f "$g/rebase-apply/applying" ]; then
+				r="|AM"
+			else
+				r="|AM/REBASE"
+			fi
+		elif [ -f "$g/MERGE_HEAD" ]; then
+			r="|MERGING"
+		elif __git_sequencer_status; then
+			:
+		elif [ -f "$g/BISECT_LOG" ]; then
+			r="|BISECTING"
+		fi
+
+		if [ -n "$b" ]; then
+			:
+		elif [ -h "$g/HEAD" ]; then
+			# symlink symbolic ref
+			b="$(git symbolic-ref HEAD 2>/dev/null)"
+		else
+			local head=""
+			if ! __git_eread "$g/HEAD" head; then
+				return $exit
+			fi
+			# is it a symbolic ref?
+			b="${head#ref: }"
+			if [ "$head" = "$b" ]; then
+				detached=yes
+				b="$(
+				case "${GIT_PS1_DESCRIBE_STYLE-}" in
+				(contains)
+					git describe --contains HEAD ;;
+				(branch)
+					git describe --contains --all HEAD ;;
+				(tag)
+					git describe --tags HEAD ;;
+				(describe)
+					git describe HEAD ;;
+				(* | default)
+					git describe --tags --exact-match HEAD ;;
+				esac 2>/dev/null)" ||
+
+				b="$short_sha..."
+				b="($b)"
+			fi
+		fi
+	fi
+
+	if [ -n "$step" ] && [ -n "$total" ]; then
+		r="$r $step/$total"
+	fi
+
+	local w=""
+	local i=""
+	local s=""
+	local u=""
+	local c=""
+	local p=""
+
+	if [ "true" = "$inside_gitdir" ]; then
+		if [ "true" = "$bare_repo" ]; then
+			c="BARE:"
+		else
+			b="GIT_DIR!"
+		fi
+	elif [ "true" = "$inside_worktree" ]; then
+		if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&
+		   [ "$(git config --bool bash.showDirtyState)" != "false" ]
+		then
+			git diff --no-ext-diff --quiet || w="*"
+			git diff --no-ext-diff --cached --quiet || i="+"
+			if [ -z "$short_sha" ] && [ -z "$i" ]; then
+				i="#"
+			fi
+		fi
+		if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] &&
+		   git rev-parse --verify --quiet refs/stash >/dev/null
+		then
+			s="$"
+		fi
+
+		if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
+		   [ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
+		   git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' >/dev/null 2>/dev/null
+		then
+			u="%${ZSH_VERSION+%}"
+		fi
+
+		if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
+			__git_ps1_show_upstream
+		fi
+	fi
+
+	local z="${GIT_PS1_STATESEPARATOR-" "}"
+
+	# NO color option unless in PROMPT_COMMAND mode
+	if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
+		__git_ps1_colorize_gitstring
+	fi
+
+	b=${b##refs/heads/}
+	if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
+		__git_ps1_branch_name=$b
+		b="\${__git_ps1_branch_name}"
+	fi
+
+	local f="$w$i$s$u"
+	local gitstring="$c$b${f:+$z$f}$r$p"
+
+	if [ $pcmode = yes ]; then
+		if [ "${__git_printf_supports_v-}" != yes ]; then
+			gitstring=$(printf -- "$printf_format" "$gitstring")
+		else
+			printf -v gitstring -- "$printf_format" "$gitstring"
+		fi
+		PS1="$ps1pc_start$gitstring$ps1pc_end"
+	else
+		printf -- "$printf_format" "$gitstring"
+	fi
+
+	return $exit
+}
diff --git a/.bashrc b/.bashrc
new file mode 100644
index 0000000..75288ab
--- /dev/null
+++ b/.bashrc
@@ -0,0 +1,168 @@
+# vim: ts=4 sw=4 sts=4
+################################################################################
+## Script    : .bashrc
+## Name      : bash 設定ファイル
+## Version   : 0.0.1
+## Copyright : 2018-2019  Nomura Kei
+## License   : BSD-2-Clause
+################################################################################
+
+# 対話モードでない場合は、終了する。
+# [理由] .bashrc で標準出力/標準エラー出力等をした際、rsync などが失敗するため
+[[ "$-" != *i* ]] && return
+
+
+# 各種設定ファイルを読み込む。
+for CONF_FILE in `\ls -1 .bash.d/bashrc_* 2> /dev/null`; do
+	. ${CONF_FILE}
+done
+
+
+# システムに依存のファイルを読み込む
+UNAME=`uname`
+for CONF_FILE in `\ls -1 .bash.d/bashrc-${UNAME}* 2> /dev/null`; do
+	. ${CONF_FILE}
+done
+
+
+# 端末に応じた設定 ファイルを読み込む
+for CONF_FILE in `\ls -1 .bash.d/bashrc-${TERM}* 2> /dev/null`; do
+	. ${CONF_FILE}
+done
+
+
+# ホストに応じた設定 ファイルを読み込む
+HOSTNAME=`hostname`
+for CONF_FILE in `\ls -1 .bashrc/bashrc-${HOSTNAME}* 2> /dev/null`; do
+	. ${CONF_FILE}
+done
+
+
+
+# Completion options
+#
+# These completion tuning parameters change the default behavior of bash_completion:
+#
+#
+# Define to avoid stripping description in --option=description of './configure --help'
+# COMP_CONFIGURE_HINTS=1
+#
+# Define to avoid flattening internal contents of tar files
+# COMP_TAR_INTERNAL_PATHS=1
+#
+# Uncomment to turn on programmable completion enhancements.
+# Any completions you add in ~/.bash_completion are sourced last.
+# [[ -f /etc/bash_completion ]] && . /etc/bash_completion
+
+# History Options
+#
+# Don't put duplicate lines in the history.
+# export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
+#
+# Ignore some controlling instructions
+# HISTIGNORE is a colon-delimited list of patterns which should be excluded.
+# The '&' is a special pattern which suppresses duplicate entries.
+# export HISTIGNORE=$'[ \t]*:&:[fb]g:exit'
+# export HISTIGNORE=$'[ \t]*:&:[fb]g:exit:ls' # Ignore the ls command as well
+#
+# Whenever displaying the prompt, write the previous line to disk
+# export PROMPT_COMMAND="history -a"
+
+# Aliases
+# Misc :)
+# alias less='less -r'                          # raw control characters
+# alias whence='type -a'                        # where, of a sort
+# alias grep='grep --color'                     # show differences in colour
+# alias egrep='egrep --color=auto'              # show differences in colour
+# alias fgrep='fgrep --color=auto'              # show differences in colour
+#
+# Some shortcuts for different directory listings
+# alias ls='ls -hF --color=tty'                 # classify files in colour
+# alias dir='ls --color=auto --format=vertical'
+# alias vdir='ls --color=auto --format=long'
+# alias ll='ls -l'                              # long list
+# alias la='ls -A'                              # all but . and ..
+# alias l='ls -CF'                              #
+
+# Umask
+#
+# /etc/profile sets 022, removing write perms to group + others.
+# Set a more restrictive umask: i.e. no exec perms for others:
+# umask 027
+# Paranoid: neither group nor others have any perms:
+# umask 077
+
+# Functions
+#
+# Some people use a different file for functions
+# if [ -f "${HOME}/.bash_functions" ]; then
+#   source "${HOME}/.bash_functions"
+# fi
+#
+# Some example functions:
+#
+# a) function settitle
+settitle () 
+{ 
+	echo -ne "\e]2;$@\a\e]1;$@\a"; 
+}
+# 
+# b) function cd_func
+# This function defines a 'cd' replacement function capable of keeping, 
+# displaying and accessing history of visited directories, up to 10 entries.
+# To use it, uncomment it, source this file and try 'cd --'.
+# acd_func 1.0.5, 10-nov-2004
+# Petar Marinov, http:/geocities.com/h2428, this is public domain
+# cd_func ()
+# {
+#   local x2 the_new_dir adir index
+#   local -i cnt
+# 
+#   if [[ $1 ==  "--" ]]; then
+#     dirs -v
+#     return 0
+#   fi
+# 
+#   the_new_dir=$1
+#   [[ -z $1 ]] && the_new_dir=$HOME
+# 
+#   if [[ ${the_new_dir:0:1} == '-' ]]; then
+#     #
+#     # Extract dir N from dirs
+#     index=${the_new_dir:1}
+#     [[ -z $index ]] && index=1
+#     adir=$(dirs +$index)
+#     [[ -z $adir ]] && return 1
+#     the_new_dir=$adir
+#   fi
+# 
+#   #
+#   # '~' has to be substituted by ${HOME}
+#   [[ ${the_new_dir:0:1} == '~' ]] && the_new_dir="${HOME}${the_new_dir:1}"
+# 
+#   #
+#   # Now change to the new dir and add to the top of the stack
+#   pushd "${the_new_dir}" > /dev/null
+#   [[ $? -ne 0 ]] && return 1
+#   the_new_dir=$(pwd)
+# 
+#   #
+#   # Trim down everything beyond 11th entry
+#   popd -n +11 2>/dev/null 1>/dev/null
+# 
+#   #
+#   # Remove any other occurence of this dir, skipping the top of the stack
+#   for ((cnt=1; cnt <= 10; cnt++)); do
+#     x2=$(dirs +${cnt} 2>/dev/null)
+#     [[ $? -ne 0 ]] && return 0
+#     [[ ${x2:0:1} == '~' ]] && x2="${HOME}${x2:1}"
+#     if [[ "${x2}" == "${the_new_dir}" ]]; then
+#       popd -n +$cnt 2>/dev/null 1>/dev/null
+#       cnt=cnt-1
+#     fi
+#   done
+# 
+#   return 0
+# }
+# 
+# alias cd=cd_func