Недавно я вырос из лютого эникея в очень большой компании, до скромного сисадмина надзирающего за сетью в 10 ПК. И, как очень ленивый сисадмин, столкнулся с задачами по автоматизации своей деятельности. Полгода назад я еще не знал, что в командной строке Windows есть конвейеры. Это стало первым шокирующим открытием. И я пошел дальше, и выяснилось, что там, где я раньше писал утилитки на C#, Delphi или громоздкие скрипты с вложенными циклами, можно было обойтись парой команд
Не буду рассказывать о банальностях, типа о перечислении файлов и папок клавишей
Начнем с горячих клавиш, ведь сначала необходимо изучить, что нам может дать рабочая среда.
F1 — В консоли эта клавиша работает в точности как и стрелка вправо, т.е. выводит по одному символу из последней введенной (либо выбранной в истории) команды.
F2 + <символ> — Выводит последнюю введенную команду до указанного символа. Например, если последняя введенная вами команда выглядела вот так:
то после нажатия комбинации клавиш F2 + 5 вы получите:
F3 — Выводит последнюю, и только последнюю, в истории команду целиком.
F5 — Выводит последние введенные команды по порядку, также как и стрелка вверх.
F6 — Вставляет символ EOF на текущую позицию командной строки, что аналогично нажатию комбинации Ctrl + Z.
F7 — Диалоговое окно, содержащее историю команд.
Alt + F7 — Очищает историю команд.
<символ(ы)> + F8 — Перебирает команды, которые начинаются с символов уже введенных в командную строку.
Если перед нажатием F8 ничего не вводить, то эта клавиша будет работать как и стрелка вверх, но с небольшим отличием — перебор строк будет осуществляться циклично, т.е. после первой команды из списка будет выведена последняя.
F9 + <число> — Вставляет команду из истории под соответствующим номером. К примеру, в ситуации приведенной на скрине выше при нажатии комбинации F9 + 4 в консоли появится:
Я, давным-давно, когда был маленький, даже не представлял как можно работать в консоли без графического интерфейса. Ведь вывод команд порой занимает десятки страниц, а если надо выбрать оттуда какие-то данные, то и постраничный вывод не спасет. Но однажды я поставил на старый комп FreeBSD, открыл хандбук и просто голова кругом пошла от открывшихся возможностей. Там можно перенаправить вывод команды на вход другой команды и это называется конвейером.
Оператором конвейера в *nix и cmd, является символ вертикальной черты.
Например, вывод всех текстовых файлов в текущей папке покажет команда
Пример: Команда1 & Команда2 – сначала выполнятся Команда1, а уже потом Команда2
Пример: Команда1 && Команда2 — Команда2 будет выполняться только в том случае, если произошло успешное выполнение Команды1
Пример: Команда1 || Команда2 — Команда2 будет выполняться только в том случае, если Команда1 не смогла выполниться.
Для группирования команд используются круглые скобки, примеры:
Спасибо за внимание! Жду критики и предложений…
Для тех, кто не в теме, циркумфлекс(вот этот знак "^") означает нажатие клавиши с
(Команды
P.S. Другие тонкости командной строки Windows, уже неоднократно освещались на Хабре. И не вижу смысла копи-пастить.
P.P.S. Ссылки на интересные посты и статьи по другим возможностям командной строки Windows:
Ввод-вывод, циклы, переменные
Работа с массивами
Интереснейший топик по теме
forfiles
или robocopy
.Не буду рассказывать о банальностях, типа о перечислении файлов и папок клавишей
Tab
. Под хабракатом расскажу о том, что может быть полезно начинающим админам и эникеям.Горячие клавиши
Начнем с горячих клавиш, ведь сначала необходимо изучить, что нам может дать рабочая среда.
F1 — В консоли эта клавиша работает в точности как и стрелка вправо, т.е. выводит по одному символу из последней введенной (либо выбранной в истории) команды.
F2 + <символ> — Выводит последнюю введенную команду до указанного символа. Например, если последняя введенная вами команда выглядела вот так:
ping 192.168.25.1
то после нажатия комбинации клавиш F2 + 5 вы получите:
ping 192.168.2
F3 — Выводит последнюю, и только последнюю, в истории команду целиком.
F5 — Выводит последние введенные команды по порядку, также как и стрелка вверх.
F6 — Вставляет символ EOF на текущую позицию командной строки, что аналогично нажатию комбинации Ctrl + Z.
F7 — Диалоговое окно, содержащее историю команд.
Alt + F7 — Очищает историю команд.
<символ(ы)> + F8 — Перебирает команды, которые начинаются с символов уже введенных в командную строку.
Если перед нажатием F8 ничего не вводить, то эта клавиша будет работать как и стрелка вверх, но с небольшим отличием — перебор строк будет осуществляться циклично, т.е. после первой команды из списка будет выведена последняя.
F9 + <число> — Вставляет команду из истории под соответствующим номером. К примеру, в ситуации приведенной на скрине выше при нажатии комбинации F9 + 4 в консоли появится:
ipconfig
Операторы командной строки
Я, давным-давно, когда был маленький, даже не представлял как можно работать в консоли без графического интерфейса. Ведь вывод команд порой занимает десятки страниц, а если надо выбрать оттуда какие-то данные, то и постраничный вывод не спасет. Но однажды я поставил на старый комп FreeBSD, открыл хандбук и просто голова кругом пошла от открывшихся возможностей. Там можно перенаправить вывод команды на вход другой команды и это называется конвейером.
Оператором конвейера в *nix и cmd, является символ вертикальной черты.
|
Например, вывод всех текстовых файлов в текущей папке покажет команда
dir | find ".txt"
Оператор объединения команд
&
Пример: Команда1 & Команда2 – сначала выполнятся Команда1, а уже потом Команда2
Оператор И
&&
Пример: Команда1 && Команда2 — Команда2 будет выполняться только в том случае, если произошло успешное выполнение Команды1
Оператор ИЛИ
||
Пример: Команда1 || Команда2 — Команда2 будет выполняться только в том случае, если Команда1 не смогла выполниться.
Для группирования команд используются круглые скобки, примеры:
- (Команда1 & Команда2) && Команда3 – Если Команды1 и Команды2, выполнятся успешно, произойдет выполнение Команды3.
- (Команда1 & Команда2) || Команда3 — Если Команды1 и Команды2, не выполнятся, произойдет выполнение Команды3.
Спасибо за внимание! Жду критики и предложений…
UPD1
Для тех, кто не в теме, циркумфлекс(вот этот знак "^") означает нажатие клавиши с
Ctrl
(^C = Ctrl +C
).^C
— Прерывает команду, ну это все знают. ^S
— Приостанавливает выполнение команды, а потом запускает.^I
— Аналог Tab, перебирает папки и файлы.^M
— Аналог Enter.^H
— Аналог Backspace.^G
— Написав в пакетном файле команду echo ^G
можно пикать системным динамиком(спикером).(Команды
^I
и ^H
, получены мной методом «научного тыка», еще есть ^J
но не знаю, что она делает)P.S. Другие тонкости командной строки Windows, уже неоднократно освещались на Хабре. И не вижу смысла копи-пастить.
P.P.S. Ссылки на интересные посты и статьи по другим возможностям командной строки Windows:
Ввод-вывод, циклы, переменные
Работа с массивами
Интереснейший топик по теме