В этой статье мы покажем вам 40 операций, которые можно использовать в командной строке Windows. Они помогут вам стать более уверенным пользователем.
Операции в командной строке Windows
powershell start cmd -v runAs – запускает командную строку от имени администратора. Ввод этой команды откроет новое окно командной строки с правами администратора.
driverquery – отображает все установленные драйвера. Важно иметь доступ ко всем драйверам, так как они часто вызывают проблемы. Эта команда показывает даже те драйверы, которые не отображаются в диспетчере устройств.
chdir или cd – меняет текущий рабочий каталог на указанный каталог.
systeminfo – показывает информацию о вашем ПК. Эта команда предоставляет подробную информацию о системе, которую нельзя увидеть в графическом интерфейсе.
set – показывает переменные среды вашего компьютера.
prompt – меняет текст, отображаемый перед вводом команд. По умолчанию командная строка показывает путь к диску C. Вы можете изменить этот текст с помощью команды prompt с синтаксисом: prompt имя_подсказки $G.
Примечание: если не добавить $G к команде, символ «>» не появится перед текстом.
clip – копирует элементы в буфер обмена. Например, dir | clip копирует содержимое текущего каталога в буфер обмена. Можно ввести clip /? и нажать ENTER для получения инструкций.
assoc – отображает программы и связанные с ними расширения файлов.
title – меняет заголовок окна командной строки с помощью команды: title имя_заголовка
fc – сравнивает два файла. Эта команда полезна для быстрого выявления различий между двумя файлами. Пример: fc «путь_к_файлу1» «путь_к_файлу2».
cipher – очищает диск и шифрует данные. Удаленные файлы остаются доступными.
netstat -an – показывает открытые порты, их IP-адреса и состояния.
ping – вычисляет IP-адреса сайта и время передачи данных.
color – меняет цвет текста командной строки.
Ввод команды color 2 покажет доступные цвета.
for /f «skip=9 tokens=1,2 delims=:» %i in (‘netsh wlan show profiles’) do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear – показывает все пароли Wi-Fi.
ipconfig – выдает информацию об IP-адресах и сетевых подключениях. Команда имеет расширения, например: ipconfig /release, ipconfig /renew, ipconfig /flushdns для устранения проблем с интернет-соединением.
sfc – проверяет системные файлы. Команда сканирует и исправляет поврежденные файлы. Используйте расширение /scannow для запуска проверки.
powercfg – меняет настройки питания. Команда имеет несколько расширений. Вы можете ввести powercfg help, чтобы показать эти расширения.
Например, powercfg /energy создает отчет о состоянии батареи в виде HTML-файла, который можно найти по пути: C:\Windows\system32\energy-report.html.
dir – показывает содержимого каталога.
del – удаляет файлы.
attrib +h +s +r имя_папки – скрывает папки. Для отображения папки используйте команду: attrib -h -s -r имя_папки.
start адрес_сайта – открывает сайт из командной строки,
tree – показывает структуру текущего каталога или указанного диска.
ver – отображает версиию ОС.
tasklist – показывает открытые программы.
taskkill – завершает выполнение задачи. Для завершения задачи выполните команду: taskkill /IM «task.exe» /F. Пример: taskkill /IM «chrome.exe» /F.
date – показывает и меняет дату.
time – показывает и меняет время.
vol – выдает серийный номер и информацию о метке текущего накопителя.
dism – запускает средство управления службой образов развертывания.
CTRL + C – прерывает выполнение команды.
-help – выдает справку по командам.
echo – показывает пользовательские сообщения или сообщения из сценария, файла.
Пример создания файла: echo содержимое_файла > имя_файла.расширение.
mkdir – создает папку.
rmdir – удаляет папку. Помните, папка должна быть пустой для успешного удаления.
more – показывает дополнительную информацию или содержимое файла.
move – перемещает файл или папку в указанный каталог.
ren – переименовывает файл. Пример: ren имя_файла.расширение новое_имя.расширение.
cls – очищает командную строку.
exit – закрывает командную строку.
shutdown – завершение работы, перезагрузка, перевод в спящий режим.
Для просмотра доступных опций введите shutdown в командной строке. Например, shutdown /r перезагрузит компьютер.
В итоге
Эта статья познакомила вас с несколькими командами, которые позволяют получить доступ к скрытым функциям вашего ПК. Будьте осторожны при работе с ними, так как они могут оказать длительное воздействие на вашу операционную систему.
Интерфейс командной строки для начинающих разработчиков
Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров6.4K
Если вы когда-либо читали инструкции от разработчиков, то наверняка видели фразы вроде: «Откройте консоль», «Выполните эту команду в терминале» или «Для этого потребуется командная строка». Эти инструменты часто называют невероятно мощными и полезными, но что это означает на практике? Почему терминал считается незаменимым инструментом разработчика и какие возможности он предоставляет, выходя за рамки привычных графических интерфейсов?
Меня зовут Евгений Бартенев, и я автор и техлид курса «Python-разработчик» в Яндекс Практикуме. В этой статье я расскажу, что стоит за терминами «терминал», «оболочка» и «командная строка», а также разберу их некоторые отличия и особенности. Вы узнаете, как они связаны друг с другом и почему работа через консоль зачастую оказывается быстрее и эффективнее. Мы также рассмотрим некоторые практические примеры, которые трудно реализовать, полагаясь только на графический интерфейс.
Эта статья не является справочником команд или пошаговой инструкцией. Она написана для тех, кто хочет понять, что же такое командная строка, и разобраться в её ключевых возможностях. Материал будет не столь полезен опытным разработчикам, которые используют терминал ежедневно. Однако я сделал фокус на терминологии и ключевых концепциях, которые часто остаются за кадром или вызывают путаницу даже у некоторых опытных пользователей. Но обо всём по порядку.
Разбор в ролике для тех, кто предпочитает видеоформат.
Терминология
Почти в каждой современной операционной системе есть графический интерфейс — это знакомые многим окна, иконки, кнопки и другие графические элементы. С их помощью можно выполнить практически любое действие. Однако в операционных системах обычно доступны и другие интерфейсы, например интерфейс командной строки.
Через интерфейс командной строки можно выполнять те же задачи, что и через графический, а иногда и значительно больше. Например, представить себе графический интерфейс для управления сотнями команд с множеством параметров — с ключами, подкомандами и опциями — довольно сложно. Если попытаться отобразить их все через кнопки и меню, экран быстро окажется перегружен элементами. Командная строка решает эту проблему: одна строка ввода может заменить целый набор сложных графических элементов.
Когда программисты говорят «откройте терминал» или «откройте консоль», они, как правило, имеют в виду именно интерфейс командной строки.
Терминал — это интерфейс для ввода-вывода текста, через который можно взаимодействовать с операционной системой.
В каждой операционной системе по умолчанию есть один или несколько терминалов, например:
-
в Windows — Windows Terminal, Windows Console Host;
-
в Linux — GNOME Terminal, Konsole;
-
в macOS — Terminal.app.
Хотя в обиходе слова «терминал» и «консоль» часто используют как синонимы, технически эти понятия различаются:
-
терминал — это интерфейс для работы с текстом;
-
консоль может означать как физическое устройство (например, монитор и клавиатуру в старых компьютерах), так и программу для доступа к терминалу.
При работе с терминалом вы на самом деле взаимодействуете с оболочкой (shell).
Оболочка — это программная среда, которая интерпретирует текстовые команды и выводит результаты. Оболочки можно менять или переключаться между ними, но сам терминал остаётся тем же.
Оболочки по умолчанию:
-
Windows: Command Prompt, PowerShell.
-
Linux: большинство дистрибутивов Linux используют bash (Bourne Again SHell) как оболочку по умолчанию. Некоторые новые дистрибутивы начали переходить на zsh (Z shell, произносится как «зет-шелл»).
-
macOS: до macOS Catalina оболочкой по умолчанию была bash. Начиная с macOS Catalina и позже, Apple перешла на использование zsh в качестве оболочки по умолчанию.
Каждая оболочка может обрабатывать команды, поддерживаемые операционной системой и соответствующим терминалом, но многие оболочки добавляют и свои уникальные возможности.
Обычно оболочки поддерживают сотни, а некоторые даже тысячи команд. Чтобы как-то навести порядок в этом многообразии возможностей, стали появляться различные стандарты. Среди таких стандартов особенно выделяется POSIX (Portable Operating System Interface). Он определяет ключевой набор текстовых команд и их ожидаемые результаты. Если оболочка называется POSIX-совместимой, это означает, что она поддерживает этот установленный набор команд.
Точное количество существующих оболочек определить сложно, поскольку их разработано множество, и новые продолжают появляться. Наиболее известные и популярные POSIX-оболочки — это bash (Bourne-Again SHell), Dash (Debian Almquist shell), ksh (Korn shell), ash (Almquist shell), zsh. А вот оболочки Fish (Friendly interactive shell), PowerShell, Command Prompt, Eshell не поддерживают POSIX, поэтому даже для одноимённых команд в каждой из них можно получить различный результат.
В этой статье я сфокусировался на возможностях именно POSIX-совместимых оболочек на примере zsh в операционной системе macOS.
Переключение между оболочками
Запустить интерфейс командной строки в операционной macOS можно по-разному. Чтобы открыть терминал с помощью Spotlight, достаточно нажать сочетание клавиш Command (⌘) + Пробел и в появившейся строке начать вводить слово Terminal. Как только терминал появится в списке предложений, выберите его нажатием клавиши Enter.
По умолчанию в macOS используется оболочка zsh, но вы можете переключиться на другую, например bash. Для этого выполните в терминале команду bash — заголовок окна изменится, а в самом окне изменится приглашение для ввода команд.
В macOS по умолчанию предустановлена устаревшая версия bash (3.2), что связано с политикой Apple, направленной на использование лицензий, не обременённых условиями GPLv3. Для использования актуальной версии bash необходимо выполнить дополнительные действия, например установить обновление через менеджер пакетов Homebrew.
Чтобы вернуться в оболочку zsh, введите и выполните команду exit.
На macOS предустановлены и другие оболочки. Чтобы увидеть все оболочки, доступные в вашей системе, выполните команду:
cat /etc/shells
На стандартной macOS вы увидите что-то вроде:
Для большинства пользователей zsh будет наиболее удобной и функциональной оболочкой, поэтому продолжим именно с ней. Начнём с самых базовых возможностей.
Базовые возможности оболочки
Одна из самых удобных функций большинства оболочек — это возможность быстро перебирать и повторно выполнять ранее введённые команды. Для этого достаточно использовать клавиши стрелка вверх и стрелка вниз.
Клавиши стрелка вправо и стрелка влево перемещают курсор на один символ вправо и влево, а при одновременном удержании клавиши Option — вправо и влево можно перемещаться уже по словам.
Оболочка zsh поддерживает удобное автодополнение. Просто начните вводить команду или путь к файлу, а затем нажмите Tab. Оболочка предложит варианты завершения. Если доступно несколько вариантов, zsh отобразит их список.
Если вы не уверены в том, как использовать ту или иную команду, можно обратиться за справкой. Для этого введите команду man (англ. manual, «руководство»), которая открывает полное описание команды, например: man ls.
Выйти из режима просмотра можно, нажав на клавишу q.
Если терминал заполнен текстом и вы хотите начать с чистого экрана, достаточно ввести команду clear или использовать сочетание клавиш Command + K.
Очистка экрана в терминале, например с помощью команды clear, не удаляет историю введённых команд — она просто очищает текущее отображение в окне терминала, оставляя всё, что вы вводили ранее, доступным для поиска. Это значит, что вы по-прежнему можете использовать клавиши стрелка вверх и стрелка вниз, чтобы пролистать недавно введённые команды.
Если нужная команда была введена давно, искать её вручную стрелками может быть неудобно. В таком случае поможет команда history. Она выводит список всех команд, которые вы вводили, вместе с их порядковыми номерами. Например, после выполнения команды history вы увидите что-то вроде этого:
Теперь, зная номер нужной команды, вы можете выполнить её снова, используя сокращённый синтаксис !<номер>.
Например, команда !73 повторит команду pwd (англ. print working directory, «напечатай рабочую папку»).
Псевдонимы
Псевдонимы (алиасы) — это удобный способ сократить часто используемые команды или создать короткие версии для длинных и сложных команд в POSIX-совместимых оболочках.
Для создания псевдонима, который будет доступен только в текущей сессии терминала, используется команда alias:
alias имя='команда'
Например:
alias ll='ls -la'
Теперь при вводе и выполнении команды ll будет выполняться команда ls -la.
Чтобы увидеть все активные псевдонимы, выполните команду alias.
Для удаления псевдонима используйте команду unalias:
unalias ll
Чтобы псевдоним сохранялся после перезапуска терминала, его нужно добавить в файл конфигурации оболочки:
echo "alias ll='ls -la'" >> ~/.zshrc
После внесения изменений перезапустите оболочку или выполните source ~/.zshrc
Перенаправление потоков
Потоки в UNIX-подобных операционных системах — это способ работы с данными, которые «текут» между программами, файлами и устройствами. Поток можно представить как канал, через который данные перемещаются, например, из файла в программу, из программы в другой процесс или на устройство, такое как принтер.
Основных потоков три:
-
Стандартный ввод (stdin) — это поток, откуда программа получает данные. Обычно это клавиатура.
-
Стандартный вывод (stdout) — это поток, куда программа отправляет свои результаты. Обычно это вывод в окне терминала.
-
Стандартный поток ошибок (stderr) — это поток для сообщений об ошибках. Он отделён от стандартного вывода, чтобы ошибки не смешивались с обычным результатом программы.
Допустим, вы выполняете команду ls. Выполнение команды ls создаёт список файлов и выводит его в стандартный вывод (stdout), то есть на экран. Однако это можно изменить.
Допустим, вам требуется сохранить весь вывод в файл. И самый простой способ сделать это — перенаправить поток. Для этого используется команда >.
ls > output.txt
Поток будет перенаправлен, и теперь список файлов сохраняется в файл с указанным именем, а не выводится на экран.
Подобным же образом стандартный ввод (stdin) программы можно перенаправить с клавиатуры на файл. Для этого используется символ <.
python3 myscript.py < input.txt
Программа на Python в файле myscript.py написана так, чтобы получать данные с клавиатуры, но теперь она будет построчно читать указанный файл и брать данные из него, а не ждать ввода от пользователя в терминале.
Конвейеры
Когда вы вводите команду в оболочке, она запускается и выполняется. Результат выполнения команды обычно отображается на экране. Однако в POSIX-совместимых оболочках результат выполнения одной команды вместо вывода на экран можно передать другой команде. Это позволяет создавать последовательности команд для обработки данных. Этот механизм носит название конвейеров (иногда их ещё называют пайплайны) и при написании команд обозначается символом |.
С помощью конвейеров можно выполнять довольно сложные задачи, разбивая их на последовательность более простых шагов.
Например:
cat input.txt | wc -l
Отдельное выполнение команды cat input.txt выводит содержимое файла input.txt, а команда wc -l подсчитывает количество строк в выводе.
Запуск конвейера из этих команд даст только финальный результат — количество строк, минуя промежуточные результаты.
Или вот другой пример:
ls -l | sort -k 5 -n
Команда ls -l выводит список файлов с подробной информацией, а запуск команды sort -k 5 -n сортирует вывод по пятому столбцу (размеру файлов). В результате выполнения конвейера мы сразу же получим необходимый результат.
А вот более сложный пример. У нас есть текстовый файл log.txt, содержащий список IP-адресов пользователей, подключавшихся к серверу.
192.168.0.1
192.168.0.2
192.168.0.1
192.168.0.3
192.168.0.2
192.168.0.1
Надо найти IP-адрес хакера, который решил загрузить наш сервер подключениями, вывести этот IP-адрес вместе с количеством подключений, попутно сохранить результат в файл top_user.txt. Из инструментов у нас только оболочка zsh.
В качестве решения задачи можно использовать следующий конвейер:
cat log.txt | sort | uniq -c | sort -nr | awk 'NR==1 {print $2, $1}' | tee top_user.txt
Тут каждая команда выполняет свою задачу, разберём их по порядку.
-
cat log.txt— читает содержимое файла log.txt и передаёт его в конвейер. -
sort— сортирует IP-адреса, чтобы одинаковые IP-адреса оказались рядом. -
uniq -с— подсчитывает количество повторений каждой уникальной строки (IP-адреса). Флаг -c добавляет число повторений перед каждым IP. -
sort -nr— сортирует строки по числовым значениям в порядке убывания (флаг-nr: -n— числовая сортировка,-r— обратный порядок). -
awk 'NR==1 {print $2, $1}'— обрабатывает только первую строку (самый активный IP-адрес) благодаря фильтруNR==1. Команда{print $2, $1}выводит второй столбец (IP-адрес) и первый столбец (количество подключений). -
tee top_user.txt— записывает результат в файл top_user.txt и одновременно выводит его на экран.
Задачу, конечно, можно было бы решить и меньшим количеством шагов, но я специально хотел показать пример длинного конвейера с разными командами.
В теории количество действий (команд) в конвейере оболочки (например, в bash или zsh) практически не ограничено. Однако на практике существуют технические и системные ограничения, которые определяют максимальную длину конвейера. Например, максимальный размер аргументов командной строки можно получить при помощи команды getconf ARG_MAX.
Логические операторы
В POSIX-совместимых оболочках логические операторы используются для управления выполнением команд в зависимости от их успешности (возвращаемого кода завершения). Эти операторы позволяют создавать не просто сложные последовательности команд, а последовательности с условиями выполнения.
Например, команда справа от && выполняется, только если команда слева завершилась успешно (код завершения 0).
mkdir new_dir && cd new_dir
Если mkdir new_dir выполнится успешно (директория будет создана), тогда выполнится cd new_dir — переход в созданную директорию. Если первая команда завершится с ошибкой (например, папка уже существует), вторая команда не будет выполнена.
Команда справа от || выполняется, только если команда слева завершилась с ошибкой (код завершения не 0).
mkdir new_dir || echo "Directory already exists"
Если mkdir new_dir завершится с ошибкой, будет выполнена команда echo. Если директория успешно создалась, то вторая команда не выполняется.
Можно комбинировать операторы, чтобы создать более сложные условия.
mkdir new_dir && echo "Directory created" || echo "Failed to create directory"
Если команда mkdir new_dir успешно выполнена — выполняется echo «Directory created». Если же выполнение mkdir new_dir привело к ошибке — выполняется echo "Failed to create directory".
Важный момент заключается в том, что здесь выполняется либо одна из двух веток, либо обе, в зависимости от того, как завершится вторая команда. Чтобы это предотвратить, можно использовать скобки:
(mkdir new_dir && echo "Directory created") || echo "Failed to create directory"
Таким образом логические операторы позволяют строить условия, обрабатывать ошибки и упрощать написание скриптов.
Условия
Современные оболочки терминалов давно вышли за рамки простого ввода и выполнения команд. Они предоставляют инструменты, которые позволяют использовать программные конструкции, знакомые каждому разработчику: переменные, циклы, условия, функции, массивы и многое другое.
Это превращает работу в терминале в процесс, близкий к написанию настоящего кода. Например, вы можете использовать циклы для обработки данных в файлах, условные конструкции для управления потоком выполнения или создавать сложные автоматизации прямо в командной строке.
Давайте рассмотрим, как это выглядит на практике.
Итак, конструкция if проверяет условие и выполняет определённые команды, если это условие истинно (то есть возвращает код завершения 0). Если условие ложно, можно указать команды для выполнения через else или дополнительные проверки через elif.
Например, предположим, что вы работаете с сервером, где нужно ежедневно проверять наличие файла с данными (например, отчёта), и если файла нет, то отправить уведомление администратору, ну или просто вывести сообщение в консоль.
Вот как это можно сделать с помощью конструкции if:
if [ -f input.txt ]; then
echo "File exists"
elif [ -d input.txt ]; then
echo "This is a directory"
else
echo "File does not exist"
fi
Здесь [ -f input.txt ] проверяет, существует ли файл с именем input.txt. Если файла нет, проверяется условие [ -d input.txt ], которое проверяет, является ли объект директорией. Если оба условия ложны, выполняется блок else.
Циклы
В оболочках терминалов, как правило, доступно несколько видов циклов, которые позволяют повторять выполнение команд до достижения определённого условия. Среди них наиболее популярны while, until и, конечно же, for, который особенно часто используется для итерации по элементам, строкам файлов или другим наборам данных. Это делает его универсальным инструментом для автоматизации рутинных задач.
Например, представьте, что вам нужно переименовать все изображения в папке, добавив к их именам текущую дату. Если делать это вручную через графический интерфейс, вам придётся тратить время на каждое изображение. С помощью цикла в терминале это можно автоматизировать буквально одной командой:
for file in *.jpg
do
mv "$file" "$(date +%Y-%m-%d)_$file"
done
Этот цикл перебирает все файлы с расширением .jpg в текущей папке и переименовывает их, добавляя текущую дату перед оригинальным именем.
Такой подход экономит массу времени, особенно если изображений десятки или сотни. Кроме того, вы можете модифицировать цикл для других задач, в основе которых лежит перебор чего-либо, например файлов:
for file in *.txt
do
echo "Processing $file"
done
Здесь переменная file принимает поочерёдно имена всех файлов с расширением .txt в текущей директории и для каждого файла выводится сообщение Processing <имя_файла>.
Как и в большинстве языков программирования, в циклах, используемых в оболочках терминалов, доступны конструкции break и continue. С их помощью можно более гибко управлять выполнением цикла: break позволяет досрочно завершить выполнение цикла при выполнении определённого условия, а continue пропускает текущую итерацию и сразу переходит к следующей.
Чем ещё интересны POSIX-совместимые оболочки?
Перечислять возможности POSIX-совместимых оболочек можно практически бесконечно, но формат статьи ограничивает меня в количестве и глубине их рассмотрения. Однако если вас заинтересовала эта тема, то вот ещё несколько направлений, которые вы можете изучить самостоятельно.
-
Использование регулярных выражений позволит эффективно искать и править текст, обрабатывать логи и анализировать данные.
-
Создание собственных функций поможет вам персонализировать оболочку и ускорить выполнение часто используемых задач.
-
Модификация окружения оболочки через написание конфигурационных файлов, таких как ~/.bashrc или ~/.zshrc, позволит настроить автодополнение, цветовые схемы и переменные окружения.
-
Использование сторонних плагинов, таких как Oh My Zsh, позволит улучшить автодополнение, добавит красивые подсказки и расширенную интеграцию с Git.
-
Взаимодействие с сетевыми утилитами или с такими инструментами, как curl, wget, ssh и scp, поможет выполнять сетевые операции прямо из командной строки.
-
Управление процессами даст возможность работать с фоновыми и приостановленными процессами и управлять приоритетами процессов.
-
Отладка скриптов позволит использовать инструменты вроде
set -xиtrapдля пошагового анализа выполнения команд.
Это не обязательный к изучению материал для начинающего специалиста, однако понимание и умение применять знания из перечисленных тем даст гораздо больше возможностей для профессионального роста и поможет вам раскрыть весь потенциал POSIX-совместимых оболочек.
Что в итоге?
Я разобрал лишь некоторые из множества возможностей POSIX-совместимых оболочек, которые, на мой взгляд, важно показать тем, кто только начинает знакомство с разработкой и учится работать в командной строке. Мы коснулись основ: работы с историей команд, вызовом справки, построением конвейеров и другими полезными функциями, которые делают консоль мощным инструментом в руках разработчика.
У меня не было цели создать ещё один справочник по командам — таких ресурсов уже достаточно, и они легко доступны через, например, поиск. Вместо этого я сосредоточился на фундаментальных моментах, которые помогают понять суть и возможности работы через интерфейс командной строки. Освоив эти базовые приёмы, вы сможете с уверенностью двигаться дальше, изучать новые команды, автоматизировать рутину и использовать терминал как полноценный инструмент для решения самых разных задач.
Надеюсь, эта статья вдохновит вас на дальнейшее изучение материала и, начав с малого, вы сможете достичь больших результатов и открыть для себя удобство терминала, которое так ценят опытные разработчики.
Сегодня, когда пользователь при управлении компьютером чаще полагается на графический интерфейс (GUI), командная строка может показаться немного устаревшей. Однако не стоит спешить с выводами! С помощью командной строки можно ускорить выполнение типовых задач и автоматизировать их, а также получить данные, которые обычно скрыты от пользователя, например, информацию о скорости отклика сайтов и так далее. В нашем материале мы расскажем подробнее о командной строке, как использовать ее для выполнения различных задач и какие команды можно взять на вооружение обычному пользователю.
Что такое командная строка — определение
Командная строка — это интерфейс, который позволяет пользователям взаимодействовать с компьютером, вводя текстовые команды. Ее также называют интерфейсом командной строки, а на английском название звучит как CLI или Command Line Interface. В различных источниках этот инструмент можно увидеть под названиями «консоль», «терминал», cmd и так далее.
Внешний вид интерфейса командной строки в операционной системе Windows
С помощью командной строки можно взаимодействовать с файлами, как в проводнике. Но некоторые задачи с помощью командной строки Windows пользователь может решить быстрее и эффективнее. Главное преимущество использования командной строки — автоматизация некоторых задач, вроде копирования файлов, удаления ненужных объектов и так далее. Кроме того, она предоставляет доступ к большому количеству утилит и инструментов, у которых может не быть графического интерфейса.
Несмотря на широкие возможности, которые предоставляет командная строка, не каждый владелец компьютера знает, как ее использовать. Она требует знания специфического синтаксиса и команд. Однако, познакомившись с общей информацией по теме и немного попрактиковавшись, вы сможете освоить этот инструмент и автоматизировать часть рутинных задач, экономя время и повышая производительность своей работы.
Для чего используют командную строку в Windows
Как уже говорилось, возможности командной строки достаточно широки. Но для чего именно она может понадобиться вам? Составим список типичных задач, для которых используется командная строка Windows:
- Управление файлами и папками. Командная строка позволяет создавать, перемещать, копировать и удалять файлы и папки, а также изменять их атрибуты. Например, можно создать новую папку, переместить файлы из одной папки в другую, а после удалить ненужную директорию.
- Управление процессами. Командная строка предоставляет возможность просматривать активные процессы на компьютере, запускать новые процессы и завершать их. Например, можно запустить программу из командной строки или завершить процесс, который перестал отвечать.
- Управление сетью. С помощью командной строки можно настраивать сетевые параметры, проверять подключение к сети, выполнять пинги и трассировки маршрута. Это может быть полезно для диагностики сетевых проблем или настройки сетевых соединений.
- Автоматизация задач. Командная строка позволяет создавать скрипты и пакетные файлы для автоматизации повторяющихся задач. Например, можно написать скрипт, который будет копировать определенные файлы в заданную папку.
- Работа с базами данных. Командная строка предоставляет возможность взаимодействовать с базами данных, выполнять запросы, создавать таблицы и управлять данными. Это может быть полезно для анализа данных или автоматизации операций с базами.
Список команд для командной строки Windows обширен и разнообразен. Перечисленные возможности — далеко не полный набор функций, что становится доступен пользователю, освоившему работу через Command Line Interface.
Два вида командной строки: CMD и PowerShell
Интерпретатор командной строки (Command Line Interpreter, или CMD) и PowerShell — это два похожих на первый взгляд инструмента, которые позволяют пользователям напрямую взаимодействовать с операционной системой.
CMD является традиционным инструментом командной строки в операционных системах Windows уже много лет. Он предоставляет базовый набор команд для управления файлами, папками и другими системными ресурсами. CMD основан на командной оболочке MS-DOS, предлагает множество функций, но и имеет ограниченные возможности сценариев и не поддерживает множество современных технологий.
CMD и PowerShell — интерфейсы похожи, но инструменты разные
PowerShell, с другой стороны, является более мощным и гибким инструментом командной строки. Он предоставляет расширенные возможности, интегрируется с различными технологиями и API. PowerShell основан на платформе .NET Framework и поддерживает множество командлетов (cmdlets), которые представляют собой маленькие программы, специально разработанные для выполнения конкретных задач. Командлеты PowerShell могут использоваться для автоматизации задач, управления системными ресурсами, работы с реестром, сетевым взаимодействием и многим другим.
Несмотря на широкие возможности PowerShell, у большинства по умолчанию стоит именно классическая версия интерфейса командной строки, и именно о ней рассказывается в большинстве обучающих материалов. Поэтому будьте внимательны при запуске CMD, язык командной строки Windows отличается от работы с PowerShell. Если использовать инструкцию для одного из интерфейсов, работая в другом, можно получить неожиданный результат.
Как открыть командную строку: все способы
Существует несколько способов, как открыть командную строку в Windows. Разберем наиболее актуальные для текущих версий операционной системы.
Запуск через окно «Выполнить»
Один из стандартных способов запуска командной строки — через окно «Выполнить», которое вызывается сочетанием клавиш Win+R. В нем нужно набрать команду для вызова командной строки Windows, она пишется как cmd. После ввода этого слова нажмите Enter или кнопку OK, командная строка запустится.
Окно «Выполнить» с введенной командой запуска
Запуск через меню Win+X
В Windows 10 есть удобное меню, позволяющее запустить основные управляющие программы с помощью простого меню. Нажмите Win+X, чтобы вызвать его. В списке у вас будет два пункта: просто «Командная строка» и «Командная строка (администратор)». В большинстве случаев вас устроит первый вариант, но иногда для действия, например для удаления некоторых файлов, требуется доступ администратора. В этом случае необходимо использовать запуск командной строки от администратора.
Меню, которое позволяет вызвать командную строку
В некоторых Windows 10 в списке, который появляется по Win+X, командная строка заменена на инструмент PowerShell. Мы уже говорили в предыдущем разделе, что это похожие инструменты, но они все же отличаются между собой. Если в вашей операционной системе по умолчанию предлагается использовать PowerShell, а вы хотите интерфейс CMD, используйте другие горячие клавиши для запуска командной строки Windows, например, Win+R.
Меню Win+R, в котором вместо командной строки предлагается запустить PowerShell
Запуск через меню «Пуск»
Ярлык запуска интерфейса командной строки можно найти в меню «Пуск». Для этого откройте его, прокрутите список программ до папки «Служебные — Windows», в этом списке найдите нужный ярлык и нажмите на него левой кнопкой мыши. Если требуется запуск от имени администратора, то нажмите правой кнопкой по ярлыку, выберите пункт «Дополнительно» и после — «Запуск от имени администратора».
Запуск командной строки через список программ в меню «Пуск»
В некоторых версиях Windows ярлык запуска интерфейса командной строки может находиться не в списке служебных программ, а в стандартных программах.
Другой вариант расположения ярлыка в меню «Пуск»
Запуск через меню «Пуск» с поиском
Для открытия программы в современных версиях Windows вовсе не обязательно просматривать все ссылки и искать нужное название. Можно просто открыть меню «Пуск» и написать cmd. После этого простого поиска справа в меню «Пуск» появится возможность запустить интерфейс командной строки с разными опциями: обычным способом или от администратора.
Запуск командной строки через поиск в меню «Пуск»
Резюмируем информацию о том, как вызвать командную строку в Windows:
- если вам требуется просто открыть интерфейс командной строки, можно использовать команду cmd в окне «Выполнить». Другие способы — через меню «Пуск» или меню Win+X простым нажатием левой кнопки на нужный пункт;
- если необходимо запустить командную строку от имени администратора, вам нужно использовать соответствующий пункт в меню Win+X, либо нажать правой кнопкой по ярлыку командной строки в меню «Пуск»;
- в некоторых случаях классическая командная строка может быть заменена на PowerShell. Это похожий, но не точно такой же интерфейс. Поэтому, если вы читаете инструкцию о классической командной строке, используйте иной способ для ее запуска.
Два варианта интерфейса командной строки: обычный и от администратора (разница в заголовке)
Базовые команды интерфейса командной строки Windows
Теперь, когда вы знаете, где вызывается командная строка Windows, стоит научиться ее использовать. Расскажем об основных командах, которые помогут использовать этот инструмент.
Ввод данных в командную строку
Командная строка выглядит как черный экран с мигающим курсором на месте текста, который вы будете вводить. Вы можете:
- вводить текст с клавиатуры на любом языке;
- вставлять скопированные команды с помощью правой кнопки мыши или сочетания Ctrl+V или Shift+Insert;
- перемещать курсор по тексту с клавиатуры стрелками, чтобы исправить опечатку;
- повторить уже введенную и вызванную команду, нажав стрелку вверх на клавиатуре, это поможет, если вы, например, опечатались в пути файла и не хотите вводить все заново;
- дополнить часть пути к файлу с помощью клавиши Tab. Для этого вам нужно начать вводить путь в консоль и нажать Tab, путь автоматически дополнится наиболее подходящим названием. Можно нажимать Tab несколько раз, чтобы изменять варианты автодополнения;
- копировать текст из командной строки с помощью сочетания клавиш Ctrl+C или (предпочтительно) выделив текст мышкой и нажав Enter.
Вы не можете:
- выделить кусок текста и стереть его;
- перемещать курсор мышью — только стрелками;
- вызвать контекстное меню, по умолчанию оно отключено.
Обратите внимание, что выделение и курсор для ввода текста в командной строке — разные, не зависящие друг от друга сущности. Их положение друг от друга не зависит.
Скриншот выделения и курсора: выделение находится на букве h и ее можно скопировать, курсор находится в конце строки, и именно там будет появляться текст, если пользователь начнет его вводить
На первый взгляд интерфейс неудобный и довольно ограниченный. Но, привыкнув, что большая часть команд вводится с клавиатуры, вы освоите его и сможете быстро использовать большинство команд.
Совет! Поэкспериментируйте с командой help: откройте командную строку, наберите слово «help» и нажмите Enter. Ознакомьтесь со списком команд и убедитесь, что можете повторно заполнить поле ввода словом «help», просто нажав стрелку вверх.
Работа с файлами — команда cd
Мы уже неоднократно говорили о том, что командная строка позволяет быстро и эффективно работать с файлами. Чтобы использовать ее для таких целей необходимо в первую очередь научиться открывать файлы и перемещаться между директориями. Для этого используется команда cd (сокращение от change directory. т.е. «сменить директорию»). Например, для того чтобы открыть папку Films на диске C необходимо написать в командной строке cd C:\Films и нажать Enter.
Скриншот перехода в папку Films на диске C с помощью интерфейса командной строки
Подобным образом можно запускать программы и открывать файлы из выбранной директории. Например, если у вас в папке Films лежит видео под названием Windows 10.mp4, вы можете ввести это название в командную строку, нажать Enter, и видео начнет проигрываться в плеере.
Скриншот запуска файла видео под названием «Windows 10.mp4» из директории «С:\Films»
Выйти из папки Films на уровень выше можно, введя команду cd ... Если вы хотите сменить диск, то нужно сначала написать в строке его букву с двоеточием, нажать Enter, а после, с помощью команды cd перемещаться по директориям.
Скриншот перехода между жесткими дисками: сначала перемещение к диску E, а после — в одну из папок на этом диске
Получение данных о директории — команда dir
Перемещаться между директориями с помощью команды cd удобно, только если вы знаете, где какая папка находится и какие файлы в ней лежат. Получить эту информацию, не выходя за пределы консоли, поможет команда dir. Введите ее, находясь в любой директории, и вы получите подробный список папок и файлов, которые в ней находятся.
Список файлов и папок, который отображается после использования команды dir
Проверка доступа к сайту — команда ping
Если у вас плохо работает интернет, можно воспользоваться командой ping, чтобы проверить, отзывается ли какой-нибудь популярный сайт. Чаще всего для проверки связи «пингуют» Яндекс. Введите команду ping ya.ru, чтобы узнать, как идут пакеты до этого ресурса. Если интернет по какой-то причине не работает, в консоли будет написано «не удалось обнаружить узел». Если же связь есть, вы получите отчет: сколько пакетов было отправлено, сколько получено и сколько времени это заняло.
Скриншот интерфейса командной строки после использования команды ping ya.ru
Удаление нескольких файлов одинакового формата — команда del и маска имени файла
Одна из удобных функций интерфейса командной строки — быстрая работа с файлами, отобранными по определенным характеристикам. Для отбора чаще всего используются маски имени файлов, например, написав * вместо части имени, вы говорите, что на этом месте может быть сколько угодно символов. Таким образом, маска *.jpg позволит выбрать все файлы формата JPEG. Если к выбору добавить команду, например, удаление (del), то можно удалить из папки все файлы формата JPEG. Команда будет выглядеть следующим образом: del *.jpg.
Скриншот удаления всех файлов формата JPEG из директории Pictures
Помощь и большой список стандартных команд — команда help
Мы описали основные параметры командной строки Windows, которые можно использовать для управления компьютером. Но команд на самом деле намного больше. Список их легко вызвать введя команду help. Используйте ее, если хотите расширить свои возможности.
Список, который появляется после вызова команды help
Внутренние и внешние команды CMD
Команды, которые мы описали выше, являются внутренними, т. е. теми, которые уже встроены в операционную систему. Также с помощью консоли можно выполнять внешние команды — те, которые пользователь создает сам либо с помощью сторонних программ. Например, если вы решите изучать Python и установите на компьютер программу VS Code, в командной строке появится дополнительная команда code, которая ее запускает.
Еще одна внешняя команда — ffmpeg. Она запускает утилиту FFmpeg, которая может конвертировать видео из одного формата в другой. Ее также необходимо устанавливать отдельно.
Другой пример внешней команды — yt-dlp. Она запускает утилиту, которая позволяет скачивать видео с YouTube и многих других видеохостингов и аудиохостингов.
Все внешние команды появляются только после корректной установки соответствующих программ на компьютер. Если софт не установлен или при установке произошла ошибка, вызов через интерфейс CMD может не работать. Вы также можете написать собственную программу и добавить в нее код для вызова через командную строку Windows.
Итак, мы рассмотрели, как открыть командную строку администратора Windows, что пользователь может делать с помощью этого интерфейса и узнали базовые команды CMD. Этого вполне достаточно, чтобы далее разобраться самостоятельно с управлением файлами и другими аспектами. Однако мы рекомендуем с осторожностью использовать любые системные инструменты, т. к. они дают большую свободу действия, нежели графический интерфейс. Прежде чем использовать команды, убедитесь, что вы понимаете, что они делают, иначе можно случайно потерять все данные, отформатировав жесткий диск.
Командная строка — текстовый интерфейс пользователя для взаимодействия с операционной системой компьютера и/или другим программным обеспечением с помощью команд, вводимых с клавиатуры. С его помощью пользователь может запускать и отключать другие программы, системные процессы, редактировать реестр, управлять файлами и папками, а также программировать с использованием встроенного скриптового языка.
В операционных системах семейства Windows для десктопов и серверов для запуска командной строки используется программа cmd, а также приложение Power Shell, предоставляющее более широкие возможности автоматизации процессов за счет встроенного языка сценариев, чем стандартная cmd-консоль.
Что такое командная строка?
Командная строка представляет собой оболочку операционной системы — программу, предназначенную для взаимодействия пользователя с ОС. Она выглядит как консоль для ввода пользователем текстовых команд, которые затем переводятся встроенным интерпретатором в машинный код.
История командной строки уходит в эпоху компьютерных терминалов (50–70-е годы XX века), представлявших собой аппаратный интерфейс взаимодействия оператора с «большими» ЭВМ. Терминалы (консоли) имели клавиатуру и устройство вывода — принтер бумажной текстовой ленты или простой дисплей на электронно-лучевой трубке. Часто роль терминалов выполняли телетайпы, которые были разработаны для обмена текстовыми сообщениями. Такие устройства не были пригодны для отображения визуальных элементов, поэтому вывести на них графический интерфейс пользователя (GUI) было невозможно. Работа оператора была построена исключительно на вводе текстовых команд.
Преемственность между аппаратными терминалами и современными программными интерфейсами командной строки отражается в том, что последние до сих пор неофициально называются терминалами или консолями.
Хотя первые GUI появились еще в 1960-е годы, долгое время они использовались исключительно на внутрикорпоративных и университетских компьютерах как экспериментальные разработки. Большинство коммерческих ПК того времени продолжали использовать командную строку как основной способ взаимодействия человека с машиной. Так продолжалось вплоть до конца 1980-х годов, когда она постепенно начала вытесняться более удобным графическим интерфейсом в коммерческих ОС, ориентированных на широкий круг пользователей. Тем не менее интерфейс командной строки остается одной из базовых встроенных функций в любой распространенной операционной системе.
Для чего нужна командная строка?
Интерфейс командной строки обеспечивает пользователя всеми возможностями для полноценного взаимодействия с компьютером.
Диагностика ПК. Из консоли можно просматривать информацию о самом компьютере, в том числе данные о производителе, модель и серийный номер ПК, характеристики аппаратной части (например, тактовая частота и количество ядер процессора, общий и доступный объем оперативной и долговременной памяти, число и состояние сетевых адаптеров), версия BIOS, название и версию установленной операционной системы, адрес расположения папки с ОС, имя пользователя и многое другое. Командная строка позволяет проверять ПК на наличие ошибок в работе долговременной памяти, просматривать данные об эффективности управления питанием и возникающих в нем проблемах, проводить диагностику драйверов и конфликтов между ними, проверять целостность системных папок и т. д.
Восстановление системы. Консоль поддерживает проверку томов (логических дисков), самой ОС, а также установленного программного обеспечения. С ее помощью можно осуществлять резервное копирование и восстановление файлов, извлечение сохранившихся данных с поврежденных внешних и внутренних носителей (жестких дисков, флеш-накопителей и т. д.).
Работа с дисками. Используя консоль, пользователь может получить исчерпывающую информацию о системных и внешних накопителях — в частности, об используемых на них файловых системах, об общем объеме и размере занятого дискового пространства, о наличии проблемных мест. С помощью командной строки можно провести диагностику файловой системы дисков и устранить выявленные ошибки, изменить размер дисковых квот, дефрагментировать (упорядочить) разрозненные файлы для повышения быстродействия ПК и т. д. Также она позволяет зашифровать данные, хранящиеся на диске, затереть оставшиеся после удаления файлов цифровые следы.
Работа с системой. С помощью командной строки пользователь может посмотреть список активных системных процессов и сколько оперативной памяти расходуется на каждый из них, а также при необходимости отключить их. Этой возможностью пользуются как IT-специалисты для автоматизации задач, так и простые пользователи — например, при сбое графической оболочки ОС. Также консоль позволяет принудительно отключить все процессы, завершив работу операционной системы или переведя ПК в режим гибернации. Консоль позволяет вызвать историю процессов, проследить возникающие в их работе ошибки.
Работа с сетевыми подключениями. Используя консоль, пользователь может узнать характеристики и проверить состояние установленных на компьютере сетевых адаптеров. Также с ее помощью проверяют работу сетевых подключений, их загруженность, скорость отправки и получения данных, определяют IP-адрес ПК, просматривают состояние удаленных хостов, прослеживают маршрут до конкретного сервера в интернете с отображением всех промежуточных маршрутизаторов, выявляют излишнюю сетевую активность основных и периферийных устройств и т. д.
Работа с файлами и приложениями. С помощью командной строки пользователь может посмотреть расположение конкретных папок и файлов, открыть их содержимое. Консоль также позволяет запустить и отключить системные процессы и установленные приложения, выявить ошибки в их работе, проверить ПО на безопасность.
Программирование. В большинстве современных операционных систем в интерпретатор командной строки встроен простой скриптовый язык. С его помощью можно автоматизировать практически все системные процессы, а также написать несложные алгоритмы и программы — например, калькулятор, заметки и т. д.
Преимущества командной строки
Интерфейс командной строки продолжает активно применяться пользователями несмотря на наличие во всех распространенных операционных системах графических оболочек. Причин этому несколько:
- Низкий расход ресурсов. Командная оболочка предельно проста в реализации, поэтому на ее работу затрачивается минимальное количество системных ресурсов по сравнению с более сложными и требовательными графическими интерфейсами. Это гарантирует практически моментальный отклик на действия пользователя. Особенно данное преимущество полезно при работе на устройствах с малой производительностью или в условиях слабой пропускной способности канала передачи данных.
- Быстрый доступ к данным, функциям и приложениям. Несмотря на интуитивность, графический интерфейс предлагает пользователям сравнительно медленный способ взаимодействия с компьютером и операционной системой. Например, чтобы активировать системный процесс или запустить приложение с его помощью, нужно зайти в Проводник, открыть системный диск, найти нужную папку, найти ее и только потом кликнуть на искомый файл. С помощью командной строки этот путь сокращается до 1–2 действий.
- Широкие возможности управления. С помощью командной строки пользователь может работать с любым системным процессом или приложением — в том числе с теми, которые не имеют графической оболочки. Это дает более широкие возможности для настройки операционной системы, контроля над аппаратными ресурсами, взаимодействия с выделенными серверами и т. д. Также командная строка позволяет автоматизировать повторяющиеся процессы, создавать скрипты, тем самым делая взаимодействие с компьютером более гибким и простым.
- Простота работы. Интерфейс командной строки представляет собой простое окно с минимальным количеством интерактивных элементов. С одной стороны, это максимально упрощает его восприятие пользователем, позволяет ему концентрироваться на выполнении текущей задачи, не отвлекаясь на посторонние элементы. С другой — позволяет вместить в окно больше текстовой информации.
- Простота отладки. Пользователю, столкнувшемуся с проблемой, достаточно отправить копию диалога с ПК из окна командной строки на тематический интернет-форум, чтобы получить помощь от других пользователей или разработчиков. В случае с графическим интерфейсом сделать это сложнее, так как приходится пересылать множество скриншотов в определенном порядке с фиксацией всех выполняемых действий. Кроме того, интерфейс командной строки максимально стандартизирован, в нем используются простые англоязычные команды и сокращения, в то время как графическая оболочка отображается с локализацией на языке пользователя, что затрудняет ее восприятие иностранцами.
- Развитая поддержка. Интерфейс командной строки за десятилетия своего существования претерпел незначительные изменения. Это делает все наработки по нему, выполненные другими пользователями, востребованными и полезными в течение длительного времени.
Недостатки командной строки
У интерфейса командной строки есть и определенные недостатки, ограничивающие его применение, особенно неопытными пользователями:
- Неинтуитивный характер работы. Командная строка не предлагает пользователю подсказок, не направляет его действия. Работа в ней осуществляется с помощью команд, которые необходимо запоминать или искать в справочнике. Это создает сложности для пользователей, только начинающих осваивать ПК или привыкших работать с ним через интуитивно понятный графический интерфейс.
- Неудобный ввод. Там, где в графическом интерфейсе нужно сделать всего клик мышью, консоль заставляет вводить текстовые команды через клавиатуру. Из-за этого ввод длинных, содержащих специальные символы параметров становится затруднительным (частично эту проблему решает автозаполнение).
- Низкая наглядность выводимой информации. Командная строка, доставшаяся «в наследство» от простых текстовых терминалов, не отображает графические элементы. Из-за этого данные выводятся в виде текста с примитивным форматированием, в лучшем случае они систематизируются в виде таблиц. Это делает их восприятие более сложным для пользователя.
Консоль Windows
В операционных системах семейства Windows NT (версии 2000, XP, Vista, 8, 10, 11, а также Windows Server) интерфейс командной строки запускается оператором cmd. В более ранних версиях этой ОС, а также в MS-DOS его функцию выполнял оператор command. Интерпретатор командной строки предоставляет пользователю простой текстовый интерфейс и сравнительно небольшой набор основных команд cmd, позволяющий ограниченно автоматизировать процессы.
Недостаточный функционал встроенной консоли Windows в плане автоматизации привел к тому, что корпорация Microsoft в более новых версиях операционной системы (начиная с Windows 7) внедрила оболочку Power Shell, которая включает обновленный интерпретатор, а также усовершенствованный и расширенный язык сценариев. Она позволяет выполнять не только обычные команды для командной строки, но и более сложные административные задачи, а также использовать свои инструменты в других приложениях Microsoft.
Несмотря на интенсивное развитие GUI, командная строка остается важным компонентом управления операционными системами и другим программным обеспечением. Это обусловлено универсальностью, простотой, низким потреблением ресурсов, свойственным этому типу пользовательских интерфейсов. Однако неинтуитивный характер работы, необходимость запоминать множество команд делают командную строку востребованной в первую очередь среди IT-специалистов и опытных пользователей.
CLI (Command Line Interface) — это способ взаимодействия с компьютером через текстовые команды. Вместо того, чтобы кликать по кнопкам, мы вводим команды через терминал (консоль), и система тут же выполняет наши инструкции.
- Отличие от графического интерфейса (GUI)
- В графическом интерфейсе (GUI) мы видим удобные окошки и кнопки, нажимаем мышкой или тачпадом.
- В CLI мы набираем конкретные команды, чаще всего на английском языке, и сразу получаем текстовый результат или вывод.
- CLI считается более гибким и мощным, поскольку позволяет точно управлять системой — одной командой можно сделать то, что в GUI требовало бы целую серию кликов.
- Почему программисту важно уметь работать с консолью
- Скорость. Командой «на лету» можно скопировать десятки файлов, переименовать их, запустить скрипты — всё это занимает секунды.
- Точность и гибкость. У вас полный контроль над системой. Особенно это важно, когда работаете с сервером или автоматизируете рутинные задачи.
- Универсальность. Терминалы бывают везде: на сервере, в облачном окружении, на локальном компьютере. Умение работать в них облегчает жизнь в самых разных проектах.
Представим, что у вас есть куча фотографий с отдыха и их нужно переименовать. Через графический интерфейс придётся вручную переименовывать каждый файл, а через CLI достаточно написать одну команду, и всё будет сделано автоматически!
Главные понятия
Терминал
Работа с командной строкой начинается с терминала.
Открыть терминал
- Linux/Mac: Обычно ищем приложение “Terminal” (или «Терминал») в списке программ. Часто можно запустить его по сочетанию клавиш (например, в Ubuntu — Ctrl+Alt+T).
- Windows:
- CMD (Command Prompt): ищем в поиске Windows «Командная строка» или «cmd».
- PowerShell: ищем «PowerShell» в поиске Windows. Это более современная оболочка, которая поддерживает команды из CMD, но имеет и дополнительные возможности.
Директория (папка) и файл
- Файл — это набор данных, например, текстовый документ, картинка, музыкальный трек.
- Директория (или папка) — это контейнер, в котором лежат файлы и другие папки.
Пример: Есть папка Documents, внутри неё может быть папка Projects, а в ней файлы script.py, notes.txt и т.д.
Путь к файлу/директории
- Абсолютный путь — указывает расположение файла или папки, начиная от корневой директории.
- В Linux/Mac это выглядит, например, как
/home/user/Projects. - В Windows обычно начинается с
C:\Users\Username\Projects.
- В Linux/Mac это выглядит, например, как
- Относительный путь — указывает путь относительно текущей директории.
- Например, если мы уже находимся в
/home/user, то попасть в Projects можно командойcd Projects. - Или
cd ./Projects(точка.указывает на текущую директорию).
- Например, если мы уже находимся в
(Мини-пример)
Вы находитесь в папке/home/user. Абсолютный путь к файлуscript.pyв папкеProjectsбудет/home/user/Projects/script.py. Но если вы уже «внутри»/home/user, то можете набратьcd Projects(относительный путь), а затемpython script.py.
Безопасность и осторожность
Работа с терминалом даёт огромные возможности, но с этим приходит и ответственность:
- Команды, которые могут навредить системе
- Например, команда удаления файлов (в Linux это
rm, а в Windows —delилиRemove-Item) не спросит «А вы точно уверены?», если вы явно не включите такой запрос. А если вы используете параметры вроде-rв Linux (rm -r folder), то можете случайно «снести» целые папки вместе с содержимым! - Важно всегда понимать, где вы находитесь и что удаляете. Ошибка в одной букве пути может привести к катастрофе, если затронуть системные файлы.
- Например, команда удаления файлов (в Linux это
- Как проверить свой текущий путь
- В Linux/Mac достаточно ввести команду
pwd(print working directory). - В Windows можно ввести
echo %cd%(в CMD) илиpwd(в PowerShell). - Эта команда покажет, в какой директории вы сейчас находитесь.
- Привычка перед опасными командами (удаление, перемещение) проверять текущий путь экономит много нервов.
- В Linux/Mac достаточно ввести команду
(Мини-пример)
Вы хотите удалить временные файлы из папки/home/user/temp. Убедитесь, что вы действительно в папке/home/user/temp, введяpwd. Если там всё верно, то используйтеrm *(в Linux) для удаления файлов. Если окажется, что вы внезапно в/home/user/documents, сработает уже другой сценарий — а это не то, что вы хотели!
Небольшое резюме
- CLI — это про гибкость и эффективность.
- Навык навигации по папкам и правильное понимание путей — фундамент для работы в консоли.
- Внимательность: проверяем где мы находимся, что удаляем, и как прописываем команды.
На этом заканчиваем вводную часть. В следующем блоке мы подробнее разберём базовые команды, которые применяются в Linux, Windows и Mac для работы с файлами, папками и прочими элементами системы.
Если остались вопросы, не стесняйтесь задавать! Всякий раз, когда чувствуете, что что-то непонятно, лучше сразу разъяснить и попрактиковаться — так в голове останется меньше «белых пятен», а уверенность в своих силах будет расти.
Как тренироваться в разных операционных системах
Иногда бывает так, что вы хотите учиться работать в Linux, но ваш компьютер — на Windows. Или, наоборот, вы пользуетесь Linux и хотите изучить особенности Windows-команд. К счастью, есть несколько способов «потренироваться» без необходимости менять операционную систему.
Запуск Linux в Windows
- WSL (Windows Subsystem for Linux)
- Начиная с Windows 10, доступна технология WSL. Она позволяет установить дистрибутив Linux (Ubuntu, Debian и другие) прямо внутри Windows и запускать все основные команды в терминале.
- Установка: откройте Microsoft Store, найдите «Ubuntu» (или другой дистрибутив) и установите.
- После установки в меню «Пуск» появится ярлык (например, «Ubuntu»). Запустив его, вы получите полноценный терминал Linux, не покидая Windows.
- Виртуальная машина
- Можно установить популярные программы виртуализации (VirtualBox, VMware Player).
- Скачайте ISO-образ Linux (например, Ubuntu), создайте виртуальную машину и установите систему.
- В итоге у вас будет «второй компьютер в окошке», где можно свободно экспериментировать с командами, не нарушая работу основной системы Windows.
- Live USB
- Если хотите «потрогать» Linux без установки на жёсткий диск, можно создать загрузочную USB-флешку с Linux и загрузиться с неё. При выборе режима «Live» система запустится сразу с флешки.
- Так вы сможете практиковать базовые команды, но при перезагрузке изменения чаще всего не сохраняются (если не настраивать специальный режим постоянного хранения данных).
Запуск Windows в Linux
- Виртуальная машина
- Аналогично, вы можете поставить VirtualBox или VMware на Linux и создать виртуальную машину с Windows (для этого потребуется лицензионный образ Windows).
- Запустив виртуальную машину, вы получите доступ к стандартным Windows-командам через CMD или PowerShell.
- Dual Boot (двойная загрузка)
- Более редкий вариант: установить Windows параллельно с Linux на физический диск. При включении компьютера будет меню выбора ОС. Но это требует знаний о разбивке диска и может быть рискованно, если вы новичок.
Облачные сервисы
Есть и вариант «всё в облаке»:
- Для Linux подойдут бесплатные серверы/машины в облаке (например, различные пробные варианты у хостинг-провайдеров) или в сервисах вроде AWS, Google Cloud, Azure.
- Вы подключаетесь к удалённому серверу через SSH и получаете полноценный терминал Linux, в котором отрабатываете команды.
- Для Windows тоже можно арендовать удалённый сервер (Windows Server), но обычно это платные услуги и чуть сложнее в настройке.
Резюме по тренировке в разных системах
- WSL — самый простой способ при работе в Windows попробовать Linux-команды без суеты с виртуальными машинами.
- VirtualBox/VMware — универсальный метод, работает и для Windows, и для Linux в обе стороны, но требует чуть больше ресурсов (процессор, оперативная память).
- Live USB — отличный «пробный вариант» для знакомства с Linux, не затрагивая жёсткий диск.
- Облачные сервисы — удобно, если нужно учиться работе с серверами или не хочется тратить ресурсы локального ПК.
Таким образом, нет никаких технических препятствий, чтобы практиковаться и в Linux, и в Windows. Выбирайте тот способ, который вам удобнее, и смело осваивайте команды, описанные в уроке!
Общие базовые команды
Навигация по папкам
Когда мы работаем в терминале, нужно уметь быстро и точно переходить в нужную директорию, а также просматривать содержимое папок.
Проверка текущей директории
Linux/Mac
# Показать текущую директорию
pwd
Комментарий:
pwdрасшифровывается как print working directory. Она выводит путь к папке, в которой мы сейчас находимся.
Пример вывода (допустим, мы в домашней папке пользователя anna):
/home/anna
Windows (CMD/PowerShell)
# В CMD
echo %cd%
# В PowerShell
pwd
Комментарий:
- В классической командной строке (CMD) для вывода текущей папки используется переменная окружения
%cd%вместе с командойecho. - В PowerShell можно использовать ту же команду
pwd, что и в Linux/Mac.
Просмотр содержимого директории
Linux/Mac
# Показать список файлов и папок в текущей директории
ls
Комментарий:
- По умолчанию команда
lsвыводит имена всех файлов и подпапок. - Часто используют флаги, например
ls -l, чтобы получить подробную информацию (дата изменения, размер файла и т.д.).
Пример:
ls
Documents Downloads Music Pictures Videos
Windows (CMD/PowerShell)
# Показать список файлов и папок в текущей директории
dir
Комментарий:
- В Windows вместо
lsтрадиционно используетсяdir. - В PowerShell она также работает и даёт аналогичную информацию.
Переход между директориями
Linux/Mac
# Перейти в папку /home/anna/Documents
cd /home/anna/Documents
# Если мы уже находимся в /home/anna,
# то можно сделать относительный переход
cd Documents
Комментарий:
cd(change directory) — сменить директорию.- Абсолютный путь начинается с
/, относительный — от текущей директории.
Windows (CMD/PowerShell)
# Перейти в папку C:\Users\John\Documents
cd C:\Users\John\Documents
# Если мы уже в C:\Users\John,
# то можно использовать относительный путь
cd Documents
Комментарий:
- В Windows пути обычно указываются через обратный слеш
\, но PowerShell и CMD также воспринимают прямой слеш в некоторых случаях.
Практическое упражнение по навигации
- Откройте терминал/командную строку.
- Перейдите в папку загрузок (Downloads) любым из способов:
- Полный путь (например,
cd /home/anna/Downloadsна Linux/Mac илиcd C:\Users\Anna\Downloadsна Windows).- Относительный путь (если вы уже в домашней папке).
- Выведите на экран список файлов в ней с помощью
ls(Linux/Mac) илиdir(Windows).(Дополнительно) Если у вас нет папки Downloads (бывает на некоторых системах), проделайте те же действия с любой другой директорией.
Создание и удаление папок, файлов
Следующий важный шаг — научиться создавать новые папки и файлы, а также их удалять. Тут тоже есть тонкости для разных систем.
Создание папок
Linux/Mac
# Создать папку (директорию) 'test_folder'
mkdir test_folder
Комментарий:
mkdirрасшифровывается как make directory.- Если в папке уже есть
test_folder, команда вернёт ошибку. Можно использовать опцию-p, чтобы избежать ошибок, если родительские папки отсутствуют.
Пример:
mkdir -p my_projects/python_scripts
# Создаст цепочку папок: my_projects, а внутри нее python_scripts
Windows (CMD/PowerShell)
# Создать папку (директорию) 'test_folder'
mkdir test_folder
Комментарий:
- В Windows слово
mkdir(илиmd) работает так же, как в Linux/Mac. - В PowerShell есть разные способы создания папок, но
mkdir— самый простой и привычный.
Создание файлов
Linux/Mac
# Создать (или обновить время модификации) пустой файл 'file.txt'
touch file.txt
Комментарий:
touchсоздаёт пустой файл, если такого ещё нет. Если файл есть, просто обновляет время последнего изменения (в его содержимом ничего не меняется).
Пример (с пояснениями):
touch notes.txt # создаёт пустой файл notes.txt в текущей директории
Windows (CMD)
# Создать пустой файл file.txt (CMD)
type nul > file.txt
Комментарий:
type nulвыводит «ничего»,>перенаправляет этот «вывод» вfile.txt, создавая таким образом пустой файл.
Windows (PowerShell)
# Создать пустой файл file.txt (PowerShell)
New-Item file.txt
Комментарий:
- В PowerShell есть удобная команда
New-Item, которая создаёт файлы и папки. По умолчанию создаёт файл, если не указать иных параметров.
Удаление файлов
Linux/Mac
# Удалить файл file.txt
rm file.txt
Комментарий:
rm(remove) — удаляет файлы. В корзину они не попадают, поэтому будьте осторожны.- Если команда выполнилась успешно — файл исчезает безвозвратно.
Пример:
rm report.docx
# Если файл называется report.docx, он будет удалён
Windows (CMD/PowerShell)
# Удалить файл file.txt
del file.txt
Комментарий:
del— классический вариант удаления файла в CMD.- В PowerShell тоже будет работать команда
del, хотя официально там естьRemove-Item file.txt.
Удаление папок
Linux/Mac
# Удалить папку (директорию) вместе со всем содержимым
rm -r folder_name
Комментарий:
- Флаг
-r(recursive) указывает удалять рекурсивно всё содержимое папки. - Флаг
-f(force) может принудительно удалять без лишних вопросов, но лучше вначале тренироваться без него, чтобы не снести что-нибудь важное случайно.
Windows (CMD)
# Удалить папку folder_name со всем содержимым
rmdir folder_name /s
Комментарий:
/sозначает рекурсивное удаление всех подпапок и файлов.- Windows перед удалением всей папки обычно спросит подтверждение (Y/N).
Windows (PowerShell)
# Удалить папку folder_name со всем содержимым
Remove-Item folder_name -Recurse
Комментарий:
- Параметр
-Recurseуказывает на удаление всего, что находится внутри папки.
Практическое упражнение по созданию и удалению
- Создать новую папку
- Назовите её, например,
my_folder.- Убедитесь, что вы в нужной директории (выполните
pwdили аналог).- Зайти в неё
- С помощью
cd my_folder.- Создать пустой файл
touch my_file.txt(Linux/Mac) илиNew-Item my_file.txt(PowerShell) илиtype nul > my_file.txt(CMD).- Удалить этот файл
rm my_file.txt(Linux/Mac) илиdel my_file.txt(Windows).- Выйти на директорию выше
- В Linux/Mac/Windows используется
cd ..(два раза точка означает “уровень выше”).
(Дополнительно) Попробуйте повторить всё ещё раз, но теперь создайте папку и удалите её целиком. Убедитесь, что делаете это в «учебных» директориях, чтобы не снести важные данные.
Копирование и перемещение файлов
В этом разделе разберём, как скопировать (создать дубликат) или переместить (в том числе переименовать) файлы и папки.
Копирование файлов и папок
Linux/Mac
# Скопировать файл file.txt в backup.txt (создастся копия)
cp file.txt backup.txt
Комментарий:
- Если в директории уже есть backup.txt, он будет перезаписан без предупреждения.
# Копировать папку folder1 в folder2 (рекурсивно)
cp -r folder1 folder2
Комментарий:
- Флаг
-rдаёт команду копировать все файлы внутри folder1.
Windows (CMD/PowerShell)
# Скопировать файл file.txt в backup.txt (CMD/PowerShell)
copy file.txt backup.txt
Комментарий:
- Аналогично перезапишет файл, если backup.txt уже существует.
# Рекурсивно копировать папку folder1 в folder2 (CMD)
xcopy folder1 folder2 /E
Комментарий:
- Параметр
/Eпозволяет копировать и подпапки (включая пустые). - В PowerShell
xcopyтоже доступна, хотя там есть и более современные команды.
Перемещение (и переименование) файлов
Linux/Mac
# Переименовать (или переместить) файл file.txt в new_name.txt
mv file.txt new_name.txt
Комментарий:
- Команда
mv(move) может просто переименовывать файл (если целевая директория совпадает с исходной), либо перемещать (если указываете другую директорию).
# Переместить file.txt в папку Documents (остался старый файл или нет?)
mv file.txt Documents/
Комментарий:
- После выполнения команды, file.txt исчезнет из текущей папки и появится в Documents.
Windows (CMD/PowerShell)
# Переименовать (или переместить) файл file.txt в new_name.txt
move file.txt new_name.txt
Комментарий:
moveработает аналогичноmvв Linux/Mac.
# Переместить file.txt в директорию Documents
move file.txt Documents
Комментарий:
- Если вы в директории, где лежит file.txt, и есть подпапка Documents, файл переместится в неё.
Практическое упражнение по копированию и перемещению
- Создать файл
notes.txt
- Используйте любую команду на выбор (
touch,New-Item,type nul >, и т.д.).- Скопировать его в ту же директорию под именем
notes_copy.txt
- Linux/Mac:
cp notes.txt notes_copy.txt- Windows:
copy notes.txt notes_copy.txt- Создать подпапку
temp
mkdir temp(любая ОС).- Переместить в неё копию файла
- Linux/Mac:
mv notes_copy.txt temp/- Windows:
move notes_copy.txt temp(Дополнительно) Проверьте, что файл действительно переместился. Для этого после перемещения выполните
ls(илиdir) в папкеtempи убедитесь, что там естьnotes_copy.txt.
Выводы и советы
- Не бойтесь экспериментировать, но делайте это в безопасных директориях, где нет важных файлов.
- Автодополнение (Tab) помогает избежать ошибок, когда вы вводите длинные пути или сложные названия.
- Всегда проверяйте текущую директорию (команда
pwdили её эквивалент) перед опасными действиями, чтобы не повредить важные файлы. - Старайтесь систематизировать команды в личном конспекте: выписывать что делает каждая команда, какие есть полезные флаги (
-r,-f,/E,/s,-Recurseи т.д.).
На этом блок с базовыми командами окончен. Когда научитесь уверенно делать все эти операции (переходить, создавать, удалять, копировать, перемещать), вы станете гораздо более «подкованными» пользователями — ведь эти навыки уже дают возможность эффективно управлять файло-структурой на любом компьютере или сервере!
Ниже представлена подробная инструкция по дополнительным утилитам и командам, которые существенно упрощают повседневную работу в терминале. Я разделил их на несколько основных блоков, чтобы материал было проще воспринимать и закреплять на практике.
Дополнительные полезные команды/утилиты
Вывод содержимого файлов
Порой нам нужно быстро заглянуть в текстовый файл, чтобы увидеть его содержимое или проверить, что там написано. Для этого есть специальные команды.
Команда cat (Linux/Mac/PowerShell)
Синтаксис:
cat file.txt
Комментарий:
cat(сокращение от concatenate) читает содержимое файла и выводит его в стандартный вывод (обычно — экран).- Если файл небольшой, вы увидите весь текст сразу. Если файл большой, прокрутка пойдёт очень быстро.
Пример кода:
cat readme.md
# Выведет весь текст из файла readme.md в терминал.
(В PowerShell на Windows, начиная с определённых версий, cat тоже работает как псевдоним для Get-Content. Если не работает, см. ниже о команде type.)
Команда type (Windows CMD)
В классической командной строке Windows (CMD) команда cat не поддерживается, зато есть аналог:
type file.txt
Комментарий:
typeвыводит содержимое файла прямо в окно CMD.- Если файл большой, информация «пролистается» быстро. Можно использовать
type file.txt | more, чтобы построчно пролистывать содержимое.
Тренировочное упражнение
- Создайте небольшой текстовый файл (например,
notes.txt) с помощью любого текстового редактора или консольной команды (echo "Hello CLI" > notes.txtв Linux/PowerShell илиecho Hello CLI > notes.txtв CMD).- Попробуйте вывести его содержимое:
- Linux/Mac:
cat notes.txt- PowerShell:
cat notes.txt(илиGet-Content notes.txt)- CMD:
type notes.txt- (Дополнительно) Измените файл (добавьте несколько строк текста) и снова выведите содержимое, чтобы убедиться, что изменения отображаются сразу.
Создание архивов (Linux/Mac)
В Unix-подобных системах (Linux, Mac) архивы часто создают при помощи утилиты tar. Она умеет не только запаковывать папку в один файл, но и сразу сжимать её (обычно в формат gzip).
Команда tar
Синтаксис:
tar -czf archive.tar.gz folder_name
Комментарий:
-cозначает «создать архив» (create).-zозначает «сжимать с помощью gzip».-fуказывает, что результат будет записан в файл (указываем имяarchive.tar.gz).
Таким образом, команда берёт папку folder_name (и всё её содержимое) и упаковывает в сжатый архив archive.tar.gz.
Пример кода:
tar -czf backup.tar.gz my_project
# Создаст файл backup.tar.gz, который будет содержать всю папку my_project.
Распаковка архива tar.gz
Если нужно разархивировать обратно:
tar -xzf backup.tar.gz
Комментарий:
-x(extract) — извлечь.-z(gzip) и-f(файл), как выше.- По умолчанию распакует файлы в текущую директорию или (если архив содержит абсолютные пути) в соответствующие места.
(Можно задать ключ -C /desired/path, чтобы указать, куда распаковывать.)
Архивирование в Windows
В Windows есть несколько способов:
- PowerShell:
Compress-Archive -Path .\folder_name\* -DestinationPath .\archive.zipКомментарий:
- Параметр
-Pathуказывает, что архивировать, -DestinationPath— куда сохранять.- Обратите внимание, что создаётся архив в формате .zip.
- Параметр
- Сторонние программы: WinRAR, 7-Zip и т.д.
- Чаще всего в Windows используют программы с графическим интерфейсом, но при желании можно найти и консольные утилиты (например, 7z.exe).
Тренировочное упражнение
- Создайте папку
test_archive, поместите внутрь любой файл (например,notes.txt).- Linux/Mac:
- Архивируйте папку командой
tar -czf test_archive.tar.gz test_archive.- Затем удалите папку
test_archiveи разархивируйтеtest_archive.tar.gz, чтобы убедиться, что всё успешно восстановилось.- Windows (PowerShell):
- Выполните
Compress-Archive -Path .\test_archive\* -DestinationPath .\test_archive.zip.- Проверьте, что появился файл
test_archive.zip.- Для распаковки используйте
Expand-Archive -Path .\test_archive.zip -DestinationPath .\extracted_folder, либо обычный графический интерфейс.
Справка по командам
Когда начинаешь изучать новые команды, часто хочется быстро узнать, какие параметры у команды есть, что означает тот или иной флаг и т.д. Для этого в разных системах есть встроенные средства помощи.
man и --help (Linux/Mac)
man ls
Комментарий:
- Запустит подробный мануал (manual) по команде
ls. Откроется текстовая страница с описанием, которую можно пролистывать стрелками или клавишей Space. - Выйти из неё можно, нажав
q.
ls --help
Комментарий:
- Короткая справка по команде
lsс описанием основных флагов. - Аналогичным образом можно попробовать
grep --help,cp --helpи т.д.
help, /?, Get-Help (Windows)
CMD:
help
Комментарий:
- Показывает список доступных команд. Если надо узнать больше о конкретной команде, пишем:
command /?
Например:
dir /?
Комментарий:
- Выведет краткую справку о команде
dirи её параметрах.
PowerShell:
Get-Help ls
Комментарий:
- Отобразит документацию по команде
ls(в PowerShell это алиас, ссылающийся наGet-ChildItem). - Для более подробного вывода можно добавить параметр
-Full.
Тренировочное упражнение
- В Linux/Mac попробуйте команду
ls --help, ознакомьтесь с параметрами. Затем откройте «мануал» —man ls.- В Windows CMD наберите
helpи посмотрите, какие есть стандартные команды. Выберите одну (например,dir) и введитеdir /?, чтобы увидеть все возможные параметры.- В PowerShell сделайте
Get-Help Move-Item, чтобы узнать, как перемещать файлы из консоли PowerShell.(Дополнительно) Поэкспериментируйте с
man tarилиtar --helpв Linux/Mac, и сGet-Help Compress-Archiveв PowerShell, чтобы глубже понять, какие параметры поддерживаются при архивировании.
В этом разделе вы познакомились с несколькими дополнительными командами:
- Просмотр содержимого файла:
cat(Linux/Mac/PowerShell) иtype(Windows CMD). - Архивирование:
tarв Linux/Mac,Compress-Archiveв Windows PowerShell. - Справка:
manи--helpв Linux/Mac,help//?/Get-Helpв Windows.
Все они могут заметно упростить вашу жизнь в консоли, давая возможность быстро пролистывать файлы, делать резервные копии, переносить архивы на другие машины и не «плавать» в опциях команд.
Совет: Даже опытные специалисты регулярно обращаются к встроенной справке, ведь помнить все команды и ключи наизусть невозможно. Чем раньше вы привыкнете к мануалам, тем легче вам будет работать в любой среде.
Оставайтесь любознательными, экспериментируйте и не бойтесь опечатываться — главное, делайте это в безопасном окружении, и всегда проверяйте, в какой директории находитесь, перед тем, как запустить критические команды!
Ниже приводится подробный урок, раскрывающий особенности разных операционных систем. Несмотря на то, что большинство базовых команд и концепций похожи, есть нюансы в путях к файлам и в типах оболочек (shell). В конце каждого раздела вы найдёте тренировочное упражнение, чтобы сразу закрепить знания.
Особенности для разных систем
Различия в путях к файлам/папкам
Путь — это «адрес» к определённому файлу или папке внутри файловой системы. В зависимости от операционной системы, путь может немного отличаться синтаксисом.
Linux/Mac — символ «/»
В Linux и macOS для разделения директорий используется прямой слеш /. Корневая директория (root) обозначается просто /. Абсолютные пути всегда начинаются с /.
Пример абсолютного пути:
# Абсолютный путь к папке Documents в домашней директории пользователя "alex"
/home/alex/Documents
- Здесь
/— корневая директория. - Затем идёт папка
home, внутри неё — папкаalex, а внутриalex— папкаDocuments.
Пример относительного пути:
# Если мы уже находимся в /home/alex, то добраться до папки Documents можно так:
cd Documents
# или
cd ./Documents
- Точка (
.) указывает на текущую директорию. - Две точки (
..) указывают на директорию уровнем выше.
Windows — обратный слеш \ и буквы дисков
В Windows обычно используется обратный слеш \, а также система букс дисков (C:, D: и т.д.).
Пример абсолютного пути:
C:\Users\Alex\Documents
C:— системный диск или просто буква диска.Users\Alex\Documents— цепочка папок.
Пример относительного пути:
# Если мы уже в C:\Users\Alex, можно использовать:
cd Documents
Примечание: В PowerShell зачастую можно использовать и прямые слеши /, но традиционно для Windows принят обратный слеш \.
Тренировочное упражнение
- Если вы работаете в Linux/Mac, попробуйте прописать несколько абсолютных путей, указывая на разные папки (например,
/home/<ваше_имя>/Documents,/home/<ваше_имя>/Downloads). Используйте командуlsилиcdдля проверки, что путь указан верно.- Если вы в Windows, потренируйтесь с абсолютными путями к
C:\Users\<Ваше_имя>\Documentsи относительными путями (например,cd .., чтобы подняться на один уровень выше).- (Дополнительно) Создайте тестовую папку внутри своей домашней директории (имя, например,
demo_folder), перейдите туда с помощью относительного пути и выведите содержимое командойls(в Linux/PowerShell) илиdir(в CMD).
Разные оболочки (shell)
Shell — это программа, которая принимает команды, введённые пользователем, и передаёт их операционной системе для выполнения. По сути, это наш «командный интерпретатор».
Bash, Zsh (Linux/Mac)
В большинстве дистрибутивов Linux по умолчанию стоит Bash (Bourne Again Shell). На macOS в более новых версиях по умолчанию может быть включён Zsh, но суть остаётся схожей.
- Bash: классический shell, встречается во многих системах, имеет большое комьюнити, много готовых скриптов.
- Zsh: похож на Bash, но предлагает ряд дополнительных функций (например, более продвинутую автодополнение). Многие пользователи macOS даже не замечают, что «под капотом» у них Zsh, потому что команды часто совпадают.
Пример использования Bash:
#!/usr/bin/env bash
# Простенький скрипт, который выводит приветствие
echo "Hello from Bash!"
- Первая строка (
#!/usr/bin/env bash) указывает системе, что скрипт должен исполняться через Bash.
CMD и PowerShell (Windows)
В Windows исторически использовалась CMD (Command Prompt), а затем появилась PowerShell, более современная и мощная оболочка:
- CMD: классическая «чёрная консоль» Windows, поддерживает базовые команды вроде
dir,cd,copy. - PowerShell: создана на базе .NET Framework, имеет объектную модель, что делает её очень гибкой. Также поддерживает многие команды и синтаксис, схожие с Unix.
- Если запустить PowerShell и ввести, например,
ls, она сработает, так какlsявляется алиасом дляGet-ChildItem.
Пример использования PowerShell:
# Простой скрипт на PowerShell, выводит сообщение
Write-Host "Hello from PowerShell!"
Write-Hostвыводит сообщение на экран.- Если сохранить этот код в файле
hello.ps1, то запустить можно так:.\hello.ps1(с учётом, что вы в нужной директории).
Тренировочное упражнение
- Linux/Mac:
- Откройте терминал. Выполните команду
echo $SHELL— она покажет, какой shell у вас используется по умолчанию (например,/bin/bashили/bin/zsh).- Создайте простой скрипт
test.sh(внутри напишитеecho "Test Bash script"), сделайте его исполняемым (chmod +x test.sh) и запустите (./test.sh).- Windows:
- Откройте CMD (Command Prompt), выведите список файлов в своей домашней директории командой
dir.- Откройте PowerShell, выполните в ней ту же операцию, но командой
lsилиGet-ChildItem. Сравните вывод.- (Дополнительно) Создайте простой PowerShell-скрипт
hello.ps1, который выводит фразу «Hello PowerShell». Запустите его в PowerShell.- (Универсально) Если хотите «поближе» познакомиться с другой оболочкой, выполните инструкции из предыдущих уроков (например, воспользуйтесь WSL на Windows, чтобы попробовать Bash, или поставьте PowerShell на Linux через пакетный менеджер).
- Пути в Linux/Mac используют прямой слеш
/, а в Windows чаще всего — обратный слеш\и буквы дисков. - Shell — это «среда», через которую мы вводим команды. В Linux/Mac обычно Bash или Zsh, в Windows — CMD или PowerShell.
- Несмотря на то, что базовые действия (создание, удаление, копирование) похожи, синтаксис и набор команд может немного отличаться.
Важнее всего понимать общие концепции: что такое директория, какой путь считается абсолютным, как работает перенаправление команд и т.д. Привыкнув к одной среде, осваивать другую станет гораздо проще.
Не бойтесь практиковаться — попробуйте использовать разные shell и операционные системы, чтобы увидеть, как всё устроено «под капотом»!
Ниже представлен урок с дополнительными советами и рекомендациями, которые помогут вам быстрее освоиться в командной строке и избежать распространённых ошибок. В каждом разделе есть упражнения, позволяющие закрепить теорию на практике.
Дополнительные советы и хорошая практика
Регулярно пользоваться справкой
В каждой операционной системе есть встроенная документация по командам, и это значительно облегчает жизнь, когда вы не помните какой-то флаг или синтаксис.
Linux
man ls
Комментарий:
- Показывает «man-страницу» для команды
ls, где описаны основные параметры, примеры использования. - Чтобы пролистать, используйте клавиши
Стрелка вниз/вверхилиSpace. Закрыть — клавишаq.
ls --help
Комментарий:
- Выводит краткую информацию по использованию команды и параметрам.
Windows
help
Комментарий:
- Показывает в классическом CMD список команд.
dir /?
Комментарий:
- В CMD: даст краткое описание команды
dir. - Аналогично
copy /?,move /?и т.д.
Get-Help Get-ChildItem
Комментарий:
- В PowerShell: показывает справку по команде (в данном случае это команда
Get-ChildItem, которая совпадает с aliasls).
Тренировочное упражнение
- Linux/Mac: откройте терминал и введите
ls --help. Пролистайте выдачу, найдите флаги, которые вам показались интересными (например,-l,-a,-h).- Windows (CMD): введите
dir /?и посмотрите, какие параметры поддерживает командаdir. Попробуйте применить какой-нибудь из них (например,dir /p, чтобы выдача шла постранично).- Windows (PowerShell): выполните
Get-Help Move-Item. Посмотрите примеры снизу страницы, какие форматы записи команды существуют.
Внимательно следить за путями
Указание неправильного пути — одна из самых распространённых ошибок при работе с терминалом. Это может привести к тому, что вы удалите или измените не те файлы.
Команда pwd (Linux/Mac/PowerShell) и echo %cd% (CMD)
pwd
Комментарий:
- Выводит полный путь к текущей директории, где вы сейчас «находитесь».
echo %cd%
Комментарий:
- В CMD для вывода текущего пути.
- В PowerShell вместо этого можно писать
pwd.
Пример ситуации
# Допустим, вы хотите удалить все файлы в папке temp
cd /home/user/temp
rm *
Комментарий:
- Прежде чем запустить
rm *, стоит проверить, что вы действительно находитесь в/home/user/temp(выполнивpwd). - Если вы случайно находились в
/home/user/Documents, то удалите совсем другие файлы!
Тренировочное упражнение
- Создайте новую папку (например,
test_paths), перейдите в неё командойcd test_paths.- Выполните
pwd(Linux/Mac/PowerShell) илиecho %cd%(CMD), чтобы убедиться, что вы «внутри»test_paths.- Создайте в этой папке несколько тестовых файлов (например,
file1.txt,file2.txt).- Выполните удаление (например,
rm file1.txtилиdel file1.txt), убедившись, что стоите вtest_paths. Для проверки перед удалением снова сделайтеpwdилиecho %cd%.
Используйте автодополнение (Tab)
В большинстве оболочек есть возможность автодополнения имён файлов и директорий по нажатию клавиши Tab. Это:
- Экономит время.
- Предотвращает опечатки, так как вам не нужно полностью набирать весь путь.
Пример автодополнения
cd Doc<нажимаем Tab>
Комментарий:
- Если в текущей папке есть
Documents, то при нажатии Tab оболочка автоматически дополнит доDocuments. - Если есть несколько вариантов, которые начинаются на
Doc, shell допишет общую часть и может предложить список вариаций.
cd .\Doc<Tab>
Комментарий:
- Аналогично работает в PowerShell.
- Очень удобно при длинных названиях папок (например,
MyVeryLongDirectoryName).
Тренировочное упражнение
- Перейдите в домашнюю директорию (Linux/Mac:
cd ~, Windows:cd %USERPROFILE%или простоcd, если он настроен).- Начните вводить
cd Docи нажмите Tab. Проверьте, дополнилось ли доDocuments(или какой-то другой папки наDoc).- Если есть несколько папок на
Doc, попробуйте нажимать Tab несколько раз, чтобы перебрать варианты.
Ведите список полезных команд
Когда вы начинаете работать с CLI, полезно записывать где-нибудь (в текстовом файле, бумажном блокноте или заметках на телефоне) те команды и флаги, которые часто применяете.
Пример «списка» в текстовом файле
# Предположим, у нас есть файл commands_cheatsheet.txt
cat commands_cheatsheet.txt
Внутри файла может быть, например:
1) ls -l -> показывает список файлов в длинном формате
2) rm -r -> рекурсивное удаление папки
3) mv file1 file2 -> переименовать или переместить файл1 в файл2
4) cd .. -> подняться на директорию выше
...
Зачем это нужно?
- Поиск информации в личном «шпаргалочном» файле иногда быстрее, чем искать в интернете, особенно если вы знаете, что точно записывали нужную команду.
- Со временем вы выучите 80% необходимых команд наизусть, но всегда останутся редкие случаи, когда запись под рукой сэкономит много времени.
Тренировочное упражнение
- Создайте файл
my_commands.txtв домашней директории.- Запишите туда несколько команд (по одной команде на строчку) с кратким описанием (например,
ls -la — показывает все файлы, включая скрытые, в длинном формате).- Откройте этот файл командой
cat my_commands.txtилиtype my_commands.txt(в CMD) и убедитесь, что всё корректно записано.- (Дополнительно) По желанию, распечатайте этот файл или сохраните его в удобном для вас виде (Google Docs, Evernote и т.п.).
- Справка (man, —help, help, /?, Get-Help) — это первое место, куда надо смотреть при возникновении вопросов о синтаксисе команды.
- Путь к файлу/папке — будьте осторожны и всегда проверяйте, где находитесь, чтобы случайно не изменить или удалить неправильные данные.
- Автодополнение (Tab) позволяет экономить время и защищает от опечаток.
- Личный список команд — ваш путеводитель в мире CLI, особенно в первые недели/месяцы изучения.
Когда овладеете этими «хитростями», процесс работы в командной строке станет легче и приятнее. Опытные пользователи CLI тоже постоянно обращаются к справке, используют автодополнение и ведут шпаргалки — это часть здорового подхода к работе с любым инструментом!
Ниже я добавил дополнительный раздел, посвящённый работе с текстовыми редакторами в среде Linux. Эта тема часто вызывает трудности у новичков, поэтому мы подробно разберём самые популярные консольные редакторы и завершим каждую часть практическим заданием.
Редактор nano: простой и дружелюбный
nano считается самым простым в освоении консольным редактором. Его плюсы:
- Понятный интерфейс, подсказки по ключевым комбинациям внизу экрана.
- Подсветка синтаксиса для многих языков.
- Малое количество режимов (в отличие от vim), поэтому легче адаптироваться новичкам.
Открытие и редактирование файла
nano myfile.txt
Комментарий:
- Если файла
myfile.txtнет, nano создаст его при сохранении. - Внутри редактора вы набираете и редактируете текст, как в обычном блокноте.
Нижняя часть окна отображает комбинации клавиш. Например:
^XозначаетCtrl + X(выход).^OозначаетCtrl + O(сохранение под тем же именем).^WозначаетCtrl + W(поиск текста в файле).
Сохранение и выход
После ввода нужного текста:
- Нажмите
Ctrl + O(буква O, а не ноль). Появится строкаFile Name to Write: myfile.txt. - Нажмите
Enter, чтобы подтвердить сохранение. - Нажмите
Ctrl + X, чтобы выйти из редактора.
Тренировочное упражнение (nano)
- Создайте в терминале новый файл через
nano hello.txt.- Напишите несколько строк, например:
Привет, это мой первый файл в nano!
Я учусь редактировать текст прямо из терминала.
- Сохраните файл (Ctrl + O → Enter) и выйдите (Ctrl + X).
- Убедитесь, что файл создан, выполнив команду
cat hello.txt(илиless hello.txt, если у вас установлен less).
Редактор vim (vi): более «продвинутый» способ
vim (или его предшественник vi) — это очень мощный, но вначале немного «непривычный» редактор, так как использует разные режимы работы.
Основные режимы vim
- Normal mode (обычный режим): здесь вы перемещаетесь по файлу, удаляете и копируете строки и т.д.
- Insert mode (режим вставки): печатаете текст.
- Command mode (командный режим): вводите команды (например, сохранение или выход).
Открытие файла и переход в режим вставки
vim myscript.py
Комментарий:
- Если файла нет, vim создаст его при сохранении.
Внутри vim сразу же включён Normal mode. Чтобы начать ввод текста, нажмите i (insert). Теперь вы в режиме вставки, и все ваши нажатия клавиш пойдут в текст.
Пример:
# Предположим, вы набираете код внутри vim после нажатия i
print("Hello from vim!")
Сохранение и выход
Чтобы сохранить и выйти, нужно вернуться в Normal mode:
- Нажмите
Esc, чтобы выйти из режима вставки. - Введите двоеточие
:(вы переключитесь в командный режим). - Наберите
wq(write & quit) и нажмите Enter.
Результат: vim сохранит файл и выйдет.
Если вы случайно хотите выйти без сохранения, используйте :q!.
Тренировочное упражнение (vim)
- Откройте любой файл (или создайте новый) через
vim new_file.txt.- Нажмите
i, напишите пару строк текста (например, «Ура, я в vim!»).- Нажмите
Esc, затем введите:wq, чтобы сохранить изменения и выйти.- Проверьте результат (например,
cat new_file.txt).(Дополнительно) Попробуйте выйти без сохранения (
:q!) — подойдёт, если вы вдруг ошиблись и не хотите сохранить текущий файл.
Кратко об Emacs (для самых любознательных)
Emacs — ещё один мощный редактор, известный своей расширяемостью (может почти всё, вплоть до встроенного почтового клиента). Но изучать его сразу не обязательно — у него весьма высокая планка входа.
Запуск Emacs в консоли
emacs mynotes.txt
Комментарий:
- Если Emacs установлен, откроется режим редактирования прямо в терминале.
- По умолчанию, Emacs работает в графическом режиме, но при желании можно запустить именно консольный вариант флагом
-nw(no window).
Основные команды в Emacs (без углубления)
Ctrl + x, Ctrl + s(обычно пишутC-x C-s) — сохранить.Ctrl + x, Ctrl + c(C-x C-c) — выход.Ctrl + g(C-g) — отмена текущей команды.
Тренировочное упражнение (Emacs)
- Убедитесь, что Emacs установлен (если нет — возможно, нужно установить через пакетный менеджер, например,
sudo apt-get install emacs).- Запустите
emacs -nw mynotes.txt.- Напишите пару строчек, затем сохраните (
C-x C-s).- Закройте Emacs (
C-x C-c).- Просмотрите файл
mynotes.txtв консоли любым удобным способом (cat,nano,vimи т.д.) для проверки.
Какой редактор выбрать?
- nano: прекрасно подходит начинающим, так как интерфейс прост и нет «сложных» режимов.
- vim: очень мощный инструмент, популярный среди продвинутых пользователей. Однако требует привыкания к модальной системе (Normal / Insert / Command).
- emacs: полноценная среда для «всего». Подойдёт, если вы готовы к длительному погружению и любите расширять редактор под любые задачи.
Рекомендации по выбору
- Если вы только начинаете, лучше учиться на nano: он интуитивнее.
- Освоение vim имеет смысл, если вы часто работаете на серверах, где бывает установлен только
viилиvim. - Emacs — на любителя. Некоторые «фанаты» Emacs используют его как универсальную среду разработки, но это отдельная, более глубокая история.
Тренировочное упражнение (сравнительное)
- Возьмите любой простой файл (например,
test.txt) и последовательно откройте его вnano,vimи, при желании,emacs.- В каждом редакторе сделайте что-нибудь простое: добавьте или удалите пару строк, сохраните и выйдите.
- Сравните, насколько удобно или непривычно пользоваться каждым из редакторов. Определитесь, какой из них вам кажется самым дружелюбным.
Работа с текстовыми файлами из консоли — важная часть освоения Linux. В реальных проектах (на серверах, в облачных средах) зачастую нет графического окружения, так что знать хотя бы один консольный редактор (обычно nano или vim) становится обязательным навыком.
- nano даёт минимальный порог входа: удобно и быстро можно написать/отредактировать конфигурацию, заметку или скрипт.
- vim — сложнее, но зато необычайно гибкий; в нём есть мощная система плагинов и много клавиатурных сокращений для ускорения работы.
- emacs — отдельная вселенная, которая может стать основной рабочей средой для тех, кому нравится расширять возможности редактора.
Попробуйте каждый из них, выполните упражнения и выберите, что подходит лично вам. Но даже если предпочтение отдано nano, советую хотя бы в минимальном объёме освоить vim, так как на многих серверах он предустановлен по умолчанию (и может оказаться вашим единственным вариантом для быстрого редактирования).
Главное — не бояться экспериментировать и учиться новому, ведь навыок работы с консольными редакторами открывает дополнительные возможности для автоматизации и удобного управления системой!
Ниже приводится заключительный урок, в котором мы подводим итоги о важности командной строки (CLI) и рассматриваем, где ещё навыки работы с терминалом могут пригодиться в будущем. Каждая часть завершается коротким тренировочным упражнением, чтобы вы могли закрепить полученные знания в более широком контексте.
Заключение
Эффективность работы разработчика
Работа в консоли даёт много преимуществ:
- Скорость. Часто в CLI можно выполнить действие одной-двумя командами вместо множества кликов в графическом интерфейсе.
- Автоматизация. Написав скрипт, вы сможете многократно запускать его, экономя время на рутинных задачах.
- Точность и контроль. Вы явно указываете, что нужно сделать, и получаете конкретный результат.
Пример сценария
Представьте, что у вас есть сотня фотографий в папке, и вам нужно переименовать их последовательно в img_001.jpg, img_002.jpg, и т.д. В графическом интерфейсе это займёт уйму времени, а в терминале всё делается одной командой (например, с использованием цикла Bash или утилиты rename):
for i in *.jpg; do
# Считаем номер по порядку и формируем новое имя
n=$(printf "%03d" $(echo $((10#${n:-0}+1))))
mv "$i" "img_$n.jpg"
done
Комментарий:
- Этот скрипт перебирает все файлы с расширением
.jpgи переименовывает их, добавляя префиксimg_и номер, форматированный до трёх знаков (001, 002 и т.д.). - Может выглядеть сложновато, но если вы привыкнете к подобным конструкциям, сможете экономить массу времени в реальных проектах.
Тренировочное упражнение (эффективность)
- Создайте папку
images_test, поместите туда несколько файлов (назовите их как угодно, напримерphoto1.jpg,vacation2.jpg,random.jpg).- Напишите мини-скрипт (или командный цикл), который переименует эти файлы в формате
img_001.jpg, img_002.jpgи т.д.- Используйте любую удобную для вас оболочку (Bash, PowerShell). Если вы в Windows, можно установить Git Bash или пользоваться WSL.
(Подсказка: в PowerShell тоже можно использовать цикл
ForEach-Objectилиfor, чтобы перебрать файлы и переименовать их.)
Где ещё полезен CLI?
CLI нужен не только для локальной разработки или навигации по папкам. Список областей, где это крайне полезно, очень широк:
- Настройка серверов:
- Большинство удалённых серверов работают на Linux (Ubuntu, CentOS). Чтобы что-то там настроить, вы будете подключаться по SSH и работать «только через консоль».
- Без знания командной строки придётся сложно.
- Автоматизация задач скриптами:
- Bash-скрипты (Linux/Mac) или PowerShell-скрипты (Windows) позволяют выполнять рутинные операции автоматически (например, копировать резервные копии, генерировать отчёты, мониторить логи).
- Использование Git:
- Git (система контроля версий) можно использовать с графическим интерфейсом, но большинство команд (git clone, git commit, git push) часто удобнее и быстрее делать из консоли.
- Продвинутые возможности Git (rebase, cherry-pick, merge с разными флагами) часто проще освоить именно через CLI, читая документацию.
- DevOps / CI/CD:
- Современные процессы выстраиваются так, что при каждом обновлении кода автоматически запускаются тесты, сборки, деплой. Всё это настраивается в консолях или в виде яml/json-скриптов (например, в GitLab CI, GitHub Actions).
- Умение быстро исправить конфиг в терминале — ключ к оперативному решению проблем.
Пример работы с сервером
# Допустим, вы подключаетесь к удалённому серверу по SSH:
ssh myuser@123.45.67.89
# После ввода пароля или использования ключей,
# вы оказываетесь внутри консоли удалённого сервера.
# Теперь можно смотреть логи, обновлять пакеты, перезапускать сервисы и т.д.
sudo systemctl restart nginx
Комментарий:
- Подключившись к серверу, у вас нет графических «окошек», зато есть вся мощь CLI.
- Если нужно, например, посмотреть, что происходит в журнале веб-сервера:
cat /var/log/nginx/error.logилиtail -f /var/log/nginx/error.log, чтобы видеть обновления журнала в реальном времени.
Пример автоматизации (Bash)
#!/bin/bash
# backup.sh
# Небольшой скрипт, который делает архив папки и складывает в папку backup
SOURCE_DIR="/home/user/my_project"
DEST_DIR="/home/user/backup"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
tar -czf "$DEST_DIR/my_project_$DATE.tar.gz" "$SOURCE_DIR"
echo "Backup completed at $DATE"
Комментарий:
- Запустив этот скрипт командой
./backup.sh, вы упакуете текущую версию проекта в архив с меткой времени. - Можно поставить этот скрипт на cron (планировщик задач в Linux) и сделать бэкапы автоматическими, например, раз в день.
Тренировочное упражнение (где CLI полезен)
- Серверная практика (опционально):
- Если у вас есть доступ к какому-либо удалённому серверу (или вы установили локальную виртуальную машину), подключитесь к ней по SSH и выполните несколько базовых команд (создайте папку, скопируйте файлы, запустите обновление пакетов).
- Git:
- Создайте локальный репозиторий, добавьте файл, сделайте коммит и запушьте на GitHub — всё это через командную строку (
git init,git add,git commit -m,git remote add origin,git push).- Простая автоматизация:
- Напишите маленький скрипт (Bash или PowerShell), который выводит «Hello, world!» и текущее время, затем сохраняйте это в текстовый файл. Запустите скрипт. Проверьте результат.
- CLI открывает огромные возможности: от быстрой навигации по файловой системе и пакетного переименования до настроек серверов и автоматизации процессов.
- Серверная разработка, DevOps, облачные технологии, контроль версий (Git) — всё это на 99% основано на работе через командную строку.
- Эффективность программиста или админа напрямую связана с умением разрулить задачу командой (или несколькими командами) в терминале.
Овладение командной строкой — это не просто «ещё один навык», а «пропуск в мир» системного администрирования, автоматизации и более глубокого понимания, как всё работает «под капотом».
Поздравляем вас с тем, что вы уже освоили большой объём базовых и не очень базовых команд! Продолжайте экспериментировать, читать встроенные мануалы (man, help), писать собственные скрипты и подключаться к новым технологиям — и тогда CLI станет вашим мощным союзником в разработке и администрировании.
Ниже предлагается проектное задание, которое поможет вам отработать все ключевые навыки, полученные в ходе урока по работе с командной строкой (CLI). Задание задумано так, чтобы охватить максимум из пройденных тем: навигацию по директориям, создание и удаление файлов/папок, копирование и перемещение, архивирование, работу со справочными командами, а также базовую автоматизацию и редактирование файлов в терминале. Постарайтесь выполнять его пошагово, проверяя себя после каждого этапа.
Проектное задание: «Создание структуры проекта и автоматизация рутин»
Краткое описание:
Мы создадим «учебный проект» для управления различными файлами, научимся быстро редактировать их, сделаем архивацию, а также познакомимся с простым скриптом для резервного копирования.
Шаг 1: Создание основной директории и базовых подпапок
- Создайте в своей домашней папке (или в любом удобном месте) новую директорию с названием
cli_project.- В Linux/Mac:
mkdir cli_project - В Windows (CMD/PowerShell):
mkdir cli_project
- В Linux/Mac:
- Перейдите в неё:
cd cli_project
- Внутри создайте три подпапки:
docs,scripts,archive.- Например (Linux/Mac):
mkdir docs scripts archive - Или (Windows, CMD/PowerShell):
mkdir docs mkdir scripts mkdir archive
- Например (Linux/Mac):
Результат: у вас должна получиться структура:
cli_project/
├─ docs/
├─ scripts/
└─ archive/
Проверка: выполните ls (Linux/Mac, PowerShell) или dir (CMD) в папке cli_project, убедитесь, что появились три директории.
Шаг 2: Создание и редактирование текстовых файлов
- В папке
docsсоздайте два текстовых файла:commands.txtиnotes.txt.- В Linux/Mac:
cd docs touch commands.txt notes.txt - В Windows (CMD):
cd docs type nul > commands.txt type nul > notes.txt - (PowerShell):
New-Item commands.txt New-Item notes.txt
- В Linux/Mac:
- Откройте
commands.txtв любом консольном редакторе, который удобен вам (nano, vim, emacs или PowerShell ISE/Visual Studio Code, если хотите — но лучше потренироваться именно в консольном редакторе).- Добавьте туда список нескольких команд, которые вы выучили (например,
ls -l,cd ..,rm -rи т. д.) с краткими пояснениями, для чего они нужны.
- Добавьте туда список нескольких команд, которые вы выучили (например,
- Откройте
notes.txtв том же или другом редакторе, напишите заметку, чему вы научились в CLI. - Посмотрите содержимое новых файлов в терминале:
- Linux/Mac/PowerShell:
cat commands.txt,cat notes.txt - CMD:
type commands.txt,type notes.txt
- Linux/Mac/PowerShell:
Проверка: убедитесь, что строки, которые вы добавили, действительно сохранились.
Шаг 3: Копирование и перемещение файлов
- Скопируйте файл
commands.txtиз папкиdocsв папкуarchiveс новым именемcommands_backup.txt.- Пример (Linux/Mac):
cp commands.txt ../archive/commands_backup.txt - Windows (CMD/PowerShell):
copy commands.txt ..\archive\commands_backup.txt
- Пример (Linux/Mac):
- Переместите файл
notes.txtиз папкиdocsв папкуscripts(пусть имя останется прежним).- Linux/Mac:
mv notes.txt ../scripts/ - Windows (CMD/PowerShell):
move notes.txt ..\scripts\
- Linux/Mac:
- Зайдите в папку
archiveи проверьте, что там теперь лежитcommands_backup.txt. Зайдите вscriptsи проверьтеnotes.txt.
Шаг 4: Удаление ненужных файлов
- Вернитесь в папку
docs(если вы не там):cd ../docs - Создайте лишний тестовый файл, например
temp.txt, и удалите его.- В Linux/Mac:
touch temp.txt rm temp.txt - В Windows (CMD):
type nul > temp.txt del temp.txt
- В Linux/Mac:
- Будьте аккуратны и всегда проверяйте командой
pwd(илиecho %cd%в CMD) где вы находитесь, прежде чем удалять файлы.
Шаг 5: Архивация
- Перейдите в корневую папку проекта
cli_project. - Создайте архив из папки
scripts:- Linux/Mac (tar):
tar -czf scripts_archive.tar.gz scriptsТеперь у вас должен появиться файл
scripts_archive.tar.gz. - Windows (PowerShell):
Compress-Archive -Path .\scripts\* -DestinationPath .\scripts_archive.zip
- Linux/Mac (tar):
- Удалите папку
scripts(как будто «освободили» место).- Linux/Mac:
rm -r scripts - Windows (CMD):
rmdir scripts /s - Windows (PowerShell):
Remove-Item scripts -Recurse
- Linux/Mac:
- Извлеките файлы из архива (проверьте, что всё вернулось):
- Linux/Mac:
tar -xzf scripts_archive.tar.gz - Windows (PowerShell):
Expand-Archive -Path .\scripts_archive.zip -DestinationPath .\scripts_restored - При распаковке в Windows может создаться папка
scripts_restored. Вы можете переименовать её обратно вscriptsпри желании.
- Linux/Mac:
Шаг 6: Автоматизация (небольшой скрипт)
- Создайте в папке
scriptsскрипт (назовём егоbackup.shдля Linux/Mac илиbackup.ps1для PowerShell) для резервного копирования папкиdocsвarchive. Пример для Bash:
#!/usr/bin/env bash
# backup.sh - создает архив папки docs с таймстампом
DATE=$(date +%Y-%m-%d_%H-%M-%S)
tar -czf "../archive/docs_backup_$DATE.tar.gz" ../docs
echo "Backup completed: docs_backup_$DATE.tar.gz"
Комментарий:
- Переменная
$DATEберёт текущую дату/время, чтобы каждый архив имел уникальное имя. - Команда
tarсоздаёт gz-архив из содержимого папкиdocsи кладёт его вarchive.
- Сделайте скрипт исполняемым и запустите (Linux/Mac):
cd scripts
chmod +x backup.sh
./backup.sh
- В PowerShell будет похожая идея:
# backup.ps1
# Создаёт zip-архив папки docs с таймстампом
$DATE = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
Compress-Archive -Path ../docs/* -DestinationPath ("../archive/docs_backup_$DATE.zip")
Write-Host "Backup completed: docs_backup_$DATE.zip"
Запуск:
.\backup.ps1
- Проверьте в папке
archive, что создался архив с датой/временем.
Шаг 7: Используйте справку (обязательно!)
Во время выполнения задания:
- Обращайтесь к
man <команда>или--helpв Linux/Mac, - К
help,command /?илиGet-Helpв Windows, - При возникновении затруднений с синтаксисом флагов, ключей и т. п.
(Это не столько шаг, сколько напоминание: регулярно проверяйте документацию.)
Шаг 8: Подведение итогов
- Просмотрите дерево вашего проекта
cli_project:tree cli_project # Linux/Mac (если установлена команда tree)Или с помощью
ls -R cli_project(рекурсивный просмотр). В Windows можно использоватьdir /s cli_project. - Убедитесь, что все операции — создание, удаление, копирование, перемещение, архивирование, а также запуск скриптов — сработали так, как вы планировали.
- Оцените, какие действия вы делали чаще всего, какие команды были самыми полезными. Подумайте, есть ли смысл включить их в свой личный «список полезных команд» или даже написать небольшой шорткат/alias.
Результат проекта
- У вас появился опыт создания и структурирования директории под проект.
- Вы освоили базовые команды CLI в реальном контексте: от навигации и редактирования файлов до архивирования и простых скриптов.
- Вы увидели, как важна аккуратность в указании путей и команд (особенно опасных, вроде удаления).
- У вас есть готовый «скелет» для дальнейших экспериментов — при желании можно расширять проект, добавлять новые скрипты автоматизации, изучать более сложные инструменты.
Дополнительные идеи
- Добавьте Git: Инициализируйте локальный репозиторий в
cli_project(git init), закоммитьте всё, затем сделайте новые коммиты после каждого изменения. - Установите cron (Linux/Mac) или планировщик задач в Windows, чтобы запускать
backup.sh(илиbackup.ps1) автоматически по расписанию. - Подготовьте Dockerfile (если интересно): Создайте контейнер, в котором будет повторяться ваша структура и команды, чтобы всё можно было быстро деплоить на сервер.
Поздравляем с завершением проектного задания! Если вы выполнили все шаги и скрипты работают, значит, вы не только усвоили весь необходимый минимум команд CLI, но и увидели, как они применяются в небольшом, но реальном проектном сценарии. Теперь вы готовы к более продвинутым вещам: настройке серверов, работе с системами контроля версий и профессиональным инструментам автоматизации.
Удачи и успехов в дальнейшем погружении в мир командной строки!
