Сайт о телевидении

Сайт о телевидении

» » Основные cmd команды – просто о полезном. Синтаксис команды

Основные cmd команды – просто о полезном. Синтаксис команды

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

К некоторым файлам из своей структуры операционная система допускает прямое обращение пользователя с целью выполнить какое-нибудь действие, операцию. Действие будет выполнено с помощью программ, записанных в этих файлах, а указаниена такое действие называетсякомандой

Внутренние команды операционной системы

В файле COMMAND.COM описаны правила выполнения компьютером простых, наиболее часто используемых команд. Команды DOS, которые как коды записаны в файл COMMAND.COM, называютсявнутренними командами. Данные из файла COMMAND.COM загружаются в память на весь сеанс работы, поэтому к выполнению внутренних команд система приступает немедленно. Вот примеры внутренних команд DOS, коды выполнения которых описаны в файле COMMAND.COM.

Команда Описание внутренней команды
cd Вывести имя текущего каталога или меняет каталог
copy Копировать файл или несколько файлов в указанное место
date Вывести текущую дату и при необходимости ее изменить
del, erase Удалить указанные файлы
dir Вывести список файлов и подкаталогов в текущем или указанном каталоге
exit Прекратить работу командного процессора COMMAND.COM и передать управление программе, из которой он был запущен
md, mdir Создать каталог или подкаталог
path Указать каталоги, где DOS должна отыскивать исполняемые файлы (программы)
rd, rmdir Удалить каталог (remove directory)
ren, rename Изменить имя выбранного файла или файлов
time Вывести системное время и при необходимости изменить его
type Вывести содержимое указанного файла
verify Проверить и сообщить результаты записи файлов на диск

Через запятую написаны команды-дубликаты и сокращенные варианты написания. Внутренняя команда не требует уточнения, кто ее будет выполнять.

Внешние команды DOS

В комплект DOS помимо системных файлов входит большой набор программ, записанных в отдельные файлы с расширением.corn, .exe. Программа из такого файла только по требованию команды специально за­гружается в память с диска. На это требуется время, поэтому вызов, указание на имя файла с программой DOS, называется внешней командой DOS. Внешняя команда - это имя программы, которая будет выполнять ожидаемое действие, в команде не указывается расширение файла.

Файл COMMAND.COM принимает с клавиатуры разные команды DOS, но сам выполняет только внутренние команды и командные файлы наборов команд. Встретившись с командой, которую он не готов выпол­нить своими внутренними силами, файл COMMAND.COM просмотрит список путей, ведущих в каталоги, и загрузит с диска файл соответствующей программы для выполнения.

Программы выполнения внешних команд поставляются вместе с DOS, хранятся на диске в каталоге DOS как обычные файлы и совершают действия обслуживающего характера.

Подача команды

Команда - это распоряжение о выполнении действий, операций.

1. Команда общего назначения может быть набрана на клавиатуре латинскими буквами, в процессе набора ее текст отображается на экране в командной строке приглашения DOS.

2. Команда может быть закреплена за клавишей клавиатуры (горячая клавиша).

3. Команду в программах с оконным графическим оформлением можно описать, подбирая ее параметры курсором клавиатуры или мыши по графическому отображению на экране: меню, окнам, которые предоставляет программа.

Структура, синтаксис команды

Выше были приведены только имена команд, но в большинстве случаев команда только начинается с имени, а дальше должны быть записаны дополнительные элементы. Правила написания и порядок следования элементов команды называютсясинтаксисом команды.

Команда может содержать элементы четырех типов:имя команды (обязательно в начале),параметры, ключи (переключатели) изначения. Они определяют вариант выполнения команды: кто (коды какой программы, команды), над каким объектом и как проделает требуемые действия. Элементы команды разделяются пробелами.

Прежде чем начать изучение команд, необходимо познакомиться с некоторыми первоначальными сведениями, которые необходимы для дальнейшего изучения командной строки.

Синтаксис команд командной строки.

Каждая команда имеет определенную синтаксическую структуру, согласно которой пользователь вводит команду в командной строке. Для примера, возьмем команду CD, которая используется для изменения текущего каталога. Она имеет следующий синтаксис cd [диск:][путь] [..]. Большинство команд командной строки имеет различные параметры и ключи. Как правило, ключ обозначается буквой латинского алфавита с предшествующей вертикальной косой чертой «/» (в некоторых командах ключи могут начинаться со знака минус «-»). В нашем случае команда CD имеет один ключ . [диск:][путь] и [..] являются параметрами команды CD. Если какие-нибудь ключи и параметры записываются в квадратных скобках, то применение их в команде необязательно. Например, в нашем случае у команды CD ключ и параметры являются необязательными, т.е. команда CD может употребляться без них. Для примера, возьмем другую команду XCOPY, которая позволяет копировать файлы и папки. Она имеет следующий синтаксис: xcopy источник [результат] ] ] [{/a|/m}] ][+[файл3]] [{/y|/-y}] . Как видите, команда имеет много различных ключей и параметров. Однако только один параметр является обязательным: «источник». При вводе той или иной команды в командной строке необходимо придерживаться синтаксиса, т.е. вводить ключи и параметры (если они необходимы) в том порядке, в котором они представлены в синтаксической структуре команды.

