Бог Терминала: Гайд по командной строке

Работа с командной строкой – незаменимый навык для разработчиков, DevOps-инженеров, администраторов и всех, кто увлечен компьютерами. Этот гайд поможет освоить основы работы с терминалом и настроить его под себя.

Доступ к терминалу и первое знакомство

Для практики идеально подходят дистрибутивы Linux или macOS. При отсутствии возможности установить Linux, воспользуйтесь VirtualBox – он позволит запустить виртуальную машину с Linux. В этом гайде используется Debian, но вы можете использовать любую удобную систему.

Терминал в графическом интерфейсе Linux обычно находится в меню. При отсутствии графического интерфейса, вы уже находитесь в терминале. Пользователям Windows рекомендуется установить терминал. При первом запуске масштаб терминала может быть слишком маленьким – его следует изменить в настройках.

Главный элемент терминала – приглашение, которое может выглядеть по-разному. В стандартном варианте оно содержит имя пользователя (@), имя компьютера, путь к текущей директории и символ $, указывающий на режим обычного пользователя (не администратора). ~ обозначает домашний каталог (в Unix-системах используют термин «директория» или «каталог»).

Работа с терминалом заключается в вводе команд и нажатии Enter. Shell интерпретирует команду и заставляет операционную систему выполнить соответствующее действие. Shell – это командная строка. В этом гайде используется Bash.

Команда whoami возвращает имя пользователя, а pwd – абсолютный путь к текущей директории. / обозначает корневой каталог. В отличие от Windows, в Unix нет отдельных дисков; флешки и другие устройства монтируются в файловую систему. При вводе несуществующей команды Bash сообщит об ошибке.

Управление пакетами и программным обеспечением

Установка программ осуществляется через пакетный менеджер – программу, скачивающую пакеты (программы) из проверенного хранилища. Примеры пакетных менеджеров: apt (Ubuntu), dnf (Fedora), brew (macOS, требует отдельной установки).

На свежеустановленной системе сначала обновите список доступных пакетов: sudo apt update (для apt). Вам потребуется ввести пароль (ввод пароля не отображается символами *). sudo повышает привилегии для выполнения команды от имени администратора (root).

Установка программы: sudo apt install <имя_пакета>. Этот способ установки безопаснее и удобнее, чем скачивание .exe-файлов из интернета, так как в хранилища попадают только проверенные программы с открытым исходным кодом. Пароль запрашивается только один раз, и его действие сохраняется около 15 минут.

Работа с файлами и директориями

Команда ls выводит список файлов в текущей директории. mkdir <имя_директории> создает директорию. Команды выполняются в текущей директории. Для создания директории с пробелами в имени используйте экранирование: mkdir "My directory" или mkdir My directory.

cd <имя_директории> переходит в указанную директорию. cd .. переходит на уровень выше в файловой иерархии. . обозначает текущую директорию. cd без аргументов возвращает в домашнюю директорию, cd — – в последнюю директорию.

touch <имя_файла> создает пустой файл. echo "<текст>" > <имя_файла> записывает текст в файл (перезаписывает файл). echo "<текст>" >> <имя_файла> добавляет текст в конец файла.

cat <имя_файла> выводит содержимое файла.

Потоки ввода-вывода и пайплайны

Unix-системы используют три потока: stdin (стандартный ввод, 0), stdout (стандартный вывод, 1), stderr (стандартный поток ошибок, 2). Пайплайны позволяют перенаправлять вывод одной программы на ввод другой: ls | grep ".txt" (выведет список файлов с расширением .txt).

Пример программы на C++:

// Пример программы на C++
#include <iostream>
#include <string>

using namespace std;

int main() {
    string line;
    while (getline(cin, line)) {
        cout << line << endl;
    }
    return 0;
}

Удаление файлов и директорий

rm <имя_файла> удаляет файл. В Unix нет корзины, файлы удаляются безвозвратно. rm -r <имя_директории> удаляет директорию и все ее содержимое.

Права доступа к файлам

ls -l выводит информацию о файлах, включая права доступа: первый символ указывает тип файла (- – файл, d – директория), далее идут три группы по три символа, обозначающие права доступа для владельца, группы и остальных пользователей (r – чтение, w – запись, x – исполнение).

chmod <число> меняет права доступа. Число формируется суммированием прав: r=4, w=2, x=1. Например, chmod 777 устанавливает все права для всех, chmod 000 – убирает все права.

chown меняет владельца и группу файла.

Копирование, перемещение и работа с архивами

cp <исходный_файл> <копия_файла> копирует файл.
mv <исходный_файл> <новый_файл> переименовывает или перемещает файл.
tar – работа с архивами.
find – поиск файлов по имени, размеру и другим параметрам.

Настройка терминала и полезные сочетания клавиш

Для повышения эффективности работы с терминалом используйте:

  • Tab: автодополнение команд и имен файлов.
  • Стрелки вверх/вниз: просмотр истории команд.
  • history: вывод истории команд.
  • Ctrl+U: очистка текущей строки.
  • Ctrl+W: удаление последнего слова.
  • Ctrl+C: прерывание выполнения программы.

Для настройки внешнего вида рекомендуется установить Zsh: sudo apt install zsh. Затем замените Bash на Zsh (команда зависит от системы). Установите oh-my-zsh (команда для установки из репозитория oh-my-zsh). Установите шрифт для иконок (например, Meslo). Настройте тему в файле .zshrc. Можно установить плагины (подсветка синтаксиса, автодополнение).

Этот гайд предоставил базовые знания для работы с командной строкой. Практика и эксперименты помогут вам освоить этот мощный инструмент.

Что будем искать? Например,программа