Инструменты пользователя

Инструменты сайта


nabor_sistemnyh_instrumentov_administratora_linux_jet_rat

Набор системных инструментов администратора Linux (Статья недописана)

!!!!!Статья не завершена и не оформлена.!!!!!
!!!!!Коррекция будет произведена позже.!!!!!

TODO: Закончить написание статьи
TODO: Добавить заметки по rsync и git

Используемые инструменты

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

Windows-окружение

Так или иначе, в гетерогенных сетях нередко на ПК администратора в качестве основной системы используется Windows - поэтому для начала рассмотрим 2 windows-утилиты.

Haroopad (MarkDown)

Википедия:
**Markdown** (маркдаун) — облегчённый язык разметки, созданный с целью написания максимально читабельного и удобного для правки текста <...>

Haroopad - markdown-редактор с подсветкой синтаксиса, и формированием HTML страницы на основе исходного файла в реальном времени.

Не совсем точно называть Haroopad windows-утилитой: редактор является кроссплатформенным. На официальном сайте имеется возможность скачать Windows (msi), MacOS (dmg), Debian (deb) и tar.gz варианты дистрибутива.

Официальный сайт:
Haroopad

SuperPutty

Зачастую в качестве ssh-клиента windows используется putty, интерфейс которой не блещет удобством, однако существует ряд инструментов, способных повысить комфорт работы с этой утилитой. Одним из таких инструментов можно назвать менеджер сессий «SuperPutty».

Основной фунционал SuperPutty состоит в том, чтобы управлять всеми дочерними сессиями Putty в одном окне. По факту, это реализуется засчет двух возможностей:

  • Сохранение часто запускаемых сессий с указанием логина
  • Расположение активных сессий в качестве вкладок или отдельных областей основного окна

Базовый же набор цветов Putty («вырви глаз») можно смягчить правкой реестра:
Reg-файл для настройки цветов Putty


Официальные сайты:
SuperPutty
Putty

Linux

Стандартные утилиты

WGet

Википедия:
**wget** - неинтерактивная консольная программа для загрузки файлов по сети. Поддерживает протоколы HTTP, FTP и HTTPS, а также поддерживает работу через HTTP прокси-сервер

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

Пример использования:

wget https://bitbucket.org/rhiokim/haroopad-download/downloads/haroopad-v0.13.1-x64.deb

FTP

Википедия:
**ftp** - классический клиент для передачи файлов по протоколу FTP

Man

man - основное средство просмотра одноименных страниц справки в семействе ОС Unix

AWK

awk - скриптовый язык, иногда пригождающийся для обработки текстовых данных (удобен в связке с sed и grep). Подробнее можно почитать, к примеру, здесь:
sed и awk (учебное пособие)

SSH

openssh-server и openssh-client:

Википедия:
**SSH** (от англ. secure shell -- безопасная оболочка) это набор программ, которые позволяют регистрироваться на компьютере по сети, удаленно выполнять на нем команды, а также копировать и перемещать файлы между компьютерами. SSH организует защищенное безопасное соединение поверх небезопасных каналов связи.

SSH можно назвать основным инструментом подключения к Linux-серверам.

Пример использования:

ssh adminuser@remoteserver.somedomain.org

Сборка пакетов

GCC

gcc (GNU C Compiler) - хорошо переносимый оптимизирующий компилятор C от GNU

Make

make (GNU Make) — это программа для управления генерацией исполняемых файлов и других типов файлов программы из исходного кода.

AutoMake

Википедия:
**automake** - это утилита для автоматической генерации файлов Makefile.in из файлов Makefile.am. Каждый файл Makefile.am фактически является набором макросов для программы make (иногда с несколькими правилами).

CheckInstall

Википедия:
**checkinstall** - компьютерная программа для Unix-подобных операционных систем, созданная с целью облегчить установку и удаление программного обеспечения, скомпилированного из исходных кодов, используя при этом родную для дистрибутива систему управления пакетами.

