Основы командной строки (4) (Конспект Hexlet)

Операционные системы 

  1. Установка Ubuntu
  2. Книги по операционным системам
  3. Стандарт POSIX – Portable Operating System Interface
  4. Эмуляция POSIX под Windows

Командная строка 

  1. Способ взаимодействия с пользователем REPL (REPL, Read-Eval-Print-Loop)

Навигация 

  1. команда pwd (print working directory)
  2. команда cd (change directory)
  3. “.” – текущая директория; “..” – родительская директория; “~” – домашняя директория пользователя
  4. ls – просмотр файлов

 Интерфейс Командной строки 

  1. Скрытые файлы начинаются с “.”
  2. Построение приложений командной строки (CLI)
  3. “-” сокращенное название опции(для ручного ввода); “–” – полное название опции (для скриптов)
  4. https://explainshell.com – интерактивное описание команд *nix
  5. Команда man

Файловая структура 

  1. Стандарт каталогов *nix систем – FHS
    1. /etc содержит конфигурацию программ
    2. /home содержит домашние директории пользователей системы
  2. Кроме регулярных файлов, в *nix существует ряд других:
    1. Hard Link — дополнительное имя для уже существующего файла.
    2. Symbolic link — символическая ссылка, такой файл похож на ярлык в Windows. Если удалить основной файл, то символическая ссылка начнёт вести в никуда.
    3. Socket — специальный файл через который происходит взаимодействие между разными процессами операционной системы. Программисты постоянно сталкиваются с сокетами в реальной жизни.

Чтение файлов 

  1. Команды: cat, head, tail, less

Grep

  1. Команда grep – поиск по файлу или файлам определённого текста
  2. Команда find

Потоки 

  1. STDOUT  (вывод на экран)
  2. STDIN (стандартный ввод)
  3. STDERR (вывод ошибок)
  4. утилита wc (считывае тколичество слов, строк и символов в файле)
  5. Перенаправление STDERR в файла “2&>” (здесь 2 – номер потока: STDIN – 0, STDOUT – 1, STDERR – 2)

Пайплайн (Конвейер) 

  1.  pipeline (конвейер)
  2. “|” — этот символ называется пайп, он указывает шелу взять STDOUT одного процесса и соединяет его с STDIN другого процесса (пример: cat source | grep Dog | uniq | sort)

Манипулирование файловой структурой 

  1. Команда touch – создание файла
  2. Команда rm – удаление файла (для удаления директории нужно добавить флаг -r, для подавления вопросов нужно добавить флаг -f)
  3. Команда mv – перемещение файла
  4. Команда cp – копирование файла (для копирования вложенных директорий нужно добавить флаг -r)
  5. Команда mkdir – создание директории (для создание иерархии директорий нужно добавить флаг -p)

Переменные окружения 

  1. Команда env – показывает переменные окружения
  2. HOME=/tmp – установка переменной среды HOME для следующей команды; export HOME=/tmp – установка переменной среды HOME для текущей сессии

История 

  1. .bash_history – файл с историей команд (лежит в домашней директории пользователя)
  2. HISTFILESIZE – переменная среды; хранит количество хранимых команд в файле .bash_history (если переменная не определена, то история команд хранится бесконечно)
  3. Команда history – вывод истории команд (можно добавить цифру для вывода последних команд)
  4. Ctrl + r – поиск команд в истории по символам (повторная комбинация – продолжение поиска)

 

 

Пользователи и Группы 

  1. Команда whoami – показывает информацию “кто я”
  2. Команда ps aux – показывает информацию о том, какой процесс под кем запущен
  3. Команда id – показывает идентификатор пользователя (uid root = 0)
  4. Файл /etc/passwd – данные о пользователях (Запись /usr/sbin/nologin говорит о том, что данный пользователь не может входить в систему)

Sudo

  1. Утилита su (switch user) – “стать” другим пользователем (НЕ РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ)
  2. Утилита sudo – “правильный” способ повышения привилегий (флаг -u повышает привилегии до указанного после флага пользователя)
  3. sudo -i – запуск новой сессии с повышенными привилегиями

Права доступа 

  1. права доступа: r — чтение, w — запись и x — исполнение
  2. типы пользователей: владелец (Owner), входящие в ту же группу (Group) и остальные(Other) — тех, кто не попал в предыдущие две
  3. d” – директория; “” – файл
  4. root находится вне этой системы. Для него не имеет никакого значения наличие любых прав — рут может всё
  5. Изменение пользователя
  6. Изменение прав доступа

Права доступа

 

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

 

Пакетный менеджер 

  1. Unix – apt
  2. MacOS – brew
  3. Windows – Chocolatey
  4. apt remove  – удаление пакета (пример: apt remove php)
  5. sudo apt update – обновление списка пакетов

 

 Выполнение программ 

  1. Команды вывода информации о расположении исполняемого файла – type (а еще which и whereis)
  2. Директории …\bin\… – директории, где хранятся исполняемые файлы (так принято, но не обязательно)
  3. Для запуска программы из текущей директории необходимо все равно указывать путь к ней (можно использовать “./”)