Как начать пользоваться «командная строка Windows»? • Android +1
В этой статье я расскажу вам о командной строке Windows, для чего она нужна в современной операционной системе. Расскажу о базовых командах командной строки Windows, а также затрону тему о скриптах BAT, они же CMD.
Несмотря на то, что на дворе уже далеко не 80-ые или 90-ые года, во многих операционных системах, в том числе и Windows есть командная строка или терминал. Для чего она нужна? Ведь есть удобный графический интерфейс, с помощью которого можно легко и просто все выполнить.
С одной стороны, это так, но с другой, есть еще множество утилит, которые работают из командной строки, например, adb или fastboot Android, а также можно создавать специальные скрипты, которые позволят существенно, очень существенно, ускорить и упростить работу в Windows.
Как запустить командную строку на Windows
Для того, чтобы начать работать с командной строкой на Windows, необходимо для начала ее найти. В Windows 7 и Windows 10 это можно сделать несколькими популярными способами.
Способ 1. Нажимаем комбинацию клавиш на клавиатуре «Win» «R»
и в окне Выполнить пишем команду cmd
После чего будет запущена командная строка Windows.
Способ 2. В пуске написать команду CMD или «командная строка» и выбрать иконку программу.
Если необходим запуск от имени администратора, сделать клик правой кнопкой мыши по файлу cmd и выбрать «Запуск от имени администратора».
Как работать с командной строкой Windows?
Чтобы вывести весь список команд в cmd напишите команду «HELP» чтобы вывести весь список команд.
Сомневаюсь, что вам это сильно поможет в самом начале освоения командной строки, поэтому лучше что-то разобрать на примере.
Давайте создадим пустой файл в какой-то папке. Для этого вам будет необходимо выполнить следующие действия:
- Понять где вы находитесь, после запуска командной строки
- Перейти в необходимую папку
- Создать файл
После запуска CMD, вы автоматически оказываетесь в папке C:\WINDOWS\system32>
Контролировать местоположение, где вы находитесь, вам поможет информация слева, до мерцающего курсора, отображая расположение папки.
Для того, чтобы перемещаться между папками существует команда CD.Для перехода в корень диска С:\ вам понадобиться набрать команду:
cd С:\
Если вы находитесь рядом с той папкой что вам необходима, то можете написать ее название.
Например, я уже в корне диска С:\ и мне необходимо перейти в папку adb_run, то я пишу команду:
cd adb_run
Чтобы узнать о том какие рядом папки есть, мне поможет команда dir.
Если же мне из папки С:\adb_run\
необходимо перейти в папку C:\WINDOWS\system32>
мне придется писать весь полный путь:
cd C:\WINDOWS\system32
Чтобы быстрей писать путь лучше использовать кнопку TAB, которая до заполняет название папок.
То есть чтобы мне перейти в папку C:\WINDOWS\system32
я писал команду так:
cd C:\Win кнопка TAB system3 кнопка TAB
И мне не пришлось печатать много букв, сработало автозаполнение.
Для того, чтобы мне выйти из папки system32 (C:\WINDOWS\system32
) в папку Windows необходимо набрать команду cd..
Как вы поняли, команда cd .. — это аналог кнопки «назад», точней перейти на папку выше.
Для особо ленивых можно набрать команду cd, пробел, и в заголовке окна скопировать адрес папки и вставить в командную строку и нажать «Enter».
Надеюсь вы разобрались, теперь я создам папку в корне диска С:\ с помощью команды mkdir. Если я только что запустил командную строку, то это будет выглядеть так:
cd C:\ mkdir Hello
То есть, я сначала перешел в диск C, а потом создал папку Hello. Можно было сделать так:
mkdir C:\Hello
Я не стал переходить куда мне нужно, а сразу указал путь, где необходимо создать папку.
Проверяем создалась ли папка с помощью команды dir, и да, у меня все получилось!
Предположим в папке что мы создали Hello есть консольная утилита adb.exe. Как ее запустить?
Очень просто!
Переходим в папку Hello
cd C:\Hello
убеждаемся что adb.exe находиться в этой папке
dir
и запускаем adb
adb.exe
Если я вдруг захочу удалить файл adb.exe мне придется набрать команду del:
del adb.exe
Если я нахожусь в папке Hello.
Или же:
del C:\Hello\adb.exe
Если в любой другой папке.
Только что я вам рассказал о базовой работе c командной строкой Windows. Возможно, вам показалось это весьма долгим и унылым занятием, но в ближайшем будущем я вас научу составлять скрипты, так называемые «батники», которые взаимодействуют с cmd и существенно ускорят работу за компьютером или автоматизирует некоторые действия!
У вас еще остались дополнительные вопросы? Задавайте их в комментариях, рассказывайте о том, что у вас получилось или наоборот!
Вот и все! Оставайтесь вместе с сайтом Android +1, дальше будет еще интересней! Больше статей и инструкций читайте в разделе Статьи и Хаки Windows
Командная строка — Основы командной строки
Основы командной строкиДля работы с командной строкой понадобятся две вещи:
- Терминал
- Командный интерпретатор
Терминал
Терминалом называют программу, которая эмулирует поведение «железного» терминала, состоящего из клавиатуры и монитора. В простейшем случае — это просто окошко с командной строкой внутри. Хороший терминал всё же не ограничивается одним окном, а позволяет открывать новые терминалы в табах — по такому же принципу, как работают вкладки в браузере. Такая функция есть в терминалах, идущих в составе Ubuntu и macOS. Терминал Windows не умеет ровным счётом ничего и нуждается в замене.
Некоторые терминалы позволяют делать сплиты
Хорошие терминалы также умеют восстанавливать завершённую сессию, создавать профили под разные задачи и многое другое.
Командный интерпретатор
У этого понятия множество синонимов, среди них shell («шелл»), командная оболочка и командный процессор. Командная оболочка — программа, через которую происходит управление операционной системой и установленными программами, используя командную строку. Оболочка отличается от большинства других программ тем, что она является лишь средством для выполнения определённых задач, а не самой задачей. Shell запускается внутри терминала и приглашает к вводу команд.
~$ █
Каждая строка, передаваемая пользователем системе — это команда, которую та должна выполнить. После ввода команды обязательно нажать Enter, только в этом случае она отправится на исполнение. До этого момента её можно редактировать.
Символ $
используется как разделитель. Слева от него — настраиваемое сообщение для вывода, обычно текущая директория, а справа — то, что вводится пользователем. Ниже пример использования команды date
, которая выводит текущую дату.
$ date
Sun Aug 26 14:02:59 CEST 2018
$ █
Другой пример команды — комментарии. Как и в любых языках программирования, они ни на что не влияют, но я ими буду пользоваться в дальнейшем, для описания происходящего:
$ # я комментарий
$ █
Командная оболочка позволяет запускать на выполнение установленные программы, но это далеко не всё, на что она способна. Для комфортной работы полезно иметь автозавершение имён программ, файлов, историю введённых команд, возможность перемещаться по файловой системе, удобные горячие клавиши, поддержку скриптов. Далее по курсу мы раскроем многие из этих аспектов. Командные оболочки, как и терминалы, бывают разные, хотя по умолчанию в большинстве операционных систем стоит Bash.
Командная оболочка и терминал — не одно и то же. Терминал — это программа, которая запускает командную оболочку внутри себя.
Как вы увидите далее, shell
— это полноценная среда программирования, а многие команды являются стандартными конструкциями любого языка программирования, такими как переменные, циклы или условия. Кроме того, некоторые команды являются программами, а некоторые — нет. В ближайших уроках для простоты я буду говорить слово «команда», но потом объясню разницу
Командную оболочку нередко называют реплом (REPL, Read-Eval-Print-Loop), что отражается в способе взаимодействия с пользователем:
- Read — шелл ждёт ввода команды от пользователя
- Eval — шелл исполняет введённую команду
- Print — шелл выводит результат
- Loop — возвращаемся к первому пункту
Этот процесс называется интерактивной сессией: после загрузки шелл ждёт ввода команды, затем он её исполняет, выводит результат и снова ждёт ввода команды. Так происходит до тех пор, пока не будет дана команда на выход из терминала или выключение компьютера. REPL — широко распространённый способ взаимодействия с пользователем. В следующих курсах вы увидите, что он есть и у баз данных, и у языков программирования.
Для вашего удобства, в среде Хекслета сразу запущено два терминала, которыми можно и нужно пользоваться, выполняя упражнения к урокам. Терминалы доступны в нижних вкладках (там, где описание задачи) под именами Terminal 1 и Terminal 2.
Во время изучения и экспериментов достаточно легко допустить ошибки. Всегда внимательно читайте вывод, в случае паники переоткройте терминал. Это позволит начать всё с чистого листа (если, конечно, не было произведено деструктивных действий).
Самостоятельная работа
Установите хороший терминал под вашу операционную систему, если его нет.
Убедитесь, что внутри запускается bash-сессия. Сделать это можно так:
$ echo $SHELL; /bin/bash # - это вывод команды, введённой выше
Дополнительные материалы
- Руководство по настройке Windows для работы в командной строке
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты.
Ошибки, сложный материал, вопросы >Нашли опечатку или неточность?
Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.
Что-то не получается или материал кажется сложным?
Загляните в раздел «Обсуждение»:
- задайте вопрос. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
- расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
- изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
Об обучении на Хекслете
Как пользоваться командной строкой в Windows – работа с файлами и папками
Все мы уже давно привыкли к графическому интерфейсу – повсюду окошки, все действия осуществляются при помощи графических кнопок, иконки позволяют запускать программы на исполнение. Даже для таких простейших операций, как создание файла или каталога, ничего не нужно делать руками, — все доступно через пиктограммы: нажал кнопочку – вот файл и создан. Особые знания при этом не нужны, все происходит абсолютно интуитивно и просто. В далекие 90-е, когда эпоха Windows находилась еще на заре своего развития, все действия с компьютером осуществлялись через консоль. Никаких графических объектов не было и в помине. Хочешь скопировать файл – будь добр, введи текстовую команду. Хочешь перейти в другой каталог – изволь написать специальный запрос. Те времена уже давно канули в лету, но даже сейчас консольный режим иногда бывает жизненно необходим (например, когда вы не можете загрузить операционную систему, и приходится реанимировать дееспособность ОС через командную строку). Так, с тех давних пор до нашего времени перекочевал режим командной строки – обычная консоль со строкой приглашения и немалым списком команд, доступных пользователю для ввода. В ряде случаев (например, настройки некоторых программ – кодека LAME, эмулятора ОС DOS DosBox и др.) без режима командной строки никак не обойтись, поскольку графический режим в этих программах и в некоторых других обстоятельствах попросту не доступен. Все команды приходится вводить руками, и без знания доступных команд, в общем-то «каши и не сваришь». Сегодня мы поговорим о том, как пользоваться командной строкой в ОС Windows, что это за режим, и какие команды в нем можно вводить.
Как зайти в режим командной строки?
Чтобы запустить режим командной строки, достаточно нажатия последовательности клавиш “Win+R” и ввода команды cmd.
Также можно нажать правую клавишу мыши на стартовой кнопке «Пуск» и выбрать в появившемся меню опцию «Командная строка». Иногда некоторые команды для ввода недоступны, и придется запустить консоль в режиме администратора. Это так же можно сделать, выбрав в том же самом меню пункт «Командная строка (администратор)».
Итак, мы зашли в режим CMD. Как пользоваться командной строкой? Перед нами появилась строчка, где указана версия инсталлированной на ПК ОС Виндоус. Чуть ниже указан текущий каталог, и далее мы видим мигающий курсор. Эта строка получила название строки приглашения, и именно здесь можно вводить команды.
Какие команды доступны для ввода?
Командная строка в Windows – прекрасный инструмент для администрирования, и научиться пользоваться им не составит большого труда. Одна из самых простых команд, которые обязательно нужно знать – это dir. Данная команда служит для вывода на экран списка объектов (т.е., файлов и папок), находящихся в текущем каталоге. Попробуйте ее ввести и после ввода нажмите клавишу Enter.
Примечание. После ввода каждой из команд необходимо каждый раз вводить клавишу Enter. Больше мы об этом говорить не будем, просто запомните это простое правило: ввели команду – нажмите Enter.
На экране появится содержимое текущей папки, предваренное указанием метки активного тома и серийным номером.
Если содержимое папки умещается на экране (как в нашем примере), все отлично. Но что делать, если список слишком велик, и попросту не помещается на экране? Дабы не скроллить перечень с содержимым активной папки каждый раз, введите команду dir с ключом /p: вот так – dir<пробел>/p. В этом случае содержимое разобьется на группы размером с одну страницу, и вы сможете удобно просмотреть нужный вам перечень.
Теперь поговорим о навигации по структуре жесткого диска. Допустим вы находитесь в каталоге, где хранятся объекты, предназначенные для текущей учетной записи (в моем случае, G Goter), и который в свою очередь хранится в папке Users. Введем команду dir, чтобы посмотреть, какие каталоги и файлы хранятся в нем.
Как видим, одна из папок, находящихся в каталоге G Goter – это Downloads. Перейдем в нее из текущего каталога. Для этого введем команду cd<пробел>downloads (чтобы было легче запомнить, cd – означает change directory). Заглавную букву можем опустить, используя вместо этого прописную. В системе Windows названия всех файлов и папок являются регистронезависимыми. Что мы получили в итоге? В результате мы переместились в каталог Downloads. Как это можно проверить? Если присмотреться, то внешний вид строки приглашения изменился, а именно изменился путь. Теперь в конце активного пути добавилось название новой текущей папки – Downloads, которая хранится в каталоге G Goter.
Если у вас все получилось, попробуем вернуться обратно в папку G Goter. Чтобы перейти в надкаталог, введем команду cd… (то есть, после ключевого запроса cd введем две точки без пробела). Эта несложная команда используется для перехода в надкаталог.
Еще один ключ, доступный для команды cd, — это значок «бэк-слэш». В результате, вводимая команда будет иметь следующий вид: cd<пробел>\
После ввода этой команды мы попадаем в корневой каталог текущего диска (в нашем случае, диска C). Того же самого можно достичь путем ввода нескольких команд cd…, но согласитесь – так намного быстрее, не правда ли?
Теперь о том, как создавать и удалять папки. Для создания новой папки используйте команду md, что является сокращением выражения make directory. Выполняется команда следующим образом: md<пробел><имя новой папки>. Чтобы проверить, был ли создан новый каталог, или нет, снова примените команду dir.
Аналогичным образом работает команда rd: rd<пробел><имя удаляемой папки>. Прежде, чем удалять папку таким способом, стоит очистить ее содержимое, поскольку с помощью команды rd можно удалять только пустые папки.
Все приведенные команды командной строки работают безотказно и практически в любых ситуациях, так что знать их весьма полезно.
Как работать с файлами в командной строке?
Первая команда, с которой мы хотели бы вас познакомить, — это copy. Как пользоваться командной строкой, используя этот запрос? С его помощью можно скопировать один или несколько файлов в другое местоназначение. Как работает эта команда? Переходим в тот каталог, где хранится исходный файл или группа файлов. В нашем случае этот папка downloads, доступная по следующему пути: C:\Users\G Goter\Downloads. С помощью команды dir убедимся, что она не пустая. С помощью команды copy скопируем файл с именем «описание.docx» в нашу ново-созданную папку test.
Пишем следующий запрос: copy описание.docx “c:\users\g goter\test” (еще раз напомним, что мы находимся в папке Downloads на диске C:). Разберем эту команду: в качестве первого параметра используется названия файла или папки, которую вы хотите скопировать. Второй параметр – это результирующий каталог, то есть название той папки, куда мы хотим скопировать указанный объект. Как вы можете заметить, при указании названия результирующей папки используется двоеточие. Для чего оно тут? Вся суть в том, что в одном из названий папок встречается «пробел» (g goter), поэтому я выделил путь к этой папке двойными кавычками. Если все было выполнено правильно, после ввода команды появится текстовое подтверждение того, что файл был скопирован.
Чтобы лишний раз убедиться в том, что копируемый файл оказался в нужной папке, перейдем в каталог test и проверим его содержимое.
Для перемещения файла из одной папки в другую служит команда move. Переместим файл описание.docx из папки test в новую папку test2. Прежде, чем перемещать файл создадим новый каталог test2 в папке C:\users\g goter. В итоге путь новой папки test2 будет иметь следующий вид: C:\users\g goter\test2. Наконец, когда папка будет создана, приступаем к перемещению файла. Как видите, в конце последнего запроса появилось подтверждение того, что файл перемещен.
Для того, чтобы удалить файл или несколько файлов, применяется команда del. Работает она очень просто: del <имя файла> <имя файла> и т.д. В качестве опциональных ключей можно использовать параметры /P (подтверждение перед удалением каждого из файлов) и /S (удаление выбранных файлов из всех подпапок). Указывать эти параметры следует перед именами файлов, т.е. так: del /P <имя файла>. Для удаления файла «описание.docx» из папки test2 можно использовать команду del вот в таком виде: del <пробел> описание.docx
Запросы dir помогают узнать содержимое папки. В первом случае, файл «описание.docx» в папке был, во втором – уже нет.
Если вам нужно удалить сразу несколько файлов можете описать их по порядку через пробел в самой команде, но лучший способ – использовать маску. К примеру, del *.docx приведет к удалению всех файлов в каталоге с расширением .docx, а запрос del *.* удалит все файлы без исключения в заданном каталоге. Пример использования такого запроса показан на следующем рисунке:
Мало кто знает, что в консоли можно создавать даже новые текстовые файлы. Как пользоваться командной строкой для их создания? Перейдем в папку test2 и создадим в ней файл sometext.txt. Для создания текстового файла используется команда copy с ключом con. Конечный запрос будет иметь вид: copy con sometext.txt. После ввода этой команды мы переходим в режим ввода текста. Введите нужный вам текст. Когда ввод будет окончен, для завершения нажмите клавишу F6. Это послужит интерпретатору сигналом о завершении процедуры наполнения файла.
Для вывода содержимого текстового файла на экран используется ключевое слово type.
Такой способ создания текстовых файлов весьма непрезентабелен. Конечно же, в «Блокноте» это сделать гораздо удобнее, но такая возможность все же имеется, и мы не могли обойти ее стороной.
Разумеется, в командной строке Windows имеется еще масса других возможностей. В качестве наглядного пособия используйте команду help. Она поможет вам узнать все основные доступные команды и послужит как справочный материал.
Наша инструкция, как пользоваться командной строкой в Windows подходит к завершению. Режим командной строки до сих пор много где используется. К примеру, при администрировании веб-сервера на ОС Unix или Linux без графического GUI, при настройке ПК на базе одной из этих систем, и даже в нескольких программах на базе Windows. Эти знания вам обязательно когда-нибудь пригодятся, и помните, что графический интерфейс – это всего лишь каркас консольного режима. Как бы стар он ни был, он всегда найдет свое место в среде использовании персонального компьютера.
Как выполнить Linux команду из Windows
Если вы иногда все же используете операционную систему от Microsoft, вам, наверное, очень нужны некоторые утилиты Linux в windows. Было бы очень удобно использовать стандартные утилиты командной строки для фильтрации вывода, сортировки, фильтрации и потокового редактирования, в Windows, где такие функции не поддерживаются.
Для реализации этого есть несколько решений. В этой статье мы рассмотрим только два из них. Первое, о котором вы, возможно, уже слышали, а может, уже и используете — Cygwin. Второе, нечто более интересное и новое — Cash. Начнем с Cygwin. В последней версии Windows 10 появилось и третье решение — возможность запускать linux команды в windows нативно, с помощью специальной подсистемы. Об этом читайте в отдельной статье.
Содержание статьи:
Cygwin
Cygwin — это набор инструментов, обеспечивающий Unix подобную среду в Windows. Здесь нельзя запускать уже существующие утилиты для Linux. Для того чтобы выполнить linux команду из Windows Cygwin, ее нужно сначала перекомпилировать.
Тем не менее пересобрано уже достаточно много программного обеспечения. Cygwin даст вам Linux подобную среду со многими утилитами, к которым вы уже привыкли в Linux. Его можно использовать как для стандартных утилит таких как команда cp windows, так и для подключения к удаленному серверу по ssh.
Установка Cygwin
Как и другие программы Windows, Cygwin устанавливается с помощью установщика в формате .exe. Скачать его можно на официальном сайте.
Для установки вам придется пройти несколько шагов мастера, по умолчанию программа будет установлена в C:\Cygwin:
С установочным пакетом не поставляется полный набор окружения. Оно будет загружено в процессе установки. В этом окне нужно выбрать сервер для загрузки компонентов:
Затем необходимо выбрать пакеты, которые нужно загрузить и установить. Доступно довольно-таки много программ и они рассортированы по категориям. Если вы не знаете нужен ли вам тот или иной пакет, оставьте значение по умолчанию. Вы сможете установить их потом:
Осталось только нажать Next для начала загрузки и завершения установки.
Добавление Cygwin в Path
После завершения установки, чтобы выполнить команды linux в windows с максимальным удобством, желательно добавить папку с исполняемыми файлами Cygwin в переменную среды Path.
Вы можете запустить терминал Cygwin, кликнув по ярлыку на рабочем столе. Откроется терминал с папкой C:\Cygwin\bin
Здесь можно выполнять все нужные linux команды в windows, но вы не сможете их выполнить в другой директории или другом терминале.
Чтобы решить эту проблему, необходимо добавить папку Cygwin в переменную Path. Откройте окно свойства системы с помощью сочетания клавиш Win+Pause/Break, затем выберите пункт Дополнительные параметры системы на левой панели:
На вкладке дополнительно выберите Переменные среды:
Найдите в списке переменную Path и нажмите Изменить:
Добавьте в конец строки вот такую запись:
;C:\Cygwin\bin
Обратите внимание, что все пути должны быть разделены точкой с запятой. Осталось нажать Ок и тестировать выполнение Linux команд в Windows.
Cash
Это кое-что совсем новое. Утилита с открытым исходным кодом Cash, это кроссплатформенная реализация командной оболочки Linux на JavaScript. Цель этого проекта обеспечить более гибкую, простую альтернативу Cygwin, для тех кто хочет чувствовать себя в WIndows, как и в Linux.
Установив Cash, вы сможете выполнить linux команду из windows в любом эмуляторе терминала, в том числе в стандартной командной строке Windows.
На данный момент поддерживаются только некоторые утилиты linux для windows. Вот список поддерживаемых:
- alias
- cat
- clear
- cd
- cp
- echo
- export
- false
- grep
- head
- kill
- less
- ls
- mkdir
- mv
- pwd
- rm
- sort
- source
- tail
- touch
- true
- unalias
Так как утилита еще находится на стадии разработки, то список команд Linux в Windows будет постоянно увеличиваться. Вы также можете проголосовать за добавление команд которые вам нужны.
Вот как все работает:
Что самое интересное, вы можете комбинировать Windows и Linux команды. Например, вы можете выполнить:
ipconfig | grep IPv4 | sort
И команда правильно отработает. Сначала выполнится ipconfig, а затем результат будет отфильтрован с помощью Grep.
Установка Cash в Windows
Я буду устанавливать Cash в Windows 10. Это делается очень просто и работает также в более старых версиях Windows. Поскольку Cash основан на JavaScript для его работы необходимо установить Node.js. Скачать Node.js можно на официальном сайте.
После того как Node.js Будет установлена, можно переходить к установке Cash. Его можно установить в нескольких режимах:
- Ручное использование Cash — нужно выполнить cash чтобы начать запускать linux команды
- Глобальное использование — linux команды доступны во всех терминалах windows
- Установить только некоторые команды — вы можете выбрать компоненты для установки если не хотите ставить все
Для установки Cash глобально откройте командную строку Windows с помощью Win+R:
npm install cash-global -g
Установка может занять несколько минут, в зависимости от скорости вашего интернет-соединения. После завершения установки вы можете сразу тестировать Linux команды в Windows.
Выводы
Как я уже говорил, проект Cash еще на стадии разработки и есть вероятность что вы столкнетесь с ошибками. Не забудьте сообщить о найденных ошибках разработчикам, чтобы помочь улучшить проект. Если для вас критична стабильность лучше использовать старый добрый Cygwin.
Нам, пользователям Linux нечасто понадобиться использование unix команд в windows и такие инструменты . Мы можем использовать Linux команды напрямую в нашей системе. Но если вы по каким-либо причинам не можете установить Linux, и все же хотите использовать linux команды, это может быть отличным решением.
Как отключить командную строку и «Выполнить» в Windows
Командная строка и “Выполнить” являются довольно мощными инструментами в Windows, а также в некоторых случаях опасными в чужих руках. Если компьютер используется не только вами, и на нём созданы другие пользователи – им можно запретить пользоваться командной строкой и “Выполнить”.
Запустить командную строку очень просто, также стоит нажать клавиши Win+R и откроется “Выполнить”. Причин для закрытия доступа к данным инструментам очень много, и придумывать их в этой статье мы не будем, а лучше опишем как запретить доступ к ним.
Отключить командную строку и “Выполнить” с помощью групповых политик
Первый способ отключить данные инструменты – это воспользоваться групповыми политиками. Но есть одно “но” – в домашних версиях Windows групповых политик нет, и если у вас система домашняя – перейдите к следующему способу, описанному ниже.
Если запустить просто групповые политики и сделать изменения – они коснуться и пользователя под которым вы вошли в систему. Но если вы хотите запретить доступ к командной строке и к “Выполнить” другим созданным пользователям на этом компьютере – для начала нужно создать оснастку в консоли Майкрософт. То есть вы запускаете через выполнить mmc.exe, добавляете оснастку редактора групповых политик для нужного пользователя и начинаете выставлять для него правила жизни 🙂
Создайте оснастку в консоли Майкрософт для пользователей групповые политики которых вы хотите поменять => запустите данную оснастку => в левой панели выберите “Конфигурация пользователя” => Административные шаблоны => Система =>с правой стороны откройте параметр “Запретить использование командной строки”
Поставьте галочку в поле “Включен” и нажмите на “ОК”. Существует возможность отключить выполнение сценариев в командной строке. Выбрав из выпадающего меню “Да” – пользователи не смогут запускать скрипты и командные файлы.
Теперь нужно запретить доступ к “Выполнить”, заходим в этой же оснастке в “Конфигурация пользователя” => Административные шаблоны => Меню “Пуск” и панель задач => с правой стороны открываем “Удалить команду “Выполнить” из меню “Пуск”
Поставьте галочку в “Включено” и нажмите “ОК”
Всё, теперь зайдя под тем пользователям для которого вы внесли изменения вы не сможете запустить командную строку и “Выполнить”, если вы попробуете это сделать вам высветит ошибку.
Отключить командную строку и “Выполнить” с помощью реестра
Если у вас домашняя версия Windows, то групповые политики вам недоступны и придется вносить изменения в реестре. Для начала рекомендуем сделать резервную копию реестра, или сделать точку восстановления Windows.
Вам нужно зайти в систему под пользователем для которого вы хотите сделать ограничения! В строке поиска введите regedit и откройте редактор реестра, или откройте “Выполнить” с помощью клавиш Win+R и введите команду regedit.
Перейдите к следующему разделу HKEY_CURRENT_USER \ Software \ Policies \ Microsoft \ Windows \ System
Теперь с правой стороны нужно создать новый параметр, нажимаем правой клавишей мыши и выбираем “Создать” => Параметр Dword (32 бита)
назовите его DisableCMD
Откройте новый параметр двойным щелчком мыши и введите значение 1, после чего нажмите “ОК”.
Таким способом мы отключили командную строку, осталось отключить “Выполнить”, в том же редакторе реестра переходим по пути HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer
Если в Policies нет раздела Explorer – нажмите на Policies правой клавишей мыши => Создать => Раздел => назовите его Explorer. Потом зайдите в раздел Explorer и с правой стороны создайте параметр Dword (32 бита) (правой клавишей мыши – создать) и назовите его NoRun
Теперь откройте данный параметр и установите значение 1, после чего нажмите “ОК”.
Теперь перезагрузите компьютер, войдите под тем пользователем для которого вы ввели запреты и попробуйте запустить командную строку или “Выполнить”. Чтобы вернуть по надобности этому пользователю доступы – нужно зайти в те же разделы и в параметрах вместо 1 поставьте 0.
На сегодня всё, если есть дополнения или знаете другие способы – пишите комментарии! Удачи Вам 🙂
Тяжкое наследие прошлого. Проблемы командной строки 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 и глифов, которые нуждаются в соединительных символах нулевой ширины
В следующих нескольких статьях этой серии мы более подробно разберём консоль и обсудим решение этих проблем… и не только!
Как всегда, следите за обновлениями.
Управление сетью
Командная строка Windows
Командная строка Windows является устрашающей темой для некоторых системных администраторов. Многие им не пользуются, или пользуются ограниченным количеством команд. В сравнении с графическим интерфейсом Windows командная среда может выглядеть несколько старомодно, но она играет очень важную роль в системном администрировании. Мастерство владения командной строкой, умение писать командные файлы будет несомненным плюсом в администрировании и автоматизации рутинных задач специалистов IT-отдела.
Информация о командной строке Windows
Командная среда — это программный продукт Microsoft, который обеспечивает связь между пользователем компьютера и операционной системой. Оболочка Windows использует интерпретатор cmd.exe и присутствует во всех версиях операционных систем Windows. Многие возможности и функции управления операционной системой недоступны из графического интерфейса и поэтому cmd является единственным средством доступа к этим инструментам.
Отличием работы из cmd является полное отсутствие больших и громоздких графических утилит. Пользовательский интерфейс текстовой строки предоставляет среду, в которой выполняются приложения и служебные программы. Cреда, эмулирующая DOS имеет множество названий, таких как – командная строка, окно, среда и .т.д.
Немного истории про cmd
На первых этапах развития ОС Windows немаловажную роль играло развитие специального интерфейса, способного осуществить контроль пользователем всего программного обеспечения. Это в полной мере стало доступно через командную строку, которая обеспечивала оперативную работу с программами и сетью. Нынешний интерпретатор является полным аналогом Command.com, использующимся в ОС семейства MS-DOS.
Преимущества оболочки Windows — cmd.exe
Для просто обывателя слово «командная строка» звучит без особого смысла и автоматически относится к лексикону профессионалов компьютерного мира, что, по сути, так и есть, так как cmd используют, преимущественно профессионалы. Почему знатоки компьютерного дела чаще выбирают командную строку вместо других, объяснить легко, так как командная среда предоставляет следующие возможности:
- С помощью cmd возможно создание сценариев автоматизации и пакетных файлов, т.е. выполнение одной или нескольких операций без вмешательства пользователя. Это отличный инструмент для создания сценариев, а также вы сможете в полной мере использовать команды для управления реестром. Это значит, что одна или несколько команд будут выполняться без какого-либо вмешательства пользователя. Одним из примеров автоматической работы программного обеспечения служит настройка на автоматическое открытие необходимых вам программ при включении компьютера;
- Управление данными и файлами. Преимущества cmd становятся очевидны, когда требуется выполнять однотипные операции над множеством объектов. Одним из важных преимуществ командной строки является непосредственная возможность управлять файлами и данными. К данным возможностям относятся: копирование, удаление, перемещение и т.д. При этом, не забывайте, что вы можете автоматизировать данный процесс.
- Администрирование компьютера. Быстрое получение текущей информации сокращает время диагностики компьютера.
- Администрирование сети. Многие команды администрирования сети не имеют графических эквивалентов (например – команда ping, pathping, tracert). Cmd очень удобна для контроля сетевой активности. Вы можете создавать службы, запускающиеся при старте оперативной системы, можете использовать команды администрирования сети, не имеющие графических эквивалентов;
- По сравнению со многими другими интерфейсами между пользователем и компьютером имеет текстовую среду вместо графической, что очень полезно в управлении программами, так как экономится значительное количество времени.
Запуск командной строки Windows 10
Если вы задались вопросом «а как открыть командную строку, чтобы начать работать?», то спешу обрадовать, в этом нет ничего трудного. Для того, чтобы командная строка Windows открылась, нажмите кнопку Пуск, далее выберите пункт — Все программы — Стандартные — Командная строка – готово, вы вошли в режим командной строки. Существует несколько вариантов открытия, о которых подробно написано в статье — Запуск командной строки в Windows 10 (некоторые варианты запуска работают и в Windows 7).
Если вас не устраивает внешний вид окна и параметры командной строки, то вы можете легко это исправить. Открыв командную строку, щелкаем правой кнопкой мыши по заголовку окна и, если вы пожелаете изменить параметры окон в командной строке, то щелкните Свойства. Выбрав необходимые вам параметры, подтвердите их, щелкнув кнопкой ОК.
Популярные команды командной строки
Существует целый ряд команд, которые вы можете ввести для выполнения в командной строке. Для получения подробного списка команд, введите в командной строке help, а затем нажмите Enter. Если вас заинтересовала какая-либо команда, и вы желаете узнать о ней больше, введите имя_команды /?. К примеру, ping /?.
Далее рассмотрим самые популярные команды:
- Ping необходима для проверки соединения с другим компьютером;
- Tracert определяет путь прохождения пакетов до указанного ресурса
- Route обрабатывает таблицу сетевых маршрутов;
- Netstat отображает статистику протоколов и активных сетевых подключений;
- Net start используется для запуска служб сервера;
- Net use предназначена для вывода сведений о подключениях компьютера, также является командой подключения к сетевым ресурсам;
- Net stop применяется для остановки функционирования службы сервера и выгрузки данного приложения из памяти;
- Xcopy копирует файлы и папки.
Полный список команд просто огромен, что еще раз подтверждает почти безграничность cmd, показывая её преимущество над другими интерфейсами, связывающими пользователя и компьютер. С каждой из команд более подробно можно будет ознакомиться на нашем сайте cmd4win.ru.
Таким образом, можно сделать вывод о том, что в руках профессионала командная строка может оказаться очень полезным и удобным инструментом, благодаря которому работа в системе Windows облегчается многократно, а для таких профессий, как системный администратор – станет незаменимым помощником в управлении сетью.
Командная строка Windows 10: что это такое и как работает?
Функцию командной строки любят как ИТ-профессионалы, так и компьютерные фанаты. Для непосвященных это мощный инструмент, который позволяет пользователям с легкостью выполнять множество административных задач, хотя для его работы требуются технические знания.
Часто называемый просто CMD, это одна из самых основных функций, которые вы найдете в Windows 10. Ее можно использовать для создания новых ярлыков, которые вы можете закрепить на панели задач или использовать для вызова всех видов. информации о вашем устройстве.Командную строку можно рассматривать как более мощную альтернативу графическому пользовательскому интерфейсу (GUI) на компьютере с Windows 10, причем последний обычно скрывает многие функции или скрывает их под слоями меню.
Такова любовь к командной строке, недавние капитальные ремонты Windows, в которых были визуальные изменения и новые функции, такие как обработка естественного языка (NLP), оставили CMD нетронутым в его первоначальном грубом и готовом виде.
Если вы хотите назвать себя профессионалом или рассказать людям, что вы работаете в «ИТ», то самое время освоить командную строку.
Что такое командная строка?
Как упоминалось выше, командная строка не совсем эстетична, но отчасти поэтому она так узнаваема. Он выглядит и работает как продвинутый инструмент навигации, поэтому люди, не знакомые с ним, могут немного бояться его использовать. Однако небольшое обучение и метод проб и ошибок могут вас преобразовать. Подсказка полезна для выполнения различных команд, таких как автоматизация задач с помощью сценариев или поиск командных файлов. Он также пригодится при устранении проблем, которые могут возникнуть с вашим устройством Windows 10.
Как открыть командную строку?
Есть много разных способов открыть программу, самый простой из которых заключается в том, чтобы просто ввести «командная строка» или «cmd» в строку поиска Windows 10, и это будет лучший результат. Если вам нравятся сочетания клавиш, Windows + X откроет меню опытных пользователей, из которого можно запустить командную строку одним щелчком мыши.
Если вы хотите внести серьезные изменения в вашу систему с помощью командной строки, вам, скорее всего, придется работать от имени администратора.Это можно сделать любым из двух предыдущих методов, щелкнув правой кнопкой мыши значок в поиске или выбрав параметр администратора в меню «Опытные пользователи».
Это также можно сделать через диспетчер задач: просто откройте его, откройте меню «Файл» и нажмите CTRL + щелкните «Запустить новую задачу», чтобы немедленно запустить командную строку от имени администратора.
Связанный ресурсРуководство для ИТ-специалистов по миграции на Windows 10
Все, что вам нужно знать для успешного перехода
Загрузить сейчасКак работает командная строка и зачем ее использовать?
Командная строка работает на более простом уровне, чем Windows, но это не значит, что она неэффективна.Это означает, что вы получаете больший контроль над ПК и более прямую связь с ним. Помимо общих команд (dir, cd, copy, del), его можно использовать для доступа к частям операционной системы, которые недоступны через графический интерфейс пользователя.
Его также можно использовать для выполнения множества функций, иногда его использование является более быстрым или даже единственным способом доступа к определенной информации или функциям.
В дополнение к командам, упомянутым выше (которые показывают списки каталогов файлов, изменяют каталоги файлов, копируют файлы и удаляют их.) Существует ряд других полезных команд, таких как ipconfig (который показывает, какой IP-адрес имеет компьютер), Tracert (который показывает информацию о каждом шаге между компьютером и целевым хостом в другом месте в Интернете, например на веб-сайте) и средство проверки системных файлов (sfc), которое находит поврежденные или отсутствующие файлы и автоматически заменяет их, используя кэшированные копии, хранящиеся в Windows.
А как насчет Windows Powershell?
Командная строка существует всегда, но с Windows 10 Microsoft пытается сделать PowerShell основной командной оболочкой в операционной системе.Это предлагает очень богатый набор команд (называемых командлетами), которые более интегрированы с Windows и большинством продуктов Microsoft. Эти командлеты представляют собой функции, которые существуют внутри скомпилированных библиотек DLL в системе. Его основная цель — заменить не только командную строку, но и командные файлы и сценарии VB.
Зайдите сюда, чтобы познакомиться с различиями между CMD и PowerShell.
Рекомендуемые ресурсыМобильность будущего с поддержкой Edge
Превращение данных о транспортных средствах в ценность
Загрузить сейчасСовременные сети для предприятий без границ
Пять направлений деятельности ведущих организаций оптимизация сети на периферии
Загрузить сейчасУстранение рисков конфигурации нескольких облаков
Проблемы облачной безопасности и способы их преодоления
Смотреть сейчасОбщий экономический эффект от IBM Security Verify
Экономия затрат и преимущества для бизнеса благодаря IBM Security Verify
Загрузить сейчасКомандная строка (что это такое и как ее использовать)
Командная строка — это приложение-интерпретатор командной строки, доступное в большинстве операционных систем Windows.Используется для выполнения введенных команд. Большинство этих команд автоматизируют задачи с помощью сценариев и пакетных файлов, выполняют расширенные административные функции, а также устраняют или решают определенные виды проблем Windows.
Командная строка официально называется командным процессором Windows, но иногда ее также называют командной оболочкой или командной строкой cmd, или даже ее именем файла, cmd.exe.
Lifewire / Дерек АбеллаКомандную строку иногда неправильно называют «подсказкой DOS» или самой MS-DOS.Командная строка — это программа Windows, которая имитирует многие возможности командной строки, доступные в MS-DOS, но не MS-DOS.
Cmd также является аббревиатурой для многих других технологических терминов, таких как централизованное распространение сообщений , цветной дисплей и общая база данных управления , но ни один из них не имеет ничего общего с командной строкой.
Как получить доступ к командной строке
Есть несколько способов открыть командную строку, но «нормальный» метод — с помощью ярлыка Command Prompt , расположенного в меню «Пуск» или на экране приложений, в зависимости от вашей версии Windows.
Открытие командной строки в Windows 10. Взаимодействие с другими людьмиЯрлык работает быстрее для большинства людей, но другой способ получить доступ к командной строке — выполнить команду cmd Run. Вы также можете открыть cmd.exe из исходного местоположения:
C: \ Windows \ system32 \ cmd.exe
Еще один способ открыть командную строку в некоторых версиях Windows — через меню опытного пользователя. Однако вы можете увидеть там PowerShell вместо командной строки в зависимости от того, как настроен ваш компьютер.
Как использовать командную строку
Чтобы использовать командную строку, вы вводите действительную команду командной строки вместе с любыми дополнительными параметрами. Затем командная строка выполняет введенную команду и выполняет задачу или функцию, которую она предназначена для выполнения в Windows.
Например, выполнение следующей команды командной строки в папке «Загрузки» приведет к удалению всех файлов MP3 из этой папки:
del * .mp3
Команды необходимо вводить в командной строке точно.Неправильный синтаксис или орфографические ошибки могут привести к сбою команды или к худшему; он мог выполнить неправильную команду или правильную команду неправильным образом. Рекомендуется уровень комфорта при чтении синтаксиса команд.
Например, выполнение команды dir покажет список файлов и папок, которые существуют в любом конкретном месте на компьютере, но на самом деле ничего не делает с . Однако измените всего пару букв, и она превратится в команду del , именно так вы удаляете файлы из командной строки!
Синтаксис настолько важен, что для некоторых команд, особенно для команды удаления, добавление даже одного пробела может означать удаление совершенно разных данных.
Вот пример, где пробел в команде разбивает строку на две части, по сути создавая две команды , в которых файлы в корневой папке (файлы) удаляются вместо файлов в подпапке (музыка):
дель C: \ файлы \ музыка
Правильный способ выполнить эту команду для удаления файлов из папки music вместо этого — удалить пространство, чтобы вся команда была правильно объединена.
Не позволяйте этому отпугнуть вас от использования команд командной строки, но определенно позвольте этому сделать вас осторожнее.
Команды командной строки
В командной строке существует большое количество команд, но их доступность зависит от операционной системы. Вы можете просмотреть, какие команды командной строки совместимы с конкретной операционной системой здесь:
Следование этим спискам команд докажет, что существует множество команд, которые вы можете использовать в командной строке, но не все из них используются так часто, как другие.
Вот некоторые из наиболее часто используемых команд командной строки, которые используются в различных обстоятельствах: chkdsk, copy, ftp, del, format, ping, attrib, net, dir, help и shutdown.
Доступность командной строки
Командная строка доступна во всех операционных системах на базе Windows NT, включая Windows 10, Windows 8, Windows 7, Windows Vista, Windows XP и Windows 2000, а также Windows Server 2012, 2008 и 2003.
Windows PowerShell, расширенный интерпретатор командной строки, доступный в последних версиях Windows, дополняет возможности выполнения команд, доступные в командной строке. Windows PowerShell может со временем заменить командную строку в будущей версии Windows.
Windows Terminal — еще один одобренный Microsoft способ использования командной строки и PowerShell в одном инструменте.
Спасибо, что сообщили нам!
Расскажите, почему!
Другой Недостаточно подробностей Сложно понятьВведение в командную строку Windows
Введение
До создания Windows самой распространенной операционной системой, работавшей на IBM PC-совместимых, была DOS. DOS означает дисковую операционную систему, и это то, что вы бы использовали, если бы вы запустили свой компьютер так же, как сегодня с Windows.Разница заключалась в том, что DOS была не графической операционной системой, а чисто текстовой. Это означало, что для запуска программ или управления операционной системой вам приходилось вручную вводить команды. Когда Windows была впервые создана, это был фактически графический пользовательский интерфейс, который был создан для того, чтобы упростить использование операционной системы DOS для начинающего пользователя. Шло время и разрабатывались новые версии Windows. DOS была окончательно упразднена вместе с Windows ME. Хотя новые операционные системы не работают в DOS, у них есть нечто, называемое командной строкой, которая имеет внешний вид, похожий на DOS.В этом руководстве мы рассмотрим основные команды и использование командной строки, чтобы вы чувствовали себя комфортно при использовании этого ресурса.
Использование командной строки или окна Dos
Когда люди обращаются к командной строке, они могут ссылаться на нее по-разному. Они могут называть его оболочкой, окном консоли, командной строкой, командной строкой или даже dos. Чтобы войти в командную строку, вам необходимо запустить программу, которая зависит от вашей операционной системы.Ниже мы перечисляем программы, которые необходимо запустить для входа в командную строку в зависимости от версии Windows, которую вы используете.
Операционная система | Команда | Банкноты |
Windows 3.1, .3.11, 95, 98, ME | command.com | Эта программа при запуске откроет окно командной строки с оболочкой DOS. |
Windows NT, 2000, XP, 2003 | cmd.exe | Эта программа предоставит собственную командную строку. То, что мы называем командной строкой. |
Windows NT, 2000, XP, 2003 | command.com | Эта программа откроет эмулируемую оболочку DOS для обратной совместимости. Используйте только при необходимости. |
Чтобы запустить эти программы и запустить командную строку, выполните следующие действия:
Шаг 1. Щелкните меню «Пуск»
Шаг 2: Нажмите кнопку «Выполнить»
Шаг 3: Введите соответствующую команду в поле Открыть :.Например, если мы используем Windows XP, мы должны ввести cmd.exe.
Шаг 4: Нажмите кнопку ОК
После выполнения этих шагов вы увидите окно, подобное изображенному на Рисунке 1 ниже.
Рисунок 1. Командная строка Windows
Командная строка — это просто окно, в котором по умолчанию отображается текущий каталог или, как в Windows, папка, в которой вы находитесь, и мигающий курсор, готовый для ввода ваших команд.Например, на Рисунке 1 выше вы можете увидеть, что написано C: \ WINDOWS>. C: \ WINDOWS> — это приглашение, которое сообщает мне, что я в настоящее время нахожусь в каталоге c: \ windows. Если бы я находился в каталоге c: \ program files \ directory, приглашение выглядело бы так: C: \ PROGRAM FILES \ DIRECTORY>.
Чтобы использовать командную строку, введите нужные команды и инструкции и нажмите клавишу ВВОД. В следующем разделе мы обсудим некоторые полезные команды и то, как увидеть все доступные встроенные команды для командной строки.
Полезные команды
В программы command.com или cmd.exe встроены очень полезные команды. Ниже я выделил некоторые из наиболее важных команд и дальнейшие инструкции о том, как найти информацию обо всех доступных командах.
Команда Help — Эта команда выводит список всех команд, встроенных в командную строку. Если вам нужна дополнительная информация о конкретной команде, вы можете ввести help commandname.Например, компакт-диск справки предоставит вам более подробную информацию о команде. Для всех команд вы также можете ввести имя команды, за которым следует /? чтобы увидеть справку по команде. Например, cd /?
Команда Exit — эта команда закроет командную строку. Просто введите exit и нажмите Enter, и командная строка закроется.
Команда CD — Эта команда позволяет вам изменить текущий каталог или посмотреть, в каком каталоге вы сейчас находитесь.Чтобы использовать команду CD, введите cd имя_директора и нажмите клавишу ВВОД. Затем это изменит каталог, в котором вы сейчас находитесь, на указанный. При использовании команды cd вы должны помнить, как пути работают в Windows. Путь к файлу — это всегда корневой каталог, который обозначен символом \ , за которым следуют каталоги под ним. Например, файл notepad.exe, расположенный в c: \ windows \ system32, будет иметь следующий путь \ windows \ system32 \ notepad.EXE. Если вы хотите перейти в каталог, который в настоящее время находится в вашем текущем каталоге, вам не нужен полный путь, просто введите cd имя_директории и нажмите клавишу ВВОД. Например, если вы находитесь в каталоге c: \ test, и в этом тестовом каталоге есть три каталога с именами A, B и C, вы можете просто ввести cd a и нажать Enter. Тогда вы окажетесь в каталоге c: \ test \ a. С другой стороны, если вы хотите изменить свой каталог на каталог c: \ windows \ system32, вам нужно будет ввести cd \ windows \ system и нажать Enter.
Команда DIR — Эта команда выводит список файлов и каталогов, содержащихся в вашем текущем каталоге, если используется без аргумента, или каталог, который вы указываете в качестве аргумента. Чтобы использовать команду, вы должны просто ввести dir и нажать Enter, и вы увидите список текущих файлов в каталоге, в котором вы находитесь, включая информацию об их размерах, дате и времени последней записи. Команда также покажет, сколько места используют файлы в каталоге, и общий объем свободного дискового пространства, доступного на текущем жестком диске.Если бы я набрал dir \ test , я бы увидел содержимое каталога c: \ test, как показано на рисунке 2 ниже.
Рисунок 2. DIR c: \ test
Если вы посмотрите на экран выше, вы увидите список каталога. Первые 2 столбца — это дата и время последней записи в этот файл. Далее следует, является ли конкретная запись каталогом или файлом, затем размер файла и, наконец, имя файла.Вы могли заметить, что есть два каталога с именем . и .., , которые имеют особое значение в операционных системах. Модель . обозначает текущий каталог, а .. обозначает предыдущий каталог в пути. В приведенном выше примере .. означает c: \ windows.
Также обратите внимание, что для многих команд вы можете использовать символ *, который обозначает подстановочный знак. Имея это в виду, набрав dir * .txt , будут перечислены только те файлы, которые заканчиваются на.текст.
Команда Копировать — Эта команда позволяет копировать файлы из одного места в другое. Чтобы использовать эту команду, вы должны ввести
copy filetocopy copiedfile . Например, если у вас есть файл c: \ test \ test.txt и вы хотите скопировать его в c: \ windows \ test.txt, введите
copy c: \ test \ test.txt c: \ windows \ test .txt и нажмите ввод. Если копия прошла успешно, она сообщит вам об этом и вернет вам подсказку. Если вы копируете в том же каталоге, вам не нужно использовать путь.Вот несколько примеров и то, что они будут делать:
копировать test.txt test.bak | Копирует файл test.txt в новый файл с именем test.bak в том же каталоге |
копировать test.txt \ windows | Копирует файл test.txt в каталог \ windows. |
копия * \ windows | Копирует все файлы в текущем каталоге в каталог \ windows. |
Команда Move — Эта команда позволяет перемещать файл из одного места в другое.Примеры ниже:
move test.txt test.bak | Перемещает файл test.txt в новый файл, переименовывая его в test.bak в том же каталоге. |
переместить test.txt \ windows | Перемещает файл test.txt в каталог \ windows. |
переместить * \ windows | Перемещает все файлы в текущем каталоге в каталог \ windows. |
На этом этапе вы должны использовать команду справки, чтобы узнать о других доступных командах.
Перенаправители
Редиректоры — важная часть использования командной строки, поскольку они позволяют вам управлять тем, как вывод или ввод программы отображаются или используются. Перенаправители используются путем добавления их в конец команды, за которой следует то, на что вы перенаправляете. Например: dir> dir.txt . В командной строке используются четыре перенаправителя, которые обсуждаются ниже:
> | Этот перенаправитель принимает выходные данные программы и сохраняет их в файле.Если файл существует, он будет перезаписан. Если его не существует, будет создан новый файл. Например, команда dir> dir.txt возьмет вывод команды dir и поместит его в файл dir.txt. Если dir.txt существует, он перезапишет его, в противном случае он его создаст. |
>> | Этот перенаправитель принимает выходные данные программы и сохраняет их в файле. Если файл существует, данные будут добавлены к текущим данным в файле, а не перезаписаны.Если его не существует, будет создан новый файл. Например, команда dir >> dir.txt берет вывод команды dir и добавляет его к существующим данным в файле dir.txt, если файл существует. Если dir.txt не существует, он сначала создаст файл. |
< | Этот перенаправитель принимает входные данные для программы из указанного файла. Например, команда date ожидает ввода от пользователя. Итак, если бы у нас была команда date |
| | Этот перенаправитель называется конвейером. Он берет вывод программы и передает его другой программе. Например, dir | sort будет принимать выходные данные команды dir и использовать их в качестве входных данных для команды sort. |
Пакетные файлы
Пакетные файлы — это файлы с расширением, заканчивающимся на.летучая мышь. Это просто сценарии, содержащие команды командной строки, которые будут выполняться в том порядке, в котором они перечислены. Чтобы создать пакетный файл, просто создайте файл, заканчивающийся на .bat, например test.bat, и внутри файла есть нужные вам команды. Каждая команда должна быть в отдельной строке и в том порядке, в котором вы хотите, чтобы они выполнялись.
Ниже приведен пример командного файла. Это не имеет реального применения, но даст вам пример того, как работают командные файлы. Этот тестовый пакетный файл содержит следующие строки текста:
cd
cd \ test
dir
cd \
Если бы я провёл тест.bat файл, который я создал, я бы получил следующий результат:
Рисунок 3: Пример запущенного командного файла.
Как видно из рисунка выше, мой командный файл выполнил каждую команду из моего командного файла в той последовательности, в которой они были записаны в командном файле.
Консольные программы
Если программа создана специально для запуска в командной строке или в окне консоли, эта программа называется консольной программой.Это программы, которые не являются графическими и могут быть правильно запущены только из окна командной строки.
Ниже приведен список сайтов, содержащих консольные программы, которые могут быть вам полезны:
http://unxutils.sourceforge.net/
Есть еще много сайтов, на которых доступны инструменты. Просто выполните поиск в Google в консольных программах Windows.
Заключение
Командная строка может быть очень мощным и универсальным инструментом для пользователя компьютера.Надеюсь, это краткое введение в командную строку позволит вам более эффективно использовать свой компьютер. Если у вас есть какие-либо вопросы о том, как использовать командную строку, не стесняйтесь обращаться к нам на справочном форуме для компьютеров .
—
Лоуренс Абрамс
Bleeping Computer Microsoft Basic Concepts Tutorial
BleepingComputer.com: Компьютерная поддержка и учебные пособия для начинающих пользователей компьютеров.
Как открыть командную строку в Windows 10
Если вам нужно запустить такие команды, как mkdir
, ping
и netstat
в Windows, вам нужно будет открыть программу командной строки.
Оказывается, есть несколько способов сделать это. В этой статье мы рассмотрим некоторые из наиболее распространенных способов открытия командной строки.
Примечание. Хотя эта статья была написана для Windows 10, некоторые методы должны быть аналогичны для более ранних версий Windows.
Как открыть командную строку из меню «Пуск» Windows
Сначала нажмите кнопку меню «Пуск» в нижнем левом углу, чтобы открыть меню «Пуск».
Прокрутите вниз до «Система Windows» и щелкните его, чтобы открыть раскрывающийся список различных программ Windows.Затем нажмите «Командная строка»:
Как открыть командную строку с панелью поиска
Один из самых быстрых способов открыть командную строку — использовать панель поиска на панели задач Windows 10.
Просто введите «cmd» в строку поиска и нажмите «Командная строка»:
Как открыть командную строку из программы «Выполнить»
В Windows 10 есть еще одна программа под названием «Выполнить», которая позволяет запускать другие программы. Вы также можете открывать папки и файлы, но это выходит за рамки данного руководства.
Чтобы открыть «Выполнить», откройте меню «Пуск» и найдите его в разделе «Система Windows». Вы также можете ввести «запустить» в поле поиска и найти его таким образом.
Но самый быстрый способ открыть «Выполнить» — это сочетание клавиш Windows Key + R .
Затем, когда откроется окно «Выполнить», просто введите «cmd» и нажмите «OK», чтобы открыть командную строку:
Как открыть командную строку от имени администратора
Для некоторых команд, таких как powercfg
или chkdsk
, требуется что вы открываете командную строку от имени администратора.Это даст вам повышенный доступ ко всем выполняемым вами командам.
Чтобы открыть командную строку от имени администратора, найдите командную строку, используя любой из методов, описанных ранее.
Затем щелкните правой кнопкой мыши «Командная строка» и выберите «Запуск от имени администратора»:
Вам может потребоваться навести курсор на «Еще» в зависимости от метода, который вы использовали для поиска программы командной строки.
Также вы можете увидеть всплывающее окно «Контроль учетных записей пользователей» с сообщением «Вы хотите разрешить этому приложению вносить изменения в ваше устройство?» Просто нажмите «Да», чтобы продолжить.
После этого вы должны увидеть окно командной строки с надписью «Администратор: Командная строка» вверху:
В качестве альтернативы вы можете открыть командную строку как обычный пользователь, ввести команду и затем нажать Ctrl + Shift + Введите , чтобы запустить эту команду от имени администратора.
Примечание: Хотя вы всегда должны быть осторожны с тем, какие команды вы запускаете в командной строке или любой другой программе командной строки, особенно внимательно относитесь к тому, что вы запускаете как администратор.Одна неверная команда может удалить важные системные файлы и испортить установку Windows.
Резюме
Это лишь некоторые из множества способов открыть командную строку в Windows. Выбирайте то, что лучше всего подходит для вас, и выполняйте команды сколько душе угодно.
Но, пожалуйста, прежде чем запускать любую команду, дважды проверьте, что все правильно, особенно если вы открыли командную строку от имени администратора. Исходя из опыта, несколько дополнительных секунд предосторожности могут сэкономить вам часы переустановки.
И с этим, идите и (безопасно) выполните все команды.
Как найти, восстановить и открыть командную строку в Windows 10
Десять лет назад Microsoft представила PowerShell, современную среду командной строки с расширенными функциональными возможностями, намного превосходящими проверенные временем возможности командной строки. Для многих пользователей и разработчиков это было воспринято как начало упадка классической командной строки, которая была частью Windows с момента первого выпуска NT.Удивительно, но последние десять лет командная строка сохранилась в Windows; хотя ходило много слухов о том, что Microsft откажется от него в грядущем обновлении Creators Update.
В своем блоге Microsoft заявила, что слухи о смерти командной строки сильно преувеличены; Командная строка по-прежнему будет доступна в Creators Update. Хотя PowerShell является служебной программой командной строки по умолчанию в Windows 10 Creators Update, пользователи все равно могут вернуться к командной строке по умолчанию или запустить ее, как обычно в текущих версиях Windows.Давайте посмотрим, как это сделать.
Как вернуть командную строку в Windows 10 Creators Update
Начиная с Windows 8, излюбленный способ запуска командной строки — из меню опытного пользователя (клавиша Windows + X ). Обычно здесь отображается опция для запуска командной строки или Командная строка (администратор ).
В Windows 10 Creators Update пользователи теперь будут видеть PowerShell по умолчанию.
Вы можете быстро изменить настройки по умолчанию, открыв Настройки> Персонализация> Панель задач .Отключите Заменить командную строку на Windows PowerShell в меню, когда я щелкаю правой кнопкой мыши кнопку «Пуск» или нажимаю клавишу Windows + X . Когда вы запустите меню «Питание», вы увидите свое верное старое меню командной строки.
Если вы предпочитаете использовать лучшее из обоих миров, вы можете оставить Powershell по умолчанию и запустить командную строку из команды поиска или запуска. Нажмите Пуск, введите: cmd, нажмите Control + Shift + Enter или щелкните его правой кнопкой мыши, затем
Нажмите Пуск , введите: cmd и нажмите Control + Shift + Enter (щелкните правой кнопкой мыши Командная строка и выберите Запуск от имени администратор) при необходимости.
Вы также можете использовать цифровой помощник Cortana, включив режим прослушивания ( клавиша Windows + Shift + C) , затем произнеся «Привет, Кортана», затем «Запустить командную строку».
Команда «Выполнить» — еще один быстрый способ запустить командную строку. Нажмите клавишу Windows + R , затем введите cmd и нажмите Enter.
Есть нетрадиционные способы запуска командной строки. Нажмите клавишу Windows + X> Диспетчер задач или Control + Shift + Esc.Щелкните Файл> Запустить новую задачу , введите: cmd , затем нажмите Enter. Если вам нужно открыть его с правами администратора, удерживайте клавишу Control, нажимая Запустить новую задачу.
Из проводника вы можете ввести CMD в адресной строке и нажать Enter.
Если вы хотите открыть определенную папку непосредственно в командной строке, удерживайте нажатой клавишу Shift , щелкните папку правой кнопкой мыши, затем нажмите Открыть окно командной строки здесь.
Вы также можете выбрать файл или папку, а затем щелкнуть Файл> Открыть командную строку .
Если вы предпочитаете старый методичный способ открытия командной строки, он все еще здесь. Нажмите Пуск> Все приложения> Система Windows> Командная строка .
Вы также можете перетащить значок командной строки на рабочий стол из системной папки Windows. Щелкните его правой кнопкой мыши, выберите Свойства > выберите вкладку Ярлык , щелкните Дополнительно , установите флажок Запуск от имени администратора , щелкните ОК , щелкните Применить , затем ОК еще раз, чтобы подтвердить изменения.
Затем вы можете перетащить командную строку на панель задач для еще более быстрого доступа с правами администратора.
Итак, есть много способов получить исправление командной строки в Windows 10, не упуская при этом некоторые из новых улучшений, доступных в PowerShell. Если вам нравится возиться с командной строкой, ознакомьтесь с некоторыми из наших предыдущих статей, чтобы узнать о действиях, которые вы можете использовать с ней, например о доступе к новым инструментам Linux BASH или сборке красивых обоев Windows Spotlight.
Расскажите нам, что вы думаете и как вы все еще используете командную строку в Windows.
6 умных способов использования командной строки Windows
list disk
Найдите в таблице диск, который вы хотите стереть — убедитесь, что он правильный, чтобы не стереть какие-либо важные данные на другом диске, и запустите:
выберите диск 3
… где, очевидно, вы замените цифру 3 любым номером, соответствующим рассматриваемому диску.Наконец, запустите:
clean
Ваша система очистит диск без каких-либо скрытых разделов или таблиц, запутывающих ваш компьютер. Затем вы можете щелкнуть меню «Пуск», найти «Управление дисками» и щелкнуть правой кнопкой мыши диск, чтобы инициализировать и отформатировать его. Обратите внимание, что это просто стирает таблицы разделов, это не стирает безопасно все ваши данные — некоторые из них все еще могут быть доступны с помощью инструментов восстановления файлов. Чтобы безопасно стереть все следы (например, если вы собираетесь утилизировать диск или продать компьютер), вам нужно щелкнуть диск правой кнопкой мыши в проводнике Windows, выбрать «Форматировать» и снять флажок «Быстрое форматирование».Или используйте сторонний инструмент, такой как DBAN, у которого есть ряд других опций безопасного стирания.
Получите список всех программ, установленных на вашем ПК
Когда вы приобретете новый ноутбук или выполните чистую переустановку Windows, вы, вероятно, забудете некоторые инструменты, которые используете каждый день и воспринимаете как должное. Перед очисткой диска вы можете получить список всех программ, установленных на вашем компьютере, с помощью одной команды.
Однако, в отличие от других в этом списке, эту команду необходимо запускать из PowerShell, нового и более мощного инструмента, встроенного в Windows.Откройте меню «Пуск», найдите PowerShell и откройте новое окно. Затем выполните следующую команду — она длинная, но это всего лишь одна команда копирования и вставки, которая захватывает содержимое трех разных разделов реестра и выводит их в текстовый файл на вашем рабочем столе:
Get-ItemProperty HKLM: \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ *, HKLM: \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ *, HKCU: \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ * | Select-Object DisplayName, DisplayVersion, Publisher, Size, InstallDate | Формат-таблица -AutoSize> C: \ Users \ Whitson \ Desktop \ ProgramsList.txt
Замените Whitson именем вашей пользовательской папки в конце этой команды, чтобы получить файл на рабочем столе. Обратите внимание, что это не будет включать приложения Магазина Windows, которые вы можете просмотреть, запустив:
Get-AppxPackage> C: \ Users \ Whitson \ Desktop \ StoreProgramsList.txt
Опять же, заменив Whitson на имя ваша пользовательская папка. В этом списке будет много мусора, но вы можете вручную захватить несколько программ, которые хотите запомнить, и вставить их в исходный список, если это проще.
Watch Star Wars (Нет, серьезно)
Хорошо, это не совсем «полезный» трюк, но, безусловно, изящный. Если вы включили Telnet в Windows (найдите «включить или выключить функции Windows» в меню «Пуск», затем установите флажок Telnet), вы можете запустить:
telnet полотенце.blinkenlights.nl
Чтобы посмотреть версию ASCII из Star Wars в окне командной строки. Это существует уже много лет, и до сих пор меня впечатляет.
Еще отличные истории WIRED
27 полезных приемов командной строки Windows, о которых вы могли не знать
Мы довольно часто говорим о командной строке в наших обучающих статьях по Windows 10.Некоторые люди неосознанно называют команды кодами командной строки. Кстати, существует масса приемов командной строки Windows, которые вы можете изучить, использовать и произвести впечатление на своих друзей.
Например, некоторые люди могут не знать, как прервать выполнение команды или как смотреть «Звездные войны» в командной строке. Здесь мы расскажем вам о таких интересных трюках с командной строкой.
Для некоторых пользователей командная строка Windowsможет показаться черно-белым миром. Но опытные пользователи знают силу командной строки и используют разные классные командные приемы и уловки.
Итак, чтобы улучшить работу с командной строкой Windows, в этой статье мы расскажем вам о некоторых полезных приемах командной строки, которые позволят сэкономить лишние клики.
Не забудьте в свободное время ознакомиться с нашим обширным списком команд Windows CMD от А до Я.
Как использовать командную строку в Windows 10?
Может, мне и не нужно тебе об этом рассказывать. Но те, кто не знает, могут запустить командную строку, набрав CMD в Windows Search.Щелкните правой кнопкой мыши CMD, чтобы запустить его от имени администратора.
Кроме того, вы также можете открыть «Выполнить» (Windows + R)> введите cmd и нажмите Enter. Неважно, используете ли вы Windows 10 или более старую версию, метод тот же.
27 полезных приемов командной строки Windows
1. История команд
Используя эту команду, вы можете отслеживать историю своих команд. Это окажется полезным, когда вы попытаетесь найти какую-то команду, которую вы использовали в прошлом, но не можете вспомнить.
2. Выполнить несколько команд
Если вы чувствуете необходимость запустить две команды одну за другой, вы можете сделать это легко. Добавьте это в свою коллекцию хаков CMD. Вам просто нужно ставить «&&» между каждой командой и сэкономить время. Например, вот как запустить ipconfig и нарисовать.
3. Используйте функциональные клавиши и станьте профессиональным пользователем
Один из очень полезных приемов CMD — использование функциональных клавиш. Эти ключи могут многое сделать для улучшения работы с CMD.
Вот список:
4. См. Список драйверов ПК
Используя простую команду, вы можете увидеть все драйверы, установленные на вашем компьютере. Все, что вам нужно сделать, это запустить команду driverquery, и вы увидите список всех драйверов с их именем, типом и другой информацией.
5. Отправить вывод в буфер обмена
Очень часто вы могли почувствовать необходимость сохранить вывод команды? Обычно люди используют копирование и вставку. Однако с помощью простой команды, использующей оператор конвейера, вы можете отправить вывод команды в буфер обмена Windows.Вот как отправить информацию ipconfig:
6. Отменить команду
Этот удобный трюк с Windows CMD приходит на помощь, когда вы нажимаете клавишу ввода и вам нужно остановить выполнение команды? Для этого нужно нажать Ctrl + C. Однако это не волшебный трюк, который может отменить то, что невозможно отменить.
7. Сделайте вашу командную строку красочной
Вы можете изменить цвет командной строки Windows, чтобы она выглядела привлекательно. Для этого щелкните правой кнопкой мыши в верхних углах окна командной строки и выберите «Свойства».Там найдите вкладку Цвета и найдите параметры для изменения цвета фона и текста.
8. Создайте точку доступа Wi-Fi прямо из командной строки
Перед тем, как открыть командную строку для выполнения необходимых для этого команд, вам необходимо открыть панель управления и найти «Изменить настройки адаптера» в параметре «Сеть и общий доступ». Там нажмите на соединение, которое вы используете, и нажмите «Свойства». Теперь найдите вкладку общего доступа и установите флажок «Разрешить другим пользователям сети подключаться через подключение к Интернету этого компьютера.”
Теперь откройте командную строку с правами администратора и введите следующую команду:
netsh wlan set hostednetwork mode = allow ssid = yourhotspotname key = yourpassword
После включения введите следующую команду, чтобы запустить точку доступа Wi-Fi
netsh wlan start hostednetwork
Чтобы остановить это, просто введите эту команду:
netsh wlan stop hostednetwork “.
Если вы используете Windows 10?
Windows 10 поставляется со встроенным инструментом, который позволяет пользователям создавать точки доступа Wi-Fi.Вы можете прочитать наш подробный пост о том, как включить мобильную точку доступа в Windows 10.
9. Проверить системные файлы на наличие проблем
Команда sfc / scannow запускает средство проверки системных файлов, которое сканирует системные файлы Windows и ищет проблемы. Если какие-то файлы отсутствуют или повреждены, эта команда исправляет их.
10. Начните использовать командные файлы
Возможно, вы уже знаете, что командные файлы могут значительно облегчить вашу жизнь, если чаще работать с несколькими командами. Например, если у вас есть привычка использовать одни и те же команды CMD, вы можете создать командный файл и избавиться от необходимости вводить их снова и снова.Все, что вам нужно сделать, это запустить командный файл.
Вы можете узнать больше о том, что такое командный файл и как он работает?
11. Устранение проблем с кешем распознавателя DNS
Возможно, вы знаете, что DNS (система доменных имен) — важная вещь, которую нельзя игнорировать при подключении к Интернету. Чтобы получить доступ к веб-сайтам быстрее, ваш компьютер обычно поддерживает локальный кеш преобразователя DNS. Но иногда кеш может быть поврежден, и вы не сможете получить доступ к своим любимым сайтам.
В этом случае вы можете попробовать этот трюк с командной строкой Windows, чтобы спасти положение.Вы можете использовать утилиту Ipconfig для удаления кеша DNS.
Мы уже рассмотрели множество полезных трюков с командной строкой и интересных приемов в наших предыдущих статьях. Вы можете прочитать о них и узнать, как их выполнять, перейдя по ссылкам ниже:
12. Ускорьте Интернет с помощью трюка CMD
13. Найдите пароль Wi-Fi с помощью CMD всех подключенных сетей
14. Создайте загрузочный USB-накопитель в Windows 10 с помощью командной строки
15. Удалите вирус с USB или любого диска в Windows 10 с помощью CMD
16.Скрыть любой диск в Windows: трюк с командной строкой
17. Включить Ctrl + C / Ctrl + V для копирования и вставки в командной строке
18. Проверьте записи DNS с помощью простых примеров команды Nslookup
19. Смотрите «Звездные войны: Уловка с командной строкой»
20. Проверьте емкость аккумулятора и отчет о состоянии аккумулятора в Windows с помощью CMD
21. Найти и уничтожить вредоносное ПО для удаленного подключения в Windows 10
22. Исправьте ошибку «Вы хотите сканировать и исправить съемный диск» в Windows
23.Использование команд Netstat для мониторинга сети в Windows с помощью CMD
24. Используйте команды Netstat для мониторинга сети
25. Выполните пинг смертельной атаки: трюк с CMD
26. Найдите лицензионный ключ Windows с помощью CMD
27. Новые сочетания клавиш Windows 10 в командной строке
Альтернатива CMD: Powershell и терминал Windows
С годами Microsoft начала переходить от старой доброй командной строки к ее современному преемнику Powershell. Если вы могли догадаться, те места, где вы могли видеть CMD ранее, теперь показывают Powershell в качестве опции, потому что это оболочка по умолчанию в Windows 10.Например, в контекстном меню кнопки «Пуск».
Вы можете использовать его, потому что команды, предназначенные для CMD, также работают на Powershell.
Кроме того, Microsoft разработала совершенно новый интерфейс командной строки в виде нового приложения под названием Windows Terminal. Он сочетает в себе командную строку, Powershell и подсистему Windows для Linux. Вы можете прочитать нашу подробную статью о том, как настроить WSL на вашем ПК с Windows 10.
В отличие от CMD и Powershell, Windows Terminal не предварительно загружен в Windows 10, и вы можете получить его в Microsoft Store.Следует отметить, что Терминал Windows недоступен для более старых версий Windows.
Вы нашли эту статью полезной? Расскажите нам в комментариях ниже. Кроме того, если у вас есть интересные приемы командной строки Windows, не забудьте поделиться ими.
.