Параметры командной строки. Маленькие секреты большой системы

Теги: Параметры командной строки

Параметры командной строки

С и - компилируемый язык. После сборки программа представляет собой исполняемый файл (мы не рассматриваем создание динамических библиотек, драйверов и т.д.). Наши программы очень простые и не содержат библиотек времени выполнения (Runtime libraries), поэтому могут быть перенесены на компьютер с такой же операционной системой (и подобной архитектурой) и там запущены.

Программа во время запуска может принимать параметры. Они являются аргументами функции main. Общий вид функции main следующий

Void main(int argc, char **argv) { ... }

Первым аргументом argc является число переданных функции параметров. Второй аргумент – массив строк – собственно сами параметры. Так как параметры у функции могут быть любыми, то они передаются как строки, и уже сама программа должна их разбирать и приводить к нужному типу.

Первым аргументом (argv) всегда является имя программы. При этом имя выводится в зависимости от того, откуда была запущена программа.

#include #include void main(int argc, char **argv) { printf("%s", argv); }

Теперь научимся немного работать с командной строкой. Это понадобится для того, чтобы передавать аргументы нашей программе. Сочетание клавиш Win+R вызывает окно "Выполнить". Наберите в нём cmd и вы откроете командную строку. Также можно найти cmd.exe поиском в меню Пуск. В юникс-подобных операционных системах можно вызвать программу "терминал".

Мы не будем изучать сколько-нибудь много команд. Только те, которые понадобятся в работе.

Стандартная для всех операционных систем команда cd осуществляет переход к нужной папке. Существует два зарезервированных имени - . (точка) и.. (две точки). Точка - это имя текущей папки.

Никуда не переходит

Обращение к родительской папке

Переход в родительскую папку

Для перехода по нужному пишется cd адрес. Например, нужно перейти на windows в папку C:\Windows\System32

Cd C:\Windows\System32

В линуксе если нужно перейти в папку /var/mysql

Cd /var/mysql

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

Cd "D:\Docuents and Settings\Prolog"

Терминал имеет следующие полезные особенности: если нажать стрелку вверх, по появится предыдущая выполненная команда. Если нажать tab, то терминал попытается дополнить строку до известной ему команды, или дополнить путь, перебирая все папки и файлы в текущей папке.
Наберите cd C:\
нажимайте tab и смотрите, что происходит.

Ещё одна важная команда dir на windows и ls на linux, выводит на консоль содержимое текущей папки (той папки, в которой вы находитесь в данный момент)

Ваша программа вернула своё полное имя. Перейдите в папку, где располагается ваша программа и посмотрите её содержимое



Теперь, после того, как мы перешли в нашу папку, можно выполнить нашу программу. Для этого наберите её имя.



Заметьте - имя изменилось. Так как программа вызывается из своей папки, то выводится относительно имя. Теперь изменим программу и сделаем так, чтобы она выводила все аргументы. которые ей переданы.

#include #include void main(int argc, char **argv) { int i; for (i = 0; i < argc; i++) { printf("%s\n", argv[i]); } }

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



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

#include #include #include void main(int argc, char **argv) { int a, b; if (argc != 3) { printf("Error: found %d arguments. Needs exactly 2", argc-1); exit(1); } a = atoi(argv); b = atoi(argv); printf("%d", a + b); }

Соберём и вызовем



Таким образом работает большинство программ. Кликая на ярлык, вы вызываете программу, на которую он ссылается. Большинство программ также принимают различные аргументы. Например, можно вызвать браузер firefox из командной строки и передать аргументы
firefox.exe "www.mozilla.org" "сайт" и он сразу же откроет в двух вкладках сайты по указанным адресам.

Многие стандартные команды также имеют параметры. В windows принято, что они начинаются с прямого слеша, в юниксе с минуса или двух минусов. Например

Выводит только папки, а в терминале linux

Ls -l выводит все файлы и папки с указанием атрибутов

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

Итак, консоль командной строки присутствует во всех версиях операционных систем Windows. Ранние версии ОС поддерживали режим MS-DOS напрямую, что позволяло выполнять простые команды прямо из консоли. Представители же семейства NT, такие как Windows 2000 или Windows Server 2003, работают уже совсем по другим принципам, однако MS-DOS в них тоже поддерживается, но через виртуальную машину (NT Virtual DOS Machine, NTVDM), что позволяет контролировать и администрировать системные ресурсы прямо из консоли командного режима. В качестве интерпретатора командного режима выступает программа cmd.exe, запуск которой осуществляется через меню «Start -> Run». Кроме того, для запуска консоли можно воспользоваться элементом меню «Start -> All Programs -> Accessories -> Command Prompt».

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

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

Сам администратор может выполнять как одиночные команды, так и список команд, используя специальные управляющие символы (&, |). Например:

