Знакомство с командной строкой
Для тех, кто проходит руководство дома: о материале этой главы рассказывает видео Ваш новый друг — командная строка.
Вот это да! Всего через несколько минут ты напишешь свою первую строку кода! 🙂
Позволь представить нашего первого нового друга: командную строку!
Следующие шаги покажут, как использовать чёрное окно, которым пользуются все хакеры. В начале оно может показаться немного пугающим, но, на самом деле это просто окно, которое ждет от тебя команды.
Примечание Пожалуйста, обрати внимание, что в этом руководстве мы используем термины «каталог» и «папка» взаимозаменяемо: эти слова обозначают одно и то же.
Что такое командная строка?
Окно, которое обычно называют командной строкой или интерфейсом командной строки (англ. CLI, Command Line Interface), является текстовым приложением для просмотра, обработки и манипулирования файлами на вашем компьютере. Она делает то же, что и Проводник в Windows или Finder в Mac OS X, но у неё нет графического интерфейса. Другими названиями для командной строки являются: cmd, CLI, prompt, консоль или терминал.
Открываем интерфейс командной строки
Для того, чтобы начать экспериментировать, нам нужно сначала открыть интерфейс командной строки.
Windows
В зависимости от твоей версии Windows и того, какая у тебя клавиатура, одно из следующих действий откроет окно командной строки (возможно, придётся немного поэкспериментировать, но все варианты пробовать необязательно):
- Перейди в меню Пуск (или на экран Пуск), в строке поиска набери «Командная строка».
- Перейди в меню Пуск → Windows → Командная строка.
- Перейди в меню Пуск → Все программы → Служебные → Командная строка.
- Перейди на экран Пуск, наведи мышь на нижний левый угол экрана и нажми на стрелочку вниз, которая появится там. (Если у тебя тачскрин, листни пальцем снизу вверх.) Откроется страница «Приложения». Выбери пункт «Командная строка» в разделе «Windows».
- Удерживая клавишу Windows на клавиатуре, нажми X. В появившемся меню выбери пункт «Командная строка».
- Удерживая клавишу Windows, нажми R, чтобы появилось окно «Выполнить». Набери в строке cmd и нажми OK.

В какой-то момент тебе понадобятся два окна командной строки одновременно. Однако в некоторых версиях Windows, если ты попытаешься запустить вторую командную строку, когда одна уже запущена тем же способом, ты вместо этого попадёшь в уже открытое окно командной строки. Попробуй у себя на компьютере и посмотри, что будет! Если у тебя получается открыть только одно окно командной строки, попробуй какой-нибудь другой из вышеприведённых способов в списке. По крайней мере один из них сможет открыть новое окно командной строки.
Перейди в Приложения → Прочие → Терминал.
Вероятно, командная строка скрывается по адресу: Приложения → Стандартные → Терминал или Приложения → Система → Терминал, но это может зависеть от конкретной системы. Если не сможешь найти — Google поможет 🙂
Командная строка
Перед тобой должно появиться белое или чёрное окошко. Оно ожидает, когда ты введёшь команду.
OS X и Linux
Если у тебя Mac или Linux, ты, скорее всего, увидишь знак $ в конце строки (перед курсором):
Windows
Если у тебя Windows, строка будет оканчиваться символом > , вот так:
Можешь заглянуть в инструкцию для пользовательниц Linux чуть выше — нам что-то подобное ещё встретится, когда мы дойдём до PythonAnywhere.
Перед каждой твоей командой будет стоять знак $ или > и пробел. Но тебе не нужно их печатать! Компьютер уже сделал это за тебя. 🙂
Небольшое примечание: перед курсором командной строки может быть написано что-то вроде C:\Users\ola> или Olas-MacBook-Air:~ ola$ . Это абсолютно нормально.
То, что написано до знака $ или > , плюс сам знак, всё вместе называется приглашением командной строки. Как правило, оно включает адрес папки, в которой ты сейчас находишься. Оно приглашает тебя ввести в окно команду.
Далее в руководстве перед каждой командой, которую тебе нужно будет ввести, мы будем писать символ $ или > . Иногда слева от него мы будем добавлять ещё немного текста. Не обращай внимания на левую часть и просто печатай команду — она начинается после специального символа.
Твоя первая команда (УРА!)
Давай введём следующую команду:
OS X и Linux
$ whoami
Windows
> whoami
Теперь нажми Enter . Вот что получилось:
$ whoami olasitarska
Как видишь, компьютер только что вывел на экран твоё имя пользователя. Классно, а? 🙂
Постарайся набирать каждую команду вручную, а не копировать и вставлять. Так ты больше запомнишь!
Основы
В каждой операционной системе набор команд для командной строки немного отличается, поэтому не забывай следовать инструкциям для своей операционной системы. Давай попробуем, готова?
Текущий каталог
Было бы неплохо знать, где мы находимся сейчас, верно? Давай посмотрим. Набери эту команду и нажми Enter :
OS X и Linux
$ pwd /Users/olasitarska
Примечание: ‘pwd’ означает ‘print working directory’ (вывести рабочий каталог).
Windows
> cd C:\Users\olasitarska
Примечание: ‘cd’ означает ‘change directory'(сменить каталог). Если ты пользуешься PowerShell, можешь ввести pwd — как на Linux или Mac OS X.
Ты, вероятно, увидишь нечто похожее на своем компьютере. Когда ты открываешь командную строку, то обычно находишься в домашнем каталоге текущего пользователя.
Как узнать больше о командах
У многих команд для командной строки есть встроенная справка! Например, вот как узнать подробнее о команде, которая показывает, в какой папке ты сейчас находишься:
OS X и Linux
В OS X и Linux есть команда man — справка о других командах (на английском языке). Набери man pwd и посмотри, что пишут о команде pwd . Используй man с другими командами, чтобы посмотреть для них справку. Как правило, справки man выводятся постранично. Нажми пробел, чтобы перейти на следующую страницу. Чтобы выйти, нажми q .
Windows
Чтобы вывести справку, почти к любой команде можно добавить /? . Чтобы прочитать всю справку, возможно, придётся прокрутить текст вниз. Попробуй набрать cd /? .
Список файлов и каталогов
Так что же в нем? Было бы здорово узнать. Давай посмотрим:
OS X и Linux
$ ls Applications Desktop Downloads Music .
Windows
> dir Directory of C:\Users\olasitarska 05/08/2014 07:28 PM Applications 05/08/2014 07:28 PM Desktop 05/08/2014 07:28 PM Downloads 05/08/2014 07:28 PM Music .
Примечание: в PowerShell можешь использовать ‘ls’ — как в Linux или Mac OS X.
Смена текущего каталога
Теперь вернёмся в наш каталог рабочего стола:
$ cd Desktop
$ cd Desktop
Обрати внимание, что название каталога «Desktop» может быть переведено на язык твоей учётной записи в системе Linux. В таком случае набери вместо Desktop переводное название: например, Рабочий стол (в кавычках — они нужны, чтобы командная строка поняла кириллицу).
Windows
> cd Desktop
Проверь, что рабочий каталог действительно изменился:
OS X и Linux
$ pwd /Users/olasitarska/Desktop
Windows
> cd C:\Users\olasitarska\Desktop
Совет от профи: если ты введешь cd D и затем нажмешь tab на клавиатуре, в командной строке будет автоматически набрана остальная часть имени, что позволит быстрее перемещаться по каталогам. Если c «D», начинается название не одной папки, нажми Tab дважды, чтобы получить список вариантов.
Создание каталога
Как насчет создания каталога practice на рабочем столе? Ты можешь сделать это так:
OS X и Linux
$ mkdir practice
Windows
> mkdir practice
Эта маленькая команда создаст папку с именем practice на рабочем столе. Ты можешь проверить, появилась ли она, просто взглянув на рабочий стол или введя команду ls (для Linux и macOS) или dir (если у тебя Windows)! Попробуй. 🙂
Совет от профи: если ты не хочешь вводить одни и те же команды снова и снова, попробуй нажать на стрелку вверх и стрелку вниз на клавиатуре для просмотра недавно использованных команд.
Тренируемся!
Небольшая задачка: в недавно созданной папке practice создай папку с названием test . Используй команды cd и mkdir .
Решение:
OS X и Linux
$ cd practice $ mkdir test $ ls test
Windows
> cd practice > mkdir test > dir 05/08/2014 07:28 PM test
Чистка
Мы не хотим оставлять беспорядок, поэтому давай удалим всё, что мы создали до этого момента.
Во-первых, мы должны вернуться на рабочий стол:
OS X и Linux
Windows
Используя .. с командой cd , ты можешь сменить текущий каталог на родительский (то есть каталог, который содержит в себе текущий).
Проверь, где ты находишься:
OS X и Linux
$ pwd /Users/olasitarska/Desktop
Windows
> cd C:\Users\olasitarska\Desktop
Пришло время удалить каталог practice :
Внимание: удаление файлов с помощью del , rmdir или rm необратимо. Это означает, что удалённые файлы будут потеряны навсегда! Поэтому будь очень осторожна с этими командами.
Windows Powershell, OS X и Linux
$ rm -r practice
Командная строка Windows
> rmdir /S practice practice, Are you sure ? Y
Готово! Давай проверим, что папка действительно удалена:
OS X и Linux
Windows
Выход
Вот и всё на данный момент! Теперь можно безопасно закрыть командную строку. Давай сделаем это как хакеры, согласна? 🙂
OS X и Linux
$ exit
Windows
> exit
Подведём итоги
Вот краткий обзор некоторых полезных команд:
| Команда (Windows) | Команда (Mac OS / Linux) | Описание | Пример |
|---|---|---|---|
| exit | exit | закрыть окно | exit |
| cd | cd | изменить каталог | cd test |
| cd | pwd | вывести текущий каталог | cd (Windows) или pwd (Mac OS / Linux) |
| dir | ls | список каталогов/файлов | dir |
| copy | cp | копировать файл | copy c:\test\test.txt c:\windows\test.txt |
| move | mv | переместить файл | move c:\test\test.txt c:\windows\test.txt |
| mkdir | mkdir | создать новый каталог | mkdir testdirectory |
| rmdir (или del) | rm | удалить файл | del c:\test\test.txt |
| rmdir /S | rm -r | удалить каталог | rm -r testdirectory |
| [CMD] /? | man [CMD] | справка для команды | cd /? (Windows) или man cd (Mac OS / Linux) |
Это лишь некоторые из команд, которые можно использовать в командной строке, но сегодня тебе больше и не пригодится.
Если тебе интересно, на ss64.com можно найти полный справочник команд для всех операционных систем (на английском языке).
Готова продолжить?
Давай погрузимся в мир Python!
Работа с командной строкой ( CMD ) Windows
Командная строка представляет собой программное средство ввода команд пользователем и получения результатов их выполнения на экране. В современных операционных системах семейства Windows, командную строку обеспечивает стандартное приложение cmd.exe , так же называемое командным процессором, интерпретатором команд и консолью. Приложение ”Командная строка” предоставляет пользователю текстовый интерфейс для ввода команд и получения результатов их выполнения. Фактически, командная строка является программным эмулятором классической консоли первых компьютерных систем, представляющей собой терминал с клавиатурой, используемый оператором в качестве средства общения с компьютером. Как и во времена первых компьютеров, командная строка поддерживает стандартное устройство ввода – клавиатуру, и стандартное устройство вывода – дисплей. Пользователь вводит команды с клавиатуры и получает результаты их выполнения на экране дисплея.
Запуск командной строки.
Для запуска командной строки можно воспользоваться одним из следующих способов:
Пуск — Выполнить (или клавиши Win+R) введите cmd и нажмите клавишу Enter;
Пуск — Все программы — Стандартные — Командная строка»;
Пуск — Поиск — Командная строка. Также, для запуска командной строки можно использовать заранее подготовленный ярлык, ссылающийся на исполняемый файл %SystemRoot%\system32\cmd.exe ( обычно – C:\Windows\system32\cmd.exe). Выполнение некоторых команд требует повышенных привилегий, поэтому, приложение командной строки должно быть запущено с использованием пункта контекстного меню ”Запуск от имени администратора”, вызываемого правой кнопкой мышки.
Настройка командной строки.
Стандартное окно командной строки – это окно с символами белого цвета на черном фоне. Параметры шрифтов, цвет и фон символов, использование буфера обмена и прочие свойства командной строки можно изменить в соответствии со своими предпочтениями. Настройки можно выполнить изменяя свойства ярлыка, с помощью которого выполняется запуск приложения командной строки, либо правкой параметров реестра, относящихся к командному процессору.
Работа в командной строке предполагает ввод данных с клавиатуры, при чем, иногда довольно большого объема. Этот объем можно значительно сократить, используя некоторые приемы:
Использование буфера обмена.
Текст, выделенный в окне приложения, можно скопировать в буфер обмена, а также вставить его из буфера обмена в поле ввода. При стандартных настройках командной строки для выделения текста используется пункт ”Пометить” контекстного меню, вызываемого правой кнопкой мышки. При желании, в свойствах ярлыка, с помощью которого выполняется запуск можно включить режим выделения мышью:

В режиме выделения мышью, контекстное меню не используется, а текст выделяется с использованием левой кнопки мышки. Копирование и вставка выполняется при нажатии правой кнопки мышки. При включенном режиме ”Разрешить сочетания клавиш с CONTROL”, можно использовать стандартные сочетания клавиш:
— CTRL+C (CTRL+Insert) – скопировать выделенный текст.
— CTRL+V (Shift+Insert) – вставить выделенный текст.
Использование истории команд и горячих клавиш.
Для вызова ранее введенных команд используются клавиши со стрелками Стрелка Вверх — на одну команду назад и Стрелка Вниз — на одну команду вперед. Кроме того, можно использовать функциональные клавиши:
F1 — посимвольный вызов последней введенной команды. Каждое нажатие F1 приводит к последовательной подстановке в поле ввода одного символа из предыдущей команды.
F2 — копирование до символа. После нажатия на F2 на экране отображается запрос символа, до которого будет скопирована предыдущая команда. Например, если предыдущая команда была ping yandex.ru , и в качестве символа задана точка, то в строку ввода команды будет занесено ping yandex , если задан пробел, то — ping .
F3 — вызов предыдущей команды.
F4 — удалить до символа. Выполняется удаление текста от текущей позиции курсора до заданного символа.
F5 и F8 — вызов буфера ранее введенных команд. Вывод по нажатию клавиши F5 прекращается когда будет отображена первая введенная команда текущей сессии.
F7 — отображение ранее введенных команд в отдельном окне в виде списка. Для выполнения нужной команды нужно выбрать ее, используя клавиши со стрелками, и нажать ENTER
F9 — выполнить команду, номер которой запрашивается. Номер команды в списке истории можно получить при использовании F7 .
В Windows 10 / Windows Server 2016 появились возможности, отсутствующие в предыдущих реализациях командной строки:
— Изменение прозрачности окна консоли при нажатии комбинаций CTRL + Shift + — или CTRL + Shift + + .
— Включение / выключение полноэкранного режима при нажатии CTRL+Enter .
— Расширение возможностей выделения текста и редактирования:
Shift+Home – выделить текст от текущего положения курсора до начала строки.
Shift+End – выделить текст от текущего положения курсора до конца строки.
— Быстрое перемещение по буферу экрана и поиск по контексту:
CTRL+Home – перейти в начало буфера экрана
CTRL+End – перейти в конец буфера экрана.
CTRL+Стрелка Вверх — перемещение на 1 строку вверх.
CTRL+Стрелка Вниз — перемещение на 1 строку вниз.
CTRL+F — открыть диалог поиска текста в буфере экрана.
Окно командной строки в Windows 10 можно закрыть с помощию стандартной комбинации клавиш — ALT+F4 .
Для отключения новых возможностей CMD, необходимо в свойствах приложения установить галочку ”Использовать прежнюю версию консоли (требуется перезапуск)”
Автодополнение путей файлов
В командной строке Windows можно выполнять подстановку имен файлов и каталогов при нажатии клавиши Tab . Например, для перехода, в каталог с длинным именем Program Files наберите начальную часть имени каталога
CD Pro и нажмите Tab. В строке ввода должна появиться команда :
CD «Program Files»
Как видим, выполняется подстановка недостающей части имени каталога, а в тех случаях, когда в нем имеется символ пробела, добавляются еще и двойные кавычки.
Если имеется несколько совпадающих начальных частей имен файлов или каталогов, при каждом нажатии клавиши Tab будет подставляться следующее по алфавитному порядку имя. Для возврата на предыдущее — используется комбинация Shift+Tab
Перенаправление данных стандартного ввода /вывода консоли.
Как уже упоминалось, в качестве стандартного устройства ввода командной строки используется клавиатура, а в качестве устройства вывода – дисплей. Однако, существует возможность перенаправления ввода-вывода на другие устройства c использованием операторов перенаправления:
ping –n 5 localhost > nul — выполнить пинг петлевого интерфейса 5 раз с перенаправлением вывода в фиктивное устройство nul . Вывод результатов выполнения команды подавляется. Подобный прием используется для организации задержки в командных файлах, поскольку пинг петлевого интерфейса выполняется почти мгновенно, а интервал между пингами равен одной секунде, время выполнения данной команды определяется значением параметра -n
ping –n 100 yandex.ru > C:\ping-ya.txt — выполнить 100 раз пинг узла yandex.ru c записью результатов выполнения команды в файл C:\ping-ya.txt. Если файл не существует, он будет создан, а если существует, его содержимое будет затерто.
ping –n 100 yandex.ru >> C:\ping-ya.txt — то же, что и в предыдущем примере, но, если файл не существует, то он будет создан, а если существует, то запись результатов будет выполняться в конец файла.
cmd — запустить командный процессор CMD и выполнить ввод данных из файла 1.txt. Если в файле поместить строку ping –n 100 yandex.ru , то выполнится команда, рассмотренная выше.
Нередко, вывод одной команды нужно передать в качестве вводимых данных для другой, т.е. объединить команды в последовательную цепочку:
ping -n 100 microsoft.com | find «Превышен интервал» — результат выполнения команды ping -n 100 microsoft.com передается в виде входных данных для команды поиска строк ( find ), содержащих текст «Превышен интервал».
ping -n 100 microsoft.com | find «Превышен интервал» > C:\ping-ya.txt — то же, что и в предыдущем примере, но с перенаправлением выводимых результатов выполнения команды в текстовый файл.
Каждому открытому файлу или устройству соответствует свой дескриптор ( handle ) который представляет собой неотрицательное число, значение которого используется породившим поток ввода-вывода процессом. По умолчанию, для всех процессов, в том числе и для командного интерпретатора cmd.exe :
0 ( STDIN ) – дескриптор стандартного ввода (ввод с клавиатуры).
1 (STDOUT) – дескриптор стандартного вывода (вывод на экран).
2 (STDERR) – дескриптор вывода диагностических сообщений (сообщений об ошибках на экран).
Дескрипторы можно использовать в тех случаях, когда требуется перенаправить (изменить) источники и приемники данных в стандартных потоках ввода-вывода. Например:
ping.exe –n 100 yandex.ru 2> C:\pinglog.txt — стандартный поток сообщений программы ping.exe будет выводиться на экран, а ошибки ( стандартный вывод с дескриптором = 2 ) будут записаны в файл C:\pinglog.txt . В реальном случае для программы ping.exe приведенная конструкция значения не имеет, поскольку она выводит и диагностику, и результаты на экран.
Для задания перенаправления в существующие дескрипторы используется амперсанд (&), затем номер требуемого дескриптора (например, &1):
ping –n 100 yandex.ru >log.txt 2>&1 — стандартный поток сообщений об ошибках (дескриптор=2) перенаправляется в стандартный поток вывода (дескриптор = 1) и все это перенаправляется в файл log.txt текущего каталога.
ping –n 100 yandex.ru >log.txt 1>&2 — стандартный вывод (дескриптор = 1) перенаправляется в вывод сообщений об ошибках (дескриптор=2) и все это записывается в текстовый файл.
Если дескриптор не определен, то по умолчанию оператором перенаправления ввода будет ноль (0), а оператором перенаправления вывода > будет единица.
Объединение нескольких команд в цепочку
В командной строке Windows существует возможность последовательного выполнения нескольких команд в зависимости от результатов их выполнения. Для чего используются символы объединения команд — & (амперсанд) и | (вертикальная черта)
& — одиночный амперсанд используется для разделения нескольких команд в одной командной строке. Например:
echo ping ya.ru — вывод на экран строки ping ya.ru
echo &ping ya.ru — последовательное выполнение команды echo без параметров и команды ping ya.ru
&& — условное выполнение второй команды. Она будет выполнена, если код завершения (значение которого передается в стандартную переменную ERRORLEVEL) первой команды равен нулю, т.е. команда выполнена успешно.
команда1 && команда2 — выполняется команда1 , а команда2 выполняется, только если первая была выполнена успешно. Например:
ping ya.ru -err & ping –n 2 ya.ru — при использовании единичного амперсанда, первая команда ping ya.ru –err выдаст сообщение о неверном параметре -err , а вторая, ping –n 2 ya.ru выполнит двукратный пинг узла ya.ru
ping ya.ru -err && ping –n 2 ya.ru — при использовании двойного амперсанда, первая команда ping ya.ru –err выдаст сообщение о неверном параметре -err и соответственно, сформирует код завершения не равный нулю (ошибка), что приведет к тому, что вторая команда ( ping ya.ru -n 2 ) выполнена не будет.
Двойная вертикальная черта || — условное выполнение второй команды. Если первая команда завершилась с кодом возврата не равным нулю (неуспешно), то выполняется команда, следующая за двойной вертикальной чертой.
команда1 || команда2 — если команда1 выполнена неуспешно, то запускается на выполнение команда2
ping –n 1 ya.ru && ping –n2 ya.ru || ping –n 3 ya.ru — сначала выполнится 1-я команда ping ya.ru –n 1 — однократный пинг узла ya.ru , затем выполнится команда ping ya.ru -n 2 — двукратный пинг узла ya.ru . Третья команда ping ya.ru -n 3 , трехкратный пинг узла ya.ru выполнена не будет.
ping –n 1 –err ya.ru && ping ya.ru -n 2 || ping ya.ru -n 3 — первая команда ping ya.ru –n 1 –err выполнится с ошибкой из-за неверного параметра -err , вторая команда ping –n 2 ya.ru — двукратный пинг узла ya.ru не будет выполнена из-за условия двойного амперсанда, и в результате выполнится третья команда ping –n 3 ya.ru , трехкратный пинг узла ya.ru .
В некоторых случаях может возникнуть необходимость запрета обработки служебных символов и трактовки их в качестве простого текста. Например, если ввести в командной строке
ECHO ping -n 1 ya.ru & ping -n 2 ya.ru
то вместо текста ping -n 1 ya.ru & ping -n 2 ya.ru будет выведена его часть до символа амперсанда ping -n 1 ya.ru и затем выполнена команда после амперсанда — ping -n 2 ya.ru . Проблему решает использование специального экранирующего символа ^ , который позволяет использовать служебные символы как текст:
ECHO ping -n 1 ya.ru ^& ping -n 2 ya.ru — вывод на экран текста ping -n 1 ya.ru & ping -n 2 ya.ru
Логика условной обработки команд, реализуемая с помощью конструкций && и || действует только на ближайшую команду, то есть, при вводе команды
TYPE C:\plan.txt && DIR & COPY /?
команда COPY /? запустится в любом случае, независимо от результата выполнения команды TYPE C:\plan.txt . Но, несколько команд можно сгруппировать с помощью скобок. Например, есть 2 командные строки:
TYPE C:\plan.txt && DIR & COPY /?
TYPE C:\plan.txt && (DIR & COPY /?)
В первой из них символ условной обработки && действует только на команду DIR, во второй — одновременно на две команды: DIR и COPY. В качестве наглядного эксперимента, попробуйте выполнить вторую команду при условиях наличия и отсутствия файла C:\plan.txt . Для создания пустого файла можно воспользоваться копированием из фиктивного устройства nul :
copy nul C:\plan.txt
Для удаления файла используется команда erase c:\plan.txt или del C:\plan.txt
Командные файлы
Командные файлы (сценарии, скрипты) – это обычные текстовые файлы с заранее подготовленным набором команд для их выполнения командным процессором cmd.exe . Стандартно, такие файлы имеют расширение .bat или .cmd . Строки командных файлов могут содержать специфические команды самого процессора команд, например — FOR, ECHO, REM и т.п. или имена исполняемых модулей – reg.exe, sc.exe, auditpol.exe., которые можно использовать без расширения – reg, sc, auditpol. Пример простого командного файла:
REM Создается текстовый файл со списком каталога Windows
dir C:\Windows > %TEMP%\winlist.txt
REM выполняется задержка на 5 секунд
ping -n 5 localhost > nul
REM Файл открывается в редакторе WordPad
write %TEMP%\winlist.txt
REM После завершения работы Wordpad, текстовый файл удаляется.
erase C:\winlist.txt
Строки, начинающиеся с REM являются комментариями. В качестве примера, используются команды для работы с файловой системой и выполняется запуск приложения графической среды – текстового редактора Wordpad (write.exe) с передачей ему параметра командной строки (имя файла). Язык командных файлов довольно примитивен и не в полной мере соответствует требованиям сегодняшнего дня, однако, он является самым простым средством автоматизации рутинных действий и используется большинством системных администраторов и грамотных пользователей. Работа с командными файлами – это отдельная тема, более подробно изложенная на странице Командные файлы
Прочие материалы для освоения работы в командной строке Windows:
Как работать с командной строкой эффективно: 6 советов от разработчика Дейва Керра

Чем больше программист работает в командной строке, тем сложнее ему ориентироваться в тексте и командах. Мы перевели статью разработчика Дейва Керра и узнали, как с помощью сочетаний клавиш (шорткатов) упростить навигацию и поиск в командной строке.
Вы читаете обновленную и улучшенную версию нашей старой статьи
Навигация в командной строке
Предположим, что разработчик составляет простую команду, которая будет записывать цитату в текстовый файл:
> quote.txt
Между длинными блоками текста разработчик может перемещаться стрелками. Но это долго и неудобно. Есть более простой способ навигации — шорткаты:
- В начало или в конец: Ctrl + a , Ctrl + e
- Назад или вперед по словам: Alt + b , Alt + f
- Удалить слово или отменить действие: Ctrl + w , Ctrl + —
- Удалить следующее слово: Alt + d
- Удалить все до начала: Ctrl + u
- Удалить все до конца: Ctrl + k
Поиск в командной строке
Как только разработчик разбирается с базовой навигацией, ему важно освоить инструменты поиска.
Допустим, разработчик запускает три следующие команды:
Он может выполнять поиск вперед или назад с помощью Ctrl + r и Ctrl + s . Поиск будет вестись по текущей команде, а затем итеративно по предыдущим:
Также шорткаты можно использовать для поиска по истории команд вперед и назад:
Когда разработчик вводит текст, поиск проверяет историю его команд и выводит самые последние в начале. Вот те же самые команды, примененные к исходному примеру:
- Искать назад или вперед: Ctrl + r , Ctrl + s
- Выполнить команду: Enter
- Редактировать команду: ← или →
- Остановить поиск: Ctrl + g
Редактирование в командной строке
Обрабатывать очень длинную и сложную команду можно в редакторе кода. Но, опять же, переключаться между редактором и командной строкой не очень удобно.
Вот шорткат, который позволит редактировать команду прямо в командной строке: Ctrl + x , Ctrl + e
Очистка экрана в командной строке
Шорткат Ctrl + l очищает экран, не удаляя текущую команду. Это выглядит так:
Транспонирование
Транспонирование в командной строке меняет местами последние два слова в команде. Можно, конечно, их стереть и заново набрать, но на это уйдет больше времени, чем на использование сочетания клавиш.
Вызвать транспонирование можно с помощью шортката Alt + t . А сочетание клавиш Ctrl + t поменяет местами последние две буквы:
Библиотека для управления командной строкой в интерпретаторах
Чтобы вывести свою работу в командной строке на новый уровень, стоит изучить библиотеку GNU Readline. С ее помощью можно настроить все низкоуровневые детали работы любых интерпретаторов, которые используют Readline. Для этого есть конфигурационный файл .inputrc .
Шорткаты GNE Readline работают в любой командной строке, которая использует эту библиотеку. То есть все, о чем мы писали выше, применяется к:
На сайте Readline есть отличная шпаргалка по командам — рекомендуем ее изучить.
Советуем также посмотреть наше видео о работе в командной строке. Возможно, вы откроете для себя что-то новое.
Итог
Мы рассказали о нескольких классных шорткатах, которые упрощают работу с командной строкой. Вот небольшой схематический конспект статьи:

Изучите основы командной строки бесплатно! На Хекслете есть бесплатный курс по основам командной строки. Пройдите его, чтобы подробнее узнать о командах linux, навигации и поиске, а также научиться манипулировать файловой системой как профи.
codedokode / cli.md
Я не знаю, ты пользуешься Линуксом или Уиндоузом (обычно туториалы рассчитаны на линуксоидов и макосников, уиндоуз не модный среди молодежи). В макоси все практически так же как и в линуксе, в windows пошли своим путем и сделали все как в DOS.
Думаю, что в данном случае тебе поможет не рыба, а удочка, так что держи пасту. Если после прочтения у тебя будут какие-то вопросы, или по-прежнему непонятно, почему команды не работают, пиши в наш уютный тред, разберемся.
Краткий мануал чайника по командной строке:
Как попасть в командную строку?
- Windows XP: Пуск — Выполнить — набрать cmd — нажать [enter]
- Windows7: Пуск — набрать cmd — наждать [enter]
- MacOS: Запустить приложение Терминал (его можно найти поиском в той фигне которая справа вверху экрана)
- Ubuntu: Запустить приложение Терминал или нажать Alt + Ctrl + F1 (ааа как вернуться назад? Ctrl + F7)
- Linux: если ты линуксоид, ты и так знаешь
Во всех операционных системах
↑,↓ — стрелки вверх и вниз в командной строке позволяют смотреть предыдущие введенные команды, чтобы 2 раза не набирать. В Windows при закрытии окошка консоли вся история теряется, в других ОС — сохраняется.
[tab] — автодополняет имена файлов и команды. Если в текущем каталоге есть файл file.txt, ты наберешь fi и нажмешь [tab] то он автодополнит имя файла (или предложит варианты, если таких файлов несколько).
[ctrl+c] — прерывает выполнение команды, например, если она долго тупит
Важно: клавиша Esc не работает в командной строке. Клавиши Ctrl + C, V, X не работают как «копировать/вырезать/вставить» (иногда для вставки можно использовать Shift + Ins). Клавиша Ctrl + Q не работает как «выход».
Линукс и мак
В линуксе и маке, [ctrl+l] очищает экран, [ctrl+k] и [ctrl+u] удаляют все перед или после курсора, [ctrl+w] удаляет слово перед курсором, [ctrl+r] делает поиск по истории команд (для отмены поиска нажми [ctrl+c], escape в командной строке не работает, для завершения поиска нажми стрелку вправо/влево), [ctrl+d] завершает работу и закрывает консоль.
Еще в линуксе и маке иногда не работают Home и End, используй [ctrl+a] чтобы перейти в начала строки и [ctrl+e], чтобы в конец. [alt + b] (back) и [alt + f] (forward) двигают курсор на 1 слово назад/вперед.
Буфер обмена
В командной строке не работает ctrl+v,c,x для вставки, копирования и вырезания текста. Иногда (зависит от настроек системы) вставить текст можно через [shift+ins], иногда правой кнопкой мыши. Скопировать текст можно, выделив мышью (в Windows надо разрешить выделение текста сначала в настройках окна и нажать Enter после выделения).
Текущий каталог
В командной строке результат выполнения команд зависит от того, в каком каталоге и на каком диске ты находишься. Какой каталог текущий, в Windows написано в подсказке, а в linux можно узнать командой pwd (print working directory)
Чтобы перейти в другой каталог, в линуксе используют команду cd :
cd / — перейти в корневой каталог (в линукс нет букв дисков, и корневой каталог один на всю систему) cd /etc/apache — перейти в каталог /etc/apache cd files — переходит в каталог files внутри текущего cd .. — переходит в родительский кталог cd ../.. — переходит на 2 уровня выше cd ~ — перейти в свой домашний каталог (/home/anon например) cd ~/test — перейти в /home/anon/test
В Windows, сначала надо перейти на нужный диск командой c: , d: , e: и так далее. Потом использовать cd или chdir :
d: - перейти на диск d: cd \ — перейти в корневой каталог cd \windows\system32 cd .. cd ..\..
Обрати внимание, windows и linux используют разные виды слешей. Обрати внимание, .. обозначает «родительский каталог». Обрати внимание, только в линукс и мак ~ обозначает «домашний каталог» (это /home/username или /Users/username ). . (одна точка) обозначает текущий каталог и cd . никуда не перейдет. / (линукс) или \ (Windows) обозначает корневой каталог.
Очистка экрана
В linux — команда clear или клавиша [ctrl+L], в windows — команда cls (clear screen).
Список файлов
Посмотреть, какие файлы есть в текущем каталоге, можно командой dir в Windows и командой ls в линуксе ( ls -a — показывает все файлы, включая скрытые, ls -l — показывает не только имена, но и размер, дату создания файла, права на него).
Посмотреть права на файл в Линукс можно либо командой ls -l , либо stat file.txt
Команды и оболочка
Оболочка — это cmd.exe в Windows и bash в линукс, это та программа, которая собственно мигает курсором и выполняет твои команды. Ты набираешь команды, а она их выполняет. Команда обычно состоит из имени команды, и, иногда, дополнительных параметров, отделенных пробелом, вроде:
ls — показать список файлов в линукс ls -l — показать файлы с подробностями dir — показать список файлов в windows с подробностями dir /b — показать только имена файлов, без подробностей
Подсказка
Почти у любой команды есть подсказки. Чтобы их увидеть, добавь к имени команды параметр ( —help или /? ):
В линукс: ls —help — выведет справку по команде ls
В линукс: man bash — выведет подробную длинную справку по команде bash (для выхода жми q, для прокрутки используй стрелки и PgUp/PgDn)
В Windows: dir /? — выведет справку по команде dir
В Windows: help выведет подсказку по основным командам
Виды команд
Команды бывают внутренние (это маленький список команд, встроенных в оболочку). Встроенные команды — это, например, cd в линукс или exit в Windows. Их мало.
Внешние команды — их большинство — это фактически программы, лежащие на диске. Оболочка ищет их не по всему диску, а только в заранее заданных папках. Список папок перечислен в специальной переменной PATH. Просмотреть эту переменную можно так:
В линуксе: echo $PATH
В windows: echo %PATH%
В linux PATH — это папки /bin, /usr/bin, /usr/local/bin, /sbin, /usr/sbin, именно в них в Линуксе хранятся почти все программы. В текущем каталоге програмы не ищутся, если это не указать явно.
В Windows PATH — это всякие системные папки вроде c:\windows и так далее + текущий каталог, в котором ты находишься. Заметь, что папки вроде c:\program files\autocad в PATH не добавлены и в Windows таким образом, из командной строки обычные программы и игры, установленные в Program Files, не запустить. Только то, что положено в системные папки.
Таким образом: если ты под линуксом, и ты набираешь команду php , то скорее всего файл php лежит в одной из *bin папок и эта команда запустит php. Если ты под Windows установил php допустим в c:\php, и не прописал этот путь в PATH, то набрав php , оболочка не найдет файл php.exe и ничего не запустит. И ты скажешь «что за кривой мануал, ничего не работает, ну его нафиг».
Что же делать? 1) добавить папку с php в PATH через мой компьютер — свойства и перезалогиниться в систему 2) писать вместо php полный путь c:\php\php.exe
Продолжаем. Допустим, ты хочешь запустить в командной строке файл my.php , который находится в текущем каталоге:
Линукс: php my.php Windows: c:\php\php.exe my.php
Допустим, ты хочешь запустить php-файл не из текущего каталога. Тогда надо написать путь к нему:
Линукс: php /some/dir/my.php Windows: c:\php\php.exe d:\files\my.php
В общем, проще запускать файлы из текущег каталога, чем мучаться с путями.
Больше команд — linux
Попрактиковаться в линукс в командной строке можно на таких командах:
Создать текстовый файл: cat > file.txt [enter] ввести текст [enter][ctrl+d] — и файл создан Просмотреть текстовый файл: cat file.txt Просмотреть огромный текстовый файл, который не влеазает на экран: cat file.txt | less В просмотрщике работают стрелки и q для выхода (escape не работает). Удалить файл: rm file.txt Скопировать файл: cp file.txt copy.txt Переместить/переименовать файл: mv file.txt copy.txt Скопировать в другую папку: cp file.txt /some/other/directory Запустить команду и сохранить ее вывод в файл: ls -la > file.txt (эта команда выведет список файлов, но не на экран, а сохранит в файл. Бывает иногда полезно). Вывести файл, но не весь, а только первые 10 строк: cat file.txt | head -10 Вывести последние 10 строк файла: cat file.txt | tail -10 Вывести только строки файла, содержащие слово «dog»: cat file.txt | grep dog Найти файлы, в имени которых есть «dog», в каталоге /tmp: find /tmp -iname '*dog*' Узнать текущее время: date Создать папку: mkdir folder Удалить папку: rm -r folder Померять, сколько времени выполнялась команда: time [команда] Узнать свой id пользователя: id Показать список запущенных процессов: ps -lax Показать что-то вроде диспетчера задач: top (для выхода q) Запустить редактор, из которого хрен выйдешь, так как никакие привычные кнопки не работают: vi
Подробнее о работе команд можно узнать с помощью параметра —help , дописанного после команды.
Больше команд — Windows
Попрактиковаться в комнадной строке в Windows можно так:
help — выводит список полезных команд dir — выводит файлы в каталоге Создать текстовый файл: copy con file.txt[enter]ввести текст[enter][ctrl+z][enter] — файл создан Просмотреть текстовый файл: type file.txt Просмотреть огромный текстовый файл: type file.txt | more (enter — прокрутка, q — выход) Удалить файл: del file.txt Скопировать файл: copy /b file.txt copy.txt Переименовать файл: ren file.txt copy.txt Запустить команду и сохранить вывод в файл: dir /? > file.txt Создать текстовый файл с одной строкой текста: echo lalala lololo > file.txt Дописать строчку в конец файла: echo boom >> file.txt Создать папку: mkdir folder Удалить папку: rmdir folder Узнать текущее время: time и date (ctrl+с для выхода)
Подробнее о работе команд можно узнать с помощью параметра /? , дописанного после команды.
Команды для работы с сетью Интернет
В линукс показать информацию о настройке сети: ifconfig (или /sbin/ifconfig если у тебя в PATH нет /sbin)
В Windows показать информацию о сети: ipconfig
Пропинговать (проверить связь) с сервером: ping google.com
Узнать IP по имени домена: nslookup yandex.ru
Показать список открытых с компьютера соединений: netstat (в подсказке по команде указаны также параметры, с помощью которых, например, можно вывести какая программа установила это соединение) Проверить путь до какого-то сервера или узла сети:
- в Windows: tracert google.com
- в linux: traceroute google.com (не работает? пиши /usr/sbin/traceroute или пропиши уже себе sbin в PATH)
Больше информации
Используй ключи —help и /?
Гугли мануал по командной строке windows/linux в интернете.