Руководство пользователя. Командная строка. Интерпретатор командной строки (shell)

При работе с FreeBSD, в большинстве случаях для выполнения повседневных задач используется командный интерфейс (так называемый ``шелл""), который принимает команды, которые ему подаются, и выполняет их. Многие командные интерпретаторы имеют встроенные средства выполнения наиболее часто используемых команд, например, операции над файлами и каталогами, редактирование командной строки, командные макросы и переменные окружения. Вместе с FreeBSD поставляется несколько командных интерпретаторов, например, sh, или Bourne Shell, и csh, иначе C-shell. Многие другие, более мощные, например, tcsh или bash, доступны в коллекции портов.Какой из командных интерпретаторов использовать? Это дело вкуса. Если Вы программируете на C, то Вам, возможно, понравится tcsh, а если Вы работали с Linux, то Вас скорее устроит bash, нежели что-либо другое. Каждый из названных интерпретаторов имеет свои особенные свойства, которые отличат его от других и, возможно, повлияют на Ваш выбор.Одна из наиболее часто используемых функций командного интерпретатора - дополнение частичного имени файла до полного. Вы можете набрать только первые несколько символов имени файла, нажать клавишу табуляции (TAB), и командный интерпретатор автоматически Например, у нас есть два фала, названные foobar и foo.bar . Допустим, мы хотим удалить файл foo.bar . Для этого, наберем на клавиатуре rm fo. .Вы увидите следующее: rm foo.bar .Здесь - это так называемый консольный звонок, сигнализирующий о том, что интерпретатор не в состоянии закончить имя файла, так как по введенным Вами символам невозможно однозначно идентифицировать файл. Например, имена файлов foobar и foo.bar оба начинаются с fo , но после нажатия TAB можно однозначно дополнить только до foo . Если же теперь ввести точку (.) и вновь нажать TAB, интерпретатор достроит имя файла целиком.При работе с любым командным интерпретатором, Вы столкнетесь с переменными окружения. Под переменной окружения понимается некоторая строка символов, идентифицируемая некоторым именем. Значение переменных окружения может быть прочитано любо программой, запущенной из командного интерпретатора, и часто содержит конфигурационные настройки для многих приложений и утилит. Ниже приведены некоторые наиболее часто встречающиеся переменные окружения с объяснением их значения:

Переменная Описание USER Имя текущего пользователя. PATH Каталоги, разделенные двоеточием, в которых производить поиск исполняемых файлов. DISPLAY Сетевое имя виртуального дисплея X11, если доступен для подключения. SHELL Текущий командный интерпретатор. TERM Название (тип) терминала. Используется, чтобы узнать возможности терминала. TERMCAP Список escape-последовательностей для управления различными функциями терминала. OSTYPE Название (тип) операционной системы. Например, FreeBSD. MACHTYPE Архитектура машины (процессора). EDITOR Предпочитаемый пользователем текстовый редактор. PAGER Предпочитаемая пользователем утилита просмотра файлов. MANPATH Каталоги, разделенные двоеточием, в которых производить поиск файлов системного справочника.

В зависимости от используемого командного интерпретатора, для просмотра и установки значений переменных окружения служат различные команды. Например, в интерпретаторах csh и tcsh это setenv . В sh и bash это set и export . В частности, чтобы установить или изменить значение переменной EDITOR (в csh или tcsh) равное /usr/local/bin/emacs , выполните команду: setenv EDITOR /usr/local/bin/emacs Если Вы используете bash: export EDITOR="/usr/local/bin/emacs" Чтобы получить значение переменной, например, в командной строке, поместите символ доллара ($) перед именем переменной. Например, команда echo $TERM выведет значение переменной $TERM .Командный интерпретатор воспринимает некоторые символы, называемые метасимволами, в качестве управляющих, несущих специальные функции. Одни из наиболее часто используемых - символ * , который заменяет любое количество символов в имени файла, и? , заменяющий один символ. Эти метасимволы используются для поиска файлов по маске, например, команда echo * выполняет практически тоже самое, что и команда ls , так как под маску * попадают все файлы из текущего каталога (на самом деле, это всегда так и зависит от командного интерпретатора, например, в bash под маску * не попадут файлы, начинающиеся с точки. - скрытые файлы).В некоторых ситуациях требуется, чтобы интерпретатор воспринимал метасимволы как обычные, не несущие специальной смысловой нагрузки. Этого можно достичь, поставив перед символом обратную косую черту (\). Например, команда echo $TERM выведет тип Вашего терминала, в то же время команда echo \$TERM выведет именно слово $TERM , а не значение переменной $TERM .

