Недавно я вырос из лютого эникея в очень большой компании, до скромного сисадмина надзирающего за сетью в 10 ПК. И, как очень ленивый сисадмин, столкнулся с задачами по автоматизации своей деятельности. Полгода назад я еще не знал, что в командной строке Windows есть конвейеры. Это стало первым шокирующим открытием. И я пошел дальше, и выяснилось, что там, где я раньше писал утилитки на C#, Delphi или громоздкие скрипты с вложенными циклами, можно было обойтись парой команд forfiles или robocopy.
Не буду рассказывать о банальностях, типа о перечислении файлов и папок клавишей Tab. Под хабракатом расскажу о том, что может быть полезно начинающим админам и эникеям.
Горячие клавиши
Начнем с горячих клавиш, ведь сначала необходимо изучить, что нам может дать рабочая среда.
F1 — В консоли эта клавиша работает в точности как и стрелка вправо, т.е. выводит по одному символу из последней введенной (либо выбранной в истории) команды.
F2 + <символ> — Выводит последнюю введенную команду до указанного символа. Например, если последняя введенная вами команда выглядела вот так:
ping 192.168.25.1
то после нажатия комбинации клавиш F2 + 5 вы получите:
ping 192.168.2
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 но не знаю, что она делает)