Команда 1 & Команда 2 — сначала будет выполнена Команда 1 и только затем Команда 2;
Команда 1 && Команда 2 — только после успешного выполнения Команды 1 будет запущена Команда 2. Существует возможность перенаправить выводимый программой поток напрямую в текстовый файл для дальнейшей обработки. Для этого необходимо использовать управляющий символ «>» и имя текстового файла. Пример вывода содержания текущего каталога в текстовый файл Report.txt при помощи команды dir приведен ниже:
dir> Report.txt

Администратор может запустить несколько копий консоли, вызвав в командной строке программу cmd.exe. Использование вложенной консоли позволяет работать с переменными окружения операционной системы без каких-либо последствий для всей системы в целом, так как после закрытия вложенной консоли изменения переменных окружения не сохраняются. Для контроля над этим процессом используются команды setlocal, endlocal и set.

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

Обратите внимание, что на рисунке в левом верхнем углу следующей страницы использован сложный синтаксис. Так, сразу после команды shutdown /? после специального разделителя «|» идет команда more, что позволяет выводить информацию на экран не целиком, а определенными порциями, удобными для дальнейшего чтения.

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

Кто здесь главный?

По своим возможностям консольные программы делятся на:

  • команды управления операционной системой — это такие команды, как shutdown или taskkill;
  • сетевые команды — net и ipconfig;
  • команды для мониторинга системы — tasklist и systeminfo;
  • команды для поддержки файловой системы — dir, mkdir, copy;
  • команды для обслуживания жестких дисков — defrag и diskpart;
  • команды для поддержки службы каталогов (Active Directories) — addrep и dsadd;
  • вспомогательные команды, в этот раздел входят различные утилиты для создания сценариев, настройки принтеров, работы с переменными окружения и т. д.

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

Команды мониторинга и диагностики

Для выявления неполадок в аппаратной части и проблем с программным обеспечением предназначены команды мониторинга, такие как systeminfo и tasklist. Эти утилиты впервые появились только в операционной среде Windows Server 2003, поэтому администраторы еще не в полной мере оценили функциональные возможности этих команд. Так, например, теперь не надо залезать в закладку «Свойства» иконки «Мой компьютер» — команда systeminfo напечатает на экране консоли основную информацию обо всех компонентах системы с полной расшифровкой. Параметр /s выведет информацию о любом удаленном компьютере. Например, для выяснения конфигурации компьютера TESTSERVER необходимо выполнить следующую команду:

Systeminfo /s TESTSERVER

А утилита tasklist покажет процессы, запущенные на вашем компьютере.

Утилита tasklist позволяет опрашивать системы, соединенные в сеть. Параметр /v дает возможность получать подробные листинги с полезной информацией, в том числе и об именах пользователей, а параметр /т показывает процессы, загрузившие конкретный dll-файл. Другая полезная утилита — openfiles — позволяет получить информацию обо всех открытых файлах локальной и удаленной операционной системы. В прежних версиях операционных систем Windows приходилось использовать команду oh.exe, в современных версиях достаточно выполнить в командной строке консоли команду, которая устанавливает режим мониторинга для всех открытых файлов системы:

Openfiles /local on

Пользователь получит информацию обо всех открытых файлах системы, используя команду с простым синтаксисом:

Openfiles

Команда openfiles с параметрами /query /v показывает, какие пользователи запустили процессы, открывшие файлы. С помощью других параметров-ключей можно задать различный режим вывода информации.

Команды управления операционной системой

Windows Server 2003 предоставляет администраторам новые команды, которые помогают не только диагностировать систему, но и управлять ею. К таким командам можно отнести утилиту shutdown. В качестве параметров-ключей этой утилиты можно использовать следующие:

  • /s — полное штатное отключение системы;
  • /р — выключение питания;
  • /f — завершение работы активных приложений;
  • /д — переход в режим пониженного энергопотребления;
  • /I — завершение сеанса без отключения компьютера.

В виде средства, регистрирующего все штатные выключения компьютера, выступает обработчик событий штатных выключений (Shutdown Event Tracker), который собирает и диагностирует все отключения, выполненные администратором. Также предусмотрена возможность выключать систему с указанием причины, для этого необходимо использовать ключ /d.

Команда taskkill, аналог команды kill в операционных системах семейства *nix, позволяет «убить» зависшее приложение. Совместно с командой tasklist эти утилиты представляют собой мощное средство для оперативного вмешательства в ход выполнения приложений, представляющих потенциальную угрозу для производительности сервера. Из параметров этой команды необходимо отметить ключ/pid, который позволяет завершать процесс по его уникальному идентификатору, и ключ /im — для завершения приложения с указанным именем. Следующий пример позволяет завершить процессы с идентификаторами 1000 и 1240:

Taskkill /pid 1000 /pid 1240