Регистр при наборе команд.

Вы можете набирать имена команд, параметров и ключей в любом регистре, т.к. он не имеет значения при работе в командной строке.

Работа с файловой системой.

Первые уроки по командной строке будут посвящены работе с файловой системой Windows, т.е. работе с файлами и папками. Поэтому следует сказать несколько слов об особенностях определения путей к файлам и папкам. Путь к файлу записывается следующим образом: [диск][путь\]имя_файла. Таким образом, получается что обязательным параметром является только «имя_файла». При этом, если перед именем файла стоит знак «\», то маршрут к этому файлу вычисляется от корневого каталога, если имя файла употребляется без знака «\», то маршрут к нему вычисляется от текущего каталога. Для примера, создадим на диске «С» файл «text.txt». Запустим командную строку. По умолчанию, текущим каталогом является «С:\Users\имя_пользователя». Для того чтобы открыть какой-нибудь файл с помощью командной строки, необходимо просто записать название этого файла. Однако, здесь следует правильно отобразить маршрут к этому файлу. Если мы просто наберем text.txt , то на экране появится сообщение "«text.txt» не является внутренней или внешней командной, исполняемой программой или пакетным файлом". Дело в том, что файл «text.txt» находится в корне диска «С», а у нас текущим каталогом является папка «имя_пользователя» (в моем случае "вадим"), находящаяся в папке «Users» на диске «С». Если нам необходимо, чтобы маршрут к файлу отсчитывался от корня диска, перед файлом необходимо поставить знак «\»: \text.txt

Теперь перейдем в корень диска «С» (это можно сделать с помощью команды CD\). Сейчас для открытия файла «text.txt» достаточно написать в командной строке text.txt без использования знака «\», поскольку текущим каталогом является диск «С», а файл как-раз расположен в корне диска «С»

Теперь создадим в папке «Users» файл «file.txt» и изменим текущий каталог на «С:\Users\имя_пользователя» (в моем случае «имя_пользователя» - «вадим»). Сделать это можно с помощью команды: cd users\имя_пользователя . Файл «file.txt» находится ни в корне диска «С», ни в текущем каталоге, поэтому для его открытия необходимо указать не только название файла, но и каталог, в котором он находится (в нашем случае «Users»). Если мы запишем просто users\file.txt , то на экран будет выведено сообщение «Системе не удается найти указанный путь», поскольку эта самая «система» пытается найти файл «file.txt» в папке «Users», начиная от текущего каталога, т.е. по маршруту C:\Users\вадим\Users\file.txt. Если же мы запишем в командной строке \users\file.txt , то система будет искать файл «file.txt» в папке «Users», начиная от корня диска «С», т.е. по маршруту «C:\Users\file.txt», который является правильным.

Если файл расположен на другом диске, то для доступа к нему необходимо указывать полный путь с указанием имени диска. Например, создадим на диске «D» папку «FOLDER», а в ней файл «f1.txt». Тогда команда для открытия файла «f1.txt» будет выглядеть так: d:\folder\f1.txt

Для обозначения текущего каталога и 3-х его верхних уровней используются особые обозначения. Так текущий каталог обозначается символом «.» (точка), его родительский каталог – символом «..», каталог 2-го уровня – символом «…», каталог 3-го уровня – символом «….». Эти обозначения используются в некоторых командах. Например, команда CD.. осуществляет переход в родительский каталог.

Использование групповых символов.

При работе в командной строке имена файлов можно заменять групповыми символами, «*» (звездочкой) и «?» (вопросительным знаком). Символ «*» заменяет любое количество символов в названии файла, а символ «?» обозначает присутствие или отсутствие одного символа в названии файла. Например, запись «*.txt» обозначает все текстовые файлы. Запись «file.*» обозначает файлы с именем «file» и любым расширением. Запись «*.*» обозначает все файлы. Запись «fi?e.txt» может обозначать любой текстовый файл, с названием file.txt, fie.txt, fife.txt, fi4e.txt и т.д.

