четверг, 19 ноября 2015 г.

Полезные утилиты в Linux

Обыкновенно пользователь Linux в среднем использует не более 50-60 утилит для работы в терминале. Есть Linux утилиты которые менее известны но не менее полезны. Ниже представлены некоторые из них.

1. Утилита ncdu(NCurses Disk Usage)

ncdu - анализатор использования дискового пространства с псевдо графическим интерфейсом. При запуске без  ключей и параметров ncdu приступит к сканированию подкаталогов начиная с текущего.



После завершения сканирования возможно перемещаться по дереву каталогов с помощью стрелок и клавиши Enter.



Посмотрим помощь по утилите.



Значения ключей.

  •     up, k - пеермещение курсора вверх;
  •     down, j - перемещение курсора вниз;
  •     right/enter - открыват выбраную директорию;
  •     left, <, h - возвращение в родительский каталог;
  •     n - сортировка по именам;
  •     s - сортировка по размеру;
  •     d - удаление выделеного файла или каталога;
  •     t - отображение директорий перед файлами при сортировке;
  •     g - переключение режима отображения занятого места (в процентах, графически, комплексно);
  •     a - переключение режима отображения (размер файла, занимаемое место на диске)
  •     e - отображать скрытые файлы;
  •     i - отображение информации о выделенном объекте;
  •     r - пересчитть занимаемое место (имеет место быть, если недавно удалялись файлы);
  •     q - выход из утилиты;

Попробуем отобразить с процентами - ключ g. Красота.



Формат вывода в утилите ncdu имеет следующий вид.

X  [size] [graph] [file or directory]

Где X - флаги содержащие следующую информацию.

  •     ! - обнаружена ошибка при чтении текущего каталога;
  •     . - обнаружена ошибка при чтении подкаталога;
  •     < - файл или директория исключены из подсчета;
  •     > - директория находится на другой файловой системы;
  •     @ - объект не является файлом или каталогом (символическая ссылка или сокет);
  •     H - жесткая ссылка;
  •     e - каталог пустой;

2. Утилита tree

tree - утилита которая выводит список содержимого каталогов в древовидной форме.


Утилита tree поддерживает множество опций. Вот некоторые из них.

  •     -a - отображать все файлы. По умолчанию скрытые файлы не отображаются.
  •     -d - отображать только список каталогов.
  •     -f - отображать полный путь до файла.
  •     -o - перенаправить вывод в файл.
  •     -p - отображать тип и разрешения для каждого файла(как ls -l).
  •     -u -  отображать имя пользователя либо UID  если имя пользователя не доступно.
  •     -g - отображать название группы либо GID если имя группы не доступно.
  •     -s - отображать размер каждого файла в байтах вместе с именем.
  •     -v - сортировать вывод по версии.
  •     -r - сортировать выход в обратном алфавитном порядке.
  •     -t - сортировать вывод по время последнего изменения.

С полным списком опций можно ознакомиться тут или прочитать man tree.

3. Утилита htop

htop - монитор процессов. Задумывался как замена top. В отличие от своего старшего брата представляет информацию в более красочном виде.


Страница помощи.


Немного информации о цветовых значениях, для процессора по умолчанию заданы следующие цвета:

  •     Синий - процессы с низким приоритетом.
  •     Зеленый - процессы с нормальным приоритетом.
  •     Красный - процессы с приоритетом ядра.
  •     Оранжевый - virt time (steal + guest).

Для оперативной памяти - следующие:

  •     Зеленый - используемая память.
  •     Синий - буфер.
  •     Оранжевый - системный кэш.

4. Утилита atop

atop - еще один продвинутый монитор ресурсов. По умолчанию atop показывает загрузку по процессору, памяти, дискам и сетевым интерфейсам.


Экран вывода информации разделен на две половины, в первой из них указаны данные о системе, а во второй данные по процессам. Посмотрим страницу помощи, ключ h.


Наиболее интересные из ключей.

  •     m - отсортирует процессы по занятой памяти.
  •     d - отсортирует процессы по использованию диска.
  •     v - выведет более подробную информацию о процессах (пользователя, дату
  •     и время начала работы процесса).
  •     u - выстроит таблицу по потреблению ресурсов пользователями.
  •     i - изменение времени проверки, по умолчанию десять секунд.
  •     g - вернет вид по умолчанию.

В операционных системах основанных на  debian, atop по умолчанию присутствует в системе, запускается при старте и постоянно сбрасывает информацию в каталог /var/log/atop.


Прочитать данные из этих файлов можно с помощью команды atop -r /путь/до/файла.

5. Утилита iftop

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


Страничка помощи, ключ h.


Некоторые полезные ключи при запуске iftop.

  •     -i interface - выбор определенного интерфейса для прослушивания.
  •     -F net/mask - отобразить информацию о трафике только определенной сети.
  •     -p -i  interface - promiscuous mode, учитывается трафик не проходящий напрямую через интерфейс.
  •     -c config file - требуемые настройки можно указать в файле и указать путь к нему через данный ключ.
  •     -P -i interface - дополнительно отображает порты по которым идет передача.

 6. Утилита  ytree