3.4.1. Как изменить командый интерпретатор по умолчанию

Самым простым, пожалуй, будет воспользоваться командой chsh . Если переменная EDITOR определена, то будет загружен текстовый редактор $EDITOR , иначе vi. Вам нужно будет изменить значение поля ``Shell:"" и выйти из редактора с сохранением результатов.Можно также воспользоваться опцией -s команды chsh . Например: % chsh -s /usr/local/bin/bash
Note: Помните, чтобы использовать некоторую программу в качестве командного интерпретатора, она должна быть обязательно упомянута в файле /etc/shells . Обычно, при установке интерпретаторов из дерева портов, это делается автоматически. Если же это не так, Вам нужно будет самим добавить соответствующую строчку в этот файл.Например, допустим, что Вы установили bash вручную, без использования соответствующего порта, и поместили его в каталог /usr/local/bin . В таком случае, можно набрать: # echo "/usr/local/bin/bash" >> /etc/shells Теперь можно смело использовать команду chsh .

Из книги Журнал «Компьютерра» N 33 от 12 сентября 2006 года автора Журнал «Компьютерра»

СОФТЕРРА: Высокохудожественный командный интерпретатор Автор: Илья ШпаньковКогда разговор заходит о растровых графических редакторах, абсолютное большинство людей в первую очередь вспоминает Adobe Photoshop. Сторонники свободного софта, конечно, не забудут упомянуть и

Из книги Давайте создадим компилятор! автора Креншоу Джек

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

19.7. Интерпретатор команд bash Интерпретатор команд - это программа, выполняющая команды пользователя. Стандартным интерпретатором (или оболочкой) является bash (Bourne Again Shell). Достаточно распространенными также являются следующие интерпретаторы: sh, ash, bsh, tcsh, csh, zsh. Список

Из книги Программирование на языке Пролог для искусственного интеллекта автора Братко Иван

Из книги Бесплатные разговоры через Интернет автора Фрузоров Сергей

16.2. Простой интерпретатор программ, управляемых образцами Для описания модулей, управляемых образцами, мы применим следующую синтаксическую конструкцию:ЧастьУсловия ---> ЧастьДействияЧасть условия представляет собой список условий:[ Условие1, Условие2, Условие3, ...]где

Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.

Глава 4 TeamSpeak - командный разговор через компьютерную сеть Чем TeamSpeak отличается от TeamTalk Программа TeamSpeak очень уж похожа на TeamTalk: те же каналы, та же возможность работать как в Интернете, так и в локальной сети, выбор разнообразных кодеков по сжатию звука, клиент-серверный

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Глава 22 Командный интерпретатор bash 22.1. Что нужно знать о bash bash - это наиболее часто использующаяся командная оболочка (командный интерпретатор) Linux. Основное предназначение bash - выполнение команд, введенных пользователем. Пользователь вводит команду, bash ищет программу,

Из книги Операционная система UNIX автора Робачевский Андрей М.

Командный режим Хотя isql имеет некоторые удобные интерактивные возможности, она не ограничена только этим режимом. Многие интерактивные команды доступны также в виде переключателей командной строки. Некоторые функции isql, такие как извлечение метаданных, доступны только

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Командный интерпретатор shell Все современные системы UNIX поставляются по крайней мере с тремя командными интерпретаторами: Bourne shell (/bin/sh), С shell (/bin/csh) и Korn shell (/bin/ksh). Существует еще несколько интерпретаторов, например Bourne-Again shell (bash), со сходными функциями.Командный

Из книги UNIX - универсальная среда программирования автора Пайк Роб