ВНИМАНИЕ:
О том, как и почему стоит использовать «checkinstall» вместо «make install» можно почитать, к примеру, здесь и здесь.

Окружение администратора

В этом разделе я упомяну инструменты, которые для меня уже давно стали синонимом работы в консоли.

Tmux

tmux - Терминальный мультиплексер. Проще говоря, утилита, позволяющая работать с консолью, как с набором окон и вкладок.

Использование терминальных мультиплексеров и tmux в частности добавляет некоторое количество весьма весомых бонусов:

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

И так далее пока хватает фантазии.

Отдельно доставляет удовольствие возможность закрыть подключение с одного ПК и подключиться с другого (отвязанная сессия со всеми вкладками продолжает жить).

Для отдельных случаев (например, для обучения) может пригодиться возможность подключения к одной сессии сразу с нескольких ПК, причем выглядеть на обоих ПК консоль будет абсолютно одинаково. Ввод при этом можно будет осуществлять с любого из них.

Создать сессию «somesession», не подключаясь к ней:

tmux new -d -s somesession

Подключиться к существующей сессии, отключив всех остальных:

tmux attach -d -t somesession

Не отключая других:

tmux attach -t somesession

Открыть новую вкладку, переключиться на следующую и предыдущую:

Ctrl-b c
Ctrl-b n
Ctrl-b p

Сменить имя вкладки:

Ctrl-b ,

Разделить окно по вертикали и горизонтали:

Ctrl-b %
Ctrl-b "

Перемещение по панелям в пределах окна:

Ctrl-b Стрелки

или vim-style:

Ctrl-b <h|j|k|l>

Отвязать сессию:

Ctrl-b d

Кроме прочего замечу, что этим функционал tmux не ограничивается. При желании, мультиплексоры можно использовать, допустим, для «демонизации» процессов. Ну, и про возможность конфигурации информационной области тоже забывать не стоит: часы, имя хоста, Load Average, короткая выдача собственных скриптов - любая информация, которую хочется держать перед глазами, может быть помещена сюда.

ZSH

zsh - является расширенным bourne shell (bash) с большим количеством улучшений

  • Самым главным бонусом zsh является расширенное автодополнение:
    • Автодополнение работает не только с названиями команд, но и (в огромном количестве случаев) с их ключами, давая по-ходу краткую справку по типу –help
    • «/u/l/b» по нажатию Tab прeвращается в «/usr/local/bin»
    • zsh предоставляет возможность исправления опечаток в командах и путях
    • По повторному нажатию Tab можно выбрать вариант дополнения из списка (в том числе, используя стрелки) - в итоге, работа с файлами и папками становится даже проще, чем при использовании файл-менеджеров
  • В Bash-е приглашение коммандной строки как правило ограничивается стандартным серым «user@host:path$» с левой стороны. По сравнению с zsh такое приглашение выглядит весьма аскетично.
    • Цветное левое приглашение, позволяющее значитьльно быстрее осознать, под каким пользователем и на каком хосте Вы работаете
    • Добавление правого приглашения. У меня там стоят часы - очень удобно для отслеживания времени отработки скрипта и корректности текущего времени на машине.
    • Многие добавляют к приглашениям отслеживание состояния git и другие полезные и приятные мелочи
    • Двухстрочное приглашение и не снилось Bash-у. Впрочем, это на любителя.
  • Кроме прочего, zsh работает на модульной основе - уже существует огромное количество модулей для расширения функционала. Также, никто не мешает писать свои.

Ссылки:
Презентация: чем zsh круче Bash
Oh-My-Zsh - сборка конфигураций, тем и модулей zsh
Пример конфигурацонного файла

Vim

