Щоб користуватися послугами Internet, операційну систему UNIX знати не обов’язково. Однак це може стати в нагоді при зверненні до Internet за допомогою якої-небудь загальнодоступній UNIX-системи. Вам досить ознайомитися лише з десятком-другим простих команд. Нижче до Ваших послуг підручник-«п’ятихвилинка» за ОС UNIX.

Вхід в систему

Операційна система UNIX — це багатокористувацька система з поділом часу. Починати сеанс роботи з нею потрібно з повідомлення про те, хто Ви. Це не залежить від того, працюєте Ви за терміналом в своєму кабінеті або по комутованій лінії зв’язуєтеся з великим вузлом загального користування. У цьому полягає одна з відмінностей UNIX від DOS, Windows і Macintosh — операційних систем, в яких поняття «багатокористувацький» відсутня. UNIX повинна знати, хто Ви, щоб виділяти Вас і Ваше господарство серед десятків, сотень і навіть тисяч користувачів.

Діалог при вході в UNIX приблизно такий:

ttc
ttc!login: krol
Password:
Last login: Sat Sep 7 17:16:35
ttc
%

На питання login вводите своє ім’я користувача, далі вводите пароль, даний вам адміністратором системи. Після появи % можна працювати.

Власне ім’я — це ім’я, з якими пов’язаний Ваш вхід в систему; адміністратор системи призначає його, реєструючи даного користувача. Пароль дозволяє підтвердити, що Ви дійсно той, за кого себе видаєте, і таким чином запобігти незаконному вхід в систему. Введений пароль не відображається на екрані, щоб ніхто його не побачив. Адміністратор системи, ймовірно, призначить Вам який-небудь початковий пароль, а потім розповість, як вибрати і змінити його.

Знак % — це запрошення, яке свідчить про те, що UNIX готова до прийому команд. У Вашій системі запрошення може бути іншим, дуже часто запрошення UNIX містить ім’я комп’ютера.

В деяких системах може знадобитися «телефонний пароль при реєстрації по телефонній лінії. Якщо такий пароль Вам потрібен, його можна отримати в адміністратора системи.

Крім того, може бути поставлено питання про тип терміналу. Вигляд. повідомлення про тип термінала UNIX залежить від конкретної ситуації, але зазвичай це виглядає приблизно так:

Last login: Sat Sep 7 17:16:35
ttc
TERM=(vt100)?
%

Рядок (vt100)? означає: «Думаю, — Ви використовуєте термінал VT100. Якщо так, натисніть [Enter] і продовжуйте роботу. В іншому випадку повідомте мені про тип терміналу». VT100 — вдале припущення, оскільки більшість найбільш поширених комунікаційних програмних пакетів — підтримують емуляцію VT100, тобто змусять Ваш комп’ютер працювати як VT100. Сервер TTC підтримує також термінал VT100WIN для користувачів працюють через програму telnet з Windows. Цей тип терміналу дозволить вам відображати російський текст на екрані. Тому при вході в систему ви можете відповість [vt100win]. Якщо після цього ви не можете працювати з російським текстом, зверніться до адміністратора системи.

Якщо UNIX отримає невірну інформацію про тип терміналу, може виникнути плутанина: наприклад, система буде неправильно реагувати на натискання клавіші [Enter], символи будуть відображатися інверсно і т. д. У разі виникнення подібних проблем зверніться до адміністратора системи.

Для завершення сеансу роботи в UNIX дайте команду logout або exit.
Команди

Спочатку ми покажемо, як працюють команди операційної системи UNIX, а потім наведемо перелік найбільш важливих команд.
Формат команди

Більшість команд UNIX мають наступний формат:

% команда ключі параметри

Спочатку йде ім’я команди, потім — ключі і параметри. Параметрами, як правило, є імена файлів. Всі ключі починаються з дефіса. Наприклад, наступна команда означає: «Виконати команду Is з ключом -l для файлу а.out»:

% ls -l а.out

