Windows XP и командная строка
Дата: 03/09/2006
Тема: Программы, ОС, их настройка и установка


В Windows XP появилось около 30 новых консольных команд. Тем не менее один аспект по-прежнему однозначно трактуется не в пользу Windows: якобы использование консоли в этой ОС не только непопулярно (что в большой мере правда), но и неудобно, неэффективно и пр. На самом деле этот тезис не совсем корректен, однако почва для него безусловно существует. Возьмите практически любую книгу (вовсе не обязательно "для чайников") о Windows -- наверняка о командной строке там нет ни слова


В первую очередь это объясняется архитектурными особенностями ОС, которую невозможно представить вне графического интерфейса пользователя (в отличие от клонов Unix). Естественно, броское оформление -- не самоцель, хотя именно на него реагируют многочисленные пользователи, особенно начинающие. Графическая подача информации во многих случаях действительно удобнее (скажем, выбор из нескольких вариантов становится гораздо нагляднее и очевиднее) и не только в компьютерном мире. Впрочем, спор этот извечный, касается отнюдь не только ОС, и что-то в нем доказать не представляется возможным -- у каждого свои вкусы и привычки, расставаться с ними непросто, да и не нужно.

Вторая причина, вызывающая особо острую критику со стороны апологетов Unix, состоит в относительной "скудости" консольных средств. Многообразием командных интерпретаторов Windows действительно не блещет. Однако нужно четко понимать разницу между ОС, созданной и сопровождаемой (ныне, присно и во веки веков) одной-единственной компанией, и ОС, над которой трудится целое сообщество программистов, -- их мнения зачастую могут весьма различаться. По-видимому Microsoft вполне удовлетворена возможностями стандартного CMD, укладывающимися в ее видение "идеальной" системы, но ничто не мешает воспользоваться сторонними (и порой весьма неплохими) разработками вроде Kixtart или даже Cygwin, перенесенной в Windows прямо из Unix.

Так или иначе, но для многих стандартных задач действительно необходимы альтернативные средства их решения, в том числе и из командной строки. В конце концов, удаленное управление, в том числе и Telnet, операционным системам Microsoft отнюдь не чуждо. И нужно сказать, их арсенал (в самой Windows представленный уже упомянутым CMD и консольными утилитами) на самом деле не так уж скуден. Чего стоит одна только команда net, позволяющая выполнять все основные административные задачи -- "вручную" или из командных файлов и сценариев (скриптов). С другой стороны, такую задачу, как переименование рабочей станции в домене можно выполнить только из командной строки с помощью netdom (ее нужно установить дополнительно вместе с пакетом Support Tools, расположенным в папке SupportTools на инсталляционном CD-ROM). Аналогично для переименования самого домена также требуется специальная утилита.

Более того, от версии к версии командная поддержка в ОС Microsoft только расширяется, причем не в последнюю очередь за счет обратной связи с пользователями. Скажем, долгое время в Windows почему-то отсутствовала специальная утилита для перезагрузки компьютера, поэтому приходилось применять всевозможные трюки вроде

rundll32.exe
shell32.dll,SHExitWindowsEx n

для Windows 9х или ПО сторонних разработчиков. В Windows XP наконец-то появилась полноценная утилита shutdown (похожая распространялась и прежде в составе Resource Kit), с помощью которой можно выключить или перезагрузить как локальную, так и удаленную систему (при наличии соответствующих полномочий), оповестить при этом оператора и т. д.

Достаточно полная информация по утилитам командной строки Windows XP содержится в стандартной справочной системе, однако быстрее и удобнее воспользоваться отдельным документом посредством команды hh ntcmds.chm. В частности, специальный раздел описывает порядка 30 команд-утилит (кстати, некоторые реализованы в виде WSH-скриптов), впервые вошедших в состав ОС. Среди них: defrag -- для автоматизации процессов дефрагментации, tasklist и taskkill -- для управления задачами и процессами, schtasks -- для планирования заданий и т. д.

Довольно любопытна группа программ для работы с системными событиями: eventcreate дает возможность администратору создавать в журнале собственные записи, скажем, при выполнении специфических скриптов или командных файлов, а eventtriggers -- оформлять особые процедуры-"пускатели", срабатывающие при появлении определенных записей и выполняющие предписанные действия. Например, следующая команда обеспечит отправку администратору соответствующих сообщений (в bat-файле содержится одна строка с net send) при установке/удалении ПО посредством службы Windows Installer:

eventtriggers /create /TR "Installer" /L APPLICATION /SO MsiInstaller /TK f:send.bat

Утилита fsutil, кроме всего прочего, позволяет использовать наиболее хитроумные возможности файловой системы NTFS, в том числе создавать так называемые "жесткие ссылки" (hardlinks), т. е. несколько каталожных записей, указывающих на одни и те же физические данные на диске, и управлять большими "разреженными" (sparse) файлами с целью экономии дискового пространства.

Некоторые команды Windows XP на самом деле представляют собой самостоятельные консольные оболочки. К таковым, например, относится программа для разбивки жесткого диска diskpart -- ее возможности выходят далеко за рамки привычной fdisk. Естественно, консольный (интерактивный) режим удобен далеко не всегда, поэтому операции можно автоматизировать с помощью специальных сценариев.

Аналогично WMIC обеспечивает доступ к функциональности подсистемы Windows Management Instrumentation. Впрочем, для большинства типовых задач WMI представляет слишком тяжеловесное (в первую очередь с точки зрения освоения этой технологии) средство, обычно вполне достаточно "традиционных" команд и утилит Windows XP, тем более, что многие из них (как, например, уже упоминавшаяся shutdown) поддерживают дистанционный режим. В общем случае он описывается следующим стандартным набором параметров командной строки:

[/S system [/U username [/P password]]]

где system -- имя удаленного компьютера, а username и password позволяют выполнять задачи от имени конкретного пользователя, имеющего необходимые полномочия. Интересно, что в качестве удаленной платформы могут выступать как Windows XP, так и Windows 2000 (с какими-то ограничениями или несовместимостями мы пока не сталкивались), хотя для Windows 9x выдается следующее предупреждение: "ERROR: The Target system must be running Windows XP or above".

Еще один класс команд и утилит предназначен для использования в Recovery Console, причем некоторые -- вроде fixboot и fixmbr для восстановления загрузочной записи раздела и MBR соответственно -- доступны только здесь. Вот вам более чем достойный повод не забывать о консольном режиме и старых добрых текстовых командах. Таким образом, графический интерфейс и командная строка вовсе не являются взаимоисключающими понятиями, просто каждое средство хорошо для своей ситуации, а подлинный профессионализм состоит в умении выбирать из них оптимальное.
Автор: Игорь Дериев
Источник: http://www.itc.ua





Это статья Информационный проект Ynks.Net
http://www.ynks.net

URL этой статьи:
http://www.ynks.net/modules.php?name=News&file=article&sid=782