Интерпретатор bourne shell Bourne shell является стандартным интерпретатором команд, который входит в состав всех систем UNIX и совместим с интерпретатором bash в Linux. В книге, посвященной shell–программированию и не привязанной к конкретной операционной системе, в качестве общего

Из книги автора

Интерпретатор shell В первой части книги рассматриваются общие вопросы, связанные с работой в интерпретаторе shell.В главе 1 рассказывается о правах доступа к файлам и каталогам, а также о том, как создавать символические ссылки.Чтобы на поиск созданного вами файла не уходило

Из книги автора

24.1. Полный список команд, встроенных в интерпретатор shell В табл. 24.1 содержится полный перечень стандартных встроенных команд. Таблица 24.1. Стандартные встроенные команды: Нуль, всегда возвращает истинное значение. Считывание файлов из текущего интерпретатора

BAT Расширение файла: .bat, .cmd (только Windows NT) Тип формата: Скриптовый язык программирования Пакетный файл (англ. batch file) текстовый файл в OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным … Википедия

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

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

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

Генеалогическое древо UNIX систем UNIX (читается юникс) семейство переносимых, многозадачных и многопользовательских … Википедия

Генеалогическое древо UNIX систем UNIX (читается юникс) группа переносимых, многозадачных и многопользовательских операционных систем. Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании AT T. С тех пор было создано … Википедия

Генеалогическое древо UNIX систем UNIX (читается юникс) группа переносимых, многозадачных и многопользовательских операционных систем. Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании AT T. С тех пор было создано … Википедия

Генеалогическое древо UNIX систем UNIX (читается юникс) группа переносимых, многозадачных и многопользовательских операционных систем. Первая система UNIX была разработана в 1969 г. в подразделении Bell Labs компании AT T. С тех пор было создано … Википедия

Драйверы символьных устройств

При вводе команды поток символов в первую очередь интерпретируется драйвером символьного устройства. Какой именно драйвер работает, в каждом случае зависит от используемого оборудования (более подробные сведения см. в «Описании программы. Часть 1. Справочник по утилитам» КПДА.10964-01 13 01).

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

Режимы ввода

Драйверы устройств символьного ввода/вывода могут функционировать либо в режиме необрабатываемых ("сырых") входных данных (raw input mode), либо в каноническом режиме (canonical mode), или режиме редактируемых входных данных (edited input mode). В режиме "сырых" входных данных все символы передаются приложению по мере их ввода. В режиме редактируемых входных данных приложение получает символы только после завершения ввода всей строки (о чем, как правило, свидетельствует символ возврата каретки).

Поддержка терминалов

Некоторым программам (например, vi) требуется информация о том, какие действия может выполнять ваш терминал (возможно ли перемещение курсора, очистка экрана и т. д.). Переменная окружения TERM указывает на тип используемого терминала, а каталог /usr/lib/terminfo представляет собой базу данных терминалов. В этом каталоге содержится набор подкаталогов (от a до z), в которых хранится информация для соответствующего терминала. Некоторые приложения вместо каталога /usr/lib/terminfo используют каталог /etc/termcap, представляющий собой устаревшую однофайловую модель базы данных.

Терминалом по умолчанию является qansi-m (QNX-версия терминала ANSI). Более подробные сведения об установке типа терминала см. в подразд. "Типы терминалов" раздела 9.

Служба telnet

При использовании сетевой службы telnet для связи между двумя QNX-машинами (под управлением QNX 4 или QNX Neutrino), для активизации восьмибитового тракта данных следует задавать параметр -8. Если вы подключаетесь к машине с QNX Neutrino из машины, управляемой какой-либо другой ОС, и терминал при этом не работает надлежащим образом, завершите telnet и запустите эту утилиту снова с параметром -8.

Примечание . При запуске telnet из ОС Windows пользуйтесь режимом ansi или vt100, в зависимости от типа терминала.

Общие сведения о клавиатуре

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

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

Рассматриваются внутренние команды, поддерживаемые интерпретатором Cmd.exe, и наиболее часто используемые внешние команды (утилиты командной строки). Описываются механизмы перенаправления ввода/вывода, конвейеризации и условного выполнения команд. Даются примеры команд для работы с файловой системой

