Выход из тени: 6 малоизвестных команд Linux

В данной статье перечислены основные, для работы, команды терминала Linux Ubuntu Server. Также здесь представлены примеры этих команд с различными ключами. Статью можно условно назвать «30 полезных команд терминала Linux».

Получаем размеры директорий командой du

Вторая команда, которую мы рассмотрим, это du. du – команда отображающая размер директории.

Дополнительные опции для du:

  • du -h – показывает информацию в читабельном формате. Можно указать путь к конкретной директории, если применить без этого, покажет информацию в текущем каталоге.
  • du -sh – покажет размер директории в которой вы находитесь. Можно указать путь к директории.
  • du -m – вывод информации в Мб.
  • du -h —time – выведет информацию с дополнительным столбцом по времени изменения директории или файлов.
Получаем размеры директорий командой du

Больше информации по утилите, можно увидеть так:

# -du —help

При администрировании сервера, можно комбинировать вышеописанные команды. Например, выведем размер всех вложенных каталогов в /var/log и отсортируем вывод от большего к меньшему (чтобы самые большие каталоги оказались вверху списка):

# du -h /var/ | sort -rn

# du —max-depth=1 -h – выводит на экране размер вложенных директории, не дальше 1-го уровня вложенности.

Получаем размеры директорий командой du

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

split

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

Читайте также:  Как использовать коды завершения в Bash-скриптах

Посмотрим, как можно разбить файл, содержащий 4 строки. Предположим, что мы намерены это сделать после 2 строки. Воспользуемся echo для создания тестового файла, а split выполнит всё остальное: 

echo -e «line1\nline2\nline3\nline4» > test_file split —lines 2 ./test_file test_file_split_ cat test_file_split_aa && cat test_file_split_ab

В этом случае мы из одного исходного файла создали 2 новых. Команда split позволяет присоединить префикс имени к выходным файлам, что мы и сделали с помощью последнего аргумента команды. Для полной ясности полученные разделенные файлы содержат суффиксы aa и ab.

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

Регистр имен

Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы и будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.

Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:

Регистр имен

Стандарт иерархии файловой системы

  • / — root каталог. Содержит в себе всю иерархию системы;
  • /bin — здесь находятся двоичные исполняемые файлы. Основные общие команды, хранящиеся отдельно от других программ в системе (прим.: pwd, ls, cat, ps);
  • /boot — тут расположены файлы, используемые для загрузки системы (образ initrd, ядро vmlinuz);
  • /dev — в данной директории располагаются файлы устройств (драйверов). С помощью этих файлов можно взаимодействовать с устройствами. К примеру, если это жесткий диск, можно подключить его к файловой системе. В файл принтера же можно написать напрямую и отправить задание на печать;
  • /etc — в этой директории находятся файлы конфигураций программ. Эти файлы позволяют настраивать системы, сервисы, скрипты системных демонов;
  • /home — каталог, аналогичный каталогу Users в Windows. Содержит домашние каталоги учетных записей пользователей (кроме root). При создании нового пользователя здесь создается одноименный каталог с аналогичным именем и хранит личные файлы этого пользователя;
  • /lib — содержит системные библиотеки, с которыми работают программы и модули ядра;
  • /lost+found — содержит файлы, восстановленные после сбоя работы системы. Система проведет проверку после сбоя и найденные файлы можно будет посмотреть в данном каталоге;
  • /media — точка монтирования внешних носителей. Например, когда вы вставляете диск в дисковод, он будет автоматически смонтирован в директорию /media/cdrom;
  • /mnt — точка временного монтирования. Файловые системы подключаемых устройств обычно монтируются в этот каталог для временного использования;
  • /opt — тут расположены дополнительные (необязательные) приложения. Такие программы обычно не подчиняются принятой иерархии и хранят свои файлы в одном подкаталоге (бинарные, библиотеки, конфигурации);
  • /proc — содержит файлы, хранящие информацию о запущенных процессах и о состоянии ядра ОС;
  • /root — директория, которая содержит файлы и личные настройки суперпользователя;
  • /run — содержит файлы состояния приложений. Например, PID-файлы или UNIX-сокеты;
  • /sbin — аналогично /bin содержит бинарные файлы. Утилиты нужны для настройки и администрирования системы суперпользователем;
  • /srv — содержит файлы сервисов, предоставляемых сервером (прим. FTP или Apache HTTP);
  • /sys — содержит данные непосредственно о системе. Тут можно узнать информацию о ядре, драйверах и устройствах;
  • /tmp — содержит временные файлы. Данные файлы доступны всем пользователям на чтение и запись. Стоит отметить, что данный каталог очищается при перезагрузке;
  • /usr — содержит пользовательские приложения и утилиты второго уровня, используемые пользователями, а не системой. Содержимое доступно только для чтения (кроме root). Каталог имеет вторичную иерархию и похож на корневой;
  • /var — содержит переменные файлы. Имеет подкаталоги, отвечающие за отдельные переменные. Например, логи будут храниться в /var/log, кэш в /var/cache, очереди заданий в /var/spool/ и так далее.
Читайте также:  Вход без пароля с помощью ключей SSH

Типы файлов Linux

Перечислим поддерживаемые типы файлов в ОС Linux

  • Файлы (тексты, исходники, картинки, скрипты)
  • Каталоги
  • Блочные устройства (жесткие диски, дискеты)
  • Символьные устройства (терминалы, принтеры)
  • символические ссылки
  • PIPE
  • Гнезда

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

ls -l

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

ls-l /dev/sd*

Буквой «b» помечаются блочные устройства.

Посмотреть список дисков можно командой

fdisk –l

Вывести информацию о жестком диске можно так

hdparm-I /dev/sdХ

< — перенаправление ввода

Многие команды Linux принимают файл в качестве параметра и берут свои данные из этого файла. Большинство из этих команд также могут принимать данные из потока. Чтобы создать поток, используйте левую угловую скобку (<), как показано в следующем примере, чтобы перенаправить файл в команду:

sort <

< - перенаправление ввода

Когда команда перенаправляет ввод в нее, она может вести себя иначе, чем при чтении из именованного файла.

Вот несколько примеров того, как вы можете использовать wc:

wc

< - перенаправление ввода

wc <