Це 90 відсотків того, що Вам потрібно знати. Імена команд майже завжди наводяться малими літерами; ключі зазвичай складаються з однієї букви (великою або малою). На відміну від багатьох інших операційних систем, UNIX враховує різницю між великими і малими літерами.

Якщо Ви використовуєте два і більше однобуквенных ключа, більшість команд дозволяють об’єднувати їх. Наприклад, дві наведені нижче команди ідентичні:

% ls -lg a.out
% 1s -l -g a.out

Деякі ключі вимагають наявності параметра. В цьому випадку параметр дається після ключа, в цьому випадку останній не можна об’єднувати з іншим ключем. Такі команди в нашому підручнику не описуються.

Є кілька команд, які не відповідають цим правилам, і одна з них дуже важлива: це команда tar. (Інші Вам ніколи не знадобляться.) В переліку команд я даю три «рецепту» використання tar. Дотримуйтесь інструкцій, і все буде в порядку.
Основні команди

Нижче наведено обіцяний перелік основних команд операційної системи UNIX. Прописними літерами дані DOS-еквіваленти. Деякі команди більш детально будуть описані нижче.
logout
Завершити сеанс роботи з UNIX.
ls
Дати перелік файлів у поточному каталозі. Еквівалент команди DIR, наявної у багатьох операційних системах. Команда ls -l дає більш детальну інформацію, включаючи розмір файлів, їх належність і дату створення. У 1s є дуже багато ключів, але -l — єдиний, який Ви будете використовувати досить часто.
rm файли
DELETE. Стерти (видалити) один або декілька файлів. Наприклад, команда rm file1 file2 file3 видаляє три файлу: filel, file2, file3. Команда rm -i перед видаленням кожного файлу просить Вас підтвердити свій намір.
mv старе-нове ім’я-ім’я
RENAME. Перейменувати (перемістити) файл старе ім’я у нове ім’я. Багато хто скаржиться, що цю команду важко запам’ятати із-за невідповідності скороченого імені змістом (mv — rename). Правильне зауваження. Користувачі UNIX, однак, вважають за краще вважати, що файли «переміщаються» (move), а не перейменовуються (rename). Якщо розглядати цю операцію як переміщення, то робота в UNIX буде більш осмисленим.
cp файл1 файл2
СОРУ. Копіювати файл1 в новий файл з ім’ям файл2.
more файл
Вивести текстовий файл на екран в постраничном режимі. Для виведення наступної сторінки потрібно натиснути клавішу пробіл. Багато хто використовує для цього команду cat і скаржаться, що її ім’я вводить в оману. Це, однак, їх вина. Команда cat не призначалася для виводу файлів на екран; вона спрацьовує чисто випадково (і то не дуже добре). Команда more — набагато кращий засіб; не перевантажуйте себе метушнею з cat. Крім того, more не зовсім «інтуїтивна»; корисно запам’ятати фразу «show me more of this file» («покажи мені цей файл далі»).
grep зразок файл
Показати всі рядки у файлі, що відповідають, зразком. Пошук здійснюється з урахуванням регістра. Команда grep використовується для пошуку конкретних текстових рядків у файлах. Наприклад, якщо phones — перелік номерів телефонів та імен, то команда
% grep «John Johnson» phones
знаходить у цьому списку номер телефону Джона Джонсона. Зверніть увагу: ми взяли зразок пошуку в лапки. Лапки ніколи не зашкодять, але коли Ви шукаєте рядок з пропуском або зірочкою, лапки необхідні.
grep -i зразок файл
Аналогічна попередній команді, але регістр не враховується: прописні і рядкові букви сприймаються однаково.
pwd
Показати поточний каталог.
cd каталог
Змінити поточний каталог.
mkdir каталог
Створити новий каталог без файлів з ім’ям каталог.
rmdir каталог
Стерти (видалити) каталог з ім’ям каталог. Цей каталог повинен бути порожній, тобто в ньому не повинно бути файлів.
команда man
Вивести на екран довідку ОС UNIX по команді команда.
uuencode остаточне ім’я вихідний файл
Створити текстову версію двійкового файлу, придатну для пересилання електронною поштою. Остаточне ім’я — це ім’я, яке файл отримує після розпакування; файл — ім’я кодованого файлу; вихідний файл — закодований файл, який підлягає відправці електронною поштою. Символи > і файл
Стандартний висновок. Помістити вихідну інформацію в файл, а не посилати її на екран. Те, що знаходилося у файлі раніше, буде знищено. Наприклад, якщо Ви хочете, щоб список файлів Вашого каталогу не виводився на екран, а був записаний у файл, необхідно дати наступну команду:

