Содержание статьи
И снова о главном — давай поговорим о хорошо знакомом тебе cmd.exe. Даже в новомодной «восьмерке» консоль никуда не делась, и выполняет все привычные для тебя задачи и даже таит в себе несколько сюрпризов.
1. Команда ipconfig
Наиболее известная и поэтому наименее интересная в нашем обзоре. Эта команда знакома всем «командным» администраторам и большинству пользователей: когда возникают проблемы с интернетом, сотрудники техподдержки просят пользователя ввести именно ее.
Команда позволяет просматривать TCP/IP-информацию и работать с ней. Можно использовать ее для проверки IP-адреса компьютера, освобождения или обновления аренды назначенного IP-адреса и даже для уничтожения локального DNS-кеша.
Если просто ввести ipconfig в командной строке, команда отобразит информацию об IP-адресах всех сетевых адаптеров. Для каждого адаптера выводится его описание, например «Ethernet-адаптер» или «Адаптер беспроводной локальной сети», чтобы было понятно, конфигурация какого именно показана. Обычный набор информации содержит IP-адрес, маску подсети, основной шлюз и еще пару полей не очень полезных сведений. Если требуется получить больше данных, нужно использовать параметр /all. При этом команда выведет гораздо больше информации, а самое полезное в расширенном выводе — это поле «Физический адрес», то есть MAC-адрес адаптера.
Кроме параметра /all команды ipconfig, заслуживают пристального внимания параметры /release, /renew и /flushdns. Первый позволяет освободить IP-адрес, назначенный по протоколу DHCP. Правда, после этого сеть откажется работать, так как сетевой интерфейс окажется несконфигурированным, поэтому пригодится второй параметр — /renew, который позволяет обновить всю информацию, назначаемую по DHCP. Этот параметр очень полезен, поскольку заставляет твой комп переподключить к маршрутизатору или к серверам провайдера. Бывает так, что при загрузке комп не видит беспроводную сеть (такую проблему я периодически наблюдаю на своем домашнем компе под управлением Windows 7). Вместо перезагрузки компа проще ввести ipconfig /renew, и сеть появится. Третий параметр позволяет уничтожить весь локальный DNS-кеш. Иногда уничтожение DNS-кеша позволяет решить некоторые проблемы установки соединения, например, когда DNS-информация на сервере уже обновлена, но старая еще осталась в локальном кеше.
Хакер #184. Современный фронтенд
2. Команда sfc
Команда sfc (system file checker) позволяет проверить системную файловую систему. Не стоит путать эту команду с командой chkdsk (check disk). С помощью последней можно исправить файловую систему на более низком уровне и даже пометить bad-секторы. А вот команда sfc пригодится, если вдруг какой-то системный файл Windows поврежден. Она может обнаружить это и заменить битый файл без всякого вмешательства со стороны пользователя. Очень и очень полезная команда. Она сравнивает тысячи базовых Windows-файлов с оригинальными версиями, которые поставлялись с Windows, и при необходимости заменяет поврежденные или отсутствующие файлы с помощью Windows Update. В зависимости от того, как установлена Windows, может понадобиться, а может и не понадобиться инсталляционный носитель. Обычно он не нужен.
Можно выделить следующие полезные параметры sfc:
- /scannow — осуществляет немедленную проверку системы и при необходимости заменяет файлы. После выполнения sfc нужно перезагрузить Windows, если были найдены проблемы.
- /scanonce — проверка будет произведена при следующем перезапуске системы.
- /scanboot — проверка будет идти при каждом перезапуске системы. Отменить позволяет параметр Revert: после того, как поэкспериментировал с параметром /scanboot, нужно выполнить команду sfc Revert, иначе проверка будет осуществляться при каждом перезапуске.
3. Команда chkdsk
Команда chkdsk (Check Disk) позволяет починить ошибки файловой системы, обнаружить bad-секторы, восстановить читаемую информацию из bad-секторов. Windows проверяет диски автоматически, однако chkdsk можно запустить и вручную, если есть подозрения, что с диском что-то не так.
В качестве параметров команде нужно передать имя тома или имя файла (если требуется проверить один файл или группу файлов, в этом случае нужно передать маску файла). Параметр /F автоматически исправляет ошибки, параметр /R позволяет обнаружить bad-секторы и восстановить информацию с них. Если chkdsk не может получить исключительный доступ к диску, тогда проверка диска будет произведена при следующей загрузке системы. Это обычное явление при попытке проверить диск C:. Пример: chkdsk D: /R.
4. Команда driverquery
Команда генерирует список всех драйверов, установленных в Windows. Хороший инструмент, позволяющий создавать отчеты. Команду можно использовать для исследования номеров версий установленных драйверов. На основе ее результатов можно определить, нужно ли обновлять тот или иной драйвер.
Самые полезные параметры этой команды — /s, /si и /fo. Первый параметр позволяет указать имя или IP-адрес удаленного узла, драйверы которого нужно исследовать. Второй параметр показывает цифровую подпись драйверов. Третий позволяет указать формат отчета: /fo TABLE — таблица (по умолчанию), /fo LIST — список, /fo CSV — CSV-формат, который удобно будет просматривать в Excel или подобной программе. Пример:
/fo CSV > drivers.csv
5. Команда cipher
Данная команда используется для работы с зашифрованными папками и файлами на NTFS-томах. Обычно с такими папками и файлами работают через графический интерфейс (что значительно удобнее), но у команды cipher есть очень полезный параметр /W:
cipher /W:путь
Параметр /W (например, /W:C:) удаляет данные на неиспользуемых частях тома и эффективно стирает данные на жестком диске после их удаления. Другими словами, эту команду можно использовать для физического удаления данных с диска — так, чтобы их нельзя было восстановить специальными утилитами. Нужно отметить, что применяется она только к обычным жестким дискам, но не к SSD-дискам. Считается, что с SSD файлы удаляются немедленно и без возможности восстановления. Хотя заинтересованным читателям я бы порекомендовал прочитать вот это.
6. Команда powercfg
Команда powercfg управляет параметрами электропитания. У нее очень много параметров, и если действительно нужно управлять электропитанием из сети, то лучше воспользоваться параметром /? для получения справки обо всех. Но большинству пользователей будут интересны параметры /a и /batteryreport. Первая команда выводит список драйверов, которые не позволяют системе «уснуть», а вторая выводит отчет об использовании батареи.
7. Команда shutdown
В UNIX для завершения работы системы (выключения, перезагрузки) используется команда shutdown. Мало кто знает, но одноименная команда есть и в Windows. Теперь фанаты UNIX могут завершать работу системы командой shutdown -s и перезагружать систему командой shutdown -r. Также доступен параметр -t, позволяющий задать таймер завершения работы (в секундах), например, в следующем примере система будет перезагружена через одну минуту: shutdown -r -t 60. Параметр -f обеспечивает принудительное завершение работы с закрытием всех запущенных приложений.
Ссылки
- О команде powercfg:www.hanselman.com/blog/PowerCfgTheHiddenEnergyAndBatteryToolForWindowsYoureNotUsing.aspx
- Справочное руководство по командной строке от Microsoft: technet.microsoft.com/en-us/library/bb490890.aspx
- Об управлении службами и команде sc: www.osp.ru/win2000/2011/06/13009943/
- Подробно о команде sc config: www.osp.ru/win2000/2007/04/4257187/
8. Команда sc
Команда sc взаимодействует с контроллером служб и установленными службами. В UNIX/Linux можно управлять службами (сервисами, демонами) из командной строки (в принципе, не знаю такой вещи, которую нельзя было бы выполнить из командной строки в UNIX). С помощью утилиты sc можно управлять службами из командной строки в Windows. Можно запускать и останавливать службы, изменять тип запуска службы и так далее.
Так, для запуска и останова службы используются соответственно параметры start и stop:
sc start <имя службы>
sc stop <имя службы>
Назревает вопрос: как узнать имя службы? Очень просто — для этого нужно использовать параметр query, в результате будет отображен детальный перечень всех служб:
sc query
Так как список очень большой, для его просмотра можно перенаправить вывод команды или в команду more (для пагинации), или в буфер обмена (команда clip), или в файл:
sc query | more
sc query | clip
sc query > services.txt
Дополнительную информацию об этой команде можно найти на врезке.
9. Команда recover
Используется для восстановления информации с испорченного или дефектного диска. Представим, что у нас есть каталог d:\reports\2014 и в нем был файл jan.txt, но на диске появились bad-секторы, и прочитать файл jan.txt не получается. Для восстановления (частичного) информации из этого файла можно использовать команду
recover c:\reports\2014\jan.txt
Команда recover читает файл сектор за сектором и восстанавливает информацию, которую еще можно прочитать. Понятно, что программа не сможет взять информацию из поврежденных секторов, поэтому восстановление информации будет частичным. Данные из поврежденных секторов будут утеряны. Также нужно помнить, что использование масок файлов вроде * и ? в этой команде не допускается, нужно указать явное имя файла.
10. Команда tree
Кому-то команда tree покажется бесполезной, однако она пригодится разработчикам программного обеспечения и техническим писателям. Команда tree отображает структуру каталогов по указанному пути. Например, у нас есть проект c:\my_prj\project1. Нужно построить структуру подкаталогов этого каталога. Для этого можно использовать следующие команды:
tree c:\my_prj\project1 | clip
tree c:\my_prj\project1 > project1.txt
Первая команда копирует структуру каталогов в буфер обмена, а вторая помещает в файл с именем project1.txt.
PowerShell
В 2012 году «Хакер» публиковал статью «Апгрейды для cmd.exe и альтернативы», в которой обсуждались возможные замены для cmd.exe. Напомню, что в статье рассматривались console, clink, cygwin, mintty, PowerCmd. Все они позволяют сделать работу в командной строке эффективнее. В Microsoft тоже понимали, что стандартный cmd.exe уже безнадежно устарел, и вместо того, чтобы подвергнуть его апгрейду, в Microsoft работали над PowerShell. PowerShell — расширяемое средство автоматизации от Microsoft, состоящее из оболочки с интерфейсом командной строки и сопутствующего языка сценариев. Будущее командной строки Windows за PowerShell, поэтому, если ты еще не знаком с ним, самое время начать знакомство. О PowerShell мы писали в февральском номере.