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

Задолго до появления Windows, в 70-х годах двадцатого века на свет появилась операционная система Unix, предназначенная для работы на мейнфреймах. Изначальным названием системы было UNICS (Uniplexed Information and Computing Service)

Unix оказалась очень удачной операционной системой, но была платной и закрытой (нельзя посмотреть исходный код). На её основе создавались новые системы, которые со временем теряли обратную совместимость. 

Был принят стандарт POSIX (Portable Operating System Interface for UNI*X*)

К тому моменту, когда Линус начал свою разработку, уже существовал проект GNU, основанный Ричардом Столлманом, в рамках которого были разработаны и постоянно развивались свободные программы, составляющие основной инструментарий для разработки программ на языке Си: текстовый редактор Emacs, компилятор языка Си gcc (GNU Compiler Collection или набор компиляторов GNU), командная оболочка bash (bourne again shell или «возрождённый» shell), библиотека важнейших функций для программ на Си libc

Терминалом называют программу, которая эмулирует поведение «железного» терминала, состоящего из клавиатуры и монитора.

 shell («шелл»), командная оболочка и командный процессор. Командная оболочка — программа, через которую происходит управление операционной системой и установленными программами, используя командную строку. 

Pipeline

Командную оболочку нередко называют реплом (REPL, Read-Eval-Print-Loop), что отражается в способе взаимодействия с пользователем:

  1. Read — шелл ждёт ввода команды от пользователя
  2. Eval — шелл исполняет введённую команду
  3. Print — шелл выводит результат
  4. Loop — возвращаемся к первому пункту

Pwd «print working directory» – рабочая директория

ls — программа, которая выводит список файлов и директорий в рабочей (текущей) директории.

cd (change directory), с помощью неё осуществляется перемещение по файловой структуре. Абсолютный путь — это полный путь начиная от корня, в нашем случае /, а относительный — это путь, начинающийся от нашей текущей рабочей директории.

..  – директория выше уровнем.

Одинарная точка, означающая текущую директорию.

Автокомплит выполняется двойным нажатием на клавишу Tab

man <имя команды>  — режим чтения документации по команде.

Файловая структура представляет собой дерево, в узлах которого находятся директории, а в листьях — файлы.

Информация о любом файле или директории доступна по команде stat (file system status)

Кроме регулярных файлов, в *nix существует ряд других:

  • Hard Link — дополнительное имя для уже существующего файла.
  • Symbolic link — символическая ссылка, такой файл похож на ярлык в Windows. Если удалить основной файл, то символическая ссылка начнёт вести в никуда.
  • Socket — специальный файл через который происходит взаимодействие между разными процессами операционной системы. Программисты постоянно сталкиваются с сокетами в реальной жизни.

Точка в начале названия файла означает, что файл скрытый.

Самый простой способ прочитать файл — команда cat.

Другие способы: head показывает первые 10 строк, а tail — последние 10 строк файла.

tail -f path/to/file не просто выводит последние строчки файла, но ждёт появления новых. Как только файл дописывается, tail сразу выводит на экран добавленные строки.

Особая категория программ для просмотра содержимого файла — пейджеры. Пейджер похож на текстовый редактор, но открытый только в режиме чтения. Самый распространённый пейджер называется less.

Навигация

  • — выход
  • — вперёд на страницу
  • — назад на страницу
  • если набрать /, затем начать вводить буквы и нажать Enter, то выполнится поиск введённого текста. Перемещение по найденным совпадениям выполняется командой n (переход к следующему совпадению) и командой (переход к предыдущему совпадению).

grep (global regular expression print), выполняющей поиск по файлу или файлам определённого текста. Грепать для разработчиков — то же самое, что гуглить для тех, кто активно пользуется интернетом.

grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN]...  [-f FILE]...  [FILE...]

PATTERN — это то, что ищется, необязательно конкретная строчка, возможно определённый шаблон

Для редактирования файлов в командной строке используют редакторы Nano, Vim и Emacs.

Vim (Vi Improved или улучшенный vi) — свободный текстовый редактор, созданный на основе более старого vi (visual editor).

В Vim есть четыре основных режима работы:

  • Командный режим (обычный режим) — это режим по умолчанию. Перемещение по файлу, быстрое (при помощи команд, комбинаций клавиш) редактирование, удаление, поиск текста.
  • Режим вставки (режим ввод) — ввод текста с клавиатуры. То, как вы привыкли это делать в обычных редакторах.
  • Визуальный режим — выделение произвольных участков текста.
  • Режим командной строки — собственная командная строка для редактора текста, из которой можно выполнять великое множество разнообразных команд.

При старте любой программы операционная система связывает с ней три так называемых потока: STDIN (Standard Input), STDOUT (Standard Output) и STDERR (Standard Error). 

> — перенаправление потока. > всегда перезаписывает файл. Если нужно не перезаписывать, а добавлять, то используйте >>.

В POSIX за каждым потоком закреплён определённый номер: STDIN — 0, STDOUT — 1, STDERR — 2. Конструкция 2>&1  говорит о том, что поток с номером 2 отправляем в поток с номером 1.

 pipeline (конвейер) – соединение потоков. | — этот символ называется пайп, он указывает шеллу взять STDOUT одного процесса, и соединить его с STDIN другого процесса. 

Для создания файлов принято использовать утилиту touch.

Удаляется файл командой rm (remove files)

Переименование всегда равносильно перемещению, которое выполняется командой mv (move)

Для копирования файлов и директорий используется утилита cp (copy).

Для копирования директории с вложенными файлами/папками нужно добавить флаг -r (recursive).

Создание директории выполняется командой mkdir (make directory).

Посмотреть установленные переменные можно командой env (environment). 

История команд bash хранится в специальном файле .bash_history, который лежит в домашней директории пользователя.

Посмотреть историю можно командой history.

Команда whoami позволяет выяснить, кто же я такой.

Команда ps (process status) выводит отчёт о работающих процессах. Информацию о том, какой процесс и под каким пользователем запущен, можно получить из вывода ps aux

Схема записей в файле /ect/passwd

Стать другим пользователем, находясь прямо в системе, можно с помощью утилиты su (substitute user, switch user). Основной способ повышать привилегии в современных системах — утилита sudo (substitute user and do — дословно «подменить пользователя и выполнить»).

Sudo u имя_пользователя – переключиться на другого пользователя (exit – выход из сессии)

С каждым файлом ассоциированы права доступа: r — чтение, w — запись и x — исполнение. Причём эти права задаются для трёх типов пользователей: владельца (Owner), пользователей, входящих в ту же группу (Group) и остальных (Other) — тех, кто не попал в предыдущие две.

File Permissions

— файл; d – directory (папка).


A
BCD
1#PermissionrwxBinary
27read, write and executerwx111
36read and writerw-110
45read and executer-x101
54read onlyr—100
63write and execute-wx011
72write only-w-010
81execute only—x001

drwxr-xr-x в числовой форме соответствует 755, а -rw-r—r— — 644.

Apt install имя_пакета – установка пакета

Apt remove имя_пакета – удаление пакета

Если вам интересно узнать, а где лежит исполняемый файл конкретной программы, то можно воспользоваться командой type (а ещё which и whereis)

You may also like...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *