Навіщо потрібен цей посібник
Першопричиною написання цього посібника була нестача матеріалу для початківців: існуюче HOWTO занадто коротке та неповне, в той час як книга «Bash Scripting» -- більше довідник, аніж посібник. Між цими двома протилежностями не було нічого, що могло би заповнити наявний інформаційний вакуум. Відсутність безкоштовних базових курсів -- ще одна причина появи цього посібника.
Тут ви не знайдете сухої теоретично-довідкової інформації, але знайдете практичні, хоч і не дуже серйозні, приклади. Частково причиною появи цього посібника стало також моє невдоволення великою кількістю тих занадто спрощених, спрощених навмисно прикладів, що демонструють якісь дуже круті можливості Bash, часто вирвані з контексту. Читати такі приклади треба тільки після того, як ви прочитаєте цю книгу -- тут містяться вправи та завдання, що допоможуть вам у реальному житті.
Як підказує мені мій досвід користувача UNIX/Linux, системного адміністратора та вчителя, люди можуть працювати з системою роками, день за днем, не маючи ніякої уяви про автоматизацію задач. Таким чином, вони часто гадають, що UNIX -- це недружелюбна система, більш того, що вона повільна та старомодна. Сподіваюсь, мій посібник розвіє цю оману.
Для кого написаний цей посібник
Ця книга призначена для кожного користувача UNIX-подібних систем, досвідчених користувачів, а також системних адміністраторів. Користувачі, які вже мають досвід роботи у командому рядку, здобудуть знання багатьох аспектів програмування сценаріїв, що полегшить виконання щоденних задач. Системне адміністрування практично невідривно пов'язано з цим знанням, більшість звичайних задач можно автоматизувати простими сценаріями. Посібник наповнений прикладами, що заохотять вас на написання власних сценаріїв та надихнуть на покращення існуючих.
Знання, потрібні для читання та розуміння цієї книги:
- Ви повинні мати деякий досвід роботи у середовищі UNIX, знати основні команди, вміти користуватися довідкою man та додатковою документацією.
- Треба вміти користуватися яким-небудь текстовим редактором.
- Розуміти структуру процесу ініціалізації та деініціалізації системи (процес init та його сценарії).
- Створювати нові облікові записи користувачів та груп, задавати пароль.
- Мати уяву про права доступу для файлів та їх спеціальні режими.
- Знати конвенцію щодо іменування пристроїв, розділів диску, а також монтування/демонтування файлових систем.
- Знати, як встановлювати та видаляти програмне забезпечення.
Якщо ви не маєте цього досвіду, зверніться до посібника «Introduction to Linux». Додаткову інформацію можна знайти у документації, що встановлена у вашій системі (сторінки довідки man та info), чи на сайті проекту документування Linux.
Нові версії та розміщення цього документу
Найсвіжіша версія цієї книги завжди знаходиться за адресою http://tille.soti.org/training/bash/. Та ж сама версія повинна бути і на http://tldp.org/LDP/Bash-Beginners-Guide/html/index.html.
Якщо бажаєте, можете придбати друкований варіант посібника від Fultus.com.
Внески інших людей
Дякую усім моїм друзям, хто мені допоміг (або спробував допомогти), а також моєму чоловікові. Дякую усім, хто надсилав мені звіти про помилки, приклади та коментарі. Серед багатьох-багатьох інших:
- Ганс Бол, один з groupies
- Майк Сім, зауваги щодо стилю
- Ден Ріхтер, за приклади з масивами
- Герг Фергюсон, за ідеї з заголовком
- Мендель Лео Купер, for making room
linux.be -- вони моя опора під ногами
- Френк Ванг, за детальні зауваження про все, що я робила не так ;-)
Спеціальна подяка Табаті Маршал за повний перегляд та вичитування книги, а також виправлення граматичних та орфографічних помилок. Ми склали чудову команду: вона працювала, коли я спала, й навпаки ;-)
Зворотний зв'язок
Відсутня деяка інформація, посилання, зайшли помилки, маєте зауваження? Пишіть на електронну адресу супроводжувачу цього документу: tille@coresequence.com.
Інформація про копіювання
Copyright © 2003 Machtelt Garrels.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being «New versions of this document», «Contributions», «Feedback» and «Copyright information», with no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in ?Appendix B entitled «GNU Free Documentation License».
The author and publisher have made every effort in the preparation of this book to ensure the accuracy of the information. However, the information contained in this book is offered without warranty, either express or implied. Neither the author nor the publisher nor any dealer or distributor will be held liable for any damages caused or alleged to be caused either directly or indirectly by this book.
The logos, trademarks and symbols used in this book are the properties of their respective owners.
Що вам потрібно
bash, доступна за адресою http://www.gnu.org/directory/GNU/. Оболонка Bash встановлена майже на кожній системі Linux, а тепер — і на більшості систем UNIX.
Легко компілюється, тестована на різноманітних UNIX-системах, Linux, MS Windows та інших.
Прийняті стилі оформлення
Нижче представлені використовувані стилі оформлення тексту та їх значення:
«Цитата» : Цитування людей, цитований вивід комп'ютера.
Вивід терміналу
: Символьний ввід-вивід комп'ютера, захоплений з терміналу, відображується на сірому фоні.
команда : Назва команди, яку можна ввести у командному рядку.
ЗМІННА
: Назва змінної чи посилання на зміст змінної ($VARIABLE
).
параметр
: Параметр команди, як у «параметр -a
команди ls».
аргумент
: Аргумент команди, як у «прочитайте man ls
».
команда параметри
аргументи
: Загальний синтаксис вживання команди, розділений по рядках.
назва файлу
: Назва файлу чи каталогу, наприклад: «перейдіть у каталог /usr/bin
».
Клавіша : Позначає клавішу, яку треба натиснути на клавіатурі: «щоб вийти з програми, натисніть Q».
Кнопка : Графічна кнопка, на яку потрібно натиснути, наприклад, кнопка ОК.
Меню->Вибір : Позначає пункт меню, який потрібно вибрати: «Виберіть пункт меню Допомога->Про Mozilla».
Термін : Важливий термін чи концепція: «Ядро Linux -- це серце системи».
\
: Зворотна коса риска у виводі терміналу чи синтаксисі команди позначає незакінчений рядок. Тобто, якщо ви бачите довгу команду, розбиту на декілька рядків, \ позначає: «Ще не час тиснути Enter!».
Дивіться розділ перший : посилання на схожу тему, що знаходиться у цьому посібнику.
Сторінка автора : Посилання на зовнішній ресурс.
Структура цієї книги
У цьому посібнику обговорюються питання, що будуть корисними кожному користувачеві Bash. Тож хоча ми й розраховуємо на деяке знання оболонки, перші три розділи присвячені основним компонентам оболонки та базовій практиці.
У розділах з четвертого по шостий ви ознайомитеся з простими інструментами, що використовуються майже в кожному сценарії.
З восьмого по дванадцятий розділи ми обговоримо найпоширеніші конструкції в сценаріях оболонки.
Наприкінці кожного розділу ви знайдете вправи, які покажуть, наскільки добре ви знаєте матеріал розділу. Якщо зможете їх виконати -- переходьте до наступного розділу.
- Розділ 1. Основи Bash: чому вона така хороша, прості цеглинки сценаріїв, перші рекомендації щодо розробки гарних сценаріїв.
- Розділ 2. Основи написання сценаріїв: як їх писати та як їх доладжувати.
- Розділ 3. Середовище Bash: файли ініціалізації, змінні, символи цитування, послідовність розкривання, псевдоніми та параметри оболонки.
- Розділ 4. Регулярні вирази: вступ.
- Розділ 5. Sed: основи потокового редактора Sed.
- Розділ 6. Awk: основи мови програмування awk.
- Розділ 7. Умовні оператори: конструкції Bash, що вживаються для перевірки умов.
- Розділ 8. Інтерактивні сценарії: написання, отримання вводу користувача.
- Розділ 9. Циклічні структури: конструкції, що забезпечуюють повторюване виконання команд.
- Розділ 10. Більше про змінні: типи змінних, масиви змінних, операції зі змінними.
- Розділ 11. Функції: основи.
- Розділ 12. Захоплення сигналів: вступ у систему сигналів, обробка сигналів, посланих користувачем.