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: жесткие и мягкие ссылки