Шпаргалки для командной строки при помощи Cheat

Cheat – это программа Python, основанная на командной строке и предназначенная для просмотра и хранения полезных шпаргалок. Она извлекает примеры выбранной команды в виде простого текста, чтобы напомнить пользователю опции и аргументы или объяснить общее применение команды. Cheat идеально подходит для работы с командами, которые используются часто, однако недостаточно часто, чтобы их запомнить.

Sheets (также sheet-файлы, или шпаргалки) – это простые портативные текстовые файлы, которые можно копировать на разные системы Linux/Unix. Они называются и просматриваются точно так же, как и любые другие программы для командной строки. Базовые sheets для общих программ предоставляются по умолчанию, но можно добавить и пользовательские шпаргалки.

Требования

Для выполнения инструкций нужен:

1: Установка Cheat

Прежде чем приступить к установке Cheat, нужно обновить систему.

sudo apt-get update && sudo apt-get upgrade

Подтвердите запуск команды.

Для установки Cheat рекомендуется использовать менеджер пакетов Python под названием Pip. Чтобы установить Pip, введите:

sudo apt-get install python-pip

Сама программа Cheat зависит только от двух пакетов Python, но эти зависимости уже включены в пакет, который установит Pip. Итак, установите Cheat:

sudo pip install cheat

В случае успешной установки Cheat выведет на экран следующие строки:

Successfully installed cheat docopt pygments
Cleaning up...

Чтобы убедиться, что установка Cheat работает должным образом, запустите программу с опцией –v:

cheat -v

Она должна вернуть версию установленной программы Cheat:

cheat 2.1.10

2: Настройка текстового редактора

Прежде чем приступить к созданию пользовательских шпаргалок, программа Cheat должна знать, какой текстовый редактор нужно использовать по умолчанию. Для этого нужно установить переменную окружения EDITOR.

Примечание: Подробнее о переменных среды можно прочесть в этой статье.

Редактор nano уже установлен в системе Ubuntu, к тому же, он довольно прост в использовании, потому это надёжный вариант; хотя, конечно, можно использовать vim или emacs. Чтобы сделать nano редактором  Cheat по умолчанию, введите следующую команду:

export EDITOR="/usr/bin/nano"

Чтобы убедиться, что всё прошло успешно, наберите:

printenv EDITOR

Эта команда вернёт содержимое новой переменной $EDITOR:

/usr/bin/nano

Чтобы эта настройка стала постоянной и использовалась в последующих сессиях окружения, добавьте её в  файл .bashrc. Это один из файлов, которые запускаются в сессии оболочки bash.

Откройте файл:

nano ~/.bashrc

Затем добавьте в него команду:

. . .
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
export EDITOR="/usr/bin/nano"
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
. . .

Сохраните и закройте файл, нажав CTRL+X, Y и ENTER.

3: Пользовательская настройка Cheat (опционально)

В этом разделе показано, как включить выделение синтаксиса и автодополнение команд.

Если используемый эмулятор терминала поддерживает выделение синтаксиса разными цветами, вы можете включить эту функцию для шпаргалок; просто экспортируйте переменную окружения оболочки CHEATCOLORS со значением true:

export CHEATCOLORS=true

Теперь при извлечении шпаргалок синтаксис будет отформатирован с выделением. Чтобы сделать эту функцию постоянной, добавьте её в .bashrc .

nano ~/.bashrc

Затем внесите переменную CHEATCOLORS под переменной EDITOR.

. . .
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
export EDITOR="/usr/bin/nano"
export CHEATCOLORS=true
# don't put duplicate lines or lines starting with space in the history
. . .

Сохраните и закройте файл.

Чтобы включить автодополнение, поместите скрипт в каталог /etc/bash_completion.d/. откройте этот каталог:

cd /etc/bash_completion.d/

Загрузите необходимый скрипт со страницы Cheat на GitHub.

sudo wget https://raw.githubusercontent.com/chrisallenlane/cheat/master/cheat/autocompletion/cheat.bash

Введите следующую команду в текущей оболочке, чтобы обновить настройки:

bash

Теперь автодополнение включено. Введите cheat, после команды введите символ пробела, дважды нажмите кнопку Tab, и на экране появится список команд:

cheat
7z           asciiart     chown        df           du
grep         indent       jrnl         mkdir        netstat
. . .

4: Запуск Cheat