% 1s -l > filelist
>> файл
Стандартний висновок з додаванням. Дописати вихідну інформацію в файл слідом за його вмістом.
< файл
Стандартний ввід. Взяти вихідну інформацію з файлу, а не з клавіатури. Стандартний ввід і вивід використовуються згаданої вище командою uuencode.
| інша команда
Конвеєр. Взяти стандартний вивід однієї програми і використовувати як стандартний ввід іншого. Це одна з найбагатших можливостей ОС UNIX; її можна використовувати для створення власних команд. Припустимо, Вам потрібен список всіх файлів, що належать edk. Цю операцію можна виконати за допомогою ключів команди ls, але, використовуючи конвеєр, можна об’єднати команди ls -l і grep:

% ls -ls | grep «edk»
Команда ls -l видає список всіх файлів, включаючи інформацію про власників, а grep витягує всі пункти, що містять рядок edk. Якщо Ви працюєте з UNIX рідко, то зможете обійтися і без конвеєрів. Але якщо Ви почнете виконувати щось суттєве за допомогою конвеєрів, то швидко зрозумієте, наскільки вони корисні.

Перепризначення стандартного вводу-виводу зазвичай даються в кінці команди, після всіх ключів і параметрів.
Структура каталогів

Як і в MS-DOS і Macintosh, в операційній системі UNIX ієрархічна (деревоподібна») файлова система. Це означає, що кожен файл знаходиться в каталозі, а каталоги можуть містити інші каталоги. У системі Macintosh каталоги називаються папками». В системах DOS та Windows використовується той же файлово-каталоговый мова, що і в UNIX.

Для розділення імен каталогів в UNIX використовується пряма коса риска (/). Наприклад, /home/john/letters/mom.brt означає: «файл mom.txl в каталозі letters в каталозі john в каталозі home». Можна також сказати, що john — це підкаталог каталогу home і т. д.

У цьому прикладі слід відзначити ще кілька моментів:
Перед ім’ям стоїть коса риска (/). Скісна риска на початку імені позначає «кореневий каталог», який є, по суті, точкою, в якій «склеюють» між собою всі диски системи. В ОС UNIX ніколи не звертаються до самого диску, а завжди — до підкаталогів кореневого каталога.
UNIX-системи є багатокористувацької роботи. Кожному користувачеві призначається «домашній каталог», в якому він повинен зберігати свої файли, навіть якщо він є єдиним користувачем системи. /home/john — це, ймовірно, домашній каталог користувача john.
Користувачі можуть створювати власні каталоги так, як Джон створив каталог letters.