Команды для обслуживания жестких дисков

Оптимизацию жесткого диска позволяет выполнить команда defrag. Утилита умеет дефрагментировать диски с файловой системой FAT, FAT32 и NTFS. Defrag одинаково хорошо работает как с динамическим типом диска, так и с базовым. Синтаксис вызова этой команды следующий:

Defrag диск [ -a j [ -f ] [ -v ] [ -? ]

Параметр -а предусматривает только анализ информации на диске, параметр -f — оптимизацию информации, в том числе и при отсутствии необходимого дискового пространства для создания временных файлов, а параметр -v — вывод отчета о ходе оптимизации. Не забудьте, что для успешной дефрагментации диск должен содержать как минимум 15% свободного места.

Команда fdisk уже не поддерживается ядром операционной системы Windows Server 2003. На смену ей пришла команда diskpart, также предназначенная для обслуживания жестких дисков. Разбить диск на разделы, создать логические диски, удалить их — вот лишь некоторые задачи, решаемые этой утилитой. В основном команда diskpart ориентирована на работу со специальными файлами-сценариями, в которых описаны процедуры обслуживания жестких дисков. Вот как выглядит вызов этой команды для файла-сценария Scriptl.txt:

Diskpart /s Scriptl.txt

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

Create partition logical size=2048

Сетевые команды

Среди сетевых команд хотелось бы выделить две утилиты. Первая — это команда ipconfig, вторая — netstat. Системные администраторы используют эти команды не только для мониторинга сети, но и для защиты от опасных программ, пытающих установить контроль над системой.

При помощи утилиты ipconfig пользователь может узнать сетевой адрес своего компьютера, а вызвав эту команду с параметром /all, получить полную информацию о конфигурации сети на локальном компьютере. Параметр /renew позволяет изменить сетевые настройки без перезагрузки всей системы в целом.

Если вы заметили, что с вашим компьютером происходит что-то неладное, то в этом случае поможет команда netstat, которая не только укажет на открытые сетевые порты, по которым злоумышленники могли подсоединиться к вашей системе, но и идентифицирует процессы, запущенные на сервере без вашего ведома. Так, ключ /о выводит информацию об идентификаторе процесса (PID), использующего то или иное сетевое соединение. Существует возможность посмотреть, какие компьютеры в сети взаимодействуют с вашей локальной операционной системой.

Команды для поддержки службы каталогов

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

Для мониторинга такой сложной структуры в операционной системе предусмотрена команда dsquery, которая предназначена для расширенного поиска компонентов службы каталогов. Также этой командой можно пользоваться для вывода информации о свойствах выбранных компонентов (ключ -attr). Параметры -scope, -subtree, -onelevel, -base определяют уровень вложенности поиска, а ключ -filter позволяет задействовать фильтр поиска.

Команда dsmod может помочь в случае необходимости модификации одной или нескольких учетных записей для выбранного компонента службы каталогов. Например, можно удалить пользователя из группы или назначить ему новый пароль. Пример изменения учетной записи для пользователя TestUser приведен ниже:

Dsmod user
"CN=TestUser,CN=Users,DC=bigtex,DC=net " -pwd Uf@tfmgerelt -mustchpwd yes

Команда dsmove перемещает объект в пределах текущего домена. При помощи ключей -newname и -newparent можно задавать новое имя объекта и менять его местоположение.

Команды для поддержки файловой системы

Описание некоторых часто употребляющихся команд для работы с файлами и директориями представлено в таблице. Команду deltree, которая выполняла каскадное удаление папок и файлов в них, заменяет теперь rmdir с ключом /s.

Маленькие секреты большой системы

Изменение приглашения для командной строки

Найдите в реестре ключ: Создайте в этом ключе строковый параметр «PROMPT» с типом (REG_EXPAND_SZ) и присвойте одно из следующих значений:

  • $В — вертикальная черта «I»;
  • $D — текущая дата;
  • $G — знак больше «>»;
  • $1_ — знак меньше «<»;
  • $N — текущий диск;
    $Р — текущий диск и путь;
  • $Q — знак равно «=»;
  • $Т — текущее время;
  • $V — версия Windows;
  • $$ — знак доллара «$».

После перезагрузки вы увидите приглашение в определенном вами виде.

Автонабор команд

Для включения возможности автонабора команд по нажатию клавиши «Tab», найдите в реестре ключ:

Затем установите значение параметра CompletionChar равным 9, что соответствует идентификатору клавиши «Tab», закройте реестр и перезагрузите компьютер. В окне консоли, набирая часть имени команды, вы можете теперь нажать клавишу «Tab», и Windows автоматически подставит необходимую команду.

Изменение цвета консоли

Найдите в реестре ключ:

Измените параметр DefaultCoior. Значение -F0 определит вывод черного текста на белом фоне, а значение IE удивит вас желто-синей расцветкой консоли.

Быстрый запуск консоли командной строки из контекстного меню

Найдите в реестре ключ:

Добавьте в него подразделы «CommandPrompt -> Command". Параметру Default ключа Command присвойте значение «cmd.exe /k cd "%1"».

Параметру Default ключа Command Prompt присвойте значение «Open Command Prompt".

Щелкнув правой кнопкой мыши на любой папке в Проводнике, можно выбрать команду Open Command Prompt, которая запустит консоль с командной строкой в нужной директории.

Заключение

Ну, вот и все. Мы рассказали об основах работы с консолью. Дальше предоставляем вам возможность самим исследовать функциональность и многообразие консольных команд. Только не забывайте заветный ключ /?, а остальное придет со временем и опытом.

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

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

Каждая команда имеет определенную синтаксическую структуру, согласно которой пользователь вводит команду в командной строке. Для примера, возьмем команду 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 и т.д.

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

Зачем нужны параметры?

Большинство команд, которые дают в оболочке Linux, состоят не из одного слова (сокращения слова). Чаще команды дополняются специальными параметрами (аргументами и ключами). Таким образом происходит конкретизация и модификация команды. Если провести аналогию между поведением командной оболочки и поведением человека, то можно сказать, что для человека слово "иди" - это команда, а слова "на остановку" - это параметр. Параметры позволяют более точно сформулировать то, что мы хотим.

Например, команда cal без параметров выдает календарь на текущий месяц.

Однако может потребоваться получить календарь на весь год. Тогда следует дать команду cal 2009 . В данном случае "2009" - это аргумент (операнд). Кроме того, можно получить календарь абсолютно любого месяца; в этом случае команде передаются два аргумента: номер месяца и год.


Обратите внимание, что в ответе командной оболочки неделя начинается с воскресенья. Это как-то не по русски. Для того, чтобы неделя начиналась с понедельника необходимо использовать ключ (опцию) -m (от англ. Monday – понедельник). Ключи предназначены для изменения поведения команды.


Команда echo (эхо) выводит строку, переданную ей в качестве аргумента. Если написать команду без параметра, то она выдаст пустую строку.


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

Параметры команды ls

Рассмотрим некоторые ключи и параметры уже знакомой нам команды ls , которая выдает список файлов и папок текущего каталога (однако, как мы узнаем далее, не обязательно текущего).

Если команду ls использовать с ключом -l , то вывод будет более информативным.


В первой строке (итого 17736) содержится информация об общем размере всех файлов в списке. Далее в каждой строке сообщается о правах доступа к файлу, количестве ссылок на файл, имени владельца, имени группы, размере, времени последнего изменения и имени (файла или каталога). При добавлении ключа -t произойдет сортировка по времени. Ключи записываются друг за другом.


Команда ls часто применяется для просмотра содержимого разных каталогов файловой структуры. Для этого следует уметь адресовать команду к конкретному каталогу, т. е. передать интересующий нас каталог в качестве аргумента команде ls . Пока оставим адресацию в командной строке на потом и просто просмотрим содержимое каталога, который находится в текущем (домашнем каталоге). Например, чтобы узнать что находится в каталоге Desktop, следует написать ls Desktop и нажать Enter.

До сих пор мы рассматривали команды, которые можно использовать без параметров. Однако существует ряд команд, которые без переданных им аргументов теряют всякий смысл и поэтому требуют обязательного наличия аргумента. Одной из таких команд является sleep (сон). Эта команда заставляет оболочку bash выполнить задержку перед следующей командой. А параметр, передающийся sleep , указывает какую именно задержку (сколько секунд, минут и т. д.). При интерактивной работе с bash данная команда особого смысла не имеет; однако часто для командной оболочки пишут сценарии (файлы с командами), и вот там иногда требуется выполнить задержку.


В приведенном примере сначала команда записана без аргумента, поэтому получено соответствующее сообщение. Далее два вызова делают одно и тоже (задерживают на 3 секунды). Если вместо суффикса s использовать m , то задержка будет измеряться в минутах.

Вопросы

  1. Для чего необходимы параметры к командам?
  2. Что передается в качестве аргумента команде cal ? Как можно модифицировать выполнение этой команды?
  3. Что делает команда echo ?
  4. Что следует записать в командной оболочке, чтобы получить данные о файлах (правах, размере и др.) текущего каталога?
  5. Стоит ли писать sleep 1000m в командной оболочке Linux, если вы не знаете как прервать выполнение команд?

Практическая работа

  1. В командной оболочке Linux выведите календарь на текущий месяц, затем на целый год и на любой нетекущий месяц.
  2. "Заставьте" командную оболочку Linux повторить введенную вами строку.
  3. Получите сведения о файлах вашего домашнего каталога.