diff --git a/stream/01_linux_zhirov/README.md b/stream/01_linux_zhirov/README.md new file mode 100644 index 0000000..6589f69 --- /dev/null +++ b/stream/01_linux_zhirov/README.md @@ -0,0 +1,66 @@ +# Linux + +## Базовые команды + +- `uname` (unix name) - вывод информации о системе и ядре операционной системы +- `hostname` - отображение текущего имени хоста системы +- `date` - отображает и устанавливает системное временя и дату, также позволяет форматировать и выводить дату и время в соответствии с определенными шаблонами +- `ls` (list) - сведения о содержимом текущего каталога +- `pwd` (present working directory) - вывод пути текущей рабочей директории +- `cd` (change directory) - изменение текущей рабочей директории +- `clear` - очистка содержимого терминала в командной строке +- `file` - определения типа файла +- `touch` - изменение времени доступа и времени модификации файлов или создания новых файлов +- `mkdir` (make directory) - создание новых директорий (папок) в файловой системе +- `cp` (copy) - копирование файлов и директорий +- `mv` (move) - перемещение или переименование файлов и директорий +- `rm` (remove) - удаление файлов и директорий +- `echo` - вывод текста или переменных в командной строке или в скриптах +- `cat` - вывод содержимого одного или нескольких файлов в командной строке +- `more`, `less` - позволяет просматривать содержимое файла постранично и обеспечивает удобный способ пролистывания вперед и назад по файлу +- `head` - выводит начальные строки из указанного источника, по умолчанию первые 10 строк +- `tail` - выводит конечные строки из указанного источника, по умолчанию последние 10 строк +- `nl` (number lines) - предоставляет возможность добавить номера строк к выводу, делая его более читабельным и упорядоченным +- `which` - определение полного пути исполняемого файла команды, то есть местоположения, где находится файл команды в системе +- `whereis` - поиск исполняемых файлов, исходных кодов и справочной документации связанных с указанной командой +- `man` (manual) - просмотр руководства по командам и программам в операционной системе +- `locate` - поиск файлов и директорий на основе их имени +- `find` - поиск файлов и директорий на основе различных критериев, таких как имя файла, тип, размер, дата изменения и другие +- `info` (information) - система справки, которая предоставляет структурированную и подробную информацию о программном обеспечении, командах, файловых форматах и других аспектах системы +- `type` - определяет тип команды, показывая, является ли команда встроенной в оболочку, алиасом, функцией или внешней программой +- `ps` (process status) - просмотр информации о запущенных процессах в системе +- `kill` - отправка сигналов процессам, таких как завершение процесса или управление его выполнением +- `pgrep` (process grep) - поиск и отображение идентификаторов процессов на основе их имен или других критериев +- `lsof` (list open files) - вывод списка открытых файлов и процессов, которые ими владеют, также предоставляет информацию о процессах, которые открыли файлы на диске или имеют сетевые соединения +- `df` (disk free) - вывод информации о доступном месте на файловых системах +- `du` (disk usage) - вывод информации о размере файлов или директорий в файловой системе +- `vmstat` (virtual memory statistics), `free` - вывод информации об использовании памяти в системе, включая физическую память (RAM) и использование памяти "подкачки" (swap) + +### Справочники + +- [Linux. Карманный справочник (Скотт Граннеман)](https://ftp.zhirov.kz/books/IT/Unix/Linux.%20%D0%9A%D0%B0%D1%80%D0%BC%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9%20%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%20%28%D0%A1%D0%BA%D0%BE%D1%82%D1%82%20%D0%93%D1%80%D0%B0%D0%BD%D0%BD%D0%B5%D0%BC%D0%B0%D0%BD%29.djvu) +- [Linux. Основные команды. Карманный справочник (Даниэл Дж. Баррет)](https://ftp.zhirov.kz/books/IT/Unix/Linux.%20%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B.%20%D0%9A%D0%B0%D1%80%D0%BC%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9%20%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%20%28%D0%94%D0%B0%D0%BD%D0%B8%D1%8D%D0%BB%20%D0%94%D0%B6.%20%D0%91%D0%B0%D1%80%D1%80%D0%B5%D1%82%29.pdf) + +## Иерархия каталогов в Linux + +![directory_hierarchy](img/directory_hierarchy.png) + +- `/bin`. Содержит готовые к запуску программы (также известные как исполняемые файлы), включая большинство основных команд Unix, таких как `ls` и `cp`. Большинство программ в `/bin` созданы в двоичном формате на языке C, но некоторые из них являются сценариями оболочки в современных системах. +- `/dev`. Содержит файлы устройств. +- `/etc` . Этот центральный каталог конфигурации системы (произносится этси) содержит пароль пользователя, загрузочные файлы, файлы устройств, сетевые настройки и др. +- `/home`. Содержит домашние (личные) каталоги для обычных пользователей. Большинство установок Unix соответствуют этому стандарту. +- `/lib`. Сокращение от **library** (библиотека). В этом каталоге находятся файлы библиотек с кодом, который могут использовать исполняемые файлы. Существует два типа библиотек: статические и разделяемые. Каталог `/lib` должен содержать только разделяемые библиотеки, но другие каталоги **lib**, такие как `/usr/lib`, включают обе разновидности, а также другие вспомогательные файлы. +- `/proc`. Предоставляет системную статистику через доступный для просмотра интерфейс каталогов и файлов. Большая часть структуры подкаталогов `/proc` в Linux уникальна, но многие другие варианты Unix имеют аналогичные функции. Каталог `/proc` содержит информацию о запущенных в данный момент процессах, а также некоторые параметры ядра. +- `/run`. Содержит данные времени выполнения, относящиеся к системе, включая определенные идентификаторы процессов, файлы сокетов, записи состояния и во многих случаях системный журнал. Это относительно недавнее дополнение к корневому каталогу, в старых системах вы можете найти его в `/var/run`. В более новых системах `/var/run` — это символическая ссылка на `/run`. +- `/sys`. Этот каталог похож на каталог `/proc` тем, что он предоставляет интерфейс устройствам и системе. +- `/sbin`. Место для системных исполняемых файлов. Программы в каталогах `/sbin` связаны с управлением системой, поэтому простые пользователи обычно не имеют компонентов `/sbin` в своих путях команд. Многие из утилит в этом каталоге работают, только если запущены от имени суперпользователя. +- `/tmp`. Место для хранения небольших, временных, не особо важных файлов. Любой пользователь может читать из каталога `/tmp` и записывать в него, но у пользователя может не быть доступа к файлам другого пользователя. Многие программы задействуют этот каталог в качестве рабочей области. Если какой-то файл важен, не помещайте его в каталог `/tmp`, потому что большинство дистрибутивов очищают его при загрузке, а некоторые даже периодически удаляют старые файлы. Кроме того, не позволяйте `/tmp` заполняться мусором, потому что обычно он делит пространство с важными каталогами (например, с остальной частью каталога `/`). +- `/usr`. Сокращение от **user** (пользователь), однако в этом подкаталоге нет пользовательских файлов. Вместо этого он содержит большую иерархию каталогов, включая основную часть системы Linux. Многие имена каталогов в `/usr` совпадают с именами в корневом каталоге (например, `/usr/bin` и `/usr/lib` ), и они содержат файлы одного типа. (Причина, по которой в корневом каталоге не содержится вся система, в первую очередь историческая — в прошлом это было сделано для того, чтобы снизить требования к пространству для корневого каталога.) +- `/var`. Подкаталог переменных, куда программы записывают информацию, которая может изменяться с течением времени. Здесь находятся системные журналы, отслеживание активности пользователей, кэши и другие файлы, создаваемые системными программами и управляемые ими. (Здесь также есть каталог `/var/tmp`, но система не стирает его при загрузке.) +- `/boot`. Содержит файлы загрузчика ядра. Эти файлы относятся к самому первому этапу запуска Linux, поэтому в этом каталоге вы не найдете информации о том, как Linux запускает свои службы. +- `/media`. Базовый каталог для съемных носителей, таких как флеш-накопители. Этот каталог встречается во многих дистрибутивах. +- `/opt`. Может содержать дополнительное программное обеспечение сторонних производителей. Многие системы не используют каталог `/opt`. +- `/include`. Файлы заголовков, используемые компилятором языка С. +- `/local`. Место, где администраторы могут устанавливать собственное программное обеспечение. Его структура должна выглядеть так же, как у каталогов `/` и `/usr`. +- `/man`. Страницы руководства. +- `/share`. Файлы, которые должны работать на других типах систем Unix без потери функциональности. Обычно это вспомогательные файлы данных, которые программы и библиотеки читают по мере необходимости. В прошлом сети машин совместно пользовались бы этим каталогом с файлового сервера, но сегодня общий каталог, применяемый таким образом, встречается редко, поскольку в современных системах нет конкретных ограничений на пространство для таких файлов. Вместо этого в дистрибутивах Linux вы найдете каталоги `/man`, `/info` и многие другие. diff --git a/stream/01_linux_zhirov/img/directory_hierarchy.png b/stream/01_linux_zhirov/img/directory_hierarchy.png new file mode 100644 index 0000000..9ef0034 Binary files /dev/null and b/stream/01_linux_zhirov/img/directory_hierarchy.png differ