Основы программирования

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

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

Многие новички в IT воспринимают командную строку (CLI — Command Line Interface) как какой-то пережиток эпохи дискет и громоздких мониторов. Кажется, что в эпоху IDE с автодополнением и графических интерфейсов (GUI) вбивать команды вручную — это мазохизм. Но правда в том, что GUI — это всего лишь надстройка. Когда сервер «лежит», когда нужно автоматизировать рутину или когда нужно вытащить конкретную строку из лога в 2 гигабайта, никакой курсор мыши вам не поможет.

В этой статье я собрал «золотой фонд» команд для двух самых популярных сред: Linux/macOS (Bash/Zsh) и Windows (CMD/PowerShell). Я разбил их по категориям, чтобы вы могли использовать этот текст как справочник.

Почему CLI до сих пор актуален?

Прежде чем переходить к спискам, коротко о главном. Командная строка дает три преимущества:

  1. Скорость. Опытный пользователь выполняет задачу за 5 секунд, пока другой ищет нужную вкладку в настройках.
  2. Автоматизация. Скрипты (Bash или PowerShell) позволяют повторять однотипные действия тысячи раз без ошибок.
  3. Удаленный доступ. 99% серверов в мире управляются через SSH. Там просто нет графического интерфейса.

Часть 1: Навигация и работа с файловой системой (Linux/macOS)

Это база. Если вы не умеете перемещаться по папкам, дальше идти смысла нет.

  1. pwd — (Print Working Directory) показывает, где вы находитесь в данный момент.
  2. ls — список файлов и папок. Добавьте -la, чтобы увидеть скрытые файлы и права доступа.
  3. cd — переход в директорию. cd .. вернет вас на уровень выше.
  4. mkdir — создание новой папки.
  5. touch — создание пустого файла.
  6. cp — копирование. Для папок используйте cp -r.
  7. mv — перемещение или переименование файла.
  8. rm — удаление. Будьте осторожны с rm -rf, эта команда стирает всё без возможности восстановления из корзины.
  9. find — поиск файлов по всей системе.
  10. locate — быстрый поиск файла по индексированной базе (работает быстрее, чем find).

Часть 2: Работа с текстом и анализ логов

В IT работа с текстом — это 70% времени. Логи, конфиги, JSON-файлы — всё это текстовые данные.

  1. cat — выводит всё содержимое файла на экран.
  2. less — открывает файл для чтения с возможностью прокрутки (удобно для больших файлов).
  3. head — показывает первые 10 строк файла.
  4. tail — показывает последние 10 строк. Команда tail -f незаменима для мониторинга логов в реальном времени.
  5. grep — поиск строки по шаблону. Самый мощный инструмент фильтрации.
  6. sed — потоковый редактор. Позволяет заменять текст в файлах прямо из консоли.
  7. awk — мощный инструмент для обработки столбцовых данных.
  8. sort — сортировка строк.
  9. uniq — удаление дубликатов из списка.
  10. diff — сравнение двух файлов. Показывает, что именно изменилось.

Часть 3: Системное администрирование и мониторинг

Когда нужно понять, почему компьютер тормозит или какой процесс «съел» всю оперативную память.

  1. top — классический диспетчер задач.
  2. htop — улучшенная версия top с цветами и возможностью управления мышью (нужно устанавливать отдельно).
  3. ps aux — выводит список всех запущенных процессов в системе.
  4. kill — принудительное завершение процесса по его ID (PID).
  5. killall — завершение всех процессов с определенным именем.
  6. df -h — проверка свободного места на дисках в человекочитаемом виде.
  7. du -sh — узнать размер конкретной папки.
  8. chmod — изменение прав доступа к файлу (например, chmod +x делает файл исполняемым).
  9. chown — смена владельца файла или группы.
  10. sudo — выполнение команды от имени суперпользователя (администратора).

Часть 4: Сеть и диагностика

Если «интернет не работает», начинать нужно именно отсюда.

  1. ping — проверка доступности узла по сети.
  2. ifconfig (или ip a) — просмотр IP-адреса и настроек сетевых интерфейсов.
  3. netstat (или ss) — просмотр всех открытых портов и активных соединений.
  4. curl — отправка HTTP-запросов. Основной инструмент для тестирования API.
  5. wget — скачивание файлов из сети.
  6. ssh — безопасное удаленное подключение к другому серверу.
  7. scp — копирование файлов между серверами по протоколу SSH.
  8. nslookup (или dig) — проверка DNS-записей домена.
  9. traceroute — отслеживание маршрута пакета до цели (показывает, на каком узле происходит задержка).
  10. telnet — проверка доступности конкретного порта на сервере.

Часть 5: Инструменты Windows (CMD и PowerShell)

В Windows свои особенности. Хотя современный PowerShell поддерживает многие алиасы из Linux, базовые команды всё еще актуальны.

  1. dir — аналог ls, список файлов в папке.
  2. cd — навигация (работает так же, как в Linux).
  3. ipconfig — аналог ifconfig, просмотр сетевых настроек.
  4. ping — проверка связи (аналогично Linux).
  5. tracert — аналог traceroute.
  6. netstat -an — список всех соединений и портов.
  7. tasklist — список всех запущенных процессов.
  8. taskkill /F /PID [номер] — принудительное завершение процесса.
  9. cls — очистка экрана консоли (аналог clear в Linux).
  10. systeminfo — вывод детальной информации о системе и железе.

Лайфхаки для профи: как работать быстрее

Знать команды — это хорошо, но использовать их эффективно — еще лучше. Вот несколько советов, которые сэкономят вам часы работы:

1. Конвейер (Piping)

Самая крутая фишка Unix-систем — это символ |. Он позволяет передавать вывод одной команды на вход другой.
Пример: ps aux | grep nginx — мы берем список всех процессов и фильтруем его, оставляя только те, где упоминается «nginx».

2. Перенаправление вывода

    • > — записывает результат команды в файл, затирая старое содержимое.
    • >> — добавляет результат в конец файла (полезно для логов).
    • Пример: ls > files.txt — список всех файлов сохранится в текстовый документ.

3. Горячие клавиши

    • Tab — автодополнение. Никогда не пишите длинные пути или имена файлов вручную. Нажали Tab — консоль дописала за вас.
    • Ctrl + C — мгновенная остановка любой выполняемой команды.
    • Ctrl + R — поиск по истории команд. Начните писать часть команды, и терминал найдет ее в истории.

Заключение

Командная строка — это не про «хакерство» из фильмов, а про эффективность. Начать будет сложно: кажется, что проще кликнуть мышкой. Но как только вы освоите комбинацию из grep, awk и ssh, возврата к чистому GUI уже не будет.

Рекомендую не пытаться выучить все 50 команд за один вечер. Выберите одну категорию, откройте терминал и попробуйте применить эти команды на практике. Лучший способ запомнить — это когда команда решает вашу реальную проблему прямо сейчас.