1. ホーム
  2. bash

[解決済み] Bashを使ったコマンドライントリックで一番好きなものは何ですか?[クローズド]

2022-04-27 04:49:58

質問

を使う方法は、誰もが知っています。 <ctrl>-R を使えば、履歴の逆引きができることをご存知ですか? <ctrl>-S を設定すると、前方検索が可能になります。 stty stop "" ? また、bind -pを実行すると、すべてのキーボードショートカットがリストアップされるのを試したことがありますか? Mac OS Xのデフォルトでは455以上あります。

bashのキーボードショートカットやショップの設定など、あなたのお気に入りのトリックは何ですか?

解決方法は?

コマンドを実行するとき、前のコマンドの引数を指定して実行したいことがあります。 そんなときは、このショートカットを使ってください。

$ mkdir /tmp/new
$ cd !!:*

時々、ファイルのリストに対してたくさんのコマンドを実行する必要がある場合、findを使う代わりに、1行ループを抜け出すことがあります。

for file in *.wav; do lame "$file" "$(basename "$file" .wav).mp3" ; done;

.bash_login (または .bashrc) でコマンドラインの履歴オプションを設定すると、本当に便利です。 以下は、私がMacbook Proで使っている設定の数々です。

以下のように設定すると、bashは履歴の中の重複したコマンドを消去します。

export HISTCONTROL="erasedups:ignoreboth"

また、履歴のサイズもかなり大きくジャッキアップしています。 なぜでしょう? 今のマイクロプロセッサーでは、何も遅くなることはないようです。

export HISTFILESIZE=500000
export HISTSIZE=100000

もうひとつは、履歴からいくつかのコマンドを無視することです。 終了コマンドを覚えておく必要はありません。

export HISTIGNORE="&:[ ]*:exit"

histappendは絶対に設定したいところです。 そうしないと、終了時にbashが履歴を上書きしてしまいます。

shopt -s histappend

もうひとつ、私が使っているのはcmdhistというオプションです。 これは、複数行のコマンドを1つのコマンドとして履歴に保存することができます。

shopt -s cmdhist

最後に、Mac OS Xでは(viモードを使用していない場合)、<CTRL>-Sをスクロールストップからリセットしてください。 これにより、bashがこれを前方検索と解釈するのを防ぐことができます。

stty stop ""