Узяте нами в якості прикладу ім’я файлу (/home/john/letters/mom.txt) називається повним ім’ям, тому що воно показує весь «шлях» до файлу, починаючи з кореневого каталогу. Такі імена не обов’язково використовувати постійно. Застосовується цілий ряд скорочень:
Робочий каталог завжди у Вашому розпорядженні. Можна вказувати шляхи щодо поточного каталогу, а не кореневого. Наприклад, якщо поточним є каталог /home/john/letters, можна вказати тільки ім’я файлу — mom.txt. (Саме це Ви і робите в більшості випадків: вказуєте на файл у поточному каталозі. Команда pwd видає ім’я поточного каталогу; команда cd каталог робить поточним інший каталог. Так, якщо поточним є каталог /home/john, то команда cd letters перенесе Вас в каталог letters Команда mkdir каталог створює новий каталог, а команда rmdir каталог видаляє каталог за умови, що він не містить файлів.
Ви можете позначати домашній каталог знаком ~, а комбінацією ~ім’я — «початковий каталог користувача ім’я». Наприклад, ~john/letters/mom.txt — ще один спосіб вказати файл Джона. Команда cd без параметрів призначена для повернення в початковий каталог, при цьому не враховується, звідки Ви почали роботу.
Символи… позначають «батьківський каталог». Найчастіше вони використовуються з командами cd. Наприклад, якщо поточним є каталог ~john/letters, то команда cd… перенесе Вас в каталог ~john.

Вам слід знати, як UNIX організовує файли. На відміну від персональних комп’ютерів, де використовуються відносно невеликі диски, UNIX-системи зазвичай працюють з великими дисками, причому в значних кількостях. Гігабайтні диски тут не рідкість, а багато хто системи використовують кілька дисководів. У великій системі їх може бути десяток і більше. Чим більше обсяг дискової пам’яті, тим більшого значення набувають каталоги, за допомогою яких можна правильно її організувати.
Допустимі імена файлів

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

Не ставте на початку імені файлу точку; команда ls не знайде такий файл у списку, якщо Ви не вкажете її з ключем -а. Використання точки в якості першого символу імені файлу можна «ховати» певні файли, щоб вони не забруднювали» списки каталогів. Однак, якщо Ви новачок в UNIX, то ця особливість може ввести Вас в оману.
Символи підстановки (шаблони) в іменах файлів

В операційній системі UNIX в якості стандартних символів підстановки (шаблонів) для імен файлів прийняті *,? і []. В даний час найчастіше використовується зірочка. Ці універсальні символи мають таке значення:
* використовується для позначення будь-якого об’єкта. Наприклад, просто * позначає будь-який файл каталогу; *.txt — всі імена файлів з розширенням txt; gorilla.* — всі імена файлів, що починаються зі слова gorilla.
? позначає будь-який (але тільки один символ. Наприклад, source.? позначає source.h, source.c, source.y і т. д.
[…] позначає будь-який символ з зазначених у дужках. Ви можете вказувати одиночні символи (наприклад, [chyg] позначає с, Ь, або f); діапазон ([a-z] позначає будь-яку малу букву, а [a-z0-9A-Z] — будь-яку букву або цифру). Зазначимо, що в одному діапазоні не можна поєднувати рядкові і прописні літери або літери і цифри. [а-z] або [А-9] призведуть до дивних результатів — можливо, Ви досягнете мети, але лише якщо Вам дуже пощастить.

Ви можете використовувати всі символи підстановки незалежно від того, з якою версією UNIX працюєте.

На жаль, символи підстановки можна застосовувати в частині «зразок» команди grep. Замість цього команда grep використовує більш складний засіб — «регулярні вирази», які в цій книзі розглядатися не будуть. Звичайно, в елементі файл команди grep символи підстановки використовувати можна. Наприклад, команда

% grep «John Johnson» *

здійснює пошук імені Джона у всіх файлів поточного каталогу.
Література

Існує багато книг з ОС UNIX. Ось деякі з них, які можуть Вам знадобитися:

Learning the UNIX Operating System, автори Grace Todino, John Strang, Jerry Peek (o’reilly & Associates). Оороший вступний курс. Коротко і по темі, зрозуміло новачкам.

Life with UNIX автор Don Libes (Prentice-Hall, 1989). Ще один вступний курс, який допоміг багатьом.

UNIX in а Nutshell (o’reilly & Associates). Ераткий перелік команд ОС UNIX. Є різні варіанти цієї книги для різних версій UNIX.

Learning the Vi Editor, автор Linda Lamb (o’reilly & Associates); Learning Emacs, автори Deb Cameron і Bill Rosenblatt (o’reilly & Associates). Ааша робота з операційною системою не буде продуктивною, якщо Ви не зможете редагувати файли. В операційній системі UNIX найчастіше використовуються редактори vi та emacs. Вони занадто складні, щоб описувати їх у цій книзі, а зазначені видання — це чудові зразки популярної літератури.