ytree – маленький консольный файловый менеджер.


7. Утилита nl

nl – выводит содержимое файла на стандартный вывод дополнительно нумеруя строки.

 
Некоторые опции nl.
•    -b, –body-numbering=STYLE  –  использовать стиль нумерования строк тела.
•    -d, –section-delimiter=CC  –  использовать СС для разделения логических страниц.
•    -f, –footer-numbering=STYLE  –  использовать стиль нумерования строк нижнего колонтитула.
•    -h, –header-numbering=STYLE  –  использовать стиль нумерования строк верхнего колонтитула.
•    -i, –line-increment=NUMBER  –  шаг увеличения номеров строк.
•    -l, –join-blank-lines=NUMBER  –  заданное число пустых строк считать одной.
•    -n, –number-format=FORMAT  –  использовать формат для номеров строк.
•    -p, –no-renumber  –  не начинать нумерацию заново после каждой логической страницы.
•    -s, –number-separator=STRING  –  добавлять строку после номера.
•    -v, –starting-line-number=NUMBER  –  задать первый номер строки для каждой логической страницы.
•    -w, –number-width=NUMBER  –  использовать заданное число столбцов для номеров строк.

8. Команда sudo !!

Если при работе в консоли вы забыли добавить sudo перед выполняемой командой, то можно не перенабирать команду а выполнить sudo !!.



9. Утилита tee

tee – утилита которая умеет разделять данные на два потока. Например, данные могут быть использованы для вывода на дисплей и сохранены в файл.





Утилиту можно использовать для получения промежуточных данных, до того как они будут изменены другой программой или командой. Команда tee считывает стандартный ввод (stdin), после чего записывает его в стандартный вывод (stdout) и одновременно копирует его в подготовленный файл или переменную.

10. Утилита shuf

shuf – утилита которая умеет случайным образом выбирать: строки, файлы, папки, из файла или папки.


11. bmon – утилита мониторинга нагрузки на сетевые интерфейсы.

Утилита позволяет в режиме реального времени посмотреть что происходит на сетевых интерфейсах.




12. dstat – отличная утилита мониторинга использования ресурсов в режиме реального времени.

dstat совмещает в себе возможности трех утилит: vmstat, iostat и ifstat.


Поддерживает массу опций.

michael@mylin ~ $ dstat -h
Usage: dstat [-afv] [options..] [delay [count]]
Versatile tool for generating system resource statistics

Dstat options:
  -c, --cpu                       enable cpu stats
  -C 0,3,total                  include cpu0, cpu3 and total
  -d, --disk                      enable disk stats
  -D total,hda                 include hda and total
  -g, --page                    enable page stats
  -i, --int                        enable interrupt stats
  -I 5,eth2                      include int5 and interrupt used by eth2
  -l, --load                     enable load stats
  -m, --mem                   enable memory stats
  -n, --net                      enable network stats
  -N eth1,total               include eth1 and total
  -p, --proc                    enable process stats
  -r, --io                         enable io stats (I/O requests completed)
  -s, --swap                   enable swap stats
  -S swap1,total            include swap1 and total
  -t, --time                     enable time/date output
  -T, --epoch                 enable time counter (seconds since epoch)
  -y, --sys                      enable system stats

  --aio                           enable aio stats
  --fs, --filesystem         enable fs stats
  --ipc                           enable ipc stats
  --lock                         enable lock stats
  --raw                         enable raw stats
  --socket                     enable socket stats
  --tcp                          enable tcp stats
  --udp                         enable udp stats
  --unix                        enable unix stats
  --vm                          enable vm stats

  --plugin-name          enable plugins by plugin name (see manual)
  --list                         list all available plugins

  -a, --all                    equals -cdngy (default)
  -f, --full                    automatically expand -C, -D, -I, -N and -S lists
  -v, --vmstat              equals -pmgdsc -D total

  --float                      force float values on screen
  --integer                  force integer values on screen

  --bw, --blackonwhite   change colors for white background terminal
  --nocolor                     disable colors (implies --noupdate)
  --noheaders                 disable repetitive headers
  --noupdate                   disable intermediate updates
  --output file                  write CSV output to file

delay is the delay in seconds between each update (default: 1)
count is the number of updates to display before exiting (default: unlimited)


Попробуем с ключами.

# dstat -tldnpms 5

  • t – время
  • l – средняя загрузка системы
  • d – использование дисков
  • n – загрузка сетевых устройств
  • p – активность процессов
  • m – использование памяти
  • s – использование подкачки
  • интервал обновления 5 секунд


13. ss – статистика сокетов.

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




14. curl ifconfig.me и curl ipinfo.io

Работая в консоли бывает требуется узнать внешний ip – адрес, можно это сделать не покидая консоль с помощью утилиты  curl.



15. Утилита tac

Утилита tac выполняет те же действия что и утилита cat но наоборот. То есть вывод строк начинает с последней.



:)