Настройка командной строки Windows
Интерпретатор команд, он же командный процессор, он же приложение «Командная строка», можно запустить несколькими способами:
— Через главное меню – ”Все приложения” — “Стандартные” – ”Командная строка”
— Через меню Пуск — Выполнить — cmd.exe
— Комбинация клавиш Win+R — cmd.exe
— Комбинация клавиш Win+X — Командная строка (только в Windows 8 и более поздних)
— Через поиск приложения cmd.exe
Стандартное окно командной строки – это окно с символами белого цвета на черном фоне. Параметры шрифтов, цвет и фон символов, использование буфера обмена и прочие свойства командной строки можно изменить в соответствии со своими предпочтениями.
Часть настроек можно выполнить, изменив свойства самого приложения, свойства ярлыка, с помощью которого запускается приложение командной строки, а часть — редактированием реестра Windows.
Настройка командной строки через изменение свойств приложения (ярлыка для запуска приложения).
1. Откройте окно Командная строка.
2. Щелкните указателем мышки левый верхний угол окна и в открывшемся меню выберите пункт Свойства.
3. Выберите вкладку Общие.
4. В области Запоминание команд можно изменить размер буфера под историю команд. Если есть необходимость, выберите или введите новое значение (до 999 в поле Размер буфера, а затем выберите или введите число (до 5) в поле Количество буферов. Увеличение размера буфера под запоминание команд может пригодиться в тех случаях, когда в течении сессии приходится вводить большое количество текста. Клавиши
5. В области Правка установите флажки Выделение мышью и Быстрая вставка. Флажок Выделение мышью
В диалоговом окне Изменение свойств (если оно присутствует в данной версии Windows) выберите вариант Сохранить свойства для других окон с тем же именем.
Особенности командной строки в Wimdows 10 и Windows Server 2016
Настройки командной строки в Windows 10 (Windows Server 2016) немного отличаются от настроек предыдущих версий Windows.
При включенном флажке ”Использовать прежнюю версию консоли (Требуется перезапуск)”, настройки ничем не отличаются от тех, что применялись в среде предыдущих версий Windows. В новой же версии консоли, появляются дополнительные настройки — становятся доступными для включения флажки параметров, отсутствовавших в более ранних версия системы. Новые возможности в значительной степени облегчают обработку текста в окне консоли и позволяют использовать большинство стандартных сочетаний клавиш для копирования, вставки и редактирования. Так, например, при включенном режиме ”Разрешить сочетания клавиш с CONTROL”, можно использовать стандартные сочетания клавиш, принятые в среде ОС:
— CTRL+C (CTRL+Insert) – скопировать выделенный текст.
— CTRL+V (Shift+Insert) – вставить выделенный текст.
Часть настроек ориентирована на расширение возможностей при использовании выделения текста, обработки строк, истории команд, динамического изменения внешнего вида и управления перемещением курсора, прозрачностью окна и т.п. с поддержкой множества горячих клавиш. Подробнее о новых возможностях командной строки в Windows 10 рассказывается в статье Работа в командной строке ( CMD ) Windows.
Настройка командной строки изменением параметров в реестре Windows.
Изменение внешнего вида и некоторых свойств командной строки можно выполнить не только с помощью определенных ключей при запуске
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Command Processor — для всех пользователей.
HKEY_CURRENT_USER\ Software\ Microsoft\ Command Processor\ — для текущего пользователя.
HKEY_CURRENT_USER\ Console\ — дополнительно для текущего пользователя.
Параметры командной строки при запуске CMD.EXE имеют наивысший приоритет, а пользовательские настройки ( раздел реестра HKEY_CURRENT_USER ) имеют приоритет над настройками для компьютера ( раздел реестра HKEY_LOCAL_MACHINE ).
Одной из наиболее полезных настроек является изменение обработки вводимой командной строки таким образом, чтобы можно было выполнять подстановку имен файлов и каталогов при нажатии специальной клавиши, как это реализовано в командной оболочке Unix-подобных операционных систем. Так например, для перехода в каталог home не обязательно набирать команду :
cd /home
а достаточно ввести cd /h и нажать специальную клавишу Tab — недостающая часть имени ( ome ) будет подставлена в качестве параметра команды смены каталога.
Аналогичным образом можно настроить и командную строку Windows. Запустите редактор реестра и перейдите в раздел
HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Command Processor
В современных ОС семейства Windows режим автодополнения путей при нажатии клавиши Tab уже настроен, но при необходимости, его можно перенастроить или восстановить.
Код символа Tab равен шестнадцатеричному числу
— перейти в корень диска C: CD C:\
— для перехода, например в каталог с длинным именем Program Files наберите
CD Pro и нажмите Tab. В строке ввода должна появиться команда :
CD «Program Files»
Как видим, кроме того, что выполняется подстановка недостающей части имени каталога, в тех случаях, когда в нем имеется символ пробела, добавляются еще и двойные кавычки.
Если имеется несколько совпадающих начальных частей имен файлов или каталогов, при каждом нажатии клавиши Tab будет подставляться следующее по алфавитному порядку имя. Для возврата на предыдущее — используется комбинация Shift+Tab
Правка реестра позволяет также изменить внешний вид окна командной строки, например, цвет фона и цвет символов, как это выполняется с помощью команды COLOR или ключа /T при запуске CMD.EXE. Расцветку определяют параметры
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Command Processor\ DefaultColor — для всех пользователей.
HKEY_CURRENT_USER\ Software\ Microsoft\ Command Processor\ DefaultColor — для текущего пользователя.
Значения параметров из раздела пользователя имеют больший приоритет, по сравнению с параметрами раздела HKEY_LOCAL_MACHINE
Если параметр DefaultColor имеет значение по умолчанию ( REG_DWORD 0x00000000 ), то цветовой набор определяется значением параметра
HKEY_CURRENT_USER\ Console\ ScreenColors.
На практике, изменение цвета фона окна и цвета символов лучше всего задавать значением параметра типа REG_DWORD:
HKEY_CURRENT_USER\ Console\ ScreenColors.
Младший байт этого параметра определяет цвета фона и текста, каждый из которых задается шестнадцатеричной цифрой. Старший бит определяет яркость, а последующие биты — цвет :
Бит 0 — яркость
Бит 1 — красный ( R )
Бит 2 — зеленый ( G )
Бит 3 — синий ( B )
Значения битов задают комбинацию цветов, так например, для желтого цвета используется установка битов 1 и 2 ( Красный и Зеленый). Старшие 4 бита ( тетрада ) определяют цвет фона, младшие — цвет текста. Каждая цифра тетрады может иметь следующие значения:
0 = Черный
1 = Синий
2 = Зеленый
3 = Голубой
4 = Красный
5 = Лиловый
6 = Желтый
7 = Белый
8 = Серый
9 = Светло-синий
A = Светло-зеленый
B = Светло-голубой
C = Светло-красный
D = Светло-лиловый
E = Светло-желтый
F = Ярко-белый
Примеры значений параметра ScreenColors:
F0 — «консоль наоборот” — черные символы на белом фоне.
20 — зеленый фон, черные символы.
A0 — яркий зеленый фон, черные символы.
9F — яркий синий фон, яркие белые символы.
Использование истории вводимых команд.При работе в командной строке удобно использовать, полностью или частично, ранее введенные команды. Для вызова ранее введенных команд используются клавиши со стрелками Стрелка Вверх — на одну команду назад и Стрелка Вниз — на одну команду вперед. Кроме того, можно использовать функциональные клавиши:
F1 — посимвольный вызов последней введенной команды. Каждое нажатие F1 приводит к последовательной подстановке в поле ввода одного символа из предыдущей команды.
F2 — копирование до символа. После нажатия на F2 на экране отображается запрос символа, до которого будет скопирована предыдущая команда. Например, если предыдущая команда была ping yandex.ru, и в качестве символа задана точка, то в строку ввода команды будет занесено ping yandex, если задан пробел, то — ping.
F3 — вызов предыдущей команды.
F4 — удалить до символа. Выполняется удаление текста от текущей позиции курсора до заданного символа.
F5 и F8 — вызов буфера ранее введенных команд. Вывод по нажатию клавиши F5 прекращается когда будет отображена первая введенная команда текущей сессии.
F7 — отображение ранее введенных команд в отдельном окне в виде списка. Для выполнения нужной команды нужно выбрать ее, используя клавиши со стрелками, и нажать ENTER
F9 — выполнить команду, номер которой запрашивается. Номер команды в списке истории можно получить при использовании F7.
Особенности настройки параметров консоли для Windows 10
Как уже упоминалось выше, в операционных системах Windows 10 /Windows Server 2016 появились дополнительные настройки, расширяющие возможности командной строки и облегчающие ее использование. Новые возможности включены по умолчанию, однако в любой момент могут быть отключены через интерфейс свойств или при изменении параметров в реестре. Настройки новых возможностей хранятся ключах раздела HKEY_CURRENT_USER\Console и имеют тип данных DWORD. Настройки, установленные в свойствах ярлыка командной строки перекрывают настройки, задаваемые параметрами реестра.
Перечень новых ключей реестра и их назначение:
ForceV2 — 1 включает новые возможности, 0 – отключает. Этот параметр не запоминается в свойствах ярлыка и его значение хранится только в реестре.
LineSelection — 1 — разрешает выделение строк, 0 — отключает.
FilterOnPaste — 1 — включает фильтр содержимого буфера обмена при вставке. Позволяет отсечь служебные символы (табуляция, наклонные кавычки и т.п.), которые содержатся в буфере обмена и не могут применяться в командной строке.
LineWrap — 1 — разрешает перенос строк текста при изменении размера окна консоли.
CtrlKeyShortcutsDisabled — 0 разрешается использование комбинаций клавиш с CONTROL (CTRL+A, CTRL+C, CTRL+V и т. п.)
ExtendedEdit Keys — 1 — разрешает использование набора дополнительных клавиш для редактирования.
TrimLeadingZeros — 1 — при выделении числа двойным кликом, лидирующие нули отбрасываются (000123 – 123)
WindowsAlpha — установка прозрачности окна командной строки от 30% до 100%. Используется значение ключа реестра в виде шестнадцатеричного значения от 0x4C до 0xFF, или десятичного от 76 до 255
WordDelimiters — определяет символ-разделитель, который используется при выделении части текста комбинацией клавиш CTRL+SHIFT+ARROW. По умолчанию используется пробел. Ключ реестра имеет тип данных REG_SZ и может содержать несколько символов-разделителей. Этот параметр не запоминается в свойствах ярлыка и может храниться только в реестре.
Дополнительно :
Windows Terminal – альтернатива командной строке в Windows 10.
Список команд командной строки — список команд CMD Windows с описанием и примерами.
Командные файлы Windows — примеры создания командных файлов для решения типовых задач администрирования системы.
Работа с сетью в командной строке Windows — примеры использования командной строки для сетевой диагностики и управления сетью.
Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой «Поделиться»
В начало страницы | На главную страницу сайта
CD и CHDIR — сменить каталог .
Команды CD и CHDIR используется для просмотра или изменения пути текущего каталога .Формат командной строки:
CHDIR [/D] [диск:][путь]
CD [/D] [диск:][путь]
CHDIR [..]
CD [..]
Команда CD диск: отображает имя текущего каталога указанного диска.
Команда CD без параметров отображает имена текущих диска и каталога.
Параметр /D используется для одновременной смены текущих диска и каталога.
Изменение команды CHDIR при включении расширенной обработки команд:
Имя текущего каталога в строке вызова преобразуется к тому же регистру символов, что и для существующих имен на диске. Так, команда CD C:\TEMP или cd c:\temp на самом деле сделает текущим каталог C:\Temp, если он существует на диске.
Команда CHDIR перестает рассматривать пробелы как разделители, что позволяет перейти в подкаталог, имя которого содержит пробелы, не заключая все имя каталога в кавычки. Например:
chdir \windows\users\username\programs\start menu
приводит к тому же результату, что и:
cd «\windows\users\username\programs\start menu»
При отключении расширенной обработки команд нужно использовать путь, заключенный в двойные кавычки.
Примеры использования:
CD /D X:\data — сделать текущим каталог data на диске X: . Результат использование ключа /D зависит от версии команды. Для того чтобы сменить текущий каталог, на каталог, размещенный на другом диске, надежнее использовать последовательность команд смены текущего диска и смены каталога:
X: — сделать текущим диском диск X:
CD X:\DATA — сделать текущим каталогом X:\DATA
CD %WINDIR% — сделать текущим каталогом каталог, каталог, задаваемый значением
переменной среды %WINDIR% (каталог Windows) . При использовании переменных, желательно их имена заключать в двойные кавычки, поскольку принимаемые значения могут содержать пробелы:
CD «%TEMP%»
CD C:\ — перейти в корневой каталог диска C: . Если в параметре команды задан путь без указания диска, по предполагается, что переход выполняется в каталог, расположенный относительно текущего на данный момент времени :
CD system32 — перейти в каталог system32, являющийся подкаталогом текущего каталога
CD .. — если вместо имени каталога заданы две точки, то будет выполнен переход в родительский каталог ( на один уровень вверх).
Весь список команд CMD Windows«Ошибка синтаксиса параметра командной строки».
Поддержка Windows Vista Пакет обновления 1 (SP1) заканчивается 12 июля 2011 г. Чтобы продолжать получать обновления для системы безопасности Windows, убедитесь, что вы работаете в Windows Vista с Пакет обновления 2 (SP2). Дополнительные сведения можно найти на этой веб-странице Майкрософт: прекращение поддержки некоторых версий Windows.
Проблемы
Рассмотрим следующий сценарий.
-
Вы работаете на windows XP Пакет обновления 3 (SP3), Windows Vista Пакет обновления 1 (SP1) или компьютере с Windows 7
-
Используйте имя пользователя, которое содержит двухбайтовую по набору символов (DBCS).
При попытке установить приложение, использующее распространяемый пакет Microsoft Visual C++ 2005, вы получаете следующее сообщение об ошибке:
Ошибка синтаксиса параметра командной строки. Введите команду/? Для справки.
Причина
Эта проблема возникает из-за того, что средство Self-Extractor Win32 Cabinet не может обрабатывать символы DBCS в имени пользователя.
Решение
Чтобы мы могли решить эту проблему для вас, перейдите в раздел»Устранитьэту проблему для меня». Чтобы устранить проблему самостоятельно, перейдите к разделу «Самостоятельное решение проблемы».
Помощь в решении проблемы
Чтобы устранить эту проблему автоматически, нажмите кнопку или ссылку «Исправить». Затем в диалоговом окне «Загрузка файла» нажмите кнопку «Выполнить» и следуйте шагам мастера fix it.
Примечания
-
Решение Fix it не будет работать, если ваша учетная запись не является учетной записью администратора.
-
Возможно, мастер доступен только на английском языке. При этом автоматическое исправление подходит для любых языковых версий Windows.
-
Решения по устранению проблем можно скачать на любой компьютер, а затем сохранить их на устройство флэш-памяти или компакт-диск и запустить на нужном компьютере.
Затем перейдите в раздел»Проблема была исправлена?»
Самостоятельное решение проблемы
Чтобы устранить эту неполадку, выполните следующие действия:
-
Нажмите кнопку «», щелкните правой кнопкоймыши «Компьютер» и выберите «Свойства».
-
В области параметров компьютера, домена и группы щелкните «Изменить параметры».
Если вам будет предложено ввести пароль администратора или подтвердить его, введите пароль или нажмите кнопку «Продолжить».
-
Щелкните «Изменить параметры» и выберите вкладку «Дополнительные параметры». Нажмите кнопку «Переменные среды»
-
В области переменных пользователя щелкните TEMP и нажмите кнопку «Изменить».
-
В поле «Значение переменной» введите C:\Temp и нажмите кнопку «ОК» два раза.
-
Нажмите кнопку Применить, а затем — ОК.
-
Выполните действия 4-6 для переменной среды TMP.
-
Утвердим, что папка C:\Temp существует, если она не существует.
-
Перезагрузите компьютер.
-
Попытаться установить приложение еще раз.
Проблема устранена?
-
Проверьте, устранена ли проблема. Если устранена, пропустите дальнейшие инструкции, приведенные в этом разделе. Если нет, обратитесь в службу технической поддержки.
-
Мы ценим ваши замечания. Чтобы оставить отзыв или сообщить о проблемах с этим решением, оставьте комментарий в блоге«Fix it for me»или отправьте нам сообщение электронной почты.
Секреты работы с командной строкой в WINDOWS. Компьютерные советы (сборник статей)
Секреты работы с командной строкой в WINDOWS
Автор: Игорь Логинов
Источник: CHIP
Интерфейс командной строки
Итак, консоль командной строки присутствует во всех версиях операционных систем Windows. Ранние версии ОС поддерживали режим MS-DOS напрямую, что позволяло выполнять простые команды прямо из консоли. Представители же семейства NT, такие как Windows 2000 или Windows Server 2003, работают уже совсем по другим принципам, однако MS-DOS в них тоже поддерживается, но через виртуальную машину (NT Virtual DOS Machine, NTVDM), что позволяет контролировать и администрировать системные ресурсы прямо из консоли командного режима. В качестве интерпретатора командного режима выступает программа cmd.exe, запуск которой осуществляется через меню «Start —> Run». Кроме того, для запуска консоли можно воспользоваться элементом меню «Start —> All Programs —> Accessories —> Command Prompt».
Запустив консоль командного режима, пользователь может управлять ресурсами как локальной системы, так и ресурсами удаленной машины. Существуют команды, выполняющие мониторинг системы и выявляющие критические места в настройках сервера. Отличием работы из командной строки является полное отсутствие больших и громоздких графических утилит. Программы командной строки позволяют более тонкую настройку в виде параметров-ключей, указанных справа от самой команды.
С помощью специальных файлов-скриптов (наборов команд, выполняющихся последовательно или в запрограммированном порядке) администратор может свести к минимуму выполнение рутинных ежедневных операций. Существующие современные утилиты могут запускать такие скрипты с заданной периодичностью без присутствия администратора системы.
Сам администратор может выполнять как одиночные команды, так и список команд, используя специальные управляющие символы (&, |). Например:
Команда 1 & Команда 2 — сначала будет выполнена Команда 1 и только затем Команда 2;
Команда 1 && Команда 2 — только после успешного выполнения Команды 1 будет запущена Команда 2.
Существует возможность перенаправить выводимый программой поток напрямую в текстовый файл для дальнейшей обработки. Для этого необходимо использовать управляющий символ «>» и имя текстового файла. Пример вывода содержания текущего каталога в текстовый файл Report.txt при помощи команды dir приведен ниже:
dir> Report.txt
Администратор может запустить несколько копий консоли, вызвав в командной строке программу cmd.exe. Использование вложенной консоли позволяет работать с переменными окружения операционной системы без каких-либо последствий для всей системы в целом, так как после закрытия вложенной консоли изменения переменных окружения не сохраняются. Для контроля над этим процессом используются команды setlocal, endlocal и set.
В современных операционных системах существует множество команд и утилит. Запомнить такое количество различных программ, а тем более их параметров очень сложно, поэтому одним из самых важных параметров для каждой программы является сочетание символов /?. Выполнив команду с таким параметром, пользователь получит исчерпывающее сообщение о применении утилиты и синтаксисе ее параметров.
Обратите внимание, что на рисунке в левом верхнем углу следующей страницы использован сложный синтаксис. Так, сразу после команды shutdown /? после специального разделителя «|» идет команда more, что позволяет выводить информацию на экран не целиком, а определенными порциями, удобными для дальнейшего чтения.
Для того чтобы закрыть консоль командной строки, необходимо выполнить команду exit.
Кто здесь главный?
По своим возможностям консольные программы делятся на:
— команды управления операционной системой — это такие команды, как shutdown или taskkill;
— сетевые команды — net и ipconfig;
— команды для мониторинга системы — tasklist и systeminfo;
— команды для поддержки файловой системы — dir, mkdir, copy;
— команды для обслуживания жестких дисков — defrag и diskpart;
— команды для поддержки службы каталогов (Active Directories) — addrep и dsadd;
— вспомогательные команды, в этот раздел входят различные утилиты для создания сценариев, настройки принтеров, работы с переменными окружения и т. д.
Рассмотрим типичных представителей каждой группы и позволим себе дать некоторые рекомендациями по использованию включенных в них команд.
Команды мониторинга и диагностики
Для выявления неполадок в аппаратной части и проблем с программным обеспечением предназначены команды мониторинга, такие как systeminfo и tasklist. Эти утилиты впервые появились только в операционной среде Windows Server 2003, поэтому администраторы еще не в полной мере оценили функциональные возможности этих команд. Так, например, теперь не надо залезать в закладку «Свойства» иконки «Мой компьютер» — команда systeminfo напечатает на экране консоли основную информацию обо всех компонентах системы с полной расшифровкой. Параметр /s выведет информацию о любом удаленном компьютере. Например, для выяснения конфигурации компьютера TESTSERVER необходимо выполнить следующую команду:
systeminfo /s TESTSERVER
А утилита tasklist покажет процессы, запущенные на вашем компьютере.
Утилита tasklist позволяет опрашивать системы, соединенные в сеть. Параметр /v дает возможность получать подробные листинги с полезной информацией, в том числе и об именах пользователей, а параметр /т показывает процессы, загрузившие конкретный dll-файл. Другая полезная утилита — openfiles — позволяет получить информацию обо всех открытых файлах локальной и удаленной операционной системы. В прежних версиях операционных систем Windows приходилось использовать команду oh.exe, в современных версиях достаточно выполнить в командной строке консоли команду, которая устанавливает режим мониторинга для всех открытых файлов системы:
openfiles /local on
Пользователь получит информацию обо всех открытых файлах системы, используя команду с простым синтаксисом:
openfiles
Команда openfiles с параметрами /query /v показывает, какие пользователи запустили процессы, открывшие файлы. С помощью других параметров-ключей можно задать различный режим вывода информации.
Команды управления операционной системой
Windows Server 2003 предоставляет администраторам новые команды, которые помогают не только диагностировать систему, но и управлять ею. К таким командам можно отнести утилиту shutdown. В качестве параметров-ключей этой утилиты можно использовать следующие:
/s — полное штатное отключение системы;
/r — перезагрузка;
/р — выключение питания;
/f — завершение работы активных приложений;
/д — переход в режим пониженного энергопотребления;
/I — завершение сеанса без отключения компьютера.
В виде средства, регистрирующего все штатные выключения компьютера, выступает обработчик событий штатных выключений (Shutdown Event Tracker), который собирает и диагностирует все отключения, выполненные администратором. Также предусмотрена возможность выключать систему с указанием причины, для этого необходимо использовать ключ /d.
Команда taskkill, аналог команды kill в операционных системах семейства *nix, позволяет «убить» зависшее приложение. Совместно с командой tasklist эти утилиты представляют собой мощное средство для оперативного вмешательства в ход выполнения приложений, представляющих потенциальную угрозу для производительности сервера. Из параметров этой команды необходимо отметить ключ/pid, который позволяет завершать процесс по его уникальному идентификатору, и ключ /im — для завершения приложения с указанным именем. Следующий пример позволяет завершить процессы с идентификаторами 1000 и 1240:
taskkill /pid 1000 /pid 1240
Команды для обслуживания жестких дисков
Оптимизацию жесткого диска позволяет выполнить команда defrag. Утилита умеет дефрагментировать диски с файловой системой FAT, FAT32 и NTFS. Defrag одинаково хорошо работает как с динамическим типом диска, так и с базовым. Синтаксис вызова этой команды следующий:
defrag диск [-a j [-f] [-v] [-?]
Параметр — а предусматривает только анализ информации на диске, параметр — f — оптимизацию информации, в том числе и при отсутствии необходимого дискового пространства для создания временных файлов, а параметр — v — вывод отчета о ходе оптимизации. Не забудьте, что для успешной дефрагментации диск должен содержать как минимум 15 % свободного места.
Команда fdisk уже не поддерживается ядром операционной системы Windows Server 2003. На смену ей пришла команда diskpart, также предназначенная для обслуживания жестких дисков. Разбить диск на разделы, создать логические диски, удалить их — вот лишь некоторые задачи, решаемые этой утилитой. В основном команда diskpart ориентирована на работу со специальными файлами-сценариями, в которых описаны процедуры обслуживания жестких дисков. Вот как выглядит вызов этой команды для файла-сценария Scriptl.txt:
diskpart /s Scriptl.txt
Каждая строка такого файла является инструкцией для какой-нибудь операции. Так, например, дает команду для создания нового раздела с определенным размером строка
create partition logical size=2048
Сетевые команды
Среди сетевых команд хотелось бы выделить две утилиты. Первая — это команда ipconfig, вторая — netstat. Системные администраторы используют эти команды не только для мониторинга сети, но и для защиты от опасных программ, пытающих установить контроль над системой.
При помощи утилиты ipconfig пользователь может узнать сетевой адрес своего компьютера, а вызвав эту команду с параметром /all, получить полную информацию о конфигурации сети на локальном компьютере. Параметр /renew позволяет изменить сетевые настройки без перезагрузки всей системы в целом.
Если вы заметили, что с вашим компьютером происходит что-то неладное, то в этом случае поможет команда netstat, которая не только укажет на открытые сетевые порты, по которым злоумышленники могли подсоединиться к вашей системе, но и идентифицирует процессы, запущенные на сервере без вашего ведома. Так, ключ /о выводит информацию об идентификаторе процесса (PID), использующего то или иное сетевое соединение. Существует возможность посмотреть, какие компьютеры в сети взаимодействуют с вашей локальной операционной системой.
Команды для поддержки службы каталогов
Вся сеть состоит из компонентов и представляет собой сложную иерархическую структуру, построенную в виде дерева. Объектами такой системы являются сайты, подсети, серверы, компьютеры, группы, пользователи, контакты, разделяемые сетевые устройства.
Для мониторинга такой сложной структуры в операционной системе предусмотрена команда dsquery, которая предназначена для расширенного поиска компонентов службы каталогов. Также этой командой можно пользоваться для вывода информации о свойствах выбранных компонентов (ключ — attr). Параметры — scope, — subtree, — onelevel, — base определяют уровень вложенности поиска, а ключ — filter позволяет задействовать фильтр поиска.
Команда dsmod может помочь в случае необходимости модификации одной или нескольких учетных записей для выбранного компонента службы каталогов. Например, можно удалить пользователя из группы или назначить ему новый пароль. Пример изменения учетной записи для пользователя TestUser приведен ниже:
dsmod user
«CN=TestUser,CN=Users,DC=bigtex,DC=net » — pwd Uf@tfmgerelt — mustchpwd yes
Команда dsmove перемещает объект в пределах текущего домена. При помощи ключей — newname и — newparent можно задавать новое имя объекта и менять его местоположение.
Команды для поддержки файловой системы
Описание некоторых часто употребляющихся команд для работы с файлами и директориями представлено в таблице. Команду deltree, которая выполняла каскадное удаление папок и файлов в них, заменяет теперь rmdir с ключом /s.
Команда — Описание
copy — копирует файлы
del — удаляет один или более файлов
dir — выводит список файлов и поддиректорий в выбранном каталоге
find — ищет заданную подстроку в файлах
move — перемещает файлы
mkdir — создает каталоги
rmdir — переименовывает и удаляет каталоги
tree — выводит иерархическое дерево всех файлов и поддиректорий в выбранном каталоге
Маленькие секреты большой системы
Изменение приглашения для командной строки
Найдите в реестре ключ: [HKEY_LOCAL_MACHINESYSTEM CurrentControlSet ControfSession ManagerEnvironment] Создайте в этом ключе строковый параметр «PROMPT» с типом (REG_EXPAND_SZ) и присвойте одно из следующих значений:
$В — вертикальная черта «I»; $D — текущая дата; $G — знак больше «>»; $1_ — знак меньше «<»; $N — текущий диск;
$Р — текущий диск и путь; $Q — знак равно «=»; $Т — текущее время; $V — версия Windows; $$ — знак доллара «$».
После перезагрузки вы увидите приглашение в определенном вами виде.
Автонабор команд
Для включения возможности автонабора команд по нажатию клавиши «Tab», найдите в реестре ключ: [HKEY_CURRENT_USER Software Microsoft Command Processor]
Затем установите значение параметра CompletionChar равным 9, что соответствует идентификатору клавиши «Tab», закройте реестр и перезагрузите компьютер. В окне консоли, набирая часть имени команды, вы можете теперь нажать клавишу «Tab», и Windows автоматически подставит необходимую команду.
Изменение цвета консоли
Найдите в реестре ключ: [HKEY_CURRENT_USERSoftwareMicrosof tCommand Processor]
Измените параметр DefaultCoior. Значение — F0 определит вывод черного текста на белом фоне, а значение IE удивит вас желто-синей расцветкой консоли.
Быстрый запуск консоли командной строки из контекстного меню
Найдите в реестре ключ: [HKEY_CLASSES_ROOT Directory Shell]
Добавьте в него подразделы «CommandPrompt — > Command». Параметру Default ключа Command присвойте значение «cmd.exe /k cd «%1″».
Параметру Default ключа Command Prompt присвойте значение «Open Command Prompt».
Щелкнув правой кнопкой мыши на любой папке в Проводнике, можно выбрать команду Open Command Prompt, которая запустит консоль с командной строкой в нужной директории.
Заключение
Ну, вот и все. Мы рассказали об основах работы с консолью. Дальше предоставляем вам возможность самим исследовать функциональность и многообразие консольных команд. Только не забывайте заветный ключ /? а остальное придет со временем и опытом.
Тяжкое наследие прошлого. Проблемы командной строки Windows / Хабр
Предисловие от автора, Рича Тёрнера из Microsoft. Это статья о командной строке: от её появления и эволюции до планов капитального ремонта Windows Console и командной строки в будущих версиях Windows. Будь вы опытным профессионалом или новичком в IT, надеемся, что вы найдёте статью интересной.Давным-давно в далёкой-далёкой серверной…
С первых дней развития информатики людям нужен был эффективный способ передавать компьютеру команды и данные и видеть результат выполнения этих команд/вычислений.
Одним из первых по-настоящему эффективных человеко-машинных интерфейсов стал Tele-Typewriter или «телетайп». Это электромеханическая машина с клавиатурой для ввода данных и каким-нибудь устройством вывода — сначала использовался принтер, позже экран.
Вводимые оператором символы локально буферизуются и отправляются с телетайпа на соседний компьютер или мейнфрейм в виде серии сигналов по электрическому кабелю (например, RS-232) со скоростью 10 символов в секунду (110 бод, бит в секунду, bps):
Телетайп Model 33 ASR
Примечание: Дэвид Гессвейн ведёт отличный сайт по PDP-8, где можно найти больше информации об ASR33 (и соответствующей технологии PDP-8), в том числе фотографии, видео и др.
Программа на компьютере получает введённые символы, решает, что с ними делать, и, возможно, асинхронно отправляет ответ на телетайп. Телетайп может напечатать/показать оператору полученные символы.
Затем технология улучшилась, скорость передачи выросла до 19200 bps, а шумные и дорогие принтеры заменили ЭЛТ-дисплеями (широко распространённый тип дисплеев в 80-е и 90-е годы), как на популярном терминале DEC VT100:
Терминал DEC VT100
Хотя технология улучшилась, но эта модель — терминал отправляет символы программе на компьютере, а он выдаёт текст для пользователя — осталась и сегодня как фундаментальная модель взаимодействия всех командных строк и консолей на всех платформах!
Архитектура терминала и командной строки
Модель по-своему элегантна. Одна из причин — в сохранении простоты и цельности каждого компонента: клавиатура выдаёт символы которые буферизуются как электрические сигналы. Устройство вывода просто выдаёт на дисплей (бумагу/экран) символы, полученные с компьютера.
На каждом этапе в системе передаётся только поток символов, так что это относительно простой процесс для внедрения различной инфраструктуры связи. Например, для добавления модемов, чтобы передавать потоки входных и выходных символов на большие расстояния по телефонным линиям.
Кодировка текста
Важно помнить, что терминалы и компьютеры обмениваются данными через потоки символов. При нажатии клавиши на клавиатуре терминала на подключенный компьютер отправляется значение, представляющее введённый символ. Нажмите клавишу ’A’ — и отправляется значение 65 (0x41). Нажмите ’Z’ — и отправляется 90 (0x5a).
7-битная кодировка ASCII
Список символов и их значений определён в стандарте American Standard Code for Information Interchange (ASCII), он же стандарт ISO/IEC 646 / ECMA-6 — «7-битный кодированный набор символов», который определяет:
- 128 значений, представляющих печатные латинские символы A−Z (65-90), a−z (97−122), 0−9 (48−57)
- Много общих знаков препинания
- Несколько непечатаемых управляющих кодов (0−31 и 127):
Стандартные символы 7-битной ASCII
Когда 7 бит недостаточно: кодовые страницы
Однако 7 бит не обеспечивают достаточно места для кодирования многих диакритических знаков, знаков препинания и символов, используемых в других языках и регионах. Так что с добавлением дополнительного бита можно расширить таблицу символов ASCII дополнительными наборами «кодовых страниц» для символов 128−255 (и возможного переопределения нескольких непечатаемых символов ASCII).
Например, IBM ввела кодовую страницу 437 с несколькими графическими символами вроде ╫ (215) и ╣(185) и математическими, включая π (227) и ± (241), а также переопределила печатные символы для обычно непечатаемых символов 1−31:
Кодовая страница 437
Кодовая страница Latin-1 определяет множество символов, используемых языками на основе латиницы:
Кодовая страница Latin-1
Во многих окружениях командной строки и оболочках можно изменять текущую кодовую страницу, чтобы терминал отображал различные символы (в зависимости от доступных шрифтов), особенно для символов со значением 128−255. Но неправильно указанная кодовая страница приведёт к отображению кракозябр. И да, «кракозябры» — это настоящий термин! Кто бы мог подумать? 😉
Когда 8 бит недостаточно: Юникод
Кодовые страницы временно решили проблему, но у них много недостатков, например, они не позволяют отображать текст одновременно из нескольких кодовых страниц/языков. Таким образом, пришлось ввести новую кодировку, которая точно отображает каждый символ и алфавит для всех языков, известных человечеству, оставляя ещё много свободного места! Представляем Юникод.
Юникод — это международный стандарт (ISO/IEC 10646), который в данный момент определяет 137 439 символов из 146 современных и исторических письменностей, а также многие символы и глифы, в том числе многочисленные смайлики, которые широко используются практически в каждом приложении, платформе и устройстве. Юникод регулярно обновляется дополнительными системами письменности, новыми/исправленными смайликами, символами и т. д.
Юникод также определяет «непечатаемые» символы форматирования, которые позволяют, например, соединить символы и/или повлиять на предыдущие или последующие символы! Это особенно полезно в письменностях вроде арабской, где лигатура конкретного символа определяется окружающими. Эмодзи могут использовать соединительный символ нулевой ширины (zero width joiner), чтобы объединить несколько символов в один визуальный глиф. Например, эмодзи кота-ниндзя Microsoft формируются путём соединения кота с другими эмодзи:
Эмодзи кота-ниндзя Microsoft
Когда байтов слишком много: UTF-8!
Для уникального и систематического представления всех символов требуется большое пространство, до нескольких байт на каждый символ.
Поэтому для экономии было разработано несколько новых кодировок Юникода. Среди самых популярных — UTF-32 (4 байта на символ), UTF-16/UCS-2 (2 байта) и UTF-8 (1−4 байта на символ).
Во многом благодаря обратной совместимости с ASCII и экономии места UTF-8 стала самой популярной кодировкой Юникода в интернете. Она демонстрирует взрывной рост с 2008 года, когда обогнала по популярности ASCII и другие популярные кодировки:
Рост популярности кодировки UTF-8 (источник: Википедия)
Таким образом, поначалу терминалы поддерживали 7-битный, а затем 8-битный текст ANSI, но большинство современных терминалов поддерживают текст Unicode/UTF-8.
Итак, что такое командная строка и что такое оболочка?
«Командная строка» или CLI (интерфейс/интерпретатор командной строки) описывает самый фундаментальный механизм, через который человек управляет компьютером: CLI принимает введённый оператором ввод и выполняет требуемые команды.
Например, echo Hello
отправляет текст «Hello» на устройство вывода (например, на экран). dir
(Cmd) или ls
(PowerShell/*NIX) перечисляет содержимое текущего каталога и т.д.
Раньше доступные команды были относительно простыми, но операторы требовали всё более изощрённых команд и возможности писать скрипты для автоматизации повторяющихся или сложных задач. Таким образом, процессоры командной строки стали сложнее и превратились в то, что теперь называют «оболочкой» командной строки (shell).
В Unix/Linux оригинальная оболочка Unix (sh) породила множество оболочек, включая Korn shell (ksh), C shell (csh) и Bourne Shell (sh). В свою очередь, на их основе создан Bourne Again Shell (bash) и т.д.
В мире Microsoft:
- Оригинальный MS-DOS (command.com) был относительно простой оболочкой командной строки
- «Командная строка» Windows NT (cmd.exe) разработана с учётом совместимым с устаревшими скриптами command.com, плюс добавлены несколько команд для новой, более мощной операционной системы
- В 2006 году Microsoft выпустила Windows PowerShell
- PowerShell — это современная объектная оболочка командной строки, которая позаимствовала функции других оболочек и включает в себя возможности .NET CLR и фреймворка .NET
- С помощью PowerShell можно писать скрипты и автоматизировать практически все аспекты одного или нескольких компьютеров под Windows, сети, систем хранения данных, БД и т.д.
- В 2017 году Microsoft открыла исходный код PowerShell, разрешив запуск на macOS, разных вариантах Linux и BSD
- В 2016 году Microsoft представила подсистему Windows для Linux (WSL)
- Позволяет запускать обычные немодифицированные двоичные файлы Linux непосредственно в Windows 10
- Пользователи устанавливают один или несколько обычных дистрибутивов Linux из магазина Windows
- Можно запустить один или несколько экземпляров дистрибутива параллельно с другими, а также параллельно с существующими приложениями и средствами Windows
- WSL позволяет запускать бок о бок все инструменты Windows и инструменты командной строки Linux без использования ресурсоёмких виртуальных машин
Мы ещё вернёмся к оболочкам командной строки Windows, но пока запомним, что существуют разные оболочки, они принимают команды, введённые пользователем/оператором, и выполняют широкий спектр задач по мере необходимости.
Современная командная строка
Современные компьютеры значительно мощнее «тупых терминалов» прошлого и обычно работают под управлением десктопной ОС (например, Windows, Linux, macOS) с графическим пользовательским интерфейсом (GUI). Такое окружение GUI позволяет нескольким приложениям работать одновременно в отдельных окнах на экране и/или невидимо в фоновом режиме.
Cmd, PowerShell и Ubuntu Linux под WSL работают на независимых инстансах консоли
На смену громоздким, неповоротливым электромеханическим телетайпам пришли современные консольные/терминальные приложения, которые работают в окошке на экране компьютера, но по-прежнему выполняют такие же необходимые функции, как аппаратные терминалы из прошлого.
Аналогично и приложения командной строки, к которым подключены терминалы, работают как и раньше: получают входные символы, решают, что делать с этими символами, (необязательно) выполняют работу — и могут выдать текст для отображения пользователю. Только вместо связи по медленным каналам TTY терминальные приложения и приложения командной строки на одной машине общаются по очень скоростным каналам Pseudo Teletype (PTY) в памяти.
Современная командная строка
Современные терминалы в основном взаимодействуют с приложениями командной строки, запущенными локально. Но конечно, они также могут взаимодействовать с приложениями командной строки, запущенными на других машинах в той же сети или даже с удалёнными машинами на другой стороне света через интернет. Это «удалённое» взаимодействие с командной строкой — мощный инструмент, который популярен на каждой платформе, особенно на *NIX.
Скромное начало: MS-DOS
На заре компьютерной индустрии управление большинством компьютеров осуществлялось путём ввода команд в командной строке. За рыночную долю боролись компьютеры под Unix, CP/M, DR-DOS и других. В итоге система MS-DOS стала стандартом де-факто для IBM PC и всех совместимых компьютеров:
MS-DOS 6.0
Как и большинство основных операционных систем того времени, интерпретатор командной строки или «оболочка» в MS-DOS предоставляла простой, но относительно эффективный набор команд и синтаксис командных скриптов для написания batch-файлов (.bat).
Предприятия крупного и малого бизнеса очень быстро взяли на вооружение MS-DOS и в совокупности создали многие миллионы скриптов, некоторые из которых всё ещё используются сегодня! Batch-скрипты применяются для автоматизации настройки ПК, установки/изменения параметров безопасности, обновления программного обеспечения, сборки кода и т.д.
Вы редко или никогда не увидите реальную работу такого скрипта, потому что многие из них выполняются в фоновом режиме, например, при авторизации на компьютере. Но сотни миллиардов скриптов командной строки и команд выполняются каждый день только на Windows!
Командная строка представляет мощный инструмент в руках человека, который имеет терпение и упорство, чтобы научиться выжимать максимум из доступных команд и инструментов. Но большинству обычных пользователей сложно эффективно управлять компьютером из командной строки. Большинству не нравилось, что нужно изучать и запоминать много словно мистических аббревиатур, чтобы компьютер произвёл хоть какое-нибудь полезное действие.
Требуется более удобный и ориентированный на производительность пользовательский интерфейс.
Графический интерфейс идёт в мейнстрим
Добро пожаловать в графический интерфейс пользователя (GUI), изобретённый в Xerox Alto.
Вскоре после изобретения появилось много конкурирующих GUI на компьютерах Lisa и Macintosh от Apple, Commodore Amiga (Workbench), Atari ST (DRI GEM), Acorn Archimedes (Arthur/RISC OS), Sun Workstation, X11/X Windows и многих других, в том числе Microsoft Windows.
Windows 1.0 вышла в 1985 году и являлась по сути приложением MS-DOS, которое предоставляло простое окружение GUI с плиточным окном, позволяя пользователям запускать несколько приложений бок о бок:
Windows 1.01 на MS-DOS
Windows 2.x, 3.x, 95 и 98 работали на базе MS-DOS. Более поздние версии Windows начали заменять некоторые функции MS-DOS альтернативами Windows (например, операции с файловой системой), но все они полагались на фундамент MS-DOS.
Примечание: Windows ME (Millennium Edition) стала интересным гибридом. В ней наконец-то заменили поддержку MS-DOS и поддержку реального режима из предыдущих версий Windows несколькими новыми функциями (особенно технологии Gaming & Media). Некоторые функции позаимствованы из Windows 2000 (например, новый стек TCP/IP), но настроены для работы на домашних ПК, которым трудно запустить полноценную NT.
Но Microsoft понимала, что не может бесконечно растягивать архитектуру и возможности MS-DOS и Windows. Требовалась новая операционная система с прицелом на будущее.
Microsoft — лидер рынка Unix! Да, серьёзно!
Разрабатывая MS-DOS, Microsoft также занималась поставкой Xenix — фирменного порта Unix версии 7 — для различных процессорных и машинных архитектур, включая Z8000, 8086/80286 и 68000.
К 1984 году Xenix от Microsoft стал самым популярным вариантом Unix в мире!
Тем временем распад Bell Labs — родины Unix — привёл к появлению AT&T, которая начала продавать Unix System V производителям компьютеров и конечным пользователям.
Microsoft понимала, что отсутствие собственной ОС ставит под угрозу её способности для развития. Поэтому было принято решение отказаться от Xenix: в 1987 году Microsoft передала Xenix своему партнёру Santa Cruz Operation (SCO), с которым работала над несколькими проектами по портированию и улучшению Xenix на различных платформах.
Microsoft + IBM == OS/2… ненадолго
В 1985 году Microsoft начала работать с IBM над новой операционной системой OS/2. Она изначально планировалась как «более функциональная DOS» для некоторых современных 32-битных CPU и с учётом других технологий, которые быстро порождались в IBM и у других OEM.
Но история OS/2 оказалась слишком бурной. В 1990 году Microsoft и IBM прекратили сотрудничество. Это было обусловлено рядом факторов, в том числе значительными культурными различиями между разработчиками IBM и Microsoft, проблемами планирования, а также взрывным успехом и ростом внедрения Windows 3.1. IBM продолжала разработку и поддержку OS/2 до конца 2006 года.
К 1988 году Microsoft убедилась, что будущий успех требует более масштабного, смелого и амбициозного подхода. Такой подход потребует новой, современной операционной системы, которая будет поддерживать амбициозные цели компании.
Большая ставка Microsoft: Windows NT
В 1988 году Microsoft пригласила Дэйва Катлера, создателя популярной и уважаемой операционной системы VAX/VMS в компании DEC. Его задача — создать новую, современную, независимую от платформы операционную систему, которой Microsoft будет владеть, контролировать и на которой во многом построит своё будущее.
Этой новой операционной системой стала Windows NT: фундамент, на котором построены Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8 и Windows 10, а также во все версии Windows Server, Windows Phone 7+, Xbox и HoloLens!
Windows NT изначально спроектирована как кроссплатформенная система. Сначала она поддерживала Intel i860, затем MIPS R3000, Intel 80386+, DEC Alpha и PowerPC. С тех пор семейство ОС Windows NT портировали для поддержки процессорных архитектур IA64 Itanium, x64 и ARM/ARM64, среди прочих.
Windows NT предоставляет интерфейс командной строки через терминальное приложение Windows Console и командную строку Command Prompt (cmd.exe). Cmd разработан на максимальную совместимость с пакетными скриптами MS-DOS, чтобы помочь бизнесу перейти на новую платформу.
Мощь PowerShell
Cmd сохраняется в Windows по сей день (и, вероятно, сохранится в течение многих десятилетий). Поскольку его основная задача — обеспечить максимальную обратную совместимость, Cmd редко улучшается. Даже «исправление ошибок» зачастую затруднено, если эти «баги» существовали в MS-DOS или более ранних версиях Windows!
В начале 2000-х оболочка Cmd уже устарела: Microsoft и её клиенты срочно нуждались в более мощной и гибкой командной строке. Из этой потребности появился PowerShell (который возник из «Манифеста Монады» Джеффри Сновера).
PowerShell — это объектно-ориентированная оболочка, в отличие от оболочек на основе файлов/потоков, которые принято использовать в мире *NIX: вместо потоков текста PowerShell обрабатывает потоки объектов. Он предоставляет авторам скриптов возможность прямого доступа и манипуляций с объектами и их свойствами вместо написания множества скриптов для анализа и обработки текста (как sed/grep/awk/lex/др.).
Созданные на базе .NET Framework и среды Common Language Runtime (CLR), язык и синтаксис PowerShell разработаны для объединения богатства экосистемы .NET со многими распространёнными и полезными функциями из множества других языков сценариев оболочки с акцентом на то, чтобы скрипты обеспечивали максимальную консистентность и исключительную… ну… мощь. 🙂
Чтобы узнать больше о PowerShell, рекомендую прочитать книгу «PowerShell в действии» (Manning Press), написанную Брюсом Пайеттом — разработчиком синтаксиса и языка PowerShell. В частности, первые несколько глав содержат подробное обоснование структуры языка.
PowerShell был принят для использования многими технологиями на платформе Microsoft, включая Windows, Exchange Server, SQL Server, Azure и многими другими. Он предоставляет очень согласованные команды для администрирования и управления практически всеми аспектами Windows и/или среды.
PowerShell Core — это PowerShell с открытым исходным кодом, доступное для Windows и различных версий Linux, BSD и macOS.
POSIX для NT, Interix и служб UNIX
При проектировании NT компания команда Катлера специально разработала ядро NT и операционную систему для поддержки нескольких подсистем-интерфейсов между кодом пользовательского режима и основным ядром.
Когда в 1993 году вышла первая Windows NT версии 3.1, она поддерживала несколько подсистем: МЅ-DOS, Windows, OS/2 и POSIX v1.2. Эти подсистемы позволяли на одной машине и базовой ОС запускать приложения, нацеленные на несколько платформ операционной системы без виртуализации или эмуляции — это внушительная разработка даже по меркам сегодняшнего дня!
Оригинальная реализация POSIX в Windows NT была приемлемой, но для неё требовались значительных улучшения. Поэтому Microsoft приобрела Softway Systems и её POSIX-совместимую подсистему Interix для NT. Изначально Interix поставлялась как отдельное дополнение, а затем её объединили с несколькими полезными утилитами и инструментами и выпустили в виде Services For Unix (SFU) в Windows Server 2003 R2 и Windows Vista. Однако поддержку SFU пришлось прекратить после Windows 8, в основном, из-за недостаточной популярности.
А потом произошла забавная вещь…
Windows 10 — новая эра для командной строки Windows!
В начале разработки Windows 10 компания открыла страницу UserVoice с вопросом, какие функции люди хотят реализовать в различных областях ОС. Сообщество разработчиков особенно громко требовало от Microsoft две вещи:
- Внести значительные улучшения в консоль Windows
- Предоставить пользователям возможность запускать средства Linux в Windows
На основе этих отзывов Microsoft сформировала две новые группы:
- Группа разработки Windows Console и командной строки, которой поручили провести капитальный ремонт инфраструктуры Windows Console и командной строки
- Группа разработки Windows Subsystem for Linux (WSL)
Остальное, как говорится, история!
Подсистема Windows для Linux (WSL)
Основанные на GNU/Linux «дистрибутивы» (сочетания ядра Linux и коллекций инструментов пользовательского режима) становятся всё популярнее, особенно на серверах и в облаке. Хотя в Windows имелась POSIX-совместимая среда выполнения, но SFU не мог запускать многие инструменты и двоичные файлы Linux из-за дополнительных системных вызовов и различий в поведении по сравнению с традиционной Unix/POSIX.
После анализа обратной связи от разработчиков и технически подкованных пользователей Windows, а также в связи с растущим спросом внутри самой Microsoft, компания изучила несколько вариантов, и в конечном итоге решила позволить на Windows запуск оригинальных немодифицированных бинарных файлов Linux!
В середине 2014 года Microsoft сформировала группу разработки того, что станет подсистемой Windows для Linux (WSL). WSL впервые анонсировали в сборке Build 2016, а вскоре предварительная версия вышла на канале Windows 10 Insider.
С тех пор WSL обновляется в большинстве инсайдерских сборок и в каждом крупном выпуске ОС с момента Anniversary Update осенью 2016 года. В каждой новой версии увеличивается функциональность, совместимость и стабильность WSL: в первой версии это был интересный эксперимент, который мог запускать лишь несколько распространённых программ Linux. При активной помощи сообщества (всем спасибо!) разработчики быстро дорабатывали WSL, так что вскоре она получила много новых возможностей и научилась запускать всё более сложные бинарники Linux.
Сегодня (середина 2018 года) WSL запускает большинство двоичных файлов Linux, программы, компиляторы, компоновщики, отладчикии т.д. Многие разработчики, IT-специалисты, инженеры DevOps и многие другие, кому необходимо запускать или создавать инструменты, приложения, службы Linux и т. д., получили резкое повышение производительности и возможность запускать свои любимые инструменты Linux вместе с любимыми инструментами для Windows на одном компьютере, без загрузки двух операционных систем.
Команда WSL продолжает улучшать WSL в части выполнения задач Linux, повышения производительности и интеграции с Windows.
Перезагрузка и капитальный ремонт Windows Console
В конце 2014 года проект по созданию подсистемы Windows для Linux (WSL) шёл полным ходом, и на фоне взрыва оживлённого интереса пользователей к командной строке стало очевидно, что консоль Windows явно нуждается в некотором апгрейде.
В частности, консоли не хватало многих функций, привычных для современных *NIX-совместимых систем, таких как возможность парсинга и вывода последовательностей ANSI/VT, широко используемых в мире *NIX для вывода насыщенного и подсвеченного текста и текстовых UI.
В чём тогда смысл разработки WSL, если пользователь не сможет корректно использовать инструменты Linux?
Ниже пример того, что отображает консоль Windows 7 и Windows 10: обратите внимание, что Windows 7 (слева) не в состоянии правильно отобразить VT, сгенерированный линуксовыми программами tmux
, htop
, Midnight Commander
и cowsay
, но они корректно выглядят в Windows 10 (справа):
Сравнение консоли Windows 7 и Windows 10
Так, в 2014 году была сформирована небольшая «группа Windows Console». На неё возложили задачу распутать, понять и улучшить кодовую базу Windows Console… которой к этому времени было около 28 лет — больше, чем программистам, которые работают над этим проектом.
Как подтвердит любой разработчик, которому когда-либо приходилось брать старый, грязный, плохо поддерживаемый код, улучшение такого кода представляет собой сложную задачу. Ещё сложнее не нарушить существующее поведение. Для обновления самой часто запускаемой программы в Windows, не нарушив работу миллионов клиентских скриптов, инструментов, скриптов авторизации, систем сборки, производственных систем, систем анализа и прочих, требуется немало «внимания и терпения». 😉
Для разработчиков проблема усугубилась, когда они поняли всю строгость требований к консоли со стороны клиентов. Например, если производительность консоли изменялась на 1−2% от сборки к сборке, то срабатывали сигналы тревоги в группе Windows Build, что приводило… гм… к «быстрой и прямой обратной связи», то есть требованию немедленного исправления.
Итак, когда мы будем обсуждать улучшения консоли и новые функции, помните, что есть несколько незыблемых принципов, которым должно соответствовать каждое изменение, в том числе:
- НЕ допускать новых уязвимостей
- НЕ ломать инструменты, скрипты, команды и т. д. у существующих клиентов (внутренних или внешних)
- НЕ снижать производительность и не увеличивать потребление памяти/IO (без чётких и хорошо доведённых причин)
За последние три года команда Windows Console провела следующую работу:
- Капитальный ремонт внутренних компонентов
- Значительное упрощение и уменьшение кодовой базы
- Замена нескольких внутренних коллекций, списков, стеков и т.д. контейнерами STL
- Разбиение на модули и изоляция логических и функциональных единиц кода, что позволяет улучшать функции (а иногда и заменять их), не «ломая мир»
- Объединение нескольких ранее отдельных и несовместимых консольных движков в один
- МНОЖЕСТВО улучшений безопасности и надёжности
- Возможность парсинга и вывода последовательностей ANSI/VT, что позволяет консоли точно отображать насыщенный текстовый вывод из *NIX и других современных инструментов командной строки и приложений
- Поддержка 24-битного цвета вместо прежних 16 цветов!
- Улучшенная безбарьерность: Narrator и другие приложения безбарьерной среды работают в окне консоли
- Добавлена/улучшена поддержка мыши и сенсорного ввода
И работа продолжается! В настоящее время мы завершаем реализацию нескольких захватывающих новых функций.
К чему был этот урок истории?
Я надеюсь, вы поняли, что командная строка остаётся ключевым компонентом стратегии, платформы и экосистемы Microsoft.
Хотя для конечных пользователей Microsoft продвигала графический интерфейс, сама компания и её технические клиенты/пользователи/партнёры в значительной степени полагались на командную строку для выполнения множества технических задач.
На самом деле Microsoft буквально не смогла бы создать ни Windows, ни любой другой из своих программных продуктов без быстрой, эффективной, стабильной и безопасной консоли!
На протяжении эпох MS-DOS, Unix, OS/2 и Windows командная строка оставалась, пожалуй, самым важным инструментом в наборе инструментов каждого технического пользователя. Даже многие пользователи, которые никогда не вводили команды в окно, в реальности используют консоль каждый день! Даже сборка кода в Visual Studio (VS) происходит в скрытом окне консоли. При использовании Exchange Server или средств администрирования SQL Server многие из этих команд выполняются с помощью PowerShell в скрытой консоли.
Во время начала разработки Windows NT в 1989 году не было ни графического интерфейса, ни рабочего стола. Была только полноэкранная командная строка, которая визуально напоминала MS-DOS. Когда появилась реализация графического интерфейса Windows, потребовалось создать приложение консоли для GUI — и таким образом родилась Windows Console! Это одно из первых приложений Windows NT с графическим интерфейсом и, безусловно, одно из старейших приложений Windows, которое по-прежнему используется повсеместно!
Кодовой базе консоли Windows в настоящее время (июль 2018 года) почти 30 лет… по сути, больше, чем разработчикам, которые сейчас над ней работают!
Что делает консоль?
Как мы узнали ранее, у терминала относительно простой алгоритм работы:
- Обработать пользовательский ввод
- Принять входной сигнал от приборов, включая клавиатуру, мышь, тачскрин и др.
- Перевести ввод в соответствующие символы и/или последовательности ANSI/VT
- Отправить символы в подключенное приложение/инструмент/оболочку
- Обработать вывод приложения:
- Принять вывод текста из покдлюченного приложения/инструмента командной строки
- Обновлять экран по мере необходимости, основываясь на полученных данных от приложения (например, полученный текст, перемещения курсора, изменение цвета текста и т.д.)
- Обработать системные взаимодействия:
- Запуск по запросу
- Управление ресурсами
- Изменение размера/развернуть окно/свернуть окно и т.д.
- Завершение по запросу или после закрытия канала связи
Но консоль Windows работает немного иначе:
Механика Windows Console
Консоль Windows — обычный исполняемый файл Win32. Изначально он написан на C, но большая часть кода сейчас переносится на C++ по мере того, как разработчики модернизируют и разбивают на модули кодовую базу.
Если вам интересны такие вещи: многие спрашивали, Windows написана на C или C++. Ответ такой: несмотря на объектно-ориентированный дизайн NT, как и большинство ОС, Windows почти полностью написана на C! Почему? Потому что C++ увеличивает потребление памяти и привносит накладные расходы на выполнение кода. Даже сегодня скрытые затраты на выполнение кода C++ могут удивить, но ещё в 1990-х, когда память стоила около $60/МБ (да… $60 за МЕГАБАЙТ!), скрытые затраты на vtables и прочее были значительными. Кроме того, затраты на косвенное обращение к виртуальным методам и разыменование объектов в то время могли привести к очень значительным потерям производительности и масштабированию кода C++. В наше время нужно соблюдать осторожность, но издержки производительности C++ на современных компьютерах вызывают намного меньше беспокойства. Часто это приемлемый компромисс, учитывая безопасность, читабельность и лучшую сопровождаемость кода… именно поэтому мы постепенно переписываем код консоли на современном C++!
Так что внутри консоли Windows?
До Windows 7 инстансы консоли Windows размещались в критически важной подсистеме Client Server Runtime Subsystem (CSRSS)! Но в Windows 7 из соображений безопасности и надёжности консоль переместили из CSRSS в следующие бинарники:
- conhost.exe — пользовательский режим консоли Windows UX и механика командной строки
- condrv.sys — драйвер ядра Windows, обеспечивающий коммуникации между conhost и одной или несколькими оболочками командной строки/инструментами/приложениями
Высокоуровневая схема текущей внутренней архитектуры консоли выглядит следующим образом:
Ядро консоли состоит из следующих компонентов (снизу вверх):
- ConDrv.sys — драйвер режима ядра
- Обеспечивает высокопроизводительный канал связи между консолью и любыми подключенными приложениями командной строки
- Переносит туда и обратно сообщения IO Control (IOCTL) между приложениями командной строки и консолью, к которой они «прикреплены»
- Консольные сообщения IOCTL содержат:
- Данные, представляющие запросы на выполнение вызовов API для экземпляра консоли
- Текст, отправляемый из консоли в приложение командной строки
- ConHost.exe — приложение Win32 GUI:
- ConHost Core — внутренности и механика
- Сервер API: преобразует сообщения IOCTL, полученные из приложений командной строки, в вызовы API и отправляет текстовые записи из консоли в приложение командной строки
- API: реализует консольный API Win32 и логику для всех операций, которые консоль может попросить выполнить
- Буфер ввода: хранит записи событий клавиатуры и мыши, генерируемые пользовательским вводом
- VT Parser: если включен, анализирует последовательности VT, извлекает их из текста и генерирует эквивалентные вызовы API
- Буфер вывода: хранит текст, отображаемый на дисплее консоли. По сути, это 2D-массив структур CHAR_INFO, которые содержат символьные данные и атрибуты каждой ячейки (подробнее о буфере ниже)
- Другое: в схему не включены инфраструктура сохранения/извлечения значений из реестра и/или файлов ярлыков и т.д.
- Console UX App Services — слой UX и UI
- Управляет макетом, размером, положением и прочими характеристиками окна консоли на экране
- Отображает и обрабатывает параметры UI и т.д.
- Прокачивает очередь сообщений Windows, обрабатывает их и преобразует введённые пользователем данные в записи событий клавиш и мыши, сохраняя их во входном буфере
- ConHost Core — внутренности и механика
Windows Console API
Как видно из схемы архитектуры, в отличие от терминалов NIX, консоль отправляет/получает вызовы API и/или данные в виде сообщений IO Control (IOCTL), а не текста! Даже встроенные в текст последовательности ANSI/VT из приложений командной строки (в основном Linux), извлекаются, анализируются и преобразуются в вызовы API!
Это различие раскрывает ключевое фундаментальное философское различие между *NIX и Windows: в *NIX «всё является файлом», а в Windows «всё является объектом»!
У обоих подходов есть преимущества и недостатки, которые мы перечислим, но не будем подробно обсуждать. Просто помните, что это ключевое различие в философии объясняет многие фундаментальные различия Windows и *NIX!
В *NIX всё является файлом
Когда Unix впервые появился в конце 1960-х и начале 1970-х годов, одним из основных принципов стало то, что (где это возможно) всё следует абстрагировать как файловый поток. Одна из ключевых целей заключалась в упрощении кода для доступа к устройствам и периферии: если все устройства представляются в ОС как файлы, то коду легче получить к ним доступ.
Эта философия работает на самом глубоком уровне: можно даже перемещаться и опрашивать большую часть конфигурации ОС и компьютера под *NIX, перемещаясь по псевдо/виртуальным файловым системам, которые показывают то, что кажется «файлами» и папками, но на самом деле представляет собой конфигурацию машины и оборудование.
Например, в Linux можно исследовать свойства процессоров, изучая содержимое псевдофайла /proc/cpuinfo
:
Но простота и согласованность этой модели могут дорого стоить: извлечение/анализ конкретной информации в псевдофайлах часто требует специальных инструментов, таких как sed, awk, perl, python и т.д. Эти инструменты используются для написания команд и скриптов парсинга текстового содержимого, поиска определённых шаблонов, полей и значений. Некоторые из скриптов могут быть довольно сложными, часто трудными в обслуживании и хрупкими — если структура, шаблон и/или формат текста изменятся, многие скрипты, вероятно, потребуется обновить.
В Windows всё является объектом
Когда проектировалась Windows NT, «объекты» рассматривались как будущее в разработке программного обеспечения: «объектно-ориентированные» языки программирования появлялись быстрее, чем тараканы: Simula и Smalltalk уже зарекомендовали себя, а C++ набирал популярность. За ними последовали другие объектно-ориентированные языки, в том числе Python, Eiffel, Objective-C, ObjectPascal/Delphi, Java, C# и многие другие.
Результат предсказуем. Созданная в те пьянящие, объектно-ориентированные дни (около 1989 года) Windows NT разработана с философией, что «всё является объектом». На самом деле одной из самых важных частей ядра NT является Менеджер объектов!
Windows NT предоставляет богатый набор Win32 API для получения и/или управления объектами ОС. Разработчики используют Win32 API для сбора и представления информации, похожей на данные из псевдофайлов и инструментов *NIX, только через объекты и структуры. А поскольку парсеры, компиляторы и анализаторы понимают структуру объектов, то многие ошибки кодирования часто проявляются на ранней стадии, что помогает проверить синтаксическую и логическую правильность намерений программиста. Со временем это может привести к уменьшению сбоев, волатильности и лучшему порядку.
Итак, возвращаясь к основной дискуссии о консоли Windows: команда NT решила построить «консоль», отличную от традиционного терминала *NIX в нескольких ключевых областях:
- Console API: вместо того, чтобы полагаться на способность программистов генерировать корректные ANSI/VT-последовательности, которые трудно проверить, консоль Windows управляется через богатые консольные API
- Общие службы: чтобы избежать дублирования служб во всех оболочках командной строки (например, журнал команд, псевдонимы команд), консоль сама предоставляет некоторые из них через Console API
Проблемы с консолью Windows
Хотя консольные API стали очень популярны в инструментах и сервисах командной строки, но ориентированная на API модель имеет определённые недостатки, перечисленные ниже.
Только для Windows
Многие средства командной строки и приложения широко используют Console API.
В чём проблема? Они работают только под Windows.
Таким образом, в сочетании с другими различиями (например, в жизненном цикле и т.д.), приложения командной строки Windows не всегда легко переносятся под *NIX и наоборот.
Из-за этого в экосистеме Windows распространены свои собственные, часто похожие, но обычно отличающиеся средства командной строки и приложения. Это означает, что при использовании Windows пользователям приходится изучать один набор приложений и инструментов командной строки, оболочек, языков сценариев и т.д., а при использовании *NIX — другой набор.
У этой проблемы нет простого решения: консоль Windows и командную строку нельзя просто выбросить и заменить на bash и iTerm2 — существуют сотни миллионов приложений и сценариев, которые зависят от консоли Windows и оболочек Cmd/PowerShell.
Сторонние инструменты, такие как Cygwin, отлично переносят многие основные инструменты GNU и библиотеки совместимости в Windows, но не могут запускать непортированные, неизменённые бинарники Linux. Это очень важно, так как многие пакеты и модули Ruby, Python, Node зависят от бинарных файлов Linux и/или зависят от поведения *NIX.
Эти причины привели к тому, что Microsoft расширила совместимость с Windows, разрешив запуск аутентичных двоичных файлов и средств Linux в подсистеме Windows для Linux (WSL). С помощью WSL пользователи теперь могут загружать и устанавливать один или несколько дистрибутивов Linux бок о бок на одной машине, а также использовать apt/zypper/npm/gem/др. для установки и запуска подавляющего большинства инструментов командной строки Linux вместе с их любимыми приложениями и инструментами Windows.
Тем не менее, у нативной консоли остаётся функциональность, которая отсутствует в сторонних терминалах: в частности, Windows Console предоставляет сервисы command-history и command-alias, чтобы каждой оболочке (в частности) не пришлось повторно реализовать одинаковую функциональность.
Сложности с удалённой работой
Как говорилось в начале статьи, терминалы изначально были отделены от компьютера, к которому подключены. Сегодня эта конструкция сохраняется: большинство современных терминалов и оболочек/приложений/проч. командной строки изолированы в рамках отдельных процессов и/или машин.
На *NIX-платформах парадигма изолированности терминалов и приложений командной строки с простым обменом символами привела к тому, что там легко получить доступ и работать с удалённого компьютера/устройства. Если терминал и приложение командной строки обмениваются потоками символов по какой-то упорядоченной инфруструктуре (TTY, PTY и т.д.), то очень легко работать удалённо.
Но в Windows многие приложения командной строки зависят от вызова API консоли и предполагают выполнение на той же машине, что и сама консоль. Это затрудняет удалённое управление. Как приложению командной строки удалённо обратиться к API на консоли локального компьютера? Хуже того, как удалённое приложение обратится к Console API, если доступ к нему осуществляется через терминал на Mac или Linux?!
Извините, что дразню вас, но более подробно мы вернёмся к этой теме в следующей статье.
Запуск консоли… или нет!
Когда пользователь *NIX хочет запустить инструмент командной строки, то сначала запускает терминал. Тот затем запускает оболочку по умолчанию или может быть настроен для запуска определённого приложения/инструмента. Терминал и приложение командной строки взаимодействуют потоками символов через Pseudo TTY (PTY).
Однако в Windows всё работает иначе: пользователи Windows никогда не запускают консоль (conhost.exe) — они сразу запускают оболочки командной строки и приложения, например, Cmd.exe, PowerShell.exe, wsl.exe и прочее. Windows подключает запущенное приложение к текущей консоли (если оно запущено из командной строки) или к вновь созданному экземпляру консоли.
#SAYWHATNOW?
Да, в Windows пользователи запускают приложение командной строки, а не саму консоль.
Если пользователь запускает приложение командной строки из существующей оболочки командной строки, то Windows обычно присоединяет вновь запущенный .exe к текущей консоли. В противном случае Windows запустит новый экземпляр консоли, к которому будет присоединено только что запущенное приложение.
Немного занудства: многие говорят, что «приложения командной строки запускаются в консоли». Это не так и приводит к большой путанице относительно того, как в реальности работает консоль и приложения командной строки! Приложения командной строки и их консоли запускаются в независимых процессах Win32. Помогите исправить это заблуждение. Всегда говорите, что «средства командной строки/приложения выполняются с подключением к консоли». Спасибо!
Звучит неплохо, правда? На самом деле… нет. Есть некоторые проблемы:
- Консоль и приложение командной строки взаимодействуют сообщениями IOCTL через драйвер, а не через текстовые потоки
- Windows указывает, что ConHost.exe — это консольное приложение, подключенное к приложениям командной строки
- Windows создаёт «каналы» (pipes), по которым взаимодействуют консоль и приложение командной строки
Это существенные ограничения. Что если вы хотите создать альтернативное консольное приложение для Windows? Как отправить события с клавиатуры/мыши и прочие действия пользователя в приложение командной строки, если нельзя получить доступ к каналам, соединяющим консоль с этим приложением?
Увы, ситуация тут не очень хорошая. Есть отличные сторонние консоли и серверные приложения для Windows (например, ConEmu/Cmder, Console2/ConsoleZ, Hyper, Visual Studio Code, OpenSSH и т. д.), но им приходится прибегать к изощрённым трюкам, чтобы работать как обычная консоль!
Например, сторонним консолям приходится запускать приложение командной строки вне экрана, скажем, с координатами (-32000, -32000). Затем отправлять нажатия клавиш на внеэкранную консоль, скрапить с экрана текстовое содержимое внеэкранной консоли — и повторно выводить его в собственном пользовательском интерфейсе!
Какое-то безумие, верно?! Тот факт, что эти приложения вообще работают — лишь доказательство изобретательности и целеустремленности их создателей.
Очевидно, что мы стремимся исправить эту ситуацию. Об этом тоже расскажем в следующих статьях.
Windows Console и VT
Как описано выше, консоль Windows предоставляет богатый API. С помощью Console API приложения и инструменты командной строки пишут текст, изменяют его цвет, перемещают курсор и т.д. И благодаря этим API не нужно было поддерживать последовательности ANSI/VT, которые обеспечивают похожую функциональность на других платформах.
Фактически, до Windows 10 в консоли Windows была реализована только минимальная поддержка последовательностей ANSI/VT:
Всё изменилось в 2014 году, когда Microsoft сформировала новую группу разработки Windows Console. Одним из её главных приоритетов стало реализовать всестороннюю поддержку последовательностей ANSI/VT для визуализации выходных данных приложений *NIX, работающих в подсистеме Windows для Linux (WSL) и на удалённых машинах *NIX.
Группа быстро внедрила в консоль Windows 10 всестороннюю поддержку последовательностей ANSI/VT, что позволило пользователям использовать и наслаждаться огромным набором инструментов и приложений командной строки Windows и Linux.
Команда продолжает улучшать поддержку VT с каждым выпуском ОС и будет благодарна за любые проблемы, которые вы упомянете в нашем трекере на GitHub. 😉
Обработка Юникода
К сожалению, консоль Windows и её API появились до изобретения Юникода!
Консоль Windows хранит текст (который впоследствии выводится на экран) как символы кодировки UCS-2 с двумя байтами на символ. Эта кодировка поддерживает кодирование первых 65536 позиций символов, что известно как плоскость 0 или основная многоязычная плоскость (Basic Multilingual Plane, BMP).
Приложения командной строки выводят текст в консоли с помощью Console API. Обрабатывающие текст интерфейсы, бывают двух видов: функции с суффиксом А
обрабатывают однобайтовые/символьные строки, функции с суффиксом W
обрабатывают двухбайтовые (wchar)/символьные строки.
Например, функция WriteConsoleOutputCharacter компилируется в WriteConsoleOutputCharacterA()
для проектов ASCII или в WriteConsoleOutputCharacterW()
для проектов на Юникоде. Код может напрямую вызвать функцию с суффиксом ...A
или ...W
, если необходима обработка конкретного типа.
Примечание: каждый W API поддерживает UCS-2, потому что это всё, что существовало в момент разделения на A/W, и мы думали, что так будет хорошо. Но многие W API уже обновились для поддержки ещё и UTF-16 на том же канале.Не все W API понимают UTF-16, но все они знают хотя бы UCS-2.
Кроме того, консоль не поддерживает некоторые новые функции Юникода, включая соединительные символы нулевой ширины (zero width joiner), которые используются для объединения отдельных символов в арабских и индийских письменностях, а также для объединения символов эмодзи в один визуальный глиф.
Как же ввести эмодзи кота-ниндзя или сложные многобайтовые китайские/арабские символы в консоль? К сожалению, никак!
Мало того что консольный API не поддерживает символы Юникод больше двух байт на глиф (эмодзи NinjaCat требует 8 байт!), но внутренний буфер UCS-2 консоли тоже не может хранить дополнительные байты данных. Что ещё хуже, текущий GDI-рендерер консоли не сможет отрисовать глиф, даже если тот поместится в буфер!
Эх… Таковы радости legacy-кода.
Здесь опять я намерен прервать рассказ — вернёмся к этой теме в следующей статье. Оставайтесь с нами!
Итак, на чём мы остановились?
Дорогой читатель, если вы прочитали всё вышенаписанное, спасибо вам, и примите поздравления — теперь вы знаете больше о консоли Windows, чем большинство ваших друзей, и, вероятно, даже больше, чем вы сами хотели узнать! Какая удача!
Мы многое рассмотрели в этой статье:
- Основные строительные блоки консоли Windows:
- Condrv.sys — коммуникационный драйвер
- ConHost.ехе — UX консоли и механика:
- Сервер API — сериализует вызовы API и текстовые данные с помощью сообщений IOCTL, отправляемых в/из драйвера
- API — функциональность консоли
- Буферы — буфер ввода, хранящий пользовательский ввод, и буфер вывода, хранящий выходной/отображаемый текст
- Парсер VT — преобразует последовательности ANSI/VT из текстового потока в вызовы API
- UX консоли — состояние UI консоли, настройки, функции
- Другое — технические данные, безопасность и проч.
- Что делает консоль
- Отправляет пользовательский ввод в подключенное приложение командной строки
- Получает и отображает выходные данные из подключенного приложения командной строки
- Чем консоль отличается от терминалов *NIX
- NIX: «Всё представляет собой файл/текстовый поток»
- Windows: «Все представляет собой объект, доступный через API»
- Проблемы консоли
- Консольные приложения и приложения командной строки взаимодействуют через запросы вызовов API и текст, сериализованный в Сообщения IOCTL
- Консольный API могут вызвать только приложения командной строки Windows
- Сложнее портировать приложения на/из Windows
- Приложения взаимодействуют с консолью через Windows API
- Затрудняет удалённое взаимодействие с приложениями и средствами командной строки Windows
- Зависимость от IOCTL нарушает схему «обмен символами» терминала
- Затрудняет эксплуатацию инструментов командной строки удалённого с не-Windows машин
- Запуск приложений командной строки Windows является «необычным»
- К приложениям командной строки можно присоединить только ConHost.exe
- Сторонние терминалы вынуждены создавать внеэкранную консоль, отправлять туда символы и скрапить экран
- Windows исторически не понимает последовательности ANSI/VT
- В основном исправлено в Windows 10
- У консоли ограниченная поддержка Юникода и в настоящее время проблемы с хранением и рендерингом UTF-8 и глифов, которые нуждаются в соединительных символах нулевой ширины
В следующих нескольких статьях этой серии мы более подробно разберём консоль и обсудим решение этих проблем… и не только!
Как всегда, следите за обновлениями.
Python недопустимый синтаксис в командной строке Windows
После загрузки Windows CMD и ввода «python» введите Python Shell
Когда я набираю следующее (на клавиатуре, строка за строкой)
>>> for i in range(2):
... print(i)
...
Я получаю ожидаемый результат
0
1
но когда я набираю на клавиатуре следующее, снова строка за строкой
>>> for i in range(2):
.
SyntaxError: invalid syntax
Что происходит? Я застрял в попытке заставить это работать уже более часа…
pythonПоделиться Источник minovsky 03 июля 2017 в 10:33
2 ответа
2
Вы должны нажать enter еще раз после первого цикла, как это
>>> for i in range(2):
... print(i)
...
0
1
>>> for i in range(2):
... print(i)
...
Поделиться milo 03 июля 2017 в 10:36
2
Вам нужно набрать RETURN во второй раз. Интерпретатор Python ждет, пока вы закончите командный блок, как вы можете видеть из приглашения ...
перед вашим вторым for
.
Поделиться lorenzog 03 июля 2017 в 10:36
Похожие вопросы:
python setup.py sdist-SyntaxError: недопустимый синтаксис
когда я запускаю ‘python setup.py sdist’, я всегда сталкиваюсь с ошибкой ‘SyntaxError: недопустимый синтаксис’. ниже приведен мой исходный код: printlist.py def printlist(the_list): for eachitem in…
Как я могу получить python в командной строке на Windows?
Я только что установил Python на свой Windows 7. Я думал, что после этого смогу запустить python в командной строке, но это не так. После установки я также обнаружил, что могу запустить команду…
Python, Командная Строка, Windows
Новая правка. Я использую Python2.7.5 в Windows 7. Я новичок в аргументах командной строки. Я пытаюсь сделать это упражнение: Напишите программу, которая читает строку в командной строке и…
Python: выполнение команды windows в командной строке windows из сценария python
Я должен выполнить сценарий python в командной строке windows Я использую следующую команду для запуска команды, чтобы скрипт открыл командную строку и выполнил ее os..*UUID=/UUID=/’ Python возвращает недопустимый синтаксис, хотя это работает в командной строке linux. Мой код…
pip install возвращает недопустимый синтаксис
Я только что установил python 3.6, который поставляется вместе с pip Однако в командной строке Windows, когда я делаю: ‘pip install bs4’, он возвращает ‘SyntaxError: недопустимый синтаксис’ под…
Как запустить файл python в командной строке windows?
Я пытался запустить файл python в командной строке windows и использовал команду test.py с двойными кавычками в команде. Файл был открыт как файл .txt с кодами, которые я написал в нем, вместо того,…
Моя версия python в командной строке windows отличается от командной строки anaconda
В командной строке windows моя версия python равна 2.6.5, но в командной строке anaconda моя версия python равна 3.6.8. Как я могу обновить свою версию python в командной строке windows?
Программы для поиска из командной строки Windows 7
Ни для кого не секрет, что поиск Windows 7 — удобный и мощный инструмент. Его глубокая интеграция в Проводник, меню «Пуск», сохраняемые результаты и индексируемые расположения действительно позволяют экономить время, если что-то нужно быстро найти, открыть или запустить.
В недрах Windows 7 скрывается ряд консольных утилит для поиска, которые порой не менее эффективны при использовании в различных сценариях командной строки и могут сослужить вам добрую службу.
Первая программа, входящая в состав средств консольного поиска Windows 7, — find.
FIND
Программа find осуществляет поиск текстовой строки в одном или нескольких файлах. Синтаксис её таков:
[code]find [/опции] «строка для поиска» ДИСК:\Папка\ШаблонИмениФайла*.*[/code]
Программа find отличается от графического инструментария поиска Windows 7, что может искать текст во всех типах файлов, например, в DLL или EXE. Графические средства поиска Windows 7, как известно, текст в подобных файлах не ищут.
Программа find имеет следующий перечень опций, влияющих на её поведение и возможности:
- find /V — вывод всех строк, НЕ содержащих заданную строку.
- find /C — вывод только общего числа строк, содержащих заданную строку.
- find /N — вывод номеров отображаемых строк.
- find /OFF[LINE] — не пропускать файлы с установленным атрибутом «Автономный».
- find /I — поиск без учета регистра символов.
Программа FINDSTR
Утилита findstr выглядит функционально расширенной версией программы find. Синтаксис их схож:
[code]findstr [/опции] «строка для поиска» ДИСК:\Папка\ШаблонИмениФайла*.*[/code]
Однако, findstr поддерживает сразу несколько шаблонов имени файлов и несколько поисковых строк, которые нужно разделять пробелами. Кроме того, findstr поддерживает работу с регулярными выражениями. Опции при работе с ней таковы:
- /B — искать указанную строку-образец только в начале строк.
- /E — искать указанную строку-образец только в конце строк.
- /L — поиск строк дословно, т.е. в точном соответствии с введенной фразой
- /R — искать указанную строку-образец с использованием регулярных выражений.
- /S — поиск файлов в текущей папке и всех ее подкаталогах.
- /I — поиск будет вестись без учета регистра.
- /X — выводить строки, которые совпадают точно.
- /V — выводить строки, не содержащие совпадений с искомыми.
- /N — выводить номер строки, в которой найдено совпадение.
- /M — выводить только имя файла, в котором найдено совпадение.
- /O — выводить найденные строки через пустую строку.
- /P — пропуск строки, содержащей непечатаемые символы.
- /OFF[LINE] — искать в файлах с установленным атрибутом «Автономный».
- /A:цвета — две шестнадцатеричные цифры — атрибуты цвета вида (Цвет фона)(Цвет текста). Список цветов таков:
0 = Черный 8 = Серый
1 = Синий 9 = Светло-синий
2 = Зеленый A = Светло-зеленый
3 = Голубой B = Светло-голубой
4 = Красный C = Светло-красный
5 = Лиловый D = Светло-лиловый
6 = Желтый E = Светло-желтый
7 = Белый F = Ярко-белыйСовет: Выполните команду Color /?, чтобы узнать, как устанавливать цвета в окне команд.класс] — обратный класс символов: любой символ из НЕ перечисленных в скобках
- [x-y] — любые символы из указанного диапазона, например [a-b]
- \x — служебный символ х: \t — табуляция, \n — начало строки
- \?xyz — позиция в слове: в начале слова
- xyz\> — позиция в слове: в конце слова
Примеры использования:
[code]findstr /I windows microsoft.txt[/code]
Поиск всех слов «windows» без учёта регистра в файле microsoft.txt
[code]findstr /s /i /m «\<microsoft\>» *.txt[/code]
Построить список txt-файлов в текущем каталоге и его подкаталогах, содержащий слово «microsoft», игнорируя регистр.
[code]findstr «Привет от штиблет» file.txt[/code]
Поиск слов «Привет», «от» и «штиблет» в файле file.txt с учётом регистра.
[code]findstr /C:»Привет от штиблет» file.txt[/code]
Поиск фразы «Привет от штиблет» в файле file.txt с учётом регистра.
Программа WHERE
И последняя программа, на которую мне бы хотелось обратить ваше внимание, это where. Она выполняет поиск файла по указанному шаблону его имени. Синтаксис в общем случае таков:
[code]where Каталог:шаблон[/code]
Для случая, когда каталог не указан, поиск файлов осуществляется в текущем каталоге и в каталогах, указанных в переменной окружения PATH.
Например,
[code]WHERE «c:\windows:*.exe»[/code]
Поиск исполняемых файлов в каталоге c:\Windows
Каталогов для поиска может быть указано несколько, для этого применяется конструкция вида:
[code]where c:\windows;c:\windows\system32:*.txt[/code]
При этом можно использовать только один шаблон.
Параметры программы Where:
- /R — рекурсивный поиск и отображение файлов, соответствующих указанному шаблону, начиная с указанного каталога. При использовании опции /R можно использовать несколько шаблонов, но для одного каталога. Синтаксис таков:
[code]where /R c:\windows *.txt *.wav[/code] - /Q — интересная опция с точки зрения использования в командных файлах. При её указании утилита переходит в тихий режим, списка файлов не выводит, но устанавливает код возврата, указывающего на результат её выполнения. Считать код возврата можно из переменной окружения %ERRORLEVEL%.
- %ERRORLEVEL%=0 — поиск успешен/файлы найдены
- %ERRORLEVEL%=1 — ничего не найдено
- %ERRORLEVEL%=2 — поиск завершен с ошибками
- /F — отображение найденных файлов в кавычках.
- /T — отображение размера, даты и времени изменения для всех найденных файлов.
Отмечу, что в качестве шаблона пути можно использовать переменные окружения, вот так:
[code]where $path:*.exe
where $windir:*.exe
where $windir:*.exe
where $temp:*.tmp[/code]
Микрософт не рекомендует использовать рекурсивный поиск при наличии переменных окружения в командной строке where. Полагаю, из-за вероятности повторения результатов и замедления работы поиска.
Поделиться этой статьёй:
Вы здесь: Главная страница » Windows » Windows 7 » Программы для поиска из командной строки Windows 7
с использованием синтаксиса командной строки Cmds — решения для Windows 7
Полный синтаксис командной строки для Cmd exe: cmd [/ a | / u] [/ q] [/ d] [/ e: on | / e: off] [/ f: on | / f: off] [/ v: on | / v: выключено] [[/ s] [/ c | / k] строка команды]
Все аргументы являются необязательными. Доступны следующие аргументы:
• / A | / U Этот аргумент позволяет указать систему кодирования, используемую для текста, передаваемого в файл или другое устройство. Используйте / A для ANSI или / U для Unicode.(По умолчанию — ANSI.)
• / Q Аргумент / Q запускает командную строку с выключенным эхо. (Если эхо выключено, вам не нужно включать строку @Echo Off для подавления вывода на экран в пакетной программе. Чтобы снова включить эхо после запуска командной строки с помощью / Q, введите в командной строке echo on.)
• / D Аргумент / D отключает выполнение любых команд автозапуска, указанных в реестре. (Для получения дополнительной информации см. Предыдущий раздел.)
• / E: on | / E: off Аргумент / E позволяет переопределить текущие параметры реестра, которые влияют на расширения команд, которые являются усовершенствованиями некоторых внутренних команд; некоторые расширения могут быть несовместимы с программами прошлого века или рабочими привычками.Расширения команд включены по умолчанию. Чтобы отключить расширения по умолчанию, установите значение DWORD EnableExtensions в HKLM \ Software \ Microsoft \ Command Processor равным 0.
• / F: вкл | / F: off Аргумент / F позволяет переопределить текущие параметры реестра, касающиеся завершения имени файла и имени папки. (См. «Использование завершения имени файла и имени папки» на странице 961.)
• / V: вкл | / V: off Аргумент / V позволяет включить или отключить отложенное раскрытие переменной. Например, с / V: для переменной! Var! раскрывается только при выполнении.По умолчанию / V: выключено. Чтобы включить отложенное расширение переменной по умолчанию, добавьте значение DWORD DelayedExpansion в HKLM \ Software \ Microsoft \ Command Processor (для всех пользователей на текущем компьютере) или HKCU \ Software \ Microsoft \ Command Processor (только для текущей учетной записи пользователя) и установите для параметра DelayedExpansion значение 1. (Отложенное раскрытие переменных полезно в условных операторах и конструкциях циклов в пакетных программах. Для получения дополнительной информации введите help set в командной строке)
• / S [/ C | / K] commandstring Альтернативные аргументы / C и / K позволяют вам запускать команду при запуске командной строки, при этом / C завершает сеанс по завершении команды, а / K сохраняет его открытым.(Для получения дополнительной информации см. «Запуск командной строки и выполнение команды» на странице 957.) Включение / S перед / C или / K влияет на обработку кавычек в командной строке.
Если вы не включаете / S, и в командной строке есть ровно две кавычки, а в командной строке нет «специальных» символов (&, <,>, (,), @, A или |), и есть один или несколько символов пробела (например, пробелы, табуляции или переводы строк) между двумя кавычками, а commandstring — это имя исполняемого файла, тогда командная строка сохраняет два символа кавычек.
Если вышеуказанные условия не выполняются и первый символ в командной строке является кавычкой, Командная строка удаляет первую и последнюю кавычки из командной строки.
Читать здесь: Inside Out
Была ли эта статья полезной?
Ссылка на командуNET SEND. Синтаксис, использование в Windows 7 / Vista, примеры
Содержание
- Обзор
- Справочник команд
- Отправка и получение сообщений Net Send в Windows 10/8/7 / Vista
1 Обзор
1.1 Введение
Net Send — это приложение командной строки, которое поставляется с некоторыми версиями Windows и используется для отправки текстовых сообщений другим пользователям, компьютерам или именам сообщений в локальной сети. Эта команда доступна только в Windows NT, 2000, XP, 2003 и недоступна в Windows 95, 98, ME, Vista, Windows 7, 8, 10 и более поздних версиях. В Windows XP, начиная с Service Pack 2, команда Net Send по умолчанию отключена.
1.2 Команда Net Send в Windows 10/8/7 / Vista
Windows XP была последней версией Windows, которая включала команду Net Send.Команда msg заменяет команду net send в Windows 10, Windows 8, Windows 7 и Windows Vista. Тем не менее, вы можете отправлять и получать сообщения Net Send в Windows 10/8/7 / Vista с помощью сторонних программных продуктов (подробнее).
2 Ссылка на команду
2.1 Использование команды Net Send
Для правильной работы команды Net Send требуется запуск службы Windows Messenger. Фактически, команда Net Send — это просто интерфейс командной строки для службы обмена сообщениями, которая непосредственно отвечает за отправку и получение сообщений.Кроме того, на компьютере, на который вы хотите отправлять сообщения, должна быть запущена служба обмена сообщениями или совместимое программное обеспечение. Вы можете отправлять сообщения только тому имени, которое активно в сети. Если вы отправляете сообщение на имя пользователя, этот пользователь должен войти в систему.
Чтобы отправить сообщение с помощью команды Net Send, запустите окно командной строки. Чтобы запустить командную строку, нажмите кнопку «Пуск», выберите «Выполнить ..», введите команду «cmd» и нажмите кнопку «ОК». Введите команду net с параметром send и другими параметрами в соответствии с синтаксисом команды.Сообщения, полученные с помощью службы обмена сообщениями, отображаются в стандартном окне сообщений Windows.
2.2 Синтаксис команды Net Send
Команда Net Send имеет следующий синтаксис:
net send {имя пользователя | * | / домен [: имя домена] | / users} сообщение
где
имя пользователя — имя пользователя, имя компьютера или имя сообщения, на который вы хотите отправить сообщение;
* — отправляет сообщение всем именам в вашем домене или рабочей группе;
/ домен [: имя домена] — отправляет сообщение всем именам в домене компьютера или в указанном домене;
/ users — отправляет сообщение всем пользователям, подключенным к серверу;
сообщение — указывает текст сообщения.
2.3 Замечания по использованию команды Net Send
Если аргументы командной строки содержат пробелы, их следует заключить в кавычки.
Вы можете столкнуться с проблемами при использовании длинных имен пользователей для отправки сообщений. Имена, используемые службой обмена сообщениями, ограничены 15 символами.
Максимально допустимая длина широковещательного сообщения составляет 128 символов. Максимально допустимая длина личного сообщения — 1600 символов.
2.4 Примеры команды Net Send
Чтобы отправить сообщение «Для отправки сообщений в локальной сети используйте команду net send» пользователю john введите:
net send john Для отправки сообщений в локальной сети используйте команду net send
Чтобы отправить сообщение всем пользователям, подключенным к компьютеру, введите:
net send / users Немедленно выйдите из 1С!
Чтобы отправить сообщение всем пользователям в домене ukmz, введите:
net send / domain: ukmz Электричество отключат через 5 минут
Чтобы отправить сообщение всем пользователям домена, которому принадлежит ваш компьютер, введите:
net send * Господа, начало встречи в 13:00
2.5 Отключение и включение службы обмена сообщениями и Net Send
Вы можете отключить или включить службу обмена сообщениями с помощью консоли MMC (оснастка служб) и командной строки. Все эти операции требуют прав администратора.
Чтобы включить службу обмена сообщениями, выполните следующие действия: Откройте Панель управления. Откройте административный инструмент, службы. Найдите Службу обмена сообщениями в списке служб Windows. Откройте его окно свойств. В раскрывающемся списке «Тип запуска» выберите «Авто».Затем нажмите кнопку «Пуск». Нажмите кнопку ОК.
Чтобы отключить службу обмена сообщениями, выполните следующие действия: Откройте Панель управления. Откройте административный инструмент, службы. Найдите Службу обмена сообщениями в списке служб Windows. Откройте его окно свойств. В раскрывающемся списке «Тип запуска» выберите «Отключено». Затем нажмите кнопку Stop. Нажмите кнопку ОК.
Чтобы включить службу обмена сообщениями с помощью командной строки, введите следующие команды в командной строке:
sc config messenger start = auto
Чистый старт мессенджер
Чтобы отключить службу обмена сообщениями с помощью командной строки, введите следующие команды в командной строке:
net stop messenger
sc config messenger start = disabled
3 Отправка и получение сообщений Net Send в Windows 10/8/7 / Vista
Чтобы отправлять или получать сообщения Net Send в версиях Windows, которые не поддерживают команду Net Send (Windows 10, 8, 7, Vista, ME, 95, 98), вы можете использовать сторонние программные продукты.Мы предлагаем использовать Winsent Messenger, Winsent Innocenti и утилиту Sent.Winsent Messenger — это мессенджер для LAN, совместимый с net send. Winsent Innocenti — это урезанная версия Winsent Messenger, позволяющая получать только сообщения. Sent — консольная утилита, предназначенная для отправки сообщений из командной строки.
Ниже приведены пошаговые инструкции по добавлению поддержки NET SEND в Windows 10, Windows 8, Windows 7:
1) Загрузите и установите Winsent Messenger или Winsent Innocenti на все компьютеры, которые должны использоваться для приема сообщений (перейдите на страницу загрузки).
2) Загрузите и установите утилиту Sent и Winsent Messenger на все компьютеры, которые должны использоваться для отправки сообщений (перейдите на страницу загрузки)
3) Измените системные настройки Windows в соответствии с требованиями на всех компьютерах, на которых вы установили Winsent Messenger, Winsent Innocenti и Sent.
Теперь вы можете отправлять и получать сообщения NET SEND в Windows 10, Windows 8, Windows 7. Если вам нужно отправить сообщение из командной строки, введите отправленную команду в командной строке, в противном случае используйте Winsent Messenger.
Как запустить восстановление системы из командной строки Windows 7?
Когда нужно восстанавливать Windows 7?
Восстановление системы из командной строки в Windows 7 — весьма полезное действие, когда ваша система вышла из строя или не может загрузиться. Большинство пользователей хотели бы восстановить систему из резервной копии системы, а не переустанавливать Windows.
Переустановка системы — это трудоемкий процесс, поскольку он стирает все ваши файлы и программы. Для сравнения, восстановление системы требует меньше времени, поскольку оно просто отменяет нежелательные изменения и возвращает Windows к более ранней дате, когда все работало нормально.
Кроме того, если вы покупаете новый компьютер и хотите сохранить старую систему, вы можете восстановить старую систему на новом компьютере. Таким образом, вы можете перенести все со старой системы на новый компьютер. Вам не нужно переустанавливать часто используемые приложения.
Существует три метода восстановления системы из командной строки в Windows 7:
— Запуск восстановления системы из командной строки в параметрах восстановления системы
— Запуск восстановления системы в безопасном режиме с помощью командной строки
— Восстановление Windows 7 с помощью AOMEI Backupper.exe
Запуск восстановления системы из командной строки в параметрах восстановления системыКогда дело доходит до восстановления системы из командной строки, когда Windows не может загрузиться, в первую очередь на ум приходит командная строка параметров восстановления системы в Windows 7. Это правда. Однако, если вы используете команду «wbadmin start recovery», вы получите следующую ошибку:
«Предупреждение: команда START RECOVERY не поддерживается в этой версии Windows».
Это потому, что некоторые подкоманды Wbadmin доступны только для сервера, и «wbadmin start recovery» является одной из них.Эта команда используется для восстановления файлов / томов / приложений, резервные копии которых были созданы с помощью Windows Server Backup.
К счастью, вы можете открыть восстановление системы с помощью другой команды:
1. Откройте CMD в параметрах восстановления системы, введите rstrui.exe и нажмите Enter. Эта команда немедленно откроет мастер восстановления системы.
2. Выберите точку восстановления и нажмите Далее . Следуйте инструкциям, чтобы завершить восстановление системы.
Запуск восстановления системы в безопасном режиме с помощью командной строки
Есть еще один способ запустить восстановление системы.Вы можете перейти в безопасный режим с помощью командной строки:
1. Перезагрузите компьютер. Во время процесса запуска несколько раз нажмите F8 , пока не появятся дополнительные параметры загрузки Windows. Выберите Safe Mode with Command Prompt и нажмите Enter.
2. Когда вы попадете в окно командной строки, введите cd restore и нажмите Enter. Затем введите rstrui.exe и нажмите Enter. Затем вы запустите мастер восстановления системы, и вы сможете следовать указаниям мастера, чтобы завершить процесс восстановления.
Восстановление Windows 7 с помощью AOMEI Backupper.exe
AOMEI Backupper Professional — надежное программное обеспечение для резервного копирования и восстановления. Он позволяет создавать резервные копии и восстанавливать систему либо из графического интерфейса пользователя, либо из командной строки. Самое приятное, что вы можете восстановить систему на разном оборудовании с помощью функции Universal Restore . Кроме того, он поддерживает как 32-битную, так и 64-битную Windows 10 / 8.1 / 8/7 / Vista / XP.
Некоторые обязательные параметры:
● {/ r}: восстановить резервную копию системы, диска, раздела или динамического тома.
● {/ t} {system | диск | part}: укажите тип восстановления.
● {/ s} {D: \ my backup \ my backup.adi | \\ 192.168.1.1. \ My backup \ my backup.adi}: укажите путь к файлу образа.
● {/ x}: укажите универсальное восстановление, чтобы восстановить систему на отличающееся оборудование. Он должен использоваться с «/ t system» и «/ t disk».
Восстановление из резервной копии AOMEI основано на резервной копии AOMEI Backupper. То есть, если вы хотите выполнить восстановление системы с помощью AOMEI Backupper, вы должны заранее создать резервную копию образа системы с помощью AOMEI Backupper.Чтобы процесс восстановления прошел гладко, вы можете проверить, не повреждена ли резервная копия образа системы и нет ли ошибок, с помощью функции Проверить образ .
Давайте посмотрим на подробные инструкции по запуску восстановления системы из командной строки в Windows 7 с помощью AOMEI Backupper.
Шаг 1. Нажмите «Пуск» и введите CMD, чтобы открыть командную строку. Щелкните правой кнопкой мыши «cmd» и выберите «Запуск от имени администратора».
Шаг 2. Перейдите в каталог установки AOMEI Backupper, введя следующую команду и нажмите Enter:
cd [путь установки AOMEI Backupper] (e.g., cd C: \ Program Files (x86) \ AOMEI Backupper)
Шаг 3. Введите следующую команду и нажмите Enter, чтобы начать восстановление:
AMBackup / r / t [тип резервной копии] / s «[расположение резервной копии путь] «/ d [место назначения]
Например:
① Чтобы восстановить системный образ« systembackup1.adi », сохраненный в J: \ systembackup, на диск 1. Команда должна быть такой: AMBackup / r / t system / s «J: \ system backup \ systembackup1.adi» / d 1.
② Для восстановления образа системы «systembackup1.adi », сохраненную в резервной копии системы D: \ в раздел 0 на диске 0, и выполните универсальное восстановление. Команда должна быть такой: AMBackup / r / t system / s «D: \ system backup \ systembackup1.adi» / d 0: 0 / x.
Примечания:
● Чтобы запустить восстановление системы, когда Windows не загружается, вы должны создать загрузочный носитель с AOMEI Backupper для загрузки вашей машины. Вы попадете в основной интерфейс AOMEI Backupper. Вы можете открыть командную строку из Tools > Команда оболочки Windows , а затем ввести команды, упомянутые выше, для выполнения восстановления системы.
● Если вы запускаете команды под Windows PE, буквы дисков могут измениться.
Восстановление с помощью графического интерфейса AOMEI Backupper
Если с вашей Windows 7 все в порядке, вы просто хотите восстановить ее до определенной точки, чтобы удалить некоторые программы или перенести систему на другой диск, например SSD или что-то подобное. Вам не нужно запускать восстановление системы из командной строки в Windows 7, вы также можете выполнять операции, напрямую запуская графический интерфейс этого программного обеспечения в Windows:
Нажмите Восстановить и Выберите задачу > Выберите задачу резервного копирования системы из списка> Выбрать, чтобы восстановить всю систему или раздел> (Необязательно) Выберите путь назначения для восстановления образа системы> Нажмите Начать восстановление .Это довольно просто, и вы можете сделать это всего за несколько кликов.
Заключение
Теперь вы знаете, как запустить восстановление системы из командной строки в Windows 7. AOMEI Backupper предлагает как операции командной строки, так и операции с графическим интерфейсом. Вы также можете использовать его для запуска восстановления системы с помощью командной строки в Windows 10. Помимо резервного копирования и восстановления системы, AOMEI Backupper также является отличным программным обеспечением для клонирования дисков. С его помощью вы можете клонировать жесткие диски и легко перенести Windows 7 на SSD.
Если вы хотите защитить неограниченное количество компьютеров в своей компании, вы можете выбрать AOMEI Backupper Technician. С помощью встроенного инструмента AOMEI Image Deploy вы также можете развертывать / восстанавливать файл образа системы на серверном компьютере на нескольких клиентских компьютерах по сети.
Как дефрагментировать Windows 7 из командной строки
Устранение неполадок компьютера стало необходимым компонентом владения компьютером. Хотя проблемы неизбежны, один из самых простых способов предотвратить большинство из них — это регулярное и регулярное обслуживание.Одним из необходимых аспектов повседневного обслуживания должна быть дефрагментация жесткого диска Windows 7. Планируйте делать это хотя бы раз в месяц.
Зачем нужно дефрагментировать Windows 7?
Чтобы понять важность дефрагментации Windows 7, вам необходимо понять, как работает соответствующая файловая система.
Жесткие диски хранят данные в секторах. При первой настройке файловой системы на жестком диске, вероятно, присутствует несколько битов внутренних данных, но диск в основном представляет собой непрерывный блок пустого пространства.Когда вы устанавливаете свою первую программу, файлы размещаются последовательно и близко друг к другу. Однако все начинает идти наперекосяк, когда происходит одно из немногих:
Вы удаляете файлы.
Вы удаляете программу.
Вы изменяете и добавляете данные в существующий файл, который записывает новые данные в другую область диска.
Вновь доступное пространство оставляет промежуток между данными, которые были сохранены до и после вашего удаления или изменения.Это пространство называется фрагментом. Со временем эти фрагменты складываются. Рычаг жесткого диска должен будет перемещаться по всей поверхности, чтобы найти и собрать ваши данные. Вот почему вы иногда замечаете, что ваша работа идет медленно.
Как дефрагментировать Windows 7
Выполните следующие простые шаги для дефрагментации Windows 7:
Нажмите кнопку «Пуск».
В поле поиска введите «Дефрагментация диска» и щелкните найденный результат.
В разделе «Текущее состояние» щелкните диск, который нужно дефрагментировать.
Щелкните «Анализировать диск», чтобы определить, нужно ли дефрагментировать диск.
При появлении запроса введите пароль администратора или подтвердите.
Когда Windows закончит анализ, проверьте процент фрагментации на диске в столбце «Последнее выполнение». Если число больше 10%, диск следует дефрагментировать. (Фрагменты файлов останутся всегда … такова природа дискового хранилища. Вы никогда не получите идеально дефрагментированный жесткий диск.)
Щелкните «Дефрагментировать диск».
При появлении запроса введите пароль администратора или подтвердите.
Дефрагментация диска может занять несколько минут, но может занять несколько часов в зависимости от размера и степени фрагментации жесткого диска. Однако вы все равно можете использовать свой компьютер во время процесса дефрагментации.
Как дефрагментировать Windows 7 из командной строки
В то время как предыдущие версии Windows имели только графический интерфейс, Windows 7 включала инструмент командной строки, который обеспечивает больший контроль и гибкость.Вот как это сделать:
В меню «Пуск» выберите «Все программы», а затем «Стандартные».
Щелкните правой кнопкой мыши командную строку и выберите «Запуск от имени администратора».
Как стать владельцем файла или папки с помощью командной строки в Windows
У каждого файла или папки в томе NTFS есть владелец. Некоторые системные файлы принадлежат TrustedInstaller, некоторые — учетной записи SYSTEM, а другие — группе «Администраторы». Если пользователь создает файл или папку, этот пользователь обычно является владельцем файла или папки.Владелец — это тот, кто может назначать разрешения (Разрешить или Запретить) другим пользователям для этого объекта.
Если пользователь не является владельцем файла или папки или не имеет разрешений на доступ к файлу, он получает ошибку «доступ запрещен» при доступе к объекту. Если этот пользователь является администратором, он может стать владельцем объекта с помощью вкладки Свойства файла или папки — Безопасность. Затем он может назначить себе необходимые разрешения.
В этом сообщении рассказывается, как стать владельцем файла или папки и назначить для них необходимые разрешения с помощью командной строки вместо графического интерфейса.
Windows включает инструмент командной строки Takeown.exe, , который можно использовать из командной строки администратора для быстрого изменения владельца файла или папки. Вот как стать владельцем файла или папки , а затем назначить разрешения для учетной записи с помощью командной строки.
Принятие права собственности на файл
Откройте окно командной строки с повышенными привилегиями. Используйте следующий синтаксис, чтобы стать владельцем файла:
TAKEOWN / F <имя файла>
Замените
Пользователь, выполнивший вход в систему, теперь является владельцем файла.
Чтобы установить группу администраторов группы
владельцем файла, используйте дополнительно переключатель / A
:
TAKEOWN / F <имя файла> / A
-
/ A
Предоставляет право собственности группе администраторов вместо текущего пользователя. Если/ A
не указан, право собственности на файл будет передано пользователю, вошедшему в систему в данный момент. Этот параметр не чувствителен к регистру .
Если операция прошла успешно, вы должны увидеть следующее сообщение:
«УСПЕХ: файл (или папка):« имя файла »теперь принадлежит пользователю« Имя компьютера \ Имя пользователя ».»
или
УСПЕХ: файл (или папка): «filename» теперь принадлежит группе администраторов.
Назначить права доступа к файлам
Затем, чтобы предоставить администраторам права полного доступа для файла, используйте ICACLS . Вот синтаксис:
ICACLS <имя файла> / предоставить администраторам: F
Пример 2: Чтобы назначить разрешения полного доступа для текущего пользователя, вошедшего в систему, используйте эту команду:
ICACLS <имя файла> / grant% username%: F
% username% представляет имя учетной записи текущего пользователя, вошедшего в систему.ICacls принимает эту переменную напрямую.
Пример 3: Чтобы назначить разрешения полного доступа для пользователя с именем John
, используйте эту команду:
ICACLS <имя файла> / grant John: F
Принятие права собственности на папку
Используйте следующий синтаксис:
takeown / f
(или)
takeown / f/ a
-
/ a
Предоставляет право собственности группе администраторов вместо текущего пользователя.Если/ a
не указан, право собственности будет передано пользователю, выполнившему вход в систему. Этот параметр не чувствителен к регистру .
Вы увидите следующий результат:
УСПЕХ: файл (или папка): «имя_папки» теперь принадлежит пользователю «имя_компьютера \ имя_пользователя»
(или)
УСПЕХ: файл (или папка): «имя_папки» теперь принадлежит группе администраторов.
Рекурсивно сменить владельца:
Чтобы изменить владельца папки, ее подпапок и файлов в каждой подпапке, используйте следующий синтаксис:
takeown / f <имя папки> / r / d y
Пользователь, выполнивший вход в систему, теперь является владельцем папки.
Для настройки группы администраторов
владельца папки, ее подпапок и файлов рекурсивно используйте дополнительно переключатель / A
:
TAKEOWN / F <имя папки> / a / r / d y
-
/ R
Recurse: указывает инструменту работать с файлами в указанном каталоге и во всех подкаталогах. -
/ D
подсказка Ответ по умолчанию, используемый, когда текущий пользователь не имеет разрешения «список папок» для каталога.Это происходит при рекурсивной работе (/ R) с подкаталогами. Допустимые значения «Y», чтобы стать владельцем, или «N», чтобы пропустить.
Назначить права доступа к папке
Затем, чтобы назначить группе администраторов Полные права доступа для папки, используйте следующий синтаксис:
icacls/ администраторы грантов: F / T
Добавлен параметр / T , чтобы операция выполнялась во всех подкаталогах и файлах в этой папке.
Справка командной строки:
Чтобы получить полную информацию об использовании Takeown.exe и ICacls.exe, запустите эти команды из окна командной строки.
вынос /?
icacls /?
Более простые способы получения права собственности
Командный сценарий
Чтобы еще больше упростить процесс вступления во владение, Тим Снит из Microsoft предоставляет файл .CMD (командный сценарий Windows), который становится владельцем и назначает разрешения полного доступа администраторам для каталога.Для получения дополнительной информации прочитайте сообщение Тима, озаглавленное «Секрет № 11: удаление не удаляемого файла».
Добавьте команду «Принять владение» в контекстное меню.
Здесь снова используется специальный глагол runas в Windows Vista и более поздних версиях, о котором я говорил ранее ( REF RunAs ).
через WinMatrix.com
Загрузите takeown_context.reg и сохраните на рабочем столе. Щелкните файл правой кнопкой мыши и выберите Merge .Нажмите Да при запросе подтверждения. Это добавляет расширенную команду с именем Take Ownership в контекстное меню для файлов и каталогов. Чтобы получить доступ к команде, вам нужно нажать и удерживать клавишу SHIFT , а затем щелкнуть правой кнопкой мыши файл или папку.(Подробнее о настройке можно прочитать в статье «Принятие права собственности на файл или папку с помощью контекстного меню, вызываемого правой кнопкой мыши в Windows ».)
Дополнительная информация
Вышеупомянутый раздел охватывает большую часть того, что вам нужно.Прочтите ниже, если вам нужны дополнительные советы по этой теме.
icacls.exe также может изменить владельца файла или папки!
Takeown.exe и Icacls.exe — это два встроенных консольных инструмента в Windows, которые позволяют изменять владельца файла или папки и назначать разрешения на управление доступом соответственно. Takeown.exe устанавливает текущую учетную запись пользователя в качестве владельца объекта (файла или папки).
Однако с Takeown.exe нельзя сделать другую учетную запись владельцем объекта.
Знаете ли вы, что средство icacls.exe также можно использовать для смены владельца?
Чтобы сменить владельца на стороннюю учетную запись (т. Е. Учетную запись, которая в настоящее время не вошла в систему) или группу, вы можете использовать icacls.exe с аргументом командной строки / setowner
вместо takeown.exe.
Изменить владельца файла или папки с помощью icacls.exe
Мы видели, как изменить владельца с помощью icacls.exe, в последней части статьи «Принятие права собственности на файл или папку с помощью командной строки в Windows».Вот еще несколько примеров:
Ниже приведен синтаксис командной строки для изменения владельца файла или папки с помощью icacls.exe:
icacls "имя_файла или папки" / setowner "NT Service \ TrustedInstaller"
Примеры: Набор № 1: изменение владельца отдельного файла или папки
icacls "D: \ Annual Reports \ 2020 \ November" / владелец "John"
icacls "D: \ Tax Audit \ November.xlsx" / владелец объекта "Джон"
icacls "D: \ Tax Audit \ November.xlsx" / владелец "Администраторы"
Если операция прошла успешно, вы увидите следующее сообщение:
обработанный файл: имя_файла или_папки Успешно обработано 1 файл; Ошибка обработки 0 файлов
Пример № 2: Рекурсивное изменение владельца папки (подпапки и файлов)
Чтобы изменить владельца папки, ее подпапок и всех файлов во всех подпапках рекурсивно, используйте дополнительно переключатель / T
(переход):
icacls "имя_папки" / setowner "Администраторы" / T
-
/ T
указывает, что эта операция выполняется для всех совпадающих файлов / каталогов ниже каталогов, указанных в имени.
Приведенная выше команда устанавливает TrustedInstaller в качестве владельца папки, ее подпапок и всех файлов во всех подпапках.
Вернуть право собственности обратно на TrustedInstaller
Иногда для устранения проблемы может потребоваться изменить файл данных, например XML, или ключ реестра, принадлежащий TrustedInstaller. Для этого вам сначала нужно стать владельцем файла, папки или раздела реестра.
После изменения файлов или настроек вам необходимо вернуть право собственности на TrustedInstaller , если TrustedInstaller был предыдущим или первоначальным владельцем.Чтобы вернуть право собственности на TrustedInstaller, выполните следующие действия:
Служба установщика модулей Windows или TrustedInstaller позволяет устанавливать, изменять и удалять обновления Windows и дополнительные компоненты. По умолчанию TrustedInstaller также является владельцем многих важных разделов реестра и системных файлов.
- Щелкните правой кнопкой мыши файл или раздел реестра и выберите «Разрешения».
- Нажмите «Дополнительно», чтобы открыть диалоговое окно «Дополнительные параметры безопасности».
- Рядом с «Владелец:» нажмите «Изменить».
- В диалоговом окне «Выбор пользователя или группы» введите «
NT SERVICE \ TrustedInstaller
» и нажмите ENTER. - Нажмите Применить, ОК.
При этом право собственности на объект (файл, папка или раздел реестра) изменяется на TrustedInstaller или Windows Modules Installer.
Использование команды icacls.exe для установки TrustedInstaller в качестве владельца файла
В окне командной строки администратора используйте следующий синтаксис командной строки:
icacls "путь \ имя файла" / setowner "NT Service \ TrustedInstaller"
Пример:
icacls "C: \ Windows \ PolicyDefinitions \ WindowsStore.admx "/ setowner" NT Service \ TrustedInstaller "
TrustedInstaller теперь владеет файлом WindowsStore.admx.
icacls / setowner доступ запрещен?
Иногда в командной строке icacls.exe / setowner
может возникать следующая ошибка:
имя файла: Доступ запрещен. Успешно обработано 0 файлов; Ошибка обработки 1 файла
Это может произойти при обнаружении жесткой ссылки NTFS. Ошибка обычно появляется, когда вы пытаетесь изменить владельца защищенных файлов в каталоге Windows — e.г., C: \ Windows \ Notepad.exe
. Жесткая ссылка — это представление файла в файловой системе, в котором несколько путей ссылаются на один файл в одном томе.
Например, в файлах Notepad.exe есть два жестко связанных файла, которые можно просмотреть с помощью следующей команды:
список жестких ссылок fsutil.exe C: \ Windows \ notepad.exe
Вы можете видеть, что Notepad.exe жестко связан со следующими файлами:
C: \ Windows \ System32 \ Notepad.exe C: \\ Windows \ WinSxS \ amd64_microsoft-windows-notepad_31bf3856ad364e35_10.0.19041.488_none_4cea9379ceedab35 \ notepad.exe
Команда icacls.exe / setowner
обнаруживает ошибку ACCESS_DENIED
при обработке этих жестких ссылок.
Обратите внимание, что в документации icacls.exe сказано: «Этот параметр не вызывает смену владельца; используйте для этого служебную программу takeown.exe ».
Если вы столкнулись с ошибкой «Доступ запрещен» при настройке владения с помощью Icacls, возможно, вам придется полагаться на Takeown.exe, SubInACL или сторонний SetACL.exe (см. следующий абзац) утилита командной строки.
Использование SetACL.exe для получения права собственности и назначения разрешений
SetACL.exe — это сторонний инструмент командной строки (от HelgeKlein.com), который мы рассмотрели ранее.
SetACL: аргументы командной строки
Прежде чем продолжить, давайте посмотрим на синтаксис командной строки для изменения прав собственности и прав доступа к файлу / реестру с помощью SetACL.
SetACL -on имя объекта -ot тип объекта -actn действие
-
-on
: Укажите путь к объекту, над которым должен работать SetACL (например,g., файл, ключ реестра, общий сетевой ресурс, служба или принтер). -
-ot
: укажите тип объекта. Чтобы изменить владельца или разрешения для файла или папки, используйте тип объектафайл
. Для ключей реестра используйте тип объектаreg
-
-actn
: Укажите действие, которое должен делать SetACL с указанным объектом. Чтобы стать владельцем, установите действие каквладелец
. Чтобы изменить разрешения, установите действие какace
. -
-ownr
: укажите имя или SID доверенного лица (пользователя или группы) в этом формате — например,«n: администраторы»
(Полный список объектов, типов и поддерживаемых действий см. В документации SetACL.)
Вот несколько примеров, чтобы сменить владельца и предоставить разрешение на полный контроль:
Примеры: изменение владельца одного файла или папки:
setacl.exe -on c: \ windows \ notepad.exe -ot file -actn setowner -ownr "n: NT Service \ TrustedInstaller" setacl.exe -on c: \ windows \ notepad.exe -ot file -actn setowner -ownr "n: администраторы" setacl.exe -on c: \ windows \ notepad.exe -ot file -actn setowner -ownr "n: John" setacl.exe -on "d: \ test" -ot file -actn setowner -ownr "n: NT Service \ TrustedInstaller" setacl.exe -on "d: \ test" -ot file -actn setowner -ownr "n: Администраторы" setacl.exe -on "d: \ test" -ot file -actn setowner -ownr "n: John"
Примеры: рекурсивная смена владельца:
Вариант 1: Чтобы установить владельца папки и ее подпапок ( не для файлов ) рекурсивно, используйте один из следующих примеров:
setacl.exe -on d: \ test -ot file -actn setowner -ownr "n: NT Service \ TrustedInstaller" -rec продолжение setacl.exe -on d: \ test -ot file -actn setowner -ownr "n: Администраторы" -rec cont setacl.exe -on d: \ test -ot file -actn setowner -ownr "n: Ramesh" -rec cont
-
-rec
— рекурсия включена. -
продолжение
— Рекурсия и обработка только каталогов.
Вариант 2: Чтобы рекурсивно установить владельца файлов в папке и ее подпапках (, а не в папках ), используйте один из следующих примеров:
setacl.exe -on d: \ test -ot file -actn setowner -ownr "n: NT Service \ TrustedInstaller" -rec obj setacl.exe -on d: \ test -ot file -actn setowner -ownr "n: администраторы" -rec obj setacl.exe -on d: \ test -ot file -actn setowner -ownr "n: Ramesh" -rec obj
-
-rec
— рекурсия включена. -
obj
— Рекурсия и обработка только файлов.
Вариант 3: Чтобы установить владельца папки , ее подпапок и файлов рекурсивно, используйте один из следующих примеров:
setacl.exe -on d: \ test -ot file -actn setowner -ownr "n: NT Service \ TrustedInstaller" -rec cont_obj setacl.exe -on d: \ test -ot file -actn setowner -ownr "n: Администраторы" -rec cont_obj setacl.exe -on d: \ test -ot file -actn setowner -ownr "n: Ramesh" -rec cont_obj
-
-rec
— рекурсия включена. -
cont_obj
— Рекурсия и обработка каталогов и файлов.
Примеры: Назначьте необходимые разрешения для файла или папки:
Получив право собственности, вы можете назначить необходимые разрешения для объекта.Вот несколько примеров:
Чтобы назначить разрешения для одного файла или папки , используйте один из следующих примеров:
setacl.exe -on "d: \ test \ sample.xlsx" -ot file -actn ace -ace "n: Администраторы; p: full" setacl.exe -on "d: \ test \ sample.xlsx" -ot file -actn ace -ace "n: John; p: full" setacl.exe -on "d: \ test" -ot file -actn ace -ace "n: администраторы; p: full" setacl.exe -on "d: \ test" -ot file -actn ace -ace "n: John; p: full"
Примеры: Рекурсивное назначение необходимых разрешений:
Вариант 1: Для папки и подпапок (не файлов) рекурсивно используйте один из следующих примеров:
setacl.exe -on "d: \ test" -ot file -actn ace -ace "n: администраторы; p: full" -rec cont setacl.exe -on "d: \ test" -ot file -actn ace -ace "n: John; p: full" -rec cont
-
-rec
— рекурсия включена. -
продолжение
— Рекурсия и обработка только каталогов.
Вариант 2: Для рекурсивных файлов в папке и подпапках (, а не в папках ) используйте один из следующих примеров:
setacl.exe -on "d: \ test" -ot file -actn ace -ace "n: администраторы; p: full" -rec obj setacl.exe -on "d: \ test" -ot file -actn ace -ace "n: John; p: full" -rec obj
-
-rec
— рекурсия включена. -
obj
— Рекурсия и обработка только файлов.
Вариант 3: Для папки , ее подпапок и файлов рекурсивно используйте один из следующих примеров:
setacl.exe -on "d: \ test" -ot file -actn ace -ace "n: администраторы; p: full" -rec cont_obj setacl.exe -on "d: \ test" -ot file -actn ace -ace "n: John; p: full" -rec cont_obj
-
-rec
— рекурсия включена. -
cont_obj
— Рекурсия и обработка каталогов и файлов.
Вы можете проверить официальную документацию SetACL, чтобы узнать о его полных возможностях. Однако для установки прав собственности и прав доступа к файлам и папкам для большинства пользователей будет более чем достаточно takeown.exe и icacls.exe.
Одна небольшая просьба: Если вам понравился этот пост, поделитесь им?
Одна «крошечная» публикация от вас серьезно помогла бы росту этого блога.Несколько отличных предложений:- Прикрепите!
- Поделитесь этим в своем любимом блоге + Facebook, Reddit
- Твитнуть!
пожаловаться на это объявление
Об авторе
Рамеш Сринивасан основал Winhelponline.com еще в 2005 году. Он увлечен технологиями Microsoft и был самым ценным профессионалом Microsoft (MVP) в течение 10 лет подряд с 2003 по 2012 год.
Microsoft → Windows → Изменение владельца файла или папки с помощью инструмента командной строки Takeown
Команда Windows | Команда Unix | Банкноты |
---|---|---|
arp | arp | |
присвоить | пер. | Создать ссылку на файл |
присвоить | ln -s | В Unix каталог может не иметь нескольких ссылок, поэтому вместо этого
символическая ссылка должна быть создана с помощью ln -s . |
ассоциированный | файл | |
при | при | См. Также schtasks. |
атрибут | chown | Устанавливает право собственности на файлы и каталоги |
CD | CD | В Windows cd печатает только текущий каталог, но на
Только Unix cd возвращает пользователя в его домашний каталог. |
CD | pwd | В Windows только cd распечатывает текущий каталог. |
чкдск | fsck | Проверяет файловую систему и устраняет повреждения файловой системы на жестких дисках. |
класс | прозрачный | Очистить экран терминала |
копия | сп | |
дата | дата | Дата в Unix печатает текущую дату и
время. Дата и время в Windows распечатать
дату и время соответственно, а также запросить новую дату или время. |
дель | п.м. | |
треугольник | rm -r | Рекурсивно удаляет все дерево каталогов |
директор | лс | «dir» также работает в некоторых версиях Unix. |
doskey / ч | история | История Unix является частью оболочки Bash. |
редактировать | vi | edit вызывает простой текстовый редактор в Windows. В Unix,
переменная окружения РЕДАКТОР должна быть установлена на
предпочтительный редактор пользователя. |
выход | выход | В Unix одновременное нажатие клавиши управления и D регистрирует пользователя из скорлупы. |
исследователь | наутилус | Команда explorer открывает файловый браузер на
Windows. |
FC | дифференциал | |
найти | grep | |
ftp | ftp | |
справка | человек | «help» сама по себе печатает все команды |
имя хоста | имя хоста | |
ipconfig / все | ifconfig -a | Параметр / all позволяет получить MAC-адрес ПК с Windows |
мем | верх | Показывает статус системы |
мкдир | мкдир | |
пр. | больше | |
переместить | мв | |
чистая сессия | w | |
чистая статистика | время безотказной работы | |
nslookup | nslookup | |
пинг | пинг | |
печать | лпр | Отправьте файл на принтер. |
перезагрузка | выключение -r | |
regedit | редактировать / etc / * | Unix-эквивалентом реестра Windows являются файлы в / etc и / usr / local / etc . Они отредактированы
с помощью текстового редактора, а не специальной программы редактирования. |
rmdir | rmdir | |
об / с | rm -r | Windows имеет приглашение «да / нет».Чтобы получить подсказку с Unix, используйте rm
-i . i означает «интерактивный». |
счёта | при | |
комплект | ок. | |
комплект Путь | echo $ PATH | Распечатайте значение переменной среды, используя , набор в
Windows. |
отключение | отключение | Без опции версия для Windows выдает справочное сообщение |
остановка -s | выключение -h | Также необходим параметр -f для Windows при удаленном входе в систему |
сорт | сорт | |
начало | и | В Unix, чтобы запустить задание в фоновом режиме, используйте команду & .В Windows эквивалент start
команда . См. Раздел Как запустить команду Windows в качестве фонового задания, например Unix ?. |
системная информация | uname -a | |
список задач | л.с. | «Список задач» недоступен в некоторых версиях Windows. Видеть также эта статья о получение списка процессов в Windows с помощью Perl |
титул | ? | В Unix изменение заголовка окна терминала возможно, но сложно.Выполните поиск по запросу «изменить название xterm». |
tracert | traceroute | |
дерево | найти | В Windows используйте дерево | найти «строку» |
тип | кот | |
версия | uname -a | |
xcopy | cp -R | Рекурсивное копирование дерева каталогов |
Список команд FTP для Windows
FTP (протокол передачи файлов) — это стандартный сетевой протокол, используемый для обмена файлами между компьютерами в частной сети или через Интернет.
Существует три основных способа доступа к FTP:
- FTP-клиент из командной строки.
- Веб-браузер.
- Графические клиенты FTP.
Первые два — это простые методы, которые позволяют напрямую использовать веб-браузер (например, Google Chrome, Firefox, Internet Explorer) или клиентское приложение FTP (например, FTP Voyager ® ) для подключения к FTP-серверу для обмена файлы.Используя интерфейс командной строки, вам необходимо ввести набор команд для отправки или получения файлов с других компьютеров.
Операционные системы Windows, Mac OS X и Linux имеют встроенные клиенты командной строки, которые можно использовать для установления FTP-соединения. Чтобы инициировать FTP-соединение из Windows, введите ftp в командной строке и нажмите клавишу ВВОД.
Вот список наиболее часто используемых команд FTP в командной строке Windows.
Команды FTP для командной строки WindowsКоманда FTP | Описание команды |
---|---|
! | Эта команда переключает между операционной системой и ftp.Вернувшись в операционную систему, набрав exit, вы вернетесь в командную строку FTP. |
? | Открывает экран справки. |
добавить | Добавить текст в локальный файл. |
ascii | Перейти в режим передачи ASCII. |
звонок | Включает или выключает режим звонка. |
двоичный | Переключает в режим двоичной передачи. |
до свидания | Выход из FTP. |
CD | Изменяет каталог. |
закрыть | Выход из FTP. |
удалить | Удаляет файл. |
отладка | Включает или выключает отладку. |
дирек | Выводит список файлов, если они подключены. dir -C = перечисляет файлы в широком формате. dir -1 = Список файлов в голом формате в алфавитном порядке. dir -r = Выводит список каталогов в обратном алфавитном порядке. dir -R = Список всех файлов в текущем каталоге и подкаталогах. dir -S = Список файлов в голом формате в алфавитном порядке. |
разъединитель | Выход из FTP. |
получить | Получить файл с удаленного компьютера. |
глобус | Включает или отключает глобальное отображение. При выключении имя файла в командах put и get воспринимается буквально, и символы подстановки не просматриваются. |
хэш | Включает или отключает печать решетки.При включении для каждых 1024 байтов полученных данных отображается решетка (#). |
справка | Открывает экран справки и отображает информацию о команде, если команда вводится после справки. |
ЖК | Отображает локальный каталог, если он введен отдельно или если путь, введенный после lcd, изменит локальный каталог. |
буквальный | Посылает буквальную команду подключенному компьютеру с ожидаемым однострочным ответом. |
лс | Список файлов удаленного компьютера. |
удалить | Множественное удаление. |
мдир | Показывает содержимое нескольких удаленных каталогов. |
mget | Получите несколько файлов. |
мкдир | Сделать каталог. |
мл | Показывает содержимое нескольких удаленных каталогов. |
мп | Отправить несколько файлов. |
открытый | Открывает адрес. |
подсказка | Включает или отключает подсказку. |
положить | Отправьте один файл. |
pwd | Распечатать рабочий каталог. |
бросить | Выход из FTP. |
цитата | То же, что и буквальная команда. |
возврат | Получить файл. |
удаленная помощь | Получите помощь от удаленного сервера. |
переименовать | Переименовывает файл. |
rmdir | Удаляет каталог на удаленном компьютере. |
отправить | Отправить отдельный файл. |
статус | Показывает состояние текущих включенных и отключенных опций. |
след | Включает отслеживание пакетов. |
Тип | Установите тип передачи файла. |
пользователь | Отправить информацию о новом пользователе. |
подробный | Включает или отключает подробный отчет. |
Параметры командной строки (также известные как параметры, флаги или переключатели) используются для изменения работы команды FTP.Параметр командной строки обычно следует за основной командой FTP после пробела. Вот список наиболее часто используемых параметров командной строки FTP для Windows.
Параметр командной строки | Описание команды |
---|---|
-v | Подавляет подробное отображение ответов удаленного сервера. |
-н | Подавляет автоматический вход при первом подключении. |
-i | Отключает интерактивные запросы при передаче нескольких файлов. |
-d | Включает отладку, отображая все команды ftp, передаваемые между клиентом и сервером. |
-g | Отключает подстановку имен файлов, что разрешает использование подстановочных знаков в именах локальных файлов и путей. |
-s: имя_файла | Задает текстовый файл, содержащий команды ftp; команды запускаются автоматически после запуска ftp.В этом параметре нельзя использовать пробелы. Используйте этот переключатель вместо перенаправления (>). |
-a | Используйте любой локальный интерфейс при привязке соединения для передачи данных. |
-w: размер окна | Заменяет размер буфера передачи по умолчанию, равный 4096. |
компьютер | Задает имя компьютера или IP-адрес удаленного компьютера, к которому нужно подключиться.Компьютер, если он указан, должен быть последним параметром в строке. |
Учитывая наличие множества графических FTP-клиентов, текстовый FTP-клиент, встроенный в операционные системы Windows и Mac OS X, является надежным инструментом для тестирования и устранения неполадок. Изучение этих команд поможет вам обмениваться файлами между компьютерами без установки дополнительного программного обеспечения.
FTP сам по себе не является надежным способом обмена конфиденциальной деловой информацией, поскольку он подвержен атакам на безопасность.Из-за ограничений FTP организации обычно используют протоколы FTPS и SFTP для передачи файлов. Технология управляемой передачи файлов (MFT) поддерживает эти протоколы с высоким уровнем безопасности и заменяет базовый FTP и другие специальные решения для передачи файлов. Serv-U ® MFT Server — это программное обеспечение корпоративного уровня, которое обеспечивает комплексную безопасность, автоматизацию и централизованный контроль над передачей файлов в организации. Его широко предпочитают ведущие компании из-за его высокой безопасности, гибкости и простого в использовании интерфейса.Используя Serv-U MFT Server, вы можете осуществлять безопасную передачу файлов с использованием SFTP, FTPS и HTTPS по сетям IPv4 и IPv6.
Чтобы просмотреть список часто используемых команд FTP для Linux и UNIX, щелкните здесь.
.