Операционные системы
- Установка Ubuntu
- Книги по операционным системам
- Стандарт POSIX – Portable Operating System Interface
- Эмуляция POSIX под Windows
Командная строка
- Способ взаимодействия с пользователем REPL (REPL, Read-Eval-Print-Loop)
Навигация
- команда pwd (print working directory)
- команда cd (change directory)
- “.” – текущая директория; “..” – родительская директория; “~” – домашняя директория пользователя
- ls – просмотр файлов
Интерфейс Командной строки
- Скрытые файлы начинаются с “.”
- Построение приложений командной строки (CLI)
- “-” сокращенное название опции(для ручного ввода); “–” – полное название опции (для скриптов)
- https://explainshell.com – интерактивное описание команд *nix
- Команда man
Файловая структура
- Стандарт каталогов *nix систем – FHS
- /etc содержит конфигурацию программ
- /home содержит домашние директории пользователей системы
- Кроме регулярных файлов, в *nix существует ряд других:
- Hard Link — дополнительное имя для уже существующего файла.
- Symbolic link — символическая ссылка, такой файл похож на ярлык в Windows. Если удалить основной файл, то символическая ссылка начнёт вести в никуда.
- Socket — специальный файл через который происходит взаимодействие между разными процессами операционной системы. Программисты постоянно сталкиваются с сокетами в реальной жизни.
Чтение файлов
- Команды: cat, head, tail, less
Grep
- Команда grep – поиск по файлу или файлам определённого текста
- Команда find
Потоки
- STDOUT (вывод на экран)
- STDIN (стандартный ввод)
- STDERR (вывод ошибок)
- утилита wc (считывае тколичество слов, строк и символов в файле)
- Перенаправление STDERR в файла “2&>” (здесь 2 – номер потока: STDIN – 0, STDOUT – 1, STDERR – 2)
Пайплайн (Конвейер)
- pipeline (конвейер)
- “|” — этот символ называется пайп, он указывает шелу взять STDOUT одного процесса и соединяет его с STDIN другого процесса (пример: cat source | grep Dog | uniq | sort)
Манипулирование файловой структурой
- Команда touch – создание файла
- Команда rm – удаление файла (для удаления директории нужно добавить флаг -r, для подавления вопросов нужно добавить флаг -f)
- Команда mv – перемещение файла
- Команда cp – копирование файла (для копирования вложенных директорий нужно добавить флаг -r)
- Команда mkdir – создание директории (для создание иерархии директорий нужно добавить флаг -p)
Переменные окружения
- Команда env – показывает переменные окружения
- HOME=/tmp – установка переменной среды HOME для следующей команды; export HOME=/tmp – установка переменной среды HOME для текущей сессии
История
- .bash_history – файл с историей команд (лежит в домашней директории пользователя)
- HISTFILESIZE – переменная среды; хранит количество хранимых команд в файле .bash_history (если переменная не определена, то история команд хранится бесконечно)
- Команда history – вывод истории команд (можно добавить цифру для вывода последних команд)
- Ctrl + r – поиск команд в истории по символам (повторная комбинация – продолжение поиска)
Пользователи и Группы
- Команда whoami – показывает информацию “кто я”
- Команда ps aux – показывает информацию о том, какой процесс под кем запущен
- Команда id – показывает идентификатор пользователя (uid root = 0)
- Файл /etc/passwd – данные о пользователях (Запись /usr/sbin/nologin говорит о том, что данный пользователь не может входить в систему)
Sudo
- Утилита su (switch user) – “стать” другим пользователем (НЕ РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ)
- Утилита sudo – “правильный” способ повышения привилегий (флаг -u повышает привилегии до указанного после флага пользователя)
- sudo -i – запуск новой сессии с повышенными привилегиями
Права доступа
- права доступа: r — чтение, w — запись и x — исполнение
- типы пользователей: владелец (Owner), входящие в ту же группу (Group) и остальные(Other) — тех, кто не попал в предыдущие две
- “d” – директория; “–” – файл
- root находится вне этой системы. Для него не имеет никакого значения наличие любых прав — рут может всё
- Изменение пользователя
- Изменение прав доступа
A | B | C | D | |
---|---|---|---|---|
1 | # | Permission | rwx | Binary |
2 | 7 | read, write and execute | rwx | 111 |
3 | 6 | read and write | rw- | 110 |
4 | 5 | read and execute | r-x | 101 |
5 | 4 | read only | r– | 100 |
6 | 3 | write and execute | -wx | 011 |
7 | 2 | write only | -w- | 010 |
8 | 1 | execute only | –x | 001 |
Пакетный менеджер
- Unix – apt
- MacOS – brew
- Windows – Chocolatey
- apt remove – удаление пакета (пример: apt remove php)
- sudo apt update – обновление списка пакетов
Выполнение программ
- Команды вывода информации о расположении исполняемого файла – type (а еще which и whereis)
- Директории …\bin\… – директории, где хранятся исполняемые файлы (так принято, но не обязательно)
- Для запуска программы из текущей директории необходимо все равно указывать путь к ней (можно использовать “./”)