Bash

記事:


"--" : 入力オプションでは無い事を示す


bash_completion: コマンド補完


保存件数を変更

HISTSIZE,HISTFILESIZEを大きい値(例:10万件, ~/.bash_historyが380KB程度)にするとbashの動作が遅くなったので注意。


historyコマンドで日付を表示


~/.bashrc を ~/.bash.d/ に分割する

長くなりがちな ~/.bashrc を ~/.bash.d/*.sh に分割する。
ansible等で管理しやすくなる

mkdir ~/.bash.d

vim ~/.bashrc
--
if [ -d "${HOME}/.bash.d" ] ; then
    for f in "${HOME}"/.bash.d/*.sh ; do
        [ -x "$f" ] && . "$f"
    done
    unset f
fi
--

# 例: colordiff
vim ~/.bash.d/colordiff.sh
--
if $(type colordiff > /dev/null 2>&1);then
  alias diff='colordiff -u'
else
  alias diff='diff -u'
fi
--
chmod +x ~/.bash.d/*.sh
source ~/.bashrc

bashのfunctionをxargsで使う

function say_hello() { echo "Hello, world: $1"; }
export -f say_hello
ls | xargs -i bash -c "say_hello {}"

bashショートカット

よく使う

カーソル移動

キー機能
Ctrl-a行頭に移動
Ctrl-e行末に移動
Alt-f次の単語に移動(前方)
Alt-b前の単語に移動(後方)
Ctrl-f1文字前進
Ctrl-b1文字後退

削除系

キー機能
Ctrl-wカーソル前の単語を削除
Alt-dカーソル後の単語を削除
Ctrl-uカーソルから行頭まで削除
Ctrl-kカーソルから行末まで削除
Ctrl-dカーソル位置の文字を削除
Ctrl-hカーソル前の文字を削除(Backspace)

履歴操作

キー機能
Ctrl-p前のコマンド(↑と同じ)
Ctrl-n次のコマンド(↓と同じ)
Ctrl-r履歴を逆方向検索
Ctrl-s履歴を順方向検索
Alt-.前のコマンドの最後の引数を挿入

編集・その他

キー機能
Ctrl-l画面をクリア
Ctrl-y最後に削除したテキストを貼り付け(yank)
Ctrl-tカーソル前の2文字を入れ替え
Alt-tカーソル前の2単語を入れ替え
Ctrl-_アンドゥ(直前の操作を取り消し)
Ctrl-c現在の入力をキャンセル
Ctrl-dEOFを送信(空行でログアウト)
Ctrl-zプロセスを一時停止(バックグラウンドに)

.bash_profile と .bashrcの違い

結論: ~/.bashrc だけ使う。 ~/.bash_profile はデフォルトのままで良い。

/etc/profile, /etc/profile.d/全ユーザ共通。ログインした時。
~/.bash_profile/etc/profileの次
~/.bash_loginログイン後、~/.bash_profile が無い場合
~/.profileログイン後、~/.bash_login が無い場合
~/.bashrc新しいbashシェルが起動した時
~/.bash_logoutログインしたシェルを終了する時

bashでコマンドヒストリー検索

↑ or CTRL+P
前の履歴
↓ or CTRL+N
次の履歴
CTRL+R
後方インクリメンタル検索。押す度に検索。
ESC or CTRL+G
インクリメンタル検索の中止
CTRL+S
ターミナルロック or 前方インクリメンタル検索(押す度に検索)
CTRL+Q
ターミナルロック解除

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2025-12-01 (月) 15:42:57