Для многих 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″.

Мой блог находят по следующим фразам

Popularity: 32%