Налаштування оточення UNIX

Одна з приємних особливостей системи UNIX полягає в тому, що існує кілька способів настроювати середовище, пристосовуючи її до своїх смаків або до угод локального оточення Наприклад, раніше згадувалася проблема різних стандартів для символу забою і символу видалення рядка за умовчанням це зазвичай # і @ Кожен раз, коли це необхідно, можна замінити їх

$ stty erase  e kill k

де e – Це символ, вибраний для позначення забою, а k – Для удале ня рядка Але здійснювати цю операцію при кожному вході в систе му досить незручно

На допомогу приходить оболонка Якщо в каталозі реєстрації є файл Profile, то при вході користувача в систему оболонка виконає команди, що містяться в цьому файлі до того, як видати перший запрошення на введення Так що помістіть всі команди з налаштування середовища відповідно до своїх уподобань в Profile, і вони будуть виконуватися при кожному вході в систему

Перша команда, яку більшість користувачів поміщають в свій Profile:

stty erase &lt–

Позначення <- використано для наочності, в. Profile ж можна помістити саме буквене позначення повернення на одну позицію. Команда stty сприймає і таке уявлення, як, наприклад, ^ x для ctl-X, так що аналогічного ефекту можна досягти за допомогою:

stty erase ^h

тому що ctl-H – це і є повернення на одну позицію (Символ ^ – це застарілий синонім для оператора |, що утворює конвеєр, тому слід укладати його в лапки)

Якщо термінал не підтримує перехід по табуляції, можна додати-tabs в рядок stty:

stty erase ^h –tabs

Для того щоб дізнатися про завантаженість системи на момент входу, додайте

who  | wc  –l

для підрахунку користувачів Якщо доступна служба новин, можна додати news Деяким подобається, коли в процесі реєстрації на екран виводяться афоризми:

/usr/games/fortune

Через деякий час може здатися, що вхід в систему займає надто багато часу, тоді скоротіть Profile до необхідного мінімуму

Деякі властивості оболонки визначаються так званими пере меннимі оточення, значення яких доступні користувачеві і можуть бути їм змінені Наприклад, рядок запрошення до вводу, виво дімая як $, насправді зберігається в змінної оболонки PS1, для якої можна встановити будь-яке значення, наприклад:

PS1=Yes dear  

Лапки необхідні, так як в рядку запрошення є прогалини А ось прогалини навколо знака = в цій конструкції не дозволені

Також оболонка особливим чином інтерпретує змінні HOME і MAIL HOME – це імя домашнього каталогу, зазвичай воно встановлюється правильно і не вимагає записи в Profile Мінлива MAIL визначає назва стандартного файлу, де зберігається пошта Якщо визначити його для оболонки, то повідомлення про отримання нового повідомлення буде зявлятися після кожної команди: 1

MAIL=/usr/spool/mail/you

1 Це погано реалізовано в оболонці Перегляд файлу після кожної команди відчутно збільшує навантаження на систему До того ж, якщо довго працювати в редакторі, повідомлення про нові повідомленнях не будуть надходити, так як команди в оболонці при цьому не запускаються Краще переглядати файл не після кожної команди, а кожні кілька хвилин Реалізація такої програми, що перевіряє пошту, обговорюється в розділах 5 і 7 Третя можливість (правда, доступна не кожному) – це отримання повідомлень від самої програми mail: вона-то вже напевно знає, коли приходить новий лист

(У файлу пошти може бути і інше імя / usr / mail / you також дуже поширене)

Ймовірно, найбільш використовуваною змінної оточення є та змінна, яка визначає, де оболонка шукає команди Згадайте, що при пошуку введеної команди оболонка спочатку переглядає поточний каталог, потім каталог / bin і потім / usr / bin Ця послідовність каталогів називаєтьсяшляхом пошуку і зберігається в змінної оточення PATH Якщо вас не влаштовує значення шляху пошуку за замовчуванням, можна змінити його, знову-таки у файлі Profile Наприклад, додамо до стандартного шляху ще / usr / games:

PATH=:/bin:/usr/bin:/usr/games                 Один із способів

Синтаксис трохи незвичайний: послідовність каталогів, розділених двокрапкою Памятайте, що точка () – Це позначення теку ного каталогу Цей символ можна опустити – порожній компонент в PATH увазі поточний каталог

Ще один спосіб встановити PATH для прикладу, наведеного вище, полягає в тому, щоб просто збільшити попереднє значення змінної:

PATH=$PATH:/usr/games                                  …    Інший спосіб

Значення будь-якої змінної оточення можна отримати, якщо перед варити її імя символом $ У щойно розглянутому прикладі вираз $ PATH витягує поточне значення, до якого додається нова частина, і результат знову присвоюється змінної PATH Можна перевірити це за допомогою програми echo:

$ echo PATH  is $PATH

PATH  is :/bin:/usr/bin:/usr/games

$ echo $ HOME Реєстраційний каталог

/usr/you

$

Якщо у вас вже є власні програми, можна зібрати їх в одному каталозі і також додати його до шляху пошуку У цьому випадку PATH може виглядати наступним чином:

