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

Инструменты командной строки

Инструменты командной строки (англ. command line tools) — это программы, которые управляются через интерфейс командной строки (CLI), а не через привычный графический интерфейс (GUI). Для выполнения задач нужно вводить текстовые команды в окне терминала или консоли. Такие инструменты есть в большинстве операционных систем, включая Linux, macOS и Windows. Без них не обойтись системным администраторам, разработчикам и всем, кто плотно работает с данными.

Эти утилиты обладают мощным функционалом, а главное — их можно комбинировать и встраивать в скрипты для автоматизации сложных рабочих процессов. В качестве примеров можно привести программы для работы с файлами вроде cp и mv, текстовые редакторы вроде vim и nano, а также сетевые инструменты вроде ping и ssh. Их ценят за скорость, гибкость и полный контроль над системой и файлами.

Советы и хитрости

Остановка команды

  • Нажми Ctrl + C: это прервёт выполняющуюся команду и вернёт строку ввода.

Очень полезная штука, если случайно запустить команду, которая работает слишком долго или ведёт себя не так, как ожидалось. Это сработает и в том случае, если команда ждёт ввода данных, а нужно просто её отменить. Наконец, это быстрый способ начать заново, если при наборе команды была допущена ошибка.

Автодополнение

  • Нажатие Tab: дописывает команду, путь или флаг, если совпадение только одно.
  • Двойное нажатие Tab: показывает все варианты, если совпадений несколько.

Это работает для команд, файлов, папок и многих флагов. Например:

  • gigit
  • cd Doccd Documents/
  • git chgit checkout/git cherry-pick

История команд

  • Up / Down (стрелки вверх/вниз): листает ранее запущенные команды.
  • Ctrl + R: обратный поиск по истории команд (начни печатать для фильтрации, нажми Enter для запуска).
  • history: выводит полный список истории.
  • !!: запускает предыдущую команду заново.

Аргументы, кавычки и спецсимволы

При передаче аргументов командам стоит обращать внимание на пробелы и специальные символы. Если пути или имена файлов содержат пробелы, их нужно брать в кавычки (" или '), чтобы терминал воспринял их как один целый аргумент. Как вариант, пробел можно экранировать обратным слешем (\). Например:

  • Неправильно: rm My Project (терминал попытается удалить два разных пути: My и Project)
  • Правильно:
    • rm "My Project"
    • git add 'My Project'
    • git add My\ Project

Если забыть закрыть кавычку, терминал подумает, что ввод аргумента ещё не закончен, и будет ждать продолжения (выведя dquote> на новой строке). Можно либо закрыть кавычку на этой новой строке, либо отменить ввод, нажав Ctrl + C.

Многострочные аргументы

Обычно нажатие Enter в терминале сразу же запускает набранную команду.

Но иногда длинную команду или аргумент хочется разбить на несколько строк для удобства чтения. В таком случае в конце строки можно поставить обратный слеш (\) — он скажет терминалу, что команда продолжается на следующей строке. Например:

Запустить в терминале:
git rebase -i HEAD~5 \
--autosquash \
--keep-empty

Но тут есть один подвох: использование обратных слешей таким образом влияет только на то, как команда выглядит в терминале, и не добавляет реальных переносов строк в сам аргумент. Например:

Запустить в терминале:
echo "First line\
Second line"

Выведет:

Результат:
First lineSecond line

Чтобы добавить настоящий перенос строки в текст, нужно использовать символ новой строки (обозначается как \n) внутри кавычек:

Запустить в терминале:
echo "First line\nSecond line"

Или, если хочется визуально разбить текст в терминале:

Запустить в терминале:
echo "First line\n\
Second line"

Результат будет таким:

Результат:
First line
Second line