русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Файлы запуска командной оболочки Bash


Дата добавления: 2014-11-28; просмотров: 857; Нарушение авторских прав


Программа или командная оболочка /bin/bash (далее именуемая просто как "командная оболочка") использует набор загрузочных файлов, которые помогают создавать среду окружения для ее работы. Каждый файл имеет конкретное назначение и может по-разному влиять на то, как будет происходить вход в командную оболочку и на ее интерактивные особенности. В файлах, находящихся в директории /etc, указываются глобальные настройки командной оболочки. Если аналогичный файл есть в домашнем директории пользователя, то настройки, указывает в нем, будут переопределять глобальные настройки.

Когда пользователь успешно входит в систему, то запускается интерактивная командная оболочка с регистрацией (interactive login shel), использующая модуль /bin/login, читающий файл /etc/passwd. Интерактивная командная оболочка без регистрации (interactive non-login) обычно запускается из командной строки (например, [строка-приглашение]$/bin/bash). Неинтерактивная командная оболочка (non-interactive shell ) обычно используется в случае, когда запускается скрипт командной оболочки. Она не является интерактивной, поскольку вся обработка осуществляется скриптом и между командами оболочка не ждет ввода данных от пользователя.

Дополнительную информацию смотрите с помощью команды info bash в разделе Bash Startup Files and Interactive Shells (Файлы запуска Bash и интерактивные командные оболочки).

Когда оболочка вызывается как интерактивная командная оболочка с регистрацией, то читаются файлы /etc/profile и ~/.bash_profile.

В основном файле /etc/profile выполняются некоторые настройки переменных среды окружения, необходимые для поддержки родного языка пользователя. Результатом их правильной настройки будет следующее:

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

В командах, приведенных ниже, замените <ll> на двухбуквенный код нужного языка (например, "en"), а <CC> на двухбуквенный код соответствующей страны (например, "GB"). <charmap> следует заменить канонический названием отображения символов для выбранного языка. Могут присутствовать дополнительные модификаторы, такие как "@euro".



Список всех локалей, поддерживаемых Glibc, можно получить, выполнив следующую команду:

locale -a

Отображения символов могут иметь несколько алиасов, например, "ISO-8859-1" можно также указывать как "iso8859-1" и "iso88591". В некоторых приложениях ряд синонимов могут не обрабатываться правильно (например, требуется указывать "UTF-8" как "UTF-8", а не как "utf8"), поэтому лучше всего для конкретной локали выбирать ее каноническое имя. Чтобы определить каноническое имя, запустите следующую команду, где <locale name> является предпочтительной для вас локалью (в нашем примере — "en_GB.iso88591"), выбранной из выданных командой locale -a.

LC_ALL= locale charmap

Для локали "en_GB.iso88591" указанная выше команда выведет:

ISO-8859-1

В результате в окончательной настройке локали у нас будет "en_GB.ISO-8859-1". Важно, чтобы поиск локали с помощью эвристики, описанной выше, был выполнен раньше, чем в настроечные файлы Bash будут добавлены следующие команды:

LC_ALL= locale languageLC_ALL= locale charmapLC_ALL= locale int_curr_symbolLC_ALL= locale int_prefix

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

locale: Cannot set LC_* to default locale: No such file or directory

Если это случится, вы должны либо с помощью команды localedef установить требуемую локаль, либо выбрать другую локаль. Далее предполагается, что Glibc не выдает такие сообщения об ошибках.

В некоторых пакетах, не входящих в состав LFS, может отсутствовать поддержка выбранной вами локали. Одним из примеров является библиотека X (часть системы X Window), которая выводит следующее сообщение об ошибке, если локаль не совпадает точно с одним из названий отображений символов, используемых во внутренних файлах:

Warning: locale not supported by Xlib, locale set to C

В определенных случаях в библиотеке Xlib предполагается, что название отображения символов будет указано в верхнем регистре с каноническими символами тире. Например, "ISO-8859-1", а не "iso88591". Также можно найти подходящую спецификацию, если удалить из спецификации локали часть, в которой указано отображение символов. Это можно проверить, если для обеих локалей запустить команду locale charmap. Например, можно заменить "de_DE.ISO-8859-15@euro" на "de_DE@euro" с тем, чтобы эта локаль могла быть распознана библиотекой Xlib.

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

После того, как будет определена правильная настройка локали, создайте файл /etc/profile:

cat > /etc/profile << "EOF"# Begin /etc/profile export LANG=_.<@modifiers> # End /etc/profileEOF

Локали "С" (используется по умолчанию) и "en_US" (рекомендуется для англоязычных пользователей США) разные. В "С" используется семибитный набор символов US-ASCII, а байты с установленным старшим битом трактуются как недопустимые символы. По этой причине в этой локали команда ls заменяет эти символы вопросительными знаками. Кроме того, попытка отправить почту с такими символами с помощью Mutt или Pine приведет к тому, что будет отослано сообщение, не соответствующее требованиям RFC (кодировка в исходящей почте будет указана как "неизвестные 8-битовые символы"). Следовательно, вы можете пользоваться локалью "C" только если вы уверены, что вам никогда не потребуется 8-битные символы.

Во многих программах также не поддерживаются локали на основе UTF-8. Работа, связанная с этим, ведется и, по возможности, такие проблемы исправляются, смотритеhttp://www.linuxfromscratch.org/blfs/view/svn/introduction/locale-issues.html.



<== предыдущая лекция | следующая лекция ==>
Создание файла /etc/inputrc | Историческая справка


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.506 сек.