learntech/stream/01_linux_zhirov/README.md

71 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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` и многие другие.
### Книги
- [Время UNIX. A History and a Memoir (Брайан Керниган)](https://ftp.zhirov.kz/books/IT/Other/%D0%92%D1%80%D0%B5%D0%BC%D1%8F%20UNIX.%20A%20History%20and%20a%20Memoir%20%28%D0%91%D1%80%D0%B0%D0%B9%D0%B0%D0%BD%20%D0%9A%D0%B5%D1%80%D0%BD%D0%B8%D0%B3%D0%B0%D0%BD%29.pdf)