PATH=:$HOME/bin:/bin:/usr/bin:/usr/games

Про створення власних програм поговоримо в розділі 3

Ще одна змінна, часто застосовувана більш мудрими, ніж ed, текстовими редакторами, – це TERM, яка визначає тип використовуваного терміналу Така інформація може дозволити програмі більш ефективно розпоряджатися екраном Тому можна додати, наприклад

TERM=adm3

у файл profile

Змінні можна використовувати для створення абревіатур Якщо часто доводиться посилатися на каталог з надзвичайно довгим імям, то, ймовірно, варто додати наступний рядок

d=/horribly/long/directory/name

в свій profile, тоді можна буде говорити просто

$ cd $d

Персональні змінні типу d прийнято записувати в нижньому регістрі, щоб відрізняти їх від змінних самої оболонки, наприклад PATH

На закінчення необхідно повідомити оболонці, що змінні повинні використовуватися і в інших програмах це реалізується командою export, про яку буде розказано в главі 3

export  MAIL   PATH  TERM

У підсумку типовий файл Profile може виглядати так:

$ cat  profile

stty erase ^h  –tabs MAIL=/usr/spool/mail/you PATH=:$HOME/bin:/bin:/usr/bin:/usr/games TERM=adm3

b=$HOME/book

export  MAIL  PATH  TERM  b date

who  | wc  –l

$

Ми розглянули далеко не всі можливості, надані оболоч кою Одне з найбільш корисних властивостей – це можливість створення власних команд за допомогою комбінування вже існуючих команд у файлі, оброблюваному оболонкою Дивно, як багато можна досягти за допомогою цього чудово простого механізму Розмова про нього почнеться в розділі 3

Залишилося частина системи UNIX

Система UNIX – це щось набагато більше, ніж описано в цьому розділі, та й у всій книзі До теперішнього моменту ви повинні мати уявлення про систему і, зокрема, про керівництво (man) З конкретними питаннями про те, як і коли використовувати команди, звертайтеся саме до нього

Корисно також періодично перегортати керівництво, щоб освіжити знання про відомих командах і познайомитися з новими Керівництво описує безліч програм, що не згаданих у цій книзі, в тому числі компілятори для таких мов, як ФОРТРАН 77 про-

граму-калькулятор: bc (1) команди cu (1) і uucp (1) для межкомпьютерного спілкування графічні пакети статистичні програми і такі езотеричні, як units (1)

Як вже говорилося, ця книга не замінює собою керівництво, а доповнює його У наступних розділах будуть розглянуті складові частини системи UNIX і її програми Почнемо з інформації, представленої в керівництві, і будемо рухатися далі, вивчаючи звязку компонентів між собою І хоча в керівництві ніде явно не йдеться про взаємозвязки програм, саме вони визначають структуру програмної середовища UNIX

Історія та бібліографія

Першою книгою, присвяченій системі UNIX, була «The UNIX Time sharing System» (UNIX – cистема з поділом часу) Д М Рітчі (DM Ritchie) і К Л Томпсона (KL Thompson), видана Communications of the ACM (CACM) у липні 1974 року і перевидана там же в січні 1983 (Сторінка 89 репринта включена в публікацію в березні 1983 року) Це огляд системи для людей, що цікавляться операційними системами, який вартий того, щоб його прочитав кожен програміст

Спеціальний випуск Bell System Technical Journal (BSTJ), присвячений системі UNIX (липень 1978), містить багато статей про подальший розвиток системи, а також ретроспективні матеріали, в тому числі оновлену редакцію оригінального документа CACM, написаного Рітчі і Томпсоном Другий спеціальний випуск BSTJ, що містить нові матеріали про UNIX, був опублікований в 1984

У статті «The UNIX Programming Environment» (середа програмування UNIX) Б В Керніган (BW Kernighan) і Д К Меші (JR Mashey), що зявилася в квітні 1981 року в IEEE Computer Magazine, зроблена спроба розповісти програмістам про основні можливості системи

Будь-яке видання довідкового керівництва з UNIX (UNIX Programmers Manual) наводить список команд, стандартних функцій і інтерфейсів, форматів файлів і розповідає про технічне обслуговування Вам не вдасться довго обходитися без нього, хоча, щоб почати програмувати, досить прочитати тільки частина тому 1 Перший том керівництва по сьомій версії системи опублікований видавництвом Holt, Rinehart and Winston

Том 2 довідкового керівництва по UNIX називається «Documents for Use with the UNIX Time-sharing System» (Документи, що використовуються разом з системою поділу часу UNIX), він містить підручники та довідкові керівництва для основних команд Зокрема, в ньому досить докладно описуються програми підготовки документів та

засоби розробки програм З часом вам захочеться прочитати про все це

«UNIX Primer» (UNIX для початківців) Енн і Ніко Ломатем (Ann and Nico Lomuto), виданий в 1983 році Prentice-Hall, – це хороший підручник, який знайомить з системою «зелених» новачків, головним чином, непрограмістів

Джерело: Керниган Б, Пайк Р, UNIX Програмне оточення – Пер з англ – СПб: Символ-Плюс, 2003 – 416 с, Мул

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*