Для многих Linux-дистрибутивов в качестве командной оболочки по умолчанию используется Bash. Часто, в процессе работы с данной оболочкой “достают” те или иные неудобства, но на поиски их решения либо нет времени, либо просто много лени… В данном выпуске описаны некоторые раздражающие в работе моменты и возможные пути их решения.
1. Затирание истории команд
Если вы работаете в терминале, то при открытии второго терминала последний не будет “помнить” тех команд, что вы вводили только что в первом. К тому же, если вы закроете первый терминал, а чуть позже - второй, то сохранится только история команд второго терминала (последнего закрытого).
Так происходит потому что запись истории команд происходит в момент закрытия терминала, - а не после каждой введенной команды.
Решение:
В файл ~/.bashrc добавить такие строки:
shopt -s histappend
PROMPT_COMMAND='history -a'
Это приведет к тому, что Bash впредь будет дополнять историю команд, а не перезаписывать ее.
2. Случайные опечатки
Бывает, что при быстром наборе команды, вы пишете, например, “ect” вместо “etc” - и узнаете об ошибке только набрав километровой длины строку и нажав Enter…
Решение:
В этом случае может помочь указание в файле .bashrc такой строки
shopt -s cdspell
Теперь после ввода команды “cd /ect” вы попадете в каталог “/etc”
3. Дубликаты команд в хистори
Часто в работе приходится давать несколько одинаковых команд подряд. Например “cd ..” или “ps ax | grep something”. В результате, история команд захламляется дубликатами строк, после чего бывает непросто добраться до истории команд, введенных ранее.
Решение:
добавить в .bashrc строку
export HISTCONTROL="ignoredupes"
Это избавит от записи в истории дубликатов команд. Можно пойти еще дальше, и запретить запись в историю команд ls, bg, fg и exit. Делается это добавлением строки
export HISTIGNORE=”&:ls:[bf]g:exit”
4. Многострочные команды разбиваются в истории на несколько строк
При наборе команды в несколько строк, она сохраняется в истории как набор не связанных между собой строк. Что бывает совсем неудобно.
Решение:
Добавить в файл .bashrc строку
shopt -s cmdhist
После этого можно будет вызывать многострочные команды из хистори одной строкой.
5. Быстрый поиск команды в хистори
Чтобы найти какуюлибо команду (например, ping) в истории, можно сделать так:
history | grep "foo"
Но это неудобно и совсем не функционально.
Решение:
Нажать комбинацию клавиш CTRL+R - после этого найти нужную команду по вводимому сочетанию букв.
6. Как перейти в последнюю директорию?
При работе часто возникает ситуация, когда нужно сделать что-либо, а для этого приходится метаться между двумя директориями. Каждый раз набирать имя директории (пусть даже используя автодополнение) - неудобно.
Решение:
Использовать команду
cd -
После чего вы перейдете в директорию, в которой только что были (до выполнения этой команды).
7. Как обратиться к объекту, с которым только что работал?
Представим ситуацию: сисадмин проводит неспешный осмотр каталогов своих пользователей, вытирая в процессе “ненужный хлам” - например, заготовленные непосильным трудом несколько гигабайт мп3-музыки. Положим, что делает он это примерно так:
ls /home/user/mp3
rm -rf /home/user/mp3
В данном случае будет полезно воспользоваться таким сочетанием клавиш:
ESC . (нажать "ESC", а потом "." последовательно)
Как результат, сработает автодополнение, используя объект, к которому было последнее обращение. В данном случае, если набрать команду “ls /home/user/mp3″, затем набрать “rm -rf” и потом нажать последовательно ESC и . - то после набранного “rm -rf” командная строка автоматически дополнится “/home/user/mp3″.
Источник: http://storinka.com.ua/2007/12/25/udobnaya-rabota-v-bash/
P.S.: мелочи, но очень приятные! Автор молодец!:)
Комментарии
Отправить комментарий