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 + l画面をクリア。カレント行を表示
Ctrl + dログアウト
Ctrl + a行頭へ移動
Ctrl + e行末へ移動
Ctrl + uカーソルの左を削除
Ctrl + kカーソルの右を削除
Ctrl + wカーソルの右を削除
Ctrl + y削除した部分をペースト
TABファイルやコマンドの自動補完
Ctrl + rコマンドヒストリ
!!直前のコマンドを再実行
Ctrl + z現在のジョブを一時停止
fg:元に戻す
bg:裏に回す
Ctrl + c現在のジョブの強制終了

.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: 2023-06-13 (火) 10:43:31