Шпаргалки для командной строки при помощи Cheat
Python, Ubuntu | Комментировать запись
Cheat – это программа Python, основанная на командной строке и предназначенная для просмотра и хранения полезных шпаргалок. Она извлекает примеры выбранной команды в виде простого текста, чтобы напомнить пользователю опции и аргументы или объяснить общее применение команды. Cheat идеально подходит для работы с командами, которые используются часто, однако недостаточно часто, чтобы их запомнить.
Sheets (также sheet-файлы, или шпаргалки) – это простые портативные текстовые файлы, которые можно копировать на разные системы Linux/Unix. Они называются и просматриваются точно так же, как и любые другие программы для командной строки. Базовые sheets для общих программ предоставляются по умолчанию, но можно добавить и пользовательские шпаргалки.
Требования
Для выполнения инструкций нужен:
- Сервер Ubuntu 14.04
- Не-root пользователь с правами sudo.
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: Cheat, Python, Sheets, Ubuntu 14.04