3. Как это работает для чайников - SnipGhost/linux-docs GitHub Wiki

Ключи или опции

Ключи, они же опции, они же опциональные аргументы. Например при вызове ls -la - la это ключи.
Причем два сразу. Ключи бывают 2 видов:

Тип 1. Однобуквенные, их можно передавать после одного минуса (некоторым старым утилитам типа ps вообще без ничего), как правило можно еще и склеивать, т.е. писать не ls -l -a, а сразу ls -la или ls -al, в данном случае все 3 вызова приведут к одинаковому результату.

Иногда после ключа может следовать какой-нибудь переменный аргумент, например tail -n 2 filename или tail -n2 filename позволит вывести только 2 последних строки filename. Такие можно комбинировать, но так, чтобы сразу после ключа с аргументом шел его аргумент и далее обязателен пробел.

Примеры как можно, а как нельзя:

Команда Так можно?
tail -vn2 filename ДА
tail -vn 2 filename ДА
tail -n2v filename НЕТ
tail -n2 -v filename ДА

Тип 2. Многобуквенные/полнословные, они выглядят как-то так git --version и как правило являют собой осознанное слово. Комбинировать нельзя, только через пробелы и 2 отдельных минуса, а-ля:

git commit --comment "Фигня какая-то, да?" --amend --version

У некоторых утилит (например git) обязательные аргументы должны идти строго после опциональных, т.е. так:

tail -n2 filename

А не так:

tail filename -n2

Но большинству стандартных утилит (в т.ч. и tail) на это фиолетово, что удобно, потому как иногда нужно менять только опции несколько раз запуская одну утилиту. Просто стоит держать в голове.

Зачастую у ключей бывает обе формы, тогда в документации они будут указаны рядом. Можно свободно комбинировать и те, и другие. Например:

git commit -m "Ничего не понятно, но очень интересно" --amend

Система прав

В выводе ls -l в первой колонке можно наблюдать последовательности символов, например: -rwxr-xr-x или drwxrwx---. Первым символом идет тип файла:

  • : regular file - текстовые, исполняемые, в общем просто организованная последовательность байт на диске.
  • d : directory - каталоги, содержит ссылки на другие файлы.
  • c : character device file - символьные устройства, с которыми система общается посылая или принимая по 1 символу (байту), например: старые аудио- и видео-карты, устройства ввода - клавиатура и мышь.
  • b : block device file - блочные устройства, например жесткие диски.
  • s : local socket file - сокет, структура, очень похожая на TCP/IP сокет, но только
  • p : named pipe - именованый канал, позволяет процессами обмениваться через него данными. Как конвейер, но лежит на файловой системе.
  • l : symbolic link - символическая "мягкая" ссылка, больше об этом в разделе ссылки.

TODO: rwx rwx rwx
TODO: SUID SGID Sticky-bit

Процесс загрузки

TODO: https://ru.wikipedia.org/wiki/Процесс_загрузки_Linux TODO: +grub

Файловая подсистема

Существует только один корневой каталог / от которого далее размещаются остальные, в случае подключения и монтирования жесткого диска он включается внутрь этой иерархии в точку монтирования. TODO: https://linuxcrash.readthedocs.io/en/latest/file_subsystem.html
TODO: VFS

Ссылки

TODO: жесткие и мягкие ссылки