Автор - Лукас Вестерман (Lucas Westermann)

В этом месяце в рубрике «Покоряй и властвуй» я коснусь тех вещей, которые редко упоминаются в онлайновых инструкциях, а также вещей, которые сами по себе не стоят отдельной статьи, но заслуживают упоминания. Надеюсь, эта статья будет полезна тем, кто хочет выжать больше из своего терминала, тем, кто хочет настроить терминал по своему вкусу, но иногда спотыкается о незнакомые термины.

Начнём с настройки командной строки. Скажем, вы потратили много времени на поиск командной строки, которая бы вам понравилась, в конце концов подобрали нужную escape-последовательность и решились попробовать её. Вот PS1 из моего .zshrc (прим. перев.: обратите внимание, в стандартном bash этот пример работать не будет!):

export PS1="%{$fg[blue]%}┌─
[%{$fg[green]%}%n%{$fg[cyan]%}@%
{$fg[green]%}%m%{$fg[blue]%}:%
{$fg[magenta]%}%~%{$fg[blue]%}]-%{$fg[red]
%}[%{$fg[cyan]%}%* on %D%
{$fg[red]%}]%{$reset_color%}%{$reset_color%}"$'\n'"%
{$fg[blue]%}└─>%{$reset_color%}"

Выглядеть это будет, как на иллюстрации ниже.

Есть два способа получить такой результат:

  1. можно открыть новый терминал и запустить нужную оболочку (что не очень хорошо, если вы работаете в терминальном режиме, или выполняете одновременно много задач, или не любите менять оболочку, прежде чем настроите её до конца);
  1. можно использовать команду «source». Я предпочитаю вариант №2, так как он немедленно изменяет активный терминал и реализуется очень легко. Просто выполните команду «source», указав путь к файлу настроек (в данном случае — .bashrc); если файл находится в текущей папке, то путь можно не указывать.
source .bashrc 

Эта команда работает с большинством файлов настроек, которые вы можете отредактировать, однако в некоторых случаях она не даст никакого эффекта (если честно, я не знаю все возможные случаи её использования, так что вам придётся попробовать самостоятельно).

Ещё один очень полезный приём: вы можете использовать циклы вроде while и при интерактивной работе в терминале. Например, чтобы получить список файлов определённой папки и вывести на экран содержимое каждого, вы можете выполнить такую команду:

ls|while read line; do `cat ${line}`; done

Разумеется, эта команда выдаст сообщение об ошибке, если в списке попадётся папка, но это можно устранить с помощью дополнительных проверок (с помощью конструкции if). Это, однако, вы можете сделать сами.

Вот ещё несколько полезных команд, которые я часто использую:

df

выводит информацию об использовании файловых систем (я обычно запускаю её с параметром -h, чтобы размеры выводились в гигабайтах).

watch

выполняет команду каждые 2 секунды (это по умолчанию, интервал можно изменить параметром -n <секунд>)

scrot

это инструмент для создания снимков экрана из командной строки, с большим числом опций и возможностей (смотрите «man scrot», параметров слишком много, чтобы описывать их тут).

Разумеется, те команды, которые я описал в предыдущих выпусках, тоже используются часто, но эти три, описанные выше, я раньше не упоминал. Последняя вещь, о которой хотелось бы рассказать в этой статье, — это мозаичные оконные менеджеры (англ. tiling window manager), поскольку немногие мои знакомые используют их. Мозаичный оконный менеджер располагает окна на экране в виде мозаики (изменяя размер окон и располагая их так, чтобы они никогда не перекрывались). Некоторые (не все) мозаичные оконные менеджеры имеют так называемый «плавающий» режим, когда окна ведут себя как обычно (можно изменить размер окон, они перекрываются и т.д.). Причина, по которой многие программисты (и я тоже) предпочитают мозаичные оконные менеджеры, в том, что они позволяют видеть сразу весь код, можно также открывать сразу множество скриптов, легко переключаясь между ними, или можно, к примеру, открыть один терминал для проверки команд, а другой — для написания скрипта. Кроме того, вы можете управлять окнами при помощи клавиатуры, что здорово повышает скорость работы, ведь тогда руки не нужно отрывать от клавиатуры. Вот некоторые из оконных менеджеров: AwesomeWM, DWM, Xmonad, ratpoison и ion. Я использую Awesome, так как в его «плавающем» режиме окно показывается не только лишь поверх других или под другими окнами, а вы можете сами выбрать вариант поведения (в Xmonad как раз возможен только один из этих двух вариантов, по крайней мере, я не нашёл иного решения). В общем, есть ещё много возможностей, большинство из которых подробно документированы, на случай если кто-то из вас, читатели, захочет попробовать.


Подробнее читайте: