При выполнении команд иногда я хочу запустить команду с предыдущими аргументами. Для этого вы можете использовать этот ярлык:
$ mkdir /tmp/new
$ cd !!:*
Иногда вместо использования find я разрываю однострочный цикл, если мне нужно выполнить несколько команд в списке файлов.
for file in *.wav; do lame "$file" "$(basename "$file" .wav).mp3" ; done;
Настройка параметров истории командной строки в моем .bash_login (или .bashrc) действительно полезна. Ниже приведен список настроек, которые я использую на своем Macbook Pro.
Установка следующего делает bash erase дублирующимися командами в вашей истории:
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 ""