Чтобы запустить Cheat в обычно режиме, вызовите программу так, как и любую другую команду, указав затем имя шпаргалки.

Ниже показано, как это делается на примере стандартной шпаргалки, которая поставляется с Cheat для команды tail (она выводит последние несколько строк файла).

cheat tail

Вывод будет таким:

# To show the last 10 lines of file
tail file
# To show the last N lines of file
tail -n N file
# To show the last lines of file starting with the Nth
tail -n +N file
# To show the last N bytes of file
tail -c N file
# To show the last 10 lines of file and to wait for file to grow
tail -f file

Чтобы просмотреть другие доступные шпаргалки, запустите:

cheat -l

Эта команда вернёт список всех доступных на данный момент шпаргалок и их местонахождение на сервере.

5: Создание и редактирование шпаргалок

Стандартные шпаргалки, поставляемые с Cheat, довольно полезны и разнообразны, однако они, конечно, не охватывают всей информации о каждой программе или команде оболочки. Потому очень полезно добавлять пользовательские шпаргалки в Cheat.

К примеру, для программы ping шпаргалки нет:

cheat ping
No cheatsheet found for ping

Для примера попробуйте создать и добавить новую шпаргалку для этой команды.

Сначала вызовите Cheat в командной строке, добавив аргумент -e и имя команды, для которой предназначена новая шпаргалка.

cheat -e ping

При помощи ранее установленной переменной $EDITOR программа Cheat создаст и откроет соответствующий файл.

Добавьте полезные сведения о команде ping (объяснения, аргументы, примеры использования и т.д.) в начало данного файла и закомментируйте их при помощи символа #. Например:

# ping a host with a total count of 15 packets overall.
ping -c 15 www.example.com

Сохраните и закройте файл. Проверьте работу новой шпаргалки, запустив:

cheat ping

Теперь команда должна вернуть содержимое шпаргалки:

# ping a host with a total count of 15 packets overall.
ping -c 15 www.example.com

Чтобы отредактировать sheet-файл, используйте опцию –е:

cheat -e ping

Это откроет шпаргалку для редактирования. К примеру, теперь можно добавить в нее следующий текст:

# ping a host with a total count of 15 packets overall.
ping -c 15 www.example.com
# ping a host with a total count of 15 packets overall, one every .5 seconds (faster ping).
ping -c 15 -i .5 www.example.com

6: Поиск шпаргалок в Cheat

Cheat имеет встроенную функцию поиска, которая запускается при помощи флага –s. Она выведет на экран все обнаруженные экземпляры заданного текста, например:

cheat -s packets

Такая команда выведет все строки, содержащие слово packets, и шпаргалки, в которых эти строки находятся.

nmap:
# --min-rate=X => min X packets / sec
ping:
# ping a host with a total count of 15 packets overall.
# ping a host with a total count of 15 packets overall, one every .5 seconds (faster ping).
route:
# To add a default  route (which will be used if no other route matches).  All packets using this route will be gatewayed through "mango-gw". The device which will actually be used for that route depends on how we can reach "mango-gw" - the static route to "mango-gw" will have to be set up before.
tcpdump:
# and other packets being transmitted or received over a network. (cf Wikipedia).
. . .

Заключение

Cheat отображает всё в виде простого текста, а потому эту команду можно использовать с любыми другими командами обработки текста (например, с grep).

Примечание: Подробнее о команде grep можно прочесть в руководстве «Использование Grep и регулярных выражений для поиска текстовых шаблонов в Linux».

Кроме того, для централизованного хранения шпаргалок можно использовать системы контроля версий, например, Git и GitHub. Это позволяет хранить шпаргалки на нескольких платформах путём клонирования репозитория. Добавленная, исправленная или созданная в Cheat шпаргалка классифицируется как пользовательская (custom).

Все пользовательские шпаргалки хранятся в домашнем каталоге Linux, в скрытом каталоге .cheat. Найти этот каталог можно при помощи команды cheat –d, которая вернёт два каталога: первый – местонахождение пользовательских шпаргалок, второй – стандартных.

Чтобы получить доступ к библиотеке пользовательских шпаргалок на другой системе, нужно просто скопировать этот каталог в систему. Sheet-файлы очень просто отслеживать при помощи систем контроля версий. Подробнее об этом – в руководстве «Управление конфигурационными файлами с помощью Git».

Tags: , , ,

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