Анализ данных в Linux. Глава из книги «Bash и кибербезопасность»

В этой статье мы постарались систематизировать основные команды Linux. Команды, которые вы увидите в этом списке, одинаково верно работают в разных дистрибутивах, включая Debian, Gentoo, Ubuntu, ASPLinux, ALTLinux и т. д. Главная цель статьи — создать список основных команд Linux, что упростит как изучение, так и эксплуатацию этой операционной системы.

Используемые команды

Для сор­тиров­ки и огра­ниче­ния отоб­ража­емых дан­ных вос­поль­зуем­ся коман­дами sort, head и uniq. Работу с ними про­демонс­три­руем на фай­ле из при­мера 7.1.

Пример 7.1.

12/05/2017

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

Общие параметры команды

  • -r — сор­тировать по убы­ванию.
  • -f — игно­риро­вать регистр.
  • -n — исполь­зовать чис­ловой порядок: 1, 2, 3 и до 10 (по умол­чанию при сор­тиров­ке в алфа­вит­ном поряд­ке 2 и 3 идут пос­ле 10).
  • -k — сор­тировать на осно­ве под­мно­жес­тва дан­ных (клю­ча) в стро­ке. Поля раз­деля­ются про­бела­ми.
  • -o — записать вывод в ука­зан­ный файл.

Пример команды

Для сор­тиров­ки фай­ла по стол­бцу, в котором ука­зано имя фай­ла, и игно­риро­вания стол­бца с IP-адре­сом необ­ходимо исполь­зовать сле­дующую коман­ду:

sort -k 3 file1.txt

Мож­но так­же выпол­нить сор­тиров­ку по под­мно­жес­тву поля. Для сор­тиров­ки по вто­рому окте­ту IP-адре­са напиши­те сле­дующее:

sort -k 2.5,2.7 file1.txt

Бу­дет выпол­нена сор­тиров­ка пер­вого поля с исполь­зовани­ем сим­волов от 5 до 7.

Ко­ман­да uniq поз­воля­ет отфиль­тро­вать пов­торя­ющиеся стро­ки с дан­ными, которые встре­чают­ся друг рядом с дру­гом. Что­бы уда­лить в фай­ле все пов­торя­ющиеся стро­ки, перед исполь­зовани­ем коман­ды uniq файл нуж­но отсорти­ровать.

Читайте также:  Linux Admin — Резервное копирование и восстановление

Общие параметры команды

  • -с — вывес­ти, сколь­ко раз пов­торя­ется стро­ка.
  • -f — перед срав­нени­ем про­игно­риро­вать ука­зан­ное количес­тво полей. Нап­ример, параметр -f 3 поз­воля­ет не при­нимать во вни­мание в каж­дой стро­ке пер­вые три поля. Поля раз­деля­ются про­бела­ми.
  • -i — игно­риро­вать регистр букв. В uniq регистр сим­волов по умол­чанию учи­тыва­ется.

Добавление столбцов и сортировка таблицы top

Теперь вы знаете, какая информация зашифрована в каждом столбце таблицы top. Как было отмечено в начале, базовая сортировка данных осуществляется по уровню использования времени ЦПУ, оно же %CPU. Чтобы выполнить в top сортировку по памяти (%MEM), достаточно ввести Shift+M в режиме работы команды top. Если интересует, какой из процессов дольше всего работает, нажмите Shift+T, и увидите интересующую информацию в колонке TIME+. Можно отсортировать процессы по их номеру (PID), набрав на клавиатуре Shift+N.

Чтобы вернуться к режиму сортировки по уровню потребления ресурсов процессора, воспользуйтесь комбинацией Shift+P.

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

С помощью клавиш навигации находим SWAP (или любой другой нужный параметр), клавишей «d» закрепляем его добавление в общую таблицу команды top (в качестве подтверждения вашего выбора рядом появится символ «*»). Чтобы задать сортировку по SWAP, здесь же нажимаем «s» и выходим из меню (ESC). Готово!

Убедиться, что сортировка работает по заданному признаку, можно нажав «x». Колонка с соответствующим признаком будет подсвечена (выделена жирным шрифтом).

Теперь вы не только знаете, как расшифровать содержащуюся в таблице информацию, но и умеете добавлять в нее необходимые параметры, работать с фильтрами. Благодаря команде top вы легко найдете процессы, которые потребляют наибольшее количество ресурсов и/или работают без надобности.

Читайте также:  Как установить iOS 11 на айфон 5 и 5S или iPad

Теперь оптимизировать работу сервера гораздо проще!

Арендовать виртуальный сервер

  • share
  • Facebook
  • Twitter
  • Email

Команды Linux для мониторинга работы и просмотра логов

Здесь собраны команды Linux нужные для мониторинга работы ОС. Все показания, полученные с их помощью, выводятся на экран в режиме реального времени. Число, которое стоит после команды, обозначает интервал между выводом информации.

# top # Для получения информации о загруженных процессах, потреблении ОЗУ; # htop # Расширенная онлайн-статистика о загруженных процессах; # dmesg # Отображение log-файла загрузки операционной системы и нахождения новых устройств; # mpstat 1 # Отображается расширенная статистика потребления ресурсов в процентах (для некоторых дистрибутивов нужна установка пакета sysstat); # iostat 2 # Показывается расширенная статистика прерываний по устройствам; # vmstat 2 # Расширенная статистика по применению виртуальной памяти.

flock

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

Используя flock, можно создать разные типы возможных блокировок во время параллельных операций. Сама по себе блокировка в Linux  —  это просто файл. Рассмотрим пример использования блокировки для предотвращения взаимодействия нескольких процессов с файлом: 

LOCKFILE=/tmp/lockfile already_locked() { echo «lock is already held, exiting» exit 1 } exec 200>$LOCKFILE flock -n 200 || already_locked echo «lock obtained, proceeding» sleep 10 echo «releasing lock, done»

Читайте также:  Как настроить удаленный доступ к компьютеру

Если запустить этот сценарий командной строки, то он попытается получить блокировку для файла /tmp/lockfile, присвоив ему файловый дескриптор 200 и затем используя “неблокирующий” тип блокировки. При таком виде блокировки, в случае ее получения, все остальные попытки ее получения будут проваливаться вместо того, чтобы ожидать разблокировки.

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

Благодарю за внимание! В недрах Linux скрывается неимоверное число удивительных утилит, готовых к использованию. Представляете, как будет интересно в полной мере овладеть этими оригинальными программами, а также осмыслить конкретное назначение и эффективность каждой из них. В следующий раз, как только вы захотите узнать о других доступных вам возможностях, просто воспользуйтесь ls /usr/bin и начните свое исследование. 

  • Пользователь Linux пробует Windows в 2020
  • 5 настроек рабочего стола Linux для разработчиков
  • Невероятная история Tux: наш любимый талисман Linux!

Читайте нас в Telegram, VK и

Перевод статьи Tate Galbraith: 6 Lesser-Known Linux Commands You Should Try