При использовании имен файлов, состоящих из более чем одного слова, необходимо заключать их в двойные кавычки. Например, создадим на диске «С» папку «новая папка», а в ней файл «новый документ». Тогда для открытия этого файла, путь к нему необходимо заключить в двойные кавычки.

На примере уже описанной команды dir рассмотрим правила записи команд в системе MS-DOS. Указанную команду можно представить в общем виде как dir [путь]

Как вы понимаете, в таком виде эту команду вводить в компьютер не стоит. Эта запись определяет только синтаксис команды, она возможна на бумаге, но не в командной строке. Начинается запись команды с ее имени (в данном примере - это имя dir). За именем команды следует пробел, а затем имя диска, которое обозначено как d:. Поскольку в некоторых случаях диск можно не указывать (см. примеры выше), эта часть команды заключена в квадратные скобки . Эти скобки показывают, что данный элемент команды может отсутствовать. Сами квадратные скобки при вводе команды набираться, естественно, не должны. За именем диска в общей записи следует указание пути. Его также не обязательно указывать, в этом случае на экран будет выведено содержимое корневого каталога.

В состав команд MS-DOS могут входить так называемые переключатели, которые задают условия исполнения команды. Так, если следом за командой dir набрать символы /Р, то будет выполнен постраничный вывод содержимого каталога. Этот режим удобен в случае больших каталогов, содержимое которых может занять несколько экранных страниц. Для каталога SCHOOL команда постраничного вывода будет иметь вид: dir c:school/p

Кроме переключателя Р, в команде dir возможен переключатель W, задающий вывод только имен файлов - по пять имен в каждой строке. Возможность наличия переключателей в команде отражается записью вида: dir [путь]

Любую команду MS-DOS можно условно представить в виде:

Имя-команды [аргумент]... [переключатель]...

Многоточие в этих записях означает, что стоящий перед многоточием элемент команды можно повторить произвольное число раз. Многоточие вносить в саму команду не следует. Под аргументом понимается обычно объект, к которому применяется команда (имя файла, каталога и т.д.). Аргументы, как правило, отделяются от имени команды, а также друг от друга пробелом.

Создание и удаление каталогов

Вам уже знакомы несколько команд работы с каталогами: dir, tree, cd. Дополним этот список командами, предназначенными для создания и удаления каталогов. Это команды md и rd соответственно. Команда md может записывать-ся как mkdir, что означает сокращение слов «make directory» - создать директорию. Команда rd также может записываться в более подробном виде rmdir (сокращение от «remove directory» - удалить директорию). Синтаксис команд md и rd одинаков:

md и rd

С помощью команды md можно создавать древовидную структуру каталогов, указывая путь к новому каталогу. Приведем примеры:

Создать каталог GRAPH3 в текущем каталогс;

Создать каталог REST в корневом каталоге диска С.

Команда rd позволяет удалять каталоги, кроме текущего каталога. Например, чтобы удалить каталог HOBBY на диске С, нужно набрать:

Отметим, что каталог, удаляемый командой rd, должен быть пустым, то есть предварительно в нем нужно удалить все файлы и подкаталоги, причем процедуру удаления нужно начинать с нижайшего уровня (об операциях с файлами речь пойдет в следующем параграфе). В версиях MS-DOS, начиная с 6.0, предусмотрено удаление каталогов вместе со всем содержимым. Для этого нужно использовать команду deltree, которая имеет формат, аналогичный командам md и rd:

deltree [путь]

Все удаления производятся с подтверждением, если же в команде указать параметр /у, то подтверждения не требуется. Когда нужно удалить каталог (например, EXERC), содержащийся в текущем каталоге, вы просто набираете deltree exerc

Перед тем, как удалить каталог, система попросит вас подтвердить удаление. Введите Y (Yes) и нажмите клавишу Enter.

) широко используется как стандартная нотация, но в первые дни люди экспериментировали. На некоторых машинах команда sort больше не поддерживает нотацию + . Однако различные команды (в частности, ar и tar) принимают элементы управления без символа префикса - и dd (упоминаемый Alok в комментарии) использует другое соглашение вообще.

Соглашение GNU об использовании " -- " для длинных опций (поддерживается getopt_long(3)) было изменено с использованием " + ". Конечно, программное обеспечение X11 использует одну тире перед многосимвольными опциями. Итак, все это коллекция исторических реликвий, когда люди экспериментировали с тем, как лучше всего справиться с ней.

POSIX документирует Соглашения об утилитах , за которые он работает, за исключением случаев, когда исторический прецедент сильнее.

Какие существуют стили обработки опций?