Материал из Викиучебника — открытых книг для открытого мира
**Vim**
Продвинутый текстовый редактор — кошмар для случайного пользователя. Если его удается в конце концов закрыть, то вздыхаешь с облегчением и твердой уверенностью, что больше не будешь запускать эту программу ни разу в жизни.
Пожалуй, Vim нельзя просто запустить и начать работать — требуется определенная подготовка. Зато стоит раз испытать его в деле и поражаешься тому, как можно было без него обходиться.

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

  • Vim нельзя просто запустить в первый раз и сразу начать работать/
  • Первой мыслью будет: «Анекдоты про то, что vim - редактор, в котором всё пищит, ломается и не работает - не анекдоты!!!»/
  • Вторая мысль: «КАК ИЗ НЕГО ВЫЙТИ???!!!». Выход без сохранения производится последовательным нажатием <Esc><Esc>:q!<Enter>
  • Не пытайтесь взять его штурмом. Лучше запустите vimtutor и потратьте полчаса своего времени - в последствии сэкономите недели. Я не шучу.
  • При начале осознанного использования Vim может придти ощущение того, что его придумали ребята с той же планеты, на которой изобрели регулярные выражения. Это правда. Это пройдет)
  • Некоторые сочетания клавиш пальцы просто должны запомнить.
  • Слепая печать - великое благо.
  • Для того, чтобы Vim стал вашим «межгаллактическим швейцарским ножом», его возможности просто нужно использовать. Не зазубривать, а именно использовать. Руки и голова сами привыкнут в процессе.
  • Vimtutor дает начальный уровень - доступ к креслу и штурвалу звездолета. Вначале Вам может показаться, что вы управляете легким истребителем. Про панель старшего навигатора, машинный отсек с командой механиков, камбуз и капитанский мостик Вы узнаете позже из интернета и книг.
  • Не стоит пытаться охватить всё сразу. Учитесь по мере интереса и необходимости.

После первичного освоения Vim очень рекомендую найти книгу «Практическое использование Vim. Редактируйте текст со скоростью мысли». Эта книга не является учебником в полном смысле этого слова, скорее набором хаков, которые позволят повысить скорость работы с текстом в сотни раз.

Пример конфигурацонного файла

Сетевой мониторинг

TcpDump

Википедия:
**tcpdump** - утилита UNIX (есть клон для Windows), позволяющая перехватывать и анализировать сетевой трафик, проходящий через компьютер, на котором запущена данная программа.
Для выполнения программы требуется наличие прав суперпользователя и прямой доступ к устройству (так, например, запуск из Jail во FreeBSD невозможен).
Основные назначения tcpdump:
* Отладка сетевых приложений. * Отладка сети и сетевой конфигурации в целом.

В комплекте с telnet очень удобно использовать такую утилиту, как wireshark (программа-анализатор трафика для компьютерных сетей Ethernet и некоторых других, имеющая графический интерфейс).

TelNet и NetCat

Википедия:
**telnet-client** - TELNET (сокр. от англ. terminal network) — сетевой протокол для реализации текстового интерфейса по сети (в современной форме — при помощи транспорта TCP)

На моей практике telnet использовался только для проверки открытых TCP-портов. И конфигурации некоторых сетевых устройств. Установленным этот пакет, однако, иметь стоит.

Википедия:
**netcat** - утилита Unix, позволяющая устанавливать соединения TCP и UDP, принимать оттуда данные и передавать их.

По факту, «telnet на стероидах». Вероятно, мне давно стоит отказаться от использования telnet в пользу netcat (специалисты активно рекомендуют), однако, так как и тем, и другим я пользуюсь чрезвычайно редко, пока не дошли руки.

NMap

Википедия:
**nmap** - свободная утилита, предназначенная для разнообразного настраиваемого сканирования IP-сетей с любым количеством объектов, определения состояния объектов сканируемой сети (портов и соответствующих им служб). Изначально программа была реализована для систем UNIX, но сейчас доступны версии для множества операционных систем.

Сетевой сканер поможет определить занятость IP-адресов в сети или набор открытых портов на сервере. Естественно, этим его функционал не ограничивается.

Локальный мониторинг

multitail

iotop

iftop

atop

nabor_sistemnyh_instrumentov_administratora_linux_jet_rat.txt · Последнее изменение: 2016/04/04 21:23 (внешнее изменение)

DokuWiki Appliance - Powered by TurnKey Linux