Система UNIX для чайников
20 апреля 2022 г.Система UNIX — это крупный прорыв, вдохновивший многие другие операционные системы. Это особенно заметно в Linux и macOS.
Вы можете даже прочитать термин «Unix-подобные системы».
Основная философия UNIX выделила такие важные принципы, как:
- многозадачность
- многопользовательский
- модульность
- единая ответственность
- сочинение
- портативность
- расширяемость
Еще в 60-х/70-х годах в UNIX была введена концепция «Заставить каждую программу делать одну вещь хорошо», и она до сих пор широко применяется в программировании.
Примечание: существует много других принципов, которые вы, возможно, захотите изучить
Основные компоненты
Ядро
Сердцем UNIX является ядро. Он взаимодействует с критическими элементами, такими как аппаратное обеспечение, память или файловая система.
Он работает с самым высоким уровнем разрешений.
Оболочка
Оболочка интерпретирует различные команды и утилиты для вызова программ и выполнения задач.
Файловая система
Файловая система состоит из каталогов и файлов, содержащих данные. Это иерархическое дерево.
Краткий обзор файловой системы Unix
Любой разработчик наверняка знаком с файловой системой UNIX. По крайней мере, вы, возможно, уже видели что-то похожее на следующее:
├── бин/
├── разработчик/
├── и т. д./
│ └── пароль
├── домой/
├── библиотека/
├── мнт/
├── корень/
├── проц/
├── мнт/
├── сбин/
├── tmp/
└── usr/
└── бин/
Эти каталоги содержат другие каталоги и файлы, необходимые для сервера или операционной системы.
Хотя дистрибутивы Linux и другие операционные системы могут иметь свои особенности (например, специальные файлы и каталоги), глобальная структура, скорее всего, будет выглядеть именно так.
Оно называется деревом каталогов и представляет собой типичную многоуровневую иерархию UNIX.
/home/
милый дом
Довольно просто, так как это домашняя папка для каждого пользователя, например, со специальными конфигурациями.
/
против /root/
Верхний /
- это корневой каталог системы. Все папки и файлы являются его потомками, включая /home/
. Это как C:\
в Windows.
/root/
— это домашний каталог для пользователя root.
/usr/bin
против /bin/
против /sbin/
/usr/bin
, например, обычно содержит исполняемые файлы, которые не нужны для загрузки или восстановления системы, но все же используются пользователем. /usr/
— это каталог только для чтения, который содержит такие приложения, как ваш любимый браузер.
Папка /bin/
содержит необходимые двоичные файлы, такие как cat
или ls
, которые также являются основными командными строками, которые вы используете в терминале. /sbin/
предназначен для «системных двоичных файлов», которые вы не можете использовать без необходимых разрешений, таких как утилиты обслуживания.
Привилегированный /etc/
/etc/
хранит основные файлы конфигурации и базы данных для системы. Например, файл /etc/passwd
является одним из самых важных. Он содержит очень важную информацию о пользователях в системе (например, имена пользователей, пароли, идентификаторы групп, идентификаторы пользователей, оболочку входа в систему, домашний каталог и т. д.).
Предполагается, что только пользователь root может редактировать такой файл.
/dev/
против /proc/
/dev/
содержит нестандартные файлы для устройств и виртуальных устройств (также известных как псевдоустройства), а /proc/
содержит процессы ядра.
Диски будут представлены в виде файла, например, /dev/sda
, а его разделы могут быть /dev/sda1
, /dev/sda2
, /dev/sda3
и так далее.
Что такое /dev/null
?
Администраторы и разработчики могут частично или полностью перенаправить вывод в /dev/null
, чтобы очистить его, чтобы они могли пропустить ненужные строки, такие как «Отказано в доступе», например, при глобальном сканировании с помощью grep
.
Установка /mnt/
/mnt/
для точек монтирования. Обычно вы используете его для монтирования временной файловой системы, такой как внешние хранилища или USB-накопители.
Грубо говоря, монтирование означает присоединение другой файловой системы к текущей файловой системе.
/вар/
/var/
предназначен для записи содержимого, такого как журналы.
/tmp/
/tmp/
для временных файлов. Такие файлы можно удалить в любой момент, например, при перезагрузке системы.
Чтобы сохранить файлы между перезагрузками, вы можете вместо этого использовать каталог /var/tmp/
.
Что такое vi
?
Vi — стандартный редактор для систем UNIX. Вы можете ввести vi NAME_OF_YOUR_FILE
в терминале, чтобы создать/отредактировать файл в системе UNIX, и ESC
, а затем :wq
, чтобы сохранить вашу работу.
Что такое процессы?
Процессы создаются при выполнении программы. Даже простое «ls -lah» создает процесс. Процессы также известны как «экземпляры» программ.
Системы UNIX включают обычные процессы и фоновые процессы. Чтобы запустить фоновый процесс, вы можете использовать &
:
./myexecutable &
Чтобы перечислить процессы, вы можете использовать ps
:
пс-е | меньше
Вы получите такую информацию, как идентификаторы процессов и многое другое. Чтобы убить определенный процесс, вы можете использовать kill -9 PROCESS_ID.
Концепция каналов, stdin
и stdout
Каналы позволяют передавать или хранить данные между процессами. В Unix-подобных системах он будет представлен как временный файл.
Трубы также можно рассматривать как перенаправления. Результат (выход или stdout
) команды используется в качестве ввода (stdin
) для другой команды для дальнейшей обработки.
Для передачи нескольких команд используется синтаксис |
. Это односторонний поток и направление слева направо:
данные кота.txt | grep "бутлег"
Это мощный встроенный механизм для объединения команд и выполнения сложных процедур.
Что такое сокеты UNIX?
Сокеты домена UNIX (или сокеты IPC) — это соединения между процессами в одной и той же операционной системе хоста (\~ одна и та же машина, без дополнительных затрат TCP).
Он использует локальную файловую систему для создания канала IPC (\~ независимый процесс, на который не влияют другие процессы) между процессами.
В отличие от труб, это двусторонняя связь.
Почему в UNIX говорят, что "все является файлом"
Утверждение «все есть файл» удобно для описания сложных абстрактных понятий. Многие внутренние функции, такие как сокеты, появятся в файловой системе (например, mysql.sock
), даже если они не содержат никаких данных.
Это то, как система представляет потоки байтов, которыми обмениваются программы.
Однако на практике не все на самом деле является файлом, например, системные процессы, но, может быть, правильнее было бы сказать, что «все ведет себя как файл».
Неправильно известные команды или параметры, которые вы, возможно, захотите использовать
| Команда | Описание |
| df –kh DIR/
| использование диска в данном каталоге в удобочитаемом формате |
| head -7 myfile.txt
| показать первые 7 строк файла |
| diff -w файл1.txt файл2.txt
| отображать различия между файлами, но игнорировать пробелы |
| кд-
| быстро перейти к предыдущему каталогу |
| бесплатно -h
| использование памяти в удобочитаемом формате |
| унаме -r
| отображать информацию о ядре |
| !111
| выполнить еще раз команду с номером 111 в списке истории |
Обратите внимание, что некоторые Unix-подобные системы могут иметь разные команды для одной и той же цели.
Также опубликовано [здесь] (https://blog.julien-maury.dev/en/unix-system/).
Оригинал