Сегодня Понедельник, 21 Августа 2017 года

Доступность нашего хостинга:

uptime узнать

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Несколько советов по 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. Может быть еще что-то вам тоже пригодится.

www.tigro.info