[В свое время SO 367309 содержался следующий материал в качестве моего ответа. Первоначально он был задан в 2008-12-15 02:02 FerranB , но впоследствии был закрыт и удален.]

Сколько различных типов опций вы узнаете? Я могу думать о многие, в том числе:

  • Однобуквенные опции, которым предшествует одиночная тире, группируются, когда есть нет аргументов, аргумент может быть прикреплен к букве опциона или в следующем аргумент (многие, многие команды Unix, большинство команд POSIX).
  • Однобуквенные опции, которым предшествует одиночная тире, группировка недопустима, аргументы должны быть присоединены (RCS).
  • Однобуквенные опции, которым предшествует одиночная тире, группировка недопустима, аргументы должны быть отдельными (pre-POSIX SCCS, IIRC).
  • Многобуквенные опции, которым предшествует одиночная тире, могут быть аргументы прикрепленные или в следующем аргументе (программы X11, а также Java и многие программы на Mac OS X с наследием NeXTSTEP).
  • Многобуквенные опции, которым предшествует одиночная тире, могут быть сокращены (Atria Clearcase).
  • Многобуквенные опции, которым предшествует одиночный плюс (устаревший).
  • Многобуквенные опции, которым предшествует двойная тире; аргументы могут следовать за "=" или быть отдельными (утилиты GNU).
  • Параметры без префикса/суффикса, некоторые имена имеют сокращения или подразумеваемые аргументы должны быть раздельными. (AmigaOS Shell)

Для параметров, принимающих необязательный аргумент, иногда необходимо присоединить аргумент (co -p1.3 rcsfile.c), иногда он должен следовать знаком "=". POSIX не поддерживает дополнительный аргументы осмысленно (POSIX getopt() допускает их только для последнего в командной строке).

Все разумные системы опций используют опцию, состоящую из двойной панели (" -- ") только для обозначения "конца опций" - следующие аргументы: "необязательные аргументы" (обычно имена файлов, POSIX называет их "операндами") даже если они начинаются с тир. Имейте в виду, что если для параметра -- предшествует опция, требующая аргумента, -- будет рассматриваться как аргумент опции, а не как маркер "конца опций".)

Многие, но не все программы принимают одиночную тире в качестве имени файла для обозначения стандартный вход (обычно) или стандартный вывод (иногда). Иногда, как с GNU " tar ", оба могут использоваться в одной командной строке:

... | tar -cf - -F - | ...

Первая персональная тире означает "write to stdout"; второй означает "читать файл" имена из stdin ".

Некоторые программы используют другие соглашения - то есть параметры, которым не предшествует тир. Многие из них относятся к самым старым дням Unix. Например, "tar" и "ar" оба принимают параметры без тире, поэтому:

Tar cvzf /tmp/somefile.tgz some/directory

Команда dd использует opt=value исключительно:

Dd if=/some/file of=/another/file bs=16k count=200

Некоторые программы позволяют чередовать опции и другие аргументы полностью; компилятор C, make и утилиты GNU работают без POSIXLY_CORRECT в среде - примеры. Многие программы ожидают параметры, предшествующие другим аргументам.

Обратите внимание, что git и другие команды VCS часто используют гибридную систему:

Git commit -m "This is why it was committed"

В качестве одного из аргументов есть подкоманда. Часто будут добавлены дополнительные "глобальные" параметры, которые могут быть указаны между командой и подкомандой. В POSIX есть примеры; sccs команда находится в этой категории; вы можете утверждать, что некоторые другие команды, которые запускают другие команды, также относятся к этой категории: nice и xargs spring, чтобы учесть POSIX; sudo является примером, отличным от POSIX, как и svn и cvs .

У меня нет сильных предпочтений между различными системами. когда существует несколько вариантов, а затем одиночные буквы с мнемоническим значением удобны. GNU поддерживает это, но рекомендует многобуквенные опции, которым предшествует двойная тире.

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

Другим нежелательным поведением является несогласованность в стиле обработки аргументы (особенно для одной программы, но также и в рамках набора программы). Любой из них требует приложенных аргументов или требует отсоединения аргументы (или разрешить либо), но не имеют некоторых параметров, требующих прилагаемый аргумент и другие, требующие отдельного аргумента. И быть что " = " можно использовать для разделения опции и аргумент.

Как и во многих, многие (связанные с программным обеспечением) вещи - последовательность важными, чем индивидуальные решения. Использование инструментов, которые автоматизируют и стандартизация обработки аргументов помогает с согласованностью.

Что бы вы ни делали, прочитайте Параметры командной строки TAOUP и рассмотрите Стандарты для интерфейсов командной строки . (Добавил (а) J F Себастьян - спасибо; Я согласен.)