В ОС Windows, как и в других ОС, интерактивные (набираемые с клавиатуры и сразу же выполняемые) команды выполняются с помощью так называемого командного интерпретатора, иначе называемого командным процессором или оболочкой командной строки (command shell). Начиная с версии Windows NT, в операционной системе реализован интерпретатор команд Cmd.exe, обладающий гораздо более широкими возможностями.

1.2.1 Запуск оболочки

В Windows NT/2000/XP файл Cmd.exe, как и другие исполняемые файлы, соответствующие внешним командам ОС, находятся в каталоге %SystemRoot%\SYSTEM32 (значением переменной среды %SystemRoot% является системный каталог Windows, обычно C:\Windows или C:\WinNT). Для запуска командного интерпретатора (открытия нового сеанса командной строки) можно выбрать пункт Выполнить… (Run) в меню Пуск (Start), ввести имя файла Cmd.exe и нажать кнопку OK. В результате откроется новое окно (см. рис. 1), в котором можно запускать команды и видеть результат их работы.

Рис. 1 - Командное окно интерпретатора Cmd.exe в Windows XP

1.2.2 Настройка параметров командного окна интерпретатора

У утилиты командной строки, которая поставляется в виде стандартного приложения ОС Windows, имеется свой набор опций и параметров настройки. Один из способов просмотра этих опций – использование пункта Свойства управляющего меню окна (нажать правой кнопкой мыши на заголовок окна). В окне свойств (см. рис. 2) будут доступны четыре вкладки с опциями: общие, шрифт, расположение и цвета.

Рис. 2 – окно настройки свойств интерпретатора

1.2.3. Внутренние и внешние команды. Структура команд

Некоторые команды распознаются и выполняются непосредственно самим командным интерпретатором - такие команды называются внутренними (например, COPY или DIR). Другие команды ОС представляют собой отдельные программы, расположенные по умолчанию в том же каталоге, что и Cmd.exe, которые Windows загружает и выполняет аналогично другим программам. Такие команды называются внешними (например, MORE или XCOPY).

Рассмотрим структуру самой командной строки и принцип работы с ней. Для того, чтобы выполнить команду, после приглашения командной строки (например, C:\>) следует ввести имя этой команды (регистр не важен), ее параметры и ключи (если они необходимы) и нажать клавишу . Например:

C:\>COPY C:\myfile.txt A:\ /V

Имя команды здесь - COPY, параметры - C:\myfile.txt и A:\, а ключом является /V. Отметим, что в некоторых командах ключи могут начинаться не с символа /, а с символа – (минус), например, -V.

Многие команды Windows имеют большое количество дополнительных параметров и ключей, запомнить которые зачастую бывает трудно. Большинство команд снабжено встроенной справкой, в которой кратко описываются назначение и синтаксис данной команды. Получить доступ к такой справке можно путем ввода команды с ключом /?. Например, если выполнить команду ATTRIB /?, то в окне MS-DOS мы увидим следующий текст:

Отображение и изменение атрибутов файлов.

ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[диск:][путь]имя_файла]

Установка атрибута.

Снятие атрибута.

R Атрибут "Только чтение".

A Атрибут "Архивный".

S Атрибут "Системный".

H Атрибут "Скрытый".

/S Обработка файлов во всех вложенных папках указанного пути.

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

В этом случае после заполнения очередного экрана вывод помощи будет прерываться до нажатия любой клавиши. Кроме того, используя символы перенаправления вывода > и >>, можно текст, выводимый на экран, направить в текстовый файл для дальнейшего просмотра. Например, для вывода текста справки к команде XCOPY в текстовый файл xcopy.txt, используется следующая команда:

XCOPY /? > XCOPY.TXT

Замечание . Вместо имени файла можно указывать обозначения устройств компьютера. В Windows поддерживаются следующие имена устройств : PRN (принтер), CON (терминал: при вводе это клавиатура, при выводе - монитор), NUL (пустое устройство, все операции ввода/вывода для него игнорируются).