Logo CitForum CITForum на CD Форумы Газета Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

20.03.2010

Google
WWW CITForum.ru

Новости мира IT:

Архив новостей

Пятнадцатая техническая конференция «Корпоративные базы данных-2010»
Москва, 22–23 апреля
2004 г

Руководство FreeBSD
(FreeBSD Handbook)

Проект Русской Документации FreeBSD

содержание

3.9. Интерпретатор команд

При работе с FreeBSD, в большинстве случаях для выполнения повседневных задач используется командный интерфейс (так называемая ``оболочка'', ``shell''). Основная задача интерпретатора -- принимать вводимые команды и выполнять их. Многие командные интерпретаторы имеют встроенные средства для выполнения повседневной работы, например, операции над файлами и каталогами, редактирование командной строки, командные макросы и переменные окружения. Вместе с FreeBSD поставляется несколько командных интерпретаторов, например, sh, или Bourne Shell, и tcsh, расширенная версия C-shell. Многие другие интерпретаторы доступны из коллекции портов FreeBSD, например zsh и bash.

Какой из командных интерпретаторов использовать? Это дело вкуса. Если вы программируете на C, то вам, возможно, понравится tcsh. Если вы работали с Linux, или только начинаете работать с интерфейсом командной строки UNIX®, попробуйте bash. Каждый из названных интерпретаторов имеет свои особенности, которые отличат его от других, и, возможно, повлияют на ваш выбор.

Одна из наиболее часто используемых функций командного интерпретатора - дополнение частичного имени файла до полного. Вы можете набрать только первые несколько символов имени файла, нажать клавишу табуляции (TAB), и командный интерпретатор автоматически завершит имя. Например, у нас есть два файла, названные foobar и foo.bar. Допустим, мы хотим удалить файл foo.bar. Для этого, наберем на клавиатуре rm fo[Tab].[Tab].

Вы увидите следующее: rm foo[BEEP].bar.

Здесь [BEEP] - это так называемый консольный сигнал, оповещающий о том, что интерпретатор не в состоянии закончить имя файла, так как по введенным вами символам невозможно однозначно идентифицировать файл. Например, имена файлов foobar и foo.bar оба начинаются с fo, но после нажатия TAB можно однозначно дополнить только до foo. Если же теперь ввести точку (.) и вновь нажать TAB, интерпретатор достроит имя файла целиком.

Дополнительные возможности при работе с интерпретатором дает использование переменных окружения. Переменные окружения это пары переменная=значение, хранящиеся в памяти интерпретатора. Значение переменных окружения может быть прочитано любой программой, запущенной из командного интерпретатора, и часто содержит настройки для многих приложений и утилит. Ниже приведены некоторые наиболее часто встречающиеся переменные окружения и их значения:

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

Установка значений переменных окружения различна для разных оболочек. Например, в интерпретаторах C-стиля, таких как tcsh и csh, это setenv. В интерпретаторах Bourne, таких как sh и bash, это export. Например, чтобы установить или изменить значение переменной EDITOR к значению /usr/local/bin/emacs в csh или tcsh, выполните команду:

% setenv EDITOR /usr/local/bin/emacs

В оболочках Bourne:

% export EDITOR="/usr/local/bin/emacs"

Чтобы получить значение переменной, например, в командной строке, поместите символ $ перед именем переменной. Например, команда echo $TERM выведет значение переменной $TERM.

Командный интерпретатор воспринимает некоторые символы, называемые метасимволами, в качестве управляющих. Один из наиболее часто используемых - символ *, который заменяет любое количество символов в имени файла. Метасимволы используются для поиска файлов по маске, например, команда echo * делает практически тоже самое, что и команда ls, поскольку интерпретатор вызывает команду echo, передавая ей имена всех файлов, попадающих под маску *.

В некоторых ситуациях требуется, чтобы интерпретатор воспринимал метасимволы как обычные, не несущие специальной смысловой нагрузки. Этого можно достичь, поставив перед символом обратную косую черту (\). Например, команда echo $TERM выведет тип вашего терминала, в то же время команда echo \$TERM выведет именно слово $TERM, а не значение переменной $TERM.

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

Самым простым способом, пожалуй, будет воспользоваться командой chsh. Если переменная EDITOR определена, то будет загружен соответствующий текстовый редактор, иначе vi. Вам нужно будет изменить значение поля ``Shell:'' и выйти из редактора с сохранением результатов.

Можно также воспользоваться опцией -s команды chsh. Например, если вы хотите изменить интерпретатор на bash, выполните:

% chsh -s /usr/local/bin/bash

Также можно запустить chsh без параметров и изменить интерпретатор по умолчанию в редакторе.

Замечание: Интерпретатор, который вы будете использовать, обязательно должен быть в файле /etc/shells. Обычно, при установке интерпретаторов из коллекции портов, это делается автоматически. Если же это не так, вам нужно будет самостоятельно добавить соответствующую строчку в этот файл.

Например, если вы установили bash вручную и поместили его в каталог /usr/local/bin, нужно набрать:

# echo "/usr/local/bin/bash" >> /etc/shells

Теперь можно смело использовать команду chsh.

Последние комментарии:

Я не верю в iPad (69)
19 марта, 12:17

Подписка на новости CITForum.ru

Новые публикации:

10 марта

  • HadoopDB: архитектурный гибрид технологий MapReduce и СУБД для аналитических рабочих нагрузок

  • Классификация OLAP-систем вида xOLAP

  • BGP. Три внешних канала. Балансировка исходящего и входящего трафиков

    Газета:

  • Что мы знаем об iPhone 4G?

    17 февраля

  • MapReduce и параллельные СУБД: друзья или враги?

  • Объектно-ориентированное программирование в ограничениях: новый подход на основе декларативных языков моделирования данных

  • Системологический подход к декомпозиции в объектно-ориентированном анализе и проектировании программного обеспечения

    Газета:

  • Эволюция Wine

    3 февраля

  • Дом на песке

  • Реальное переосмысление "формальных методов"

  • Интервью с Найджелом Пендзом

    Газета:

  • iPad. Первый взгляд на долгожданный планшет от Apple

  • Я не верю в iPad

    20 января

  • SQL/MapReduce: практический подход к поддержке самоописываемых, полиморфных и параллелизуемых функций, определяемых пользователями

  • Данные на лету: как технология потокового SQL помогает преодолеть кризис

    Обзоры журнала Computer:

    2 декабря

  • Сергей Кузнецов. Год эпохи перемен в технологии баз данных

    18 ноября

  • Генерация тестовых программ для подсистемы управления памятью микропроцессора

  • Сравнительный анализ современных технологий разработки тестов для моделей аппаратного обеспечения

    11 ноября

  • Генерация оптимизированных для ручного выполнения сценариев тестирования приложений с графическим интерфейсом пользователя

  • Применение технологии UniTESK для функционального тестирования инфаструктурного ПО Грид

    28 октября

  • Remoting с сервером на Unmanaged C++ или Вторая жизнь старых приложений

  • Методы обеспечения переносимости ПО

  • Организация сложных тестовых наборов

    22 октября

    Обзоры журнала Computer:

    14 октября

  • МОГучие способности: новые приемы анализа больших данных

  • Учимся регулярно выражаться

    8 октября

  • Записки исследователя NTFS

  • Создание кросс-платформенных графических интерфейсов на wxPerl

    Все публикации >>>


  • IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

    Информация для рекламодателей PR-акции, размещение рекламы — тел. +7 495 6608306, ICQ 232284597 Пресс-релизы — pr@citforum.ru
    Послать комментарий
    Информация для авторов

    Редакция раздаёт котят!

    Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2009 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...