Несколько советов по bash

Тут приведены некоторые полезные хитрости, направленные на более удобное использование командной строки. Все мы не хотим повторно набирать какую-то длинную команду и ищем ее в истории. Тут – пара трюков от том, как можно энто самое удобство малость повысить.

1. Потеря комманд в .history

Многие пользуются стандартными гномовским или кдешным эмуляторами терминала. У них есть возможность открывать в одном окне несколько оболочек – каждую в отдельной вкладке.

bash по умолчанию пишет в историю набранные за сеанс команды только при своем закрытии (перед самоликвидацией). Поэтому при открытии нового терминала в другой вкладке вы не увидите только что набранные команды из первой вкладки – они еще не записаны в хистори.

К тому же закрыв первый терминал, а потом второй вы не найдете в истории команд набранных в первом терминале. Потому что по умолчанию bash не дописывает файл .history, а переписывает.

Исправить ситуацию можно, дописав в конфигурационный файл ~/.bashrc пару строк

shopt -s histappend
PROMPT_COMMAND='history -a'

Теперь каждая введенная вами команда будет писаться в историю сразу же. Не бойтесь – дырку на жестком месте такая конфигурация не протрет. Не так уж часто вы команды в баше набираете. Да и слава богу кеширование дисков пока еще рулит.

2. Эвристическое исправление ошибок директорий

Если дописать такую строчку

shopt -s cdspell

то bash будет пытаться исправлять допущенные вами опечатки (пропуски и перестановки символов, например /ect/init.d вместо /etc/init.d) в пути у команды cd. Не бойтесь, у rm такая фича работать уже не будет. Только у cd.

3. Не писать в историю подряд идущие строки-дубликаты

Пишем в ~/.bashrc

export HISTCONTROL="ignoredups"

А если вы не хотите, чтобы в историю попадали вызовы каких-то “неинформативных” команд, то их логирование можно запретить:

export HISTIGNORE="&:ls:[bf]g:exit"

После этой команды в хистори не будут писаться команды &, ls, bg, fg, exit. Можно дописать и свои, через двоеточие, можно использовать шаблоны.

4. Не разрывать многострочные команды

Еще команда в конфигурационный файл

shopt -s cmdhist

5. Поиск по истории команд

Иногда команды бывают большими и сложными, и чтобы заново ее не писать и не искать по истории 100 раз нажимая “вверх”, можно воспользоваться поиском.

Если вы помните кусочек команды которую хотите найти, то можно просто нажать в bash’e комбинацию Ctrl + R и набрать этот кусочек. bash вам покажет последнюю команду с такой подстрокой. Можно продолжать нажимать Ctrl + R и bash будет выдавать более старые подходящие команды, подходящие под искомую строку.

6. Вернуться в предыдущую директорию

Когда мы работаем в какой-то директории, и нам нужно “выбраться” в другую директорию, что-то там поделать и вернуться назад, можно воспользоваться “cd -”, например

[kpblca@localhost html]$ cd /var/www/html
[kpblca@localhost html]$ cd /etc/
[kpblca@localhost etc]$ vi my.cnf
[kpblca@localhost etc]$ cd -
/var/www/html
[kpblca@localhost html]$

Эта команда вернет нас в директорию где мы были раньше.

Дополнительно можно почитать man bash и найти там описание всех опций у shopt. Может быть еще что-то вам тоже пригодится.

Взято тут

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *