Під час виконання команд іноді мені хочеться запустити команду з попередніми аргументами. Для цього ви можете скористатись цим ярликом:
$ mkdir /tmp/new
$ cd !!:*
Іноді, замість використання знахідки, я розбиваю одно рядковий цикл, якщо мені потрібно виконати купу команд у списку файлів.
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"
Ви обов'язково хочете встановити йогододаток. В іншому випадку bash перезаписує вашу історію під час виходу.
shopt -s histappend
Ще один варіант, який я використовую - cmdhist. Це дозволяє зберігати багаторядкові команди в історію як одну команду.
shopt -s cmdhist
Нарешті, у Mac OS X (якщо ви не використовуєте режим vi), ви захочете скинути <CTRL> -S від зупинки прокрутки. Це заважає Bash мати можливість інтерпретувати його як пошук вперед.
stty stop ""