Розділ 4. Дебіен для початківця
Тут подаються базові знання для орієнтуванні у світі Дебіен для справжніх початківців. Якщо у вас є досвід використання Юнікс-систем, то швидше за все ви знаєте все, що я тут розповідатиму. Можете розглядати цей розділ як індикатор ваших знань.
Розпочинаємо
Після встановлення Дебіен на ваш комп'ютер ви захочете підлаштувати його під свої вимоги. Дозвольте провести з вами експрес-навчання.
Зареєструйтесь у оболонці як суперкористувач
Після перевантаження системи ви побачите перед собою або графічне або текстове привітання в залежності від початкового вибору вами встановлених пакунків. Щоб усі були в однакових умовах, якщо ви побачиле графічне привітання, натисніть Alt+Ctrl+F1 щоб перейти у текстовий режим. Допустимо, що ваш комп'ютер називається foo. Тоді ви побачите перед собою приблизно наступне запрошення:
foo login:
Введіть root, натисніть клавішу "Ентер" та введіть обраний вами під час встановлення пароль. В Дебіен, відповідно до традицій Юнікс, в паролі розрізняються великі та малі літери. Система виведе вітальне повідомлення та представить вам командну оболонку суперкористувача, очікуючи на ваші команди.
foo login: root
Password:
Last login: Sun Oct 26 19:04:09 2003 on tty3
Linux foo 2.4.22-1-686 #6 Sat Oct 4 14:09:08 EST 2003 i686 GNU/Linux
Most of the programs included with the Debian GNU/Linux system are
freely redistributable; the exact distribution terms for each program
are described in the individual files in /usr/share/doc/*/copyright
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@foo:root#
Тепер ви готові до адміністрування системи. З облікового запису користувача root ви можете здійснювати будь-які операції в системі:
- читати, записувати і видаляти будь-які файли незалежно від їхніх прав доступу;
- задавати власника і права доступу для будь-якого файлу у системі;
- завати пароль будь-якого непривілейованого користувача у системі;
- реєструватись під будь-яким обліковим записом без введення паролю.
Ідея роздавати адміністративні права передаючи пароль суперкористувача є вкрай поганою. Використовуйте натомість програми на кшталт sudo.
Зауважте також, що доброю традицією у Юнікс є реєстрування у якості непривілейованого користувача навіть для здійснення адміністративних операцій. В разі потреби ж використовуйте команди sudo, super, або su -c, що дасть вам обмежені адміністративні права. Чому саме так детальніше пояснються у розділі 9.
Встановіть мінімальне середовище новачка
Я вважаю що вивчення нової системи подібне до вивчення іноземної мови. В той час як підручники надають чималу допомогу, засвоювати знання на практиці потрібно за допомогою допоміжних інструментів. В такому контексті непогано було б встановити кілька додаткових пакунків: mc, vim, lynx, doc-linux-text, та debian-policy:
# apt-get update
...
# apt-get install mc vim lynx doc-linux-text debian-policy
...
Якщо ви ці пакунки вже встановили, то нічого нового не встановиться.
Додати реєстраційний запис користувача
Під час встановлення ви як правило створюєте непривілейований реєстраційний запис, котрий отримує електронну пошту системного адміністратора. Оскільки ви не хочете використовувати цей обліковий запис для тренування, вам потрібно створити ще один. Припустимо, ви хочете завести користувача з іменем Пінгвін (penguin); введіть
root@foo:root# adduser penguin
... дайте відповідь на всі запитання
Перш ніж продовжити, давайте засвоїмо кілька речей.
Перемикання між віртуальними консолями
В типовій Дебіен-системі є шість незалежних псевдо-терміналів, тобто ви можете використовувати вашу консоль як 6 незалежних VT-100 терміналів. Перемикайтесь між ними за допомогою комбінації клавіш - лівого Alt та однією з F1 до F6. Кожен з псевдо-терміналів дозволяє незалежну реєстрацію. Багатокористувацьке середовище - це чудова особливість Юнікс-систем.
Якщо ви натисните Alt+F7 в системі з запущеною X-Window і замість консолі потрапите у графічне середовище, то щоб повернутись назад до консолі натисніть Ctrl+Alt+F1. Просто спробуйте поперемикатись між консолями та повернутись назад до консолі, з котрої починали.
Як завершити роботу
Як і будь-яка інша сучасна ОС яка під час операцій з файлами зберігає дані в оперативній пам'яті, Дебіен повинна виконати ряд процедур перш ніж ви зможете вимкнути живлення для того, щоб не пошкодити файли. Для вимкнення системи виконайте наступну команду:
# shutdown -h now
від імені суперкористувача якщо ви працюєте у типовому багатокористувацькому середовищі; якщо ж ви працюєте в однокористувацькому режимі, введіть наступну команду:
# poweroff -i -f
Окрім того, ви можете скористатись комбінацією клавіш Alt+Ctrl+Delete.
Дочекайтесь, поки на екрані не висвітиться "Система вимкнена" ("System halted") та вимикайте живлення. Якщо у вас сучасний комп'ютер, коректно налаштовані функції АРМ або АСРІ у БІОСі та лінуксі, система вимкнеться самостійно. За деталями зверніться до розділу 3.8.4.
Час розваг
Тепер ви можете безпечно забавлятись з вашою новою системою, зареєстровшись у ній як непривілейований користувач "Пінгвін". Тож давайте зробимо це. Якщо ви зареєстровані як системний адміністратор (root), натисність Ctrl+D щоб покинути оболонку адміністратора і повенутись до запрошення зареєструватись у системі. Введіть ім'я новоствореного користувача (penguin в нашому прикладі) та відповідний пароль. Перед вами має висвітитись наступне запрошення оболонки:
penguin@foo:penguin$
Звідси й надалі я буду вживати скорочені позначення запрошення оболонки у своїх прикладах:
- # для оболонки системного адміністратора
- $ для оболонки непривілейованого користувача
Ми розпочнемо знайомство з Дебіен спершу з простішого шляху - програми Міднайт Коммандер (Midnight Commander, mc) а потім підемо правильним шляхом - ознайомимось з класичним робочим середовищем Юнікс-систем.
Міднайт Коммандер, МК (Midnight Commander, mc)
МК - це універсальний інструмент проекту GNU для консолі лінукс та інших термінальних середовищ. Він пропонує новачкам оснований на меню інтерфейс, котрий значно простіший, аніж численні команди Юнікс.
Спробуйте побродити по вашій системі за допомогою цієї програми. Це найкращий спосіб навчання. Просто прогляньте кілька ключових каталогів використовуючи лише курсор та клавішу "Ентер":
- /etc і його підкаталоги
- /var/log і його підкаталоги
- /usr/share/doc і його підкаталоги
- /sbin та /bin
Долаштування МК
Якщо ви хочете, щоб МК змінював робочий каталог перед виходом (тобто щоб ви при виході з МК знаходились в тому каталозі, в котрому ви закінчили працювати в МК, а не в тому, з котрого ви починали роботу з програмою), ви повинні змінити файл ~/.bashrc (або /etc/bash.bashrc, що викликається з .bashrc) відповідно до сторінки довідки mc(1), опція -Р.
Запуск МК
$ mc
МК дозволяє виконувати будь-які операції над файлами за допомогою своїх меню, зводячи до мінімуму незручності користувача. Натисніть F1 щоб побачити вікно довідки. Ви можете працювати з МК натискаючи лише клавіші курсору та функціональні клавіші.
Файловий менеджер в МК
Як правило ви бачите перед собою дві панелі із списками файлів. Іншим зручним режимом є переведення правої панелі у режим "інформаційної" де відображатиметься розширена інформація про власника, режимим доступу до поточного файлу і т.ін. Нижче наведено значення деяких клавіш. З запущеним демоном gpm ви можете також використовувати мишку. При цьому щоб добитись нормальної поведінки копіювання та вставки у МК, вам потрібно тиснути клавішу Shift.
- F1: Довідка
- F3: Вбудований переглядач файлів
- F4: Вбудований редактор
- F9: Активувати випадаюче меню
- F10: Вийти з Міднайт Коммандера.
- Tab: Переміщення між двома панелями
- Insert: Відмітити файл при одночасних операціях з багатьма файлами (наприклад, копіюванні)
- Del: Видалити файл (будьте обережними — налаштуйте МК в режим безпечного видалення)
- Клавіші курсору: самоочевидні
Трюки з командним рядком в МК
Будь-яка команда cd змінить каталог в активній панелі.
Ctrl-Enter або Alt-Enter скопіюють назву файлу в командний рядок. Використовуйте цю можливість на пару з редагуванням рядка при використанні команд cp або mv.
Alt-Tab покаже можливі розширення оболонки для імені файлу.
Ви можете задати стартові каталоги для обидвох панелей МК за допомогою параметрів командного рядка; наприклад, mc /etc /root.
Esc + числова клавіша == Fn (наприклад, Esc + '1' = F1, і т.д.; Esc + '0' = F10) :
Esc-клавіша == Alt-клавіша (= Meta, M-); наприклад, наберіть Esc + 'c' щоб отримати Alt-C.
Редактор в МК
Вбудований редактор має цікаву особливість при роботі з виділенням і вставкою тексту. Натиснення клавіші F3 позначає початок виділення; повторне натиснення фіксує кінець та підсвітлює виділений текст. Далі, якщо ви натиснете F6, виділена область буде переміщена в місце розташування курсору; F5 - відповідно, скопійована. F2 зберігає файл. F10 завершує роботу з редактором. Більшість клавіш курсору працюють інтуїтивно зрозуміло.
Редактор можна викликати не лише з МК, але й напряму з командного рядка:
$ mc -e назва_редагованого_файлу
$ mcedit назва_редагованого_файлу
Це не є багатовіконний редактор, але ви можете використовувати кілька консолей, щоб досягти того ж ефекту. Щоб копіювати текст між вікнами, використовуйте клавіші Alt-Fn щоб перемикатись між віртуальними консолями, та викорстовуйте "Файл->Вставити файл" або "Файл->Копіювати до файлу" щоб перемістити частину тексту в інший файл.
Вбудований редактор можна замінити будь-яким зовнішнім редактором на ваш вибір.
Окрім того, багато програм використовують змінні середовища EDITOR або VISUAL щоб дізнатись, яким редактором користуватись для своїх потреб. Якщо вам не подобається vim, задайте mcedit додавши наступні рядки до файлу ~/.bashrc:
...
export EDITOR=mcedit
export VISUAL=mcedit
...
Все ж я рекомендую використовувати vim всюди де це можливо. Використання команд vim - це правильне рішення, оскільки даний редактор присутній у будь-якій юнікс-системі.
Переглядач в МК
Переглядач дуже розумний. Це чудовий інструмент для пошуку слів у документах. Я завжди використовую його для файлів у каталозі /usr/share/doc. Це найшвидший шлях продирання крізь масу інформації в Лінукс. Переглядач може викликатись напряму таким чином:
$ mc -v назва_файлу
Функції автоматичного запуску в МК
Натисність Enter на файлі і в залежності від його вмісту буде запущена відповідна програма. Це дуже зручна функція.
виконуваний файл: Виконати команду
man, html файл: Передати вміст у програму-переглядач
tar.gz, deb файл: Рухатись по його вмісті як по підкаталозі
Щоб ці функції були задіяні, оброблюваний файл не повинен мати мітки "виконуваний". Змініть при необхідності його права доступу за допомогою команди chmod або за допомогою меню МК.
Віртуальні файлові системи ftp у МК
МК можна використовувати для доступу до файлів через Інтернет за допомогою ftp. Перейдіть до меню натисненням клавіші F9, натисніть "р" щоб активувати файлову систему ftp. Введіть УРЛ у формі користувач:пароль@хост.домен, і ви зможете працювати з віддаленим каталогом так само як і з локальним.
Спробуйте http.us.debian.org/debian в якості УРЛ та побродіть по файлових архівах Дебіен. Прогляньте параграф 2.1 щоб дізнатись як вони організовані.
Класичне робоче середовище Юнікс
Хоча МК дозволяє вам робити майже все, дуже важливо навчитись використовувати інструменти командного рядка, викликані з запрошення оболонки та ближче познайомитись з класичним робочим середовищем Юнікс
Спеціальні комбінації клавіш
В середовищі Юнікс ряд комбінацій клавіш мають особливе значення.
- Ctrl-U: Видалити рядок перед курсором.
- Ctrl-H: Видалити символ перед курсоом.
- Ctrl-D: Закінчити ввід. (вийти з оболонки, якщо ви використовуєте оболонку)
- Ctrl-C: Перервати запущену програму.
- Ctrl-Z: Тимчасово призупинити програму. (перевести її у фоновий режим, див. команду &, параграф 4.3.10.1)
- Ctrl-S: Перервати вивід на екран.
- Ctrl-Q: Відновити вивід на екран.
Стандартна оболонка, bash, має функції редагування історії команд та автоматичного доповнення команд, котрі спрощують інтерактивну роботу.
- Клавіша "Вгору": Розпочати пошук в історії введених команд.
- Ctrl-R: Розпочати наростаючий пошук в історії введених команд.
- TAB: Доповнити командний рядок повним іменем файлу, що почав вводитись.
- Ctrl-V TAB: Ввести TAB (без розширення) у командний рядок.
Інші комбінації клавіш, котрі варто запам'ятати:
- Ctrl-Alt-Del: Перевантажити/вимкнути систему, див Установка додаткових пакунків, параграф 3.8.1.
- Лівий клац та пересування мишки: Вибрати і скопіювати в буфер.
- Середній клац: Вставити вміст буферу.
- Мета-клавіша (термінологія Емакс) традиційно призначається лівій клавші Alt. Деякі системи можна переконфігурувати на використання клавіші Windows у якості мета-клавіші.
Окрім того, щоб використовувати мишку, ви повинні мати запущеним демон gpm. Див. Конфігурування миші, параграф 3.3.
Основні команди Юнікс
Давайте познайомимось з основними командами Юнікс. Спробуйте всі нижченаведені команди з непривілейованого користувацького запису penguin:
pwd : Показати назву поточного/робочого каталогу.
whoami : Показати назву поточного реєстраційного запису.
file шняга : Показати тип файлу для файлу шняга.
type -p назвакоманди : Показати розташування команди назвакоманди.
which назва_команди : робить те ж саме.
type назвакоманди : Показати інформацію про команду назвакоманди.
apropos ключовеслово : Знайти команди, що стосуються ключовогослова.
man -k ключове_слово : робить те ж саме.
whatis назвакоманди : Показати пояснення про команду назвакоманди.
man -a назвакоманди : Показати довідку про команду назвакоманди. (стиль Юнікс)
info назвакоманди : Показати розширену довідку про команду назвакоманди. (стиль GNU)
ls : Показати вміст каталогу (окрім файлів і каталогів, що починаються з крапки)
ls -a : Показати вміст каталогу (всі файли і каталоги
ls -A : Показати вміст каталогу (майже всі файли і каталоги, тобто опускаються ".." і ".")
ls -la : Показати весь вміст каталогу з детальною інформацією. Див. також концепцію файлової системи в Дебіен (параграф 4.5.2).
ls -d : Показати всі підкаталоги у поточному каталозі.
lsof шняга : Показати відкритий статус файлу шняга.
mkdir шняга : Зробити підкаталог шняга у поточному каталозі.
rmdir шняга : Видалити порожній підкаталог шняга з поточного каталогу.
cd шняга : Змінити робочий каталог на каталог шняга в поточному каталозі або в каталозі, згаданому в змінній середовища CDPATH. Див. також команду cd у builtins(7).
cd / : Перейти в кореневий каталог.
cd : Перейти в домашній каталог поточного користувача.
cd /шняга : Перейти в каталог з абсолютним шляхом /шняга.
cd .. : Перейти у каталог, батьківський для поточного.
cd ~шняга : Перейти до домашнього каталогу користувача шняга.
cd - : Перейти до попереднього каталогу.
параграф 4.3.10.9.
touch шняга : Створити порожній файл шняга; якщо він існує, встановити для нього системний час як час останнього доступу.
cp шняга бяка : Скопіювати існуючий файл шняга у файл бяка.
rm шняга : Видалити файл шняга.
mv шняга бяка : Перейменувати файл шняга у файл бяка.
mv шняга бяка/бука : Перемістити файл шняга у каталог бяка під назвою бука. Каталог бяка повинен існувати.
chmod 600 шняга : Зробити існуючий файл шняга недоступним для читання і запису для інших людей і недоступним для виконання всім.
chmod 644 шняга : Зробити існуючий файл шняга доступним для читання але недоступним для запису іншим користувачам (недоступний для виконання для всіх)
chmod 755 шняга : Зробити існуючий файл шняга доступним для читання але недоступним для запису іншим користувачам (доступний для виконання для всіх)
top : Показати інформацію про запущені процеси на повен екран. Щоб вийти, введіть "q".
ps aux | pager : Вивести інформацію про всі запущені процеси у стилі BSD. Див. також команда1 | команда2, параграф 4.3.10.2.
ps -ef | pager : Вивести інформацію про всі запущені процеси у стилі system-V.
ps aux | grep -e "[e]xim4*" : Показати всі запущені процеси exim або exim4. Прочитайте про регулярні вирази з сторінки довідки grep(1).
ps axf | pager : Вивести інформацію про всі запущені процеси з псевдографікою.
kill 1234 : Вбити процес з ідентифікатором 1234. Дивіться параграф 8.5.1 про вбивання процесів.
grep -e "шаблон" *html : Знайти "шаблон" у всіх файлах, що закінчуються на "html" у поточному каталозі та показати їх усі.
gzip шняга : Стиснути файл (каталог) шняга і створити файл шняга.gz за допомогою коду Лемпела-Зіва (LZ77).
gunzip шняга.gz : Розтиснути шняга.gz у файл шняга.
bzip2 шняга : Стиснути шнягу і створити шняга.bz2 за допомогою блочного алгоритму стиснення текстів Берроу-Уілера та коду Хоффмана (краще стиснення, аніж за допомогою gzip)
bunzip2 шняга.bz2 : Розтиснути шняга.bz2 і створити шнягу.
tar -xvvf шняга.tar : Розархівувати файли з архіву шняга.tar.
tar -xvvzf шняга.tar.gz : Розархівувати файли з стиснутого архіву шняга.tar.gz.
tar -xvvf --bzip2 шняга.tar.bz2 : Розархівувати файли з стиснутого архіву шняга.tar.bz2.
tar -cvvf бяка.tar бяка/ : Заархівувати вміст каталогу бяка/ в архів бяка.tar.
tar -cvvzf шняга.tar.gz бяка/ : Заархівувати вміст каталогу бяка/ в стиснутий архів шняга.tar.gz.
tar -cvvf --bzip2 шняга.tar.bz2 бяка/ : Заархівувати вміст каталогу бяка/ в архів шняга.tar.bz2.
zcat README.gz | pager : Відобразити вміст стиснутого файлу README.gz за допомогою типового прогортача.
zcat README.gz > шняга : Створити файл шняга з стиснутого файлу README.gz.
zcat README.gz >> шняга : Додати розтиснутий вміст файлу README.gz в кінець файлу шняга. (Якщо його немає, він буде створений)
find . -name шаблон : Знайти імена файлів за допомогою шаблону оболонки (повільно)
locate -d . шаблон : Знайти імена файлів за допомогою шаблону оболонки (швидше, за допомогою регулярно створюваної бази даних)
Будь ласка, помандруйте по каталогах та ознайомтесь з системою за допомогою вищенаведених команд у якості тренування. Якщо у вас виникнуть запитання про будь-яку з команд, перечитайте відповідну сторінку підручника. Наприклад, непогано було б розпочати з таких команд:
$ man man
$ man bash
$ man ls
Непогано також запустити vim та натиснути клавішу F1. Ви повинні прочитати як мінімум перших 35 рядків. Потім перейдіть до навчального курсу перемістивши курсор на |tutor| і натиснувши Ctrl-]. Див. ?розділ 11 Редактори щоб дізнатись більше про редактори.
Будь ласка, зауважте, що багато команд Юнікс відображають коротку довідкову інформацію якщо ви викликаєте їх одним з наступних способів (або без аргументів у деяких випадках):
$ назва_команди --help
$ назва_команди -h
Прогляньте також приклади, подані у розділі 8 у якості самонавчання.
Виконання команд
Тепер ви маєте деяке уявлення про те, як використовувати систему Дебіен. Давайте заглянемо глибше у механізм виконання команд у Дебіен.
Проста команда
Проста команда - це набір
- присвоєнь змінних (необов'язково)
- назва команди
- аргументи (необов'язково)
- перенаправлення (необов'язкові: > , >> , < , << , і т.д.)
- контрольний оператор (необов'язковий: && , || ; <новий рядок> , ; , & , ( , ) )
Детальніше команди з цитуваннями і підстановками описуються у ?параграфі 13.2.6 Обробка командного рядка.
Виконання команд та змінні середовища
Типовий запуск команд за допомогою командного рядка виглядає наступним чином:
$ date
Sun Oct 26 08:17:20 CET 2003
$ LC_ALL=fr_FR date
dim oct 26 08:17:39 CET 2003
Тут програма date виконується як фонове завдання. Змінна середовища LC_ALL: не встановлена (використовується типова, така ж як у мові C) для першої команди встановлена в fr_FR (французька локаль) для другої команди.
Для більшості команд не задається значення певних змінних середовища спеціально. Для вищенаведеного прикладу ви могли ввести команди наступним чином:
$ LC_ALL=fr_FR
$ date
dim oct 26 08:17:39 CET 2003
Як ви можете бачити, вивід команди пристосовано до змінної середовища щоб забезпечити вивід французькою мовою. Якщо ви хочете, щоб значення змінної середовища було передане в дочірній процес (наприклад, при виклику сценарію оболонки), ви повинні заздалегідь експортувати його::
$ export LC_ALL
Шлях для пошуку команд
Коли ви вводите команду у оболонці, оболонка шукає її у списку каталогів, що містяться у змінній середовища PATH. Значення цієї змінної також часто називають шляхом пошуку оболонки.
При типовому встановленні Дебіен, змінна PATH користувацького запису не включає /sbin/. Отож, якщо ви хочете запускати команди на кшталт ifconfig з каталогу /sbin/, ви повинні змінити значення PATH. Воно як правило задається у файлі ~/.bash_profile, див. також параграф 3.2 Конфігурування Баш.
Параметри командного рядка
Деякі команди приймають аргументи. Аргументи, що розпочинаються з - або -- називаються опціями і контролюють поведінку команди.
$ date
Mon Oct 27 23:02:09 CET 2003
$ date -R
Mon, 27 Oct 2003 23:02:40 +0100
Тут аргумент -R змінює поведінку команди date щоб її вивід відповідав RFC-2822.
Символи підстановки у оболонці
Часто буває потрібно, щоб програма працювала з групою файлів без пеліку всіх цих файлів. Шаблони для розширення імен файлів використовують символи підстановки для цих потреб.
* : Означає 0 чи більше будь-яких символів. Не позначає назву файлу, що починається на ".".
? : Позначає рівно один символ.
[...] : Позначає рівно один символ з перерахованих в квадратних дужках.
[a-z] : Позначає рівно один символ між а і z.
[^...] : Позначає рівно один символ окрім тих, що включені в квадратні дужки (окрім першого "^").
Наприклад, введіть наступні комани і подумайте над ними:
$ mkdir junk; cd junk; touch 1.txt 2.txt 3.c 4.h .5.txt
$ echo *.txt
1.txt 2.txt
$ echo *
1.txt 2.txt 3.c 4.h
$ echo *.[hc]
3.c 4.h
$ echo .*
. .. .5.txt
$ echo .[^.]*
.5.txt
$ echo [^1-3]*
4.h
$ cd ..; rm -rf junk
Значення, повернене командою
Кожна команда повертає свій стан завершення роботи.
Стан завершення = 0 якщо робота завершилась успішно.
Стан завершення відмінний від 0, якщо робота завершилась з помилкою.
Значення цієї змінної можна отримати за допомогою змінної оболонки $? відразу після виконання команди.
$ [ 1 = 1 ] ; echo $?
0
$ [ 1 = 2 ] ; echo $?
1
Будь ласка, зауважте що стан завершння використовується у логічному контексті оболонки; успішний трактується як логічне "ТАК". Іноді це не зовсім зрозуміло, оскільки у разі успіху повертається нуль (котрий в інших мовах програмування означає логічне "НІ" - прим. перекладача).
Див. також ?параграф 13.2.5.
Типові послідовності команд
Давайте спробуємо запам'ятати наступні командні ідіоми оболонки. Після прочитання цих ідіом перегляньте також параграфи ?13.2.4-13.2.6.
команда &
Ця команда виконується у підоболонці, у фоновому режимі. Фонові завдання дозволяють користувачам запускати декілька команд у одній оболонці.
Керування фоновими процесами здійснується за допомогою вбудованих команд оболонки: jobs, fg, bg, та kill. Будь ласка, прочитайте частини "Сигнали", "Керування завданнями", та "Вбудовані команди оболонки" сторінки довідки bash(1). [29]
команда1 | команда2 : Типовий вивід команди1 передається на типовий ввід команди2. Обидві команди можуть бути запущені паралельно. Це називається каналом.
команда1 ; команда2 : Команда1 та команда2 виконуються послідовно.
команда1 && команда2 : Запускається команда1. Якщо її виконання завершується успішно, запускається команда2. Результат виконання команди && успішний, якщо обидві складові команди завершились успішно.
команда1 || команда2 : Виконується команда1. Якщо вона закінчується невдачею, виконується команда2. Результат виконання команди || успішний, якщо одна з складових команд завершилась успішно.
команда > шняга : Перенаправляє стандартний вивід команди у файл шняга (затираючи вміст)
команда >> шняга : Перенаправляє стандартний вивід команди у файл шняга (добавляючи його в кінець файлу)
команда > шняга 2>&1 : Перенаправляє стандартний вивід та вивід про помилки до файлу шняга.
команда < шняга : Перенаправляє стандартний ввід команди у файл шняга. Спробуйте:
$ </etc/motd pager
... (привітання)
$ pager </etc/motd
... (привітання)
$ pager /etc/motd
... (привітання)
$ cat /etc/motd | pager
... (привітання)
Всі 4 команди відобразять одне й те ж; останій приклад запускає додаткову команду cat та даремно споживає ресурси.
Псевдоніми команд
Ви можете задати псевдоніми для найчастіше використовуваних команд. Наприклад:
$ alias la='ls -la'
Тепер la працює як пускач для ls -la котра відображає список файлів у розширеному форматі.
Ви можете взнати точний шлях або означення команди за допомогою type команда. Наприклад:
$ type ls
ls is hashed (/bin/ls)
$ type la
la is aliased to `ls -la'
$ type echo
echo is a shell builtin
$ type file
file is /usr/bin/file
В цьому прикладі до ls недавно звертались, тоді як до file - ні; тому ls "прохешовано", тобто оболонка містить внутрішній запис для швидкого доступу до розміщення цієї команди.
Робота з текстом в стилі Юнікс
У Юнікс-подібній системі дуже часто використовуються декілька типових інструментів для роботи з текстом.
Без використання регулярних виразів:
- head виводить початок файлу
- tail виводить кінець файлу
- sort сортує рядки текстового файлу
- uniq видаляє однакові рядки з текстового файлу
- tr перетворює або видаляє символи
- diff порівнює різні файли рядок за рядком
Основні (базові) регулярні вирази (БРВ; basic regular expression - BRE) використовують:
- grep порівнює текст з шаблоном
- ed примітивний редактор рядків
- sed потоковий редактор
- vi екранний редактор
- emacs екранний редактор
Розширені регулярні вирази (РРВ; еxtended regular expression - ERE) використовують:
Додатково прогляньте приклади сценаріїв у параграфах заміну регулярних виразів (параграф 8.6.13), використання сценаріїв для формування каналів (параграф 8.6.18) та божевілля короткого сценарію на Перлі (параграф 8.6.20).
Регулярні вирази
Регулярні вирази використовуються у багатьох інструментах обробки тексту. Вони подібні до символів підстановки оболонки (див. параграф 4.3.8), але значно потужніші.
Регулярний вираз описує шаблон і складається з символів та метасимволів. Метасимволи - це звичайні символи, але з особливим значенням. В залежності від використовуваних інструментів, розрізняють два основних стилі регулярних виразів - основні (або базові) та розширені.
У РРВ до метасимволів відносяться "\ . [ ] ^ $ * + ? ( ) { } |". Регулярний вираз означає:
c : Означає не-метасимвол "c".
\c : Означає літеру "c".
. : Означає будь-який символ, в тому числі символ нового рядка.
^ : Означає початок рядка.
$ : Означає кінець рядка.
< : Означає початок слова.
\> : Означає кінець слова.
[abc...] : Означає будь-який з символів "abc...".
[^abc...] : Означає будь-який з символів, окрім "abc...".
r* : Означає нуль чи більше регулярних виразів, що починаються з "r".
r+ : Означає один чи більше регулярних виразів, що починаються з "r".
r? : Означає нуль чи один регулярний вираз, що починається з "r".
r1|r2 : Означає регулярний вираз "r1" або "r2".
(r1|r2) : Означає регулярний вираз "r1" або "r2" і трактує його як взятий у фігурні дужки регулярний вираз.
У БРВ метасимволи + ? ( ) { } |
втрачають своє особливе значення; натомість ви повинні використовувати версії з оберненою косою рискою: \+ \? \( \) \{ \} \|
. Таким ином конструкція (r1|r2)
у БРВ повинна бути записана як \(r1|r2\)
. Оскільки емакс, котрий також використовує БРВ, трактує +
та ?
як метасимволи, екранувати їх не потрібно. Див. параграф 4.2.2 "Заміна регулярних виразів" щоб дізнатись про використання групуючих конструкцій.
Ви, наприклад, можете використовувати grep щоб здійснювати пошук по тексту за допомогою регулярних виразів:
$ egrep 'GNU.*LICENSE|Yoyodyne' /usr/share/common-licenses/GPL
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
Вирази заміни
У виразах заміни нижчеперелічені символи мають особливе значення:
& : Позначає текст, що відповідає регулярному виразу (в емакс вживайте &)
\n : Позначає текст, що відповідає регулярному виразу в n-них дужках.
У Перл замість \n вживається $n, а & не вживається взагалі.
Наприклад:
$ echo zzz1abc2efg3hij4 | \
sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/=&=/'
zzz=1abc2efg3hij4=
$ echo zzz1abc2efg3hij4 | \
sed -e 's/\(1[a-z]*\)[0-9]*\(.*\)$/\2===\1/'
zzzefg3hij4===1abc
$ echo zzz1abc2efg3hij4 | \
perl -pe 's/(1[a-z]*)[0-9]*(.*)$/$2===$1/'
zzzefg3hij4===1abc
$ echo zzz1abc2efg3hij4 | \
perl -pe 's/(1[a-z]*)[0-9]*(.*)$/=&=/'
zzz=&=
Зверніть, будь ласка, увагу на стиль регулярних виразів, що взяті у квадратні дужки, та на те, як знайдені ланцюжки використовуються при заміні тексту у різних інструментах.
Ці регулярні вирази можуть також використовуватись у текстових редакторах для руху курсора та заміни тексту.
Щоб завчити ці команди, прочитайте всі сторінки довідки, що стосуються наведених інструментів.
Файлова система Юнікс
В ГНУ/Лінукс та інших Юнікс-подібних ОС файли організовуються у каталоги. Всі файли і каталоги об'єднуються у одне велике дерево, ієрархію що починається з / (кореневого каталога).
Ці файли і каталоги можуть розташовуватись на різних пристроях. Команда mount(8) об'єднує їх у одне велике дерево каталогів. Команда umount(8) відповідно від'єднує їх (пристрої) назад.
Файл в Юнікс: основи
Ось основні положення:
- Назви файлів чутливі до регістру. Тому МІЙФАЙЛ та МійФайл є різними файлами.
- Кореневий каталог позначається як /. Не плутайте терміни "root" як кореневий каталог та як суперкористувач.
- Кожен каталог має назву, котра може містити будь-які літери та символи за винятком /. Винятком є кореневий каталог, котрий позначається як / (вимовляється "слеш", "коса") і він не може бути перейменований.
- Кожен файл чи каталог визначається повною назвою (або абсолютною назвою), тобто шляхом, котрий потрібно пройти щоб добратись до нього. Ці три терміни є синонімами. Всі повні назви файлів починаються з символу кореневого каталогу і розділені тим самим символом косої риски між каталогами та файлами. Першиий символ косої риски позначає каталог, інші є просто розділювачами між частинами повної назви файлу.
Вищенаписане може бути незрозумілим, тому ось приклад:
/usr/share/keytables/us.map.gz
Це повна назва файлу; дехто називає її шляхом до файлу, а власне us.map.gz назвою файлу. Кореневий каталог містить ряд віток-підкаталогів наподобі /etc/ та /usr/. Ці підкаталоги в свою чергу також розгалужуються на підкаталоги на кшталт /etc/init.d/ та /usr/local/. Всі разом вони утворюють дерево каталогів.
Ви можете думати про повну назву файлу як про шлях від кореневого каталогу до кінцевої гілки цього дерева (до файлу). Також можна зустріти людей, котрі говорять про дерево каталогів як про родинне дерево: підкаталоги мають батьківські та дочірні каталоги.
Окрім абсолютного шляху використовується також поняття відносного шляху. Вам потрібно запам'ятати лише, що ../ позначає батьківський каталог.
Зверніть увагу, що каталога, котрий позначає фізничний пристрій, як наприклад ваш диск, немає. Тут Юнікс відрізняється від CP/M, ДОС та Віндовз, де всі шляхи розпочинаються з назви пристрою, як наприклад C:. Див. також концепцію файлової системи в Дебіен, розділ 4.5.2.
Чудова детальна практика файлової ієрархії розписана у Стандарті ієрархії файлової системи. Ви повинні запам'яти для початку наступне:
/ : Простий символ / позначає кореневий каталог.
/etc/ : Місце, де збегігаються загальносистемні конфігураційні файли.
/var/log/ : Місце для системних журнальних файлів.
/home/ : У цьому каталогі розташовані всі домашні каталоги всіх непривілейованих користувачів.
Концепція файлової системи в Дебіен
Слідуючи традиціям Юнікс, Дебіен представляє файлову систему в котрій дані на різних фізичних пристроях та взаємодія з цими пристроями за допомогою локальних чи віддалених консолей реалізуються в уніфікованій манері.
Кожен файл, каталог, іменований канал чи фізичний пристрій в системі Дебіен має структуру даних, котра називається "і-вузол" (inode), що описує асоційовані атрибути на кшталт власника-користувача та власника-групи, час останнього доступу і т.д. Перегляньте /usr/include/linux/fs.h, якщо вам потрібен повний опис структури і-вузла в системі Дебіен ГНУ/Лінукс.
Таке уніфіковане представлення фізичних сутностей є дуже потужним засобом, що дозволяє використовувати однаковаі команди для багатьох насправді різних фізичних пристроїв.
Всі ваші файли можуть бути на одному диску, або ж ви можете мати 20 дисків, кожен з котрих приєднано до іншого комп'ютера десь в мережі - ви не зможете це напевно сказати, просто глянувши на дерево каталогів і майже всі команди працюватимуть з вашими файлами однаково незалежно від їх фізичного розташування.
Права доступу до файлів та каталогів
Права доступу до файлів та каталогів задаються окремо для кожної з трьох категорій користувачів:
- користувач котрий володіє файлом (u),
- інші користувачі групи, що володіє файлом (g), та
- решта користувачів (o).
Для файлу кожне з віповідних прав доступу дозволяє:
- читати (r): проглядати вміст файлу
- писати (w): модифікувати файл
- виконувати (x): запускати файл як команду.
Для каталогу кожне з відповідних прав доступу дозволяє:
- читати (r): проглядати вміст каталогу
- писати (w): додавати чи видаляти файли з каталогу
- виконувати (x): доступатись до файлів каталогу.
Тут право виконувати означає не лише дозвіл читати файли каталогу, але також проглядати їх атрибути штибу розмір чи час модифікації. Для відображення інформації про права доступу (і не тільки) для файлів та каталогів використовується команда ls. Коли вона викликається з опцією -l, то показує наступну інформацію у вказаному порядку:
- тип файлу (перший символ)
- -: звичайний файл
- d: каталог
- l: симлінк
- c: вузол символьного пристрою
- b: вузол блокового пристрою
- p: іменований канал
- s: сокет
- права доступу до файлу (наступні дев'ять символів, по три символи для користувача, групи та решти в такому порядку)
- кількість жорстких лінків на файл
- ім’я власника файлу
- ім'я групи до котрої відноситься файл
- розмір файлу в байтах
- дата і час модифікації файлу (mtime)
- назва файлу
Щоб змінити власника файлу, використовується команда chown, запущена суперкористувачем; для зміни групи, відповідно, використовується команда chgrp. Для зміни прав доступу використовується команда chmod. Базовий синтаксис цих команд такий:
# chown _новий_власник_ шняга
# chgrp _нова_група_ шняга
# chmod [ugoa][+-=][rwx][,...] шняга
Деталі описуються у chown(1)
, chgrp(1)
і chmod(1).
Наприклад, щоб зробити користувача шняга і групу бука власниками групи файлів, запустіть наступні команди від імені суперкористувача:
# cd /якийсь/каталог/
# chown -R _шняга:бука_ .
# chmod -R ug+rwX,o=rX .
Тут є три додаткові біти прав доступу:
- задати ІД користувача (s або S замість x для власника),
- задати ІД групи (s або S замість х для групи), та
- стійкий біт (t або T замість х для власника).
У вищенаведеному прикладі великі літери "Х" означають, що біт виконання буде встановлено лише для тих файлів, котрі вже його мають.
Встановлення на виконувані файли біту користувача дозволяє користувачам запускати ці файли від імені їх власника (наприклад, суперкористувача). Відповідно, встановлення біту групи-власника дозволяє запускати файли від імені даної групи. Оскільки такі налаштування можуть призвести до ризиків з безпекою, встановлення їх вимагає величезної пильності.
Встановлення липкого біту на каталог задіює БСД-подібну схему створення файлів, при котрій всі файли, створені в даному каталозі, належать групі-власнику каталога.
Встановлення липкого біту на каталог убезпечує файли всередині каталогу від випадкового видалення користувачем, котрий не є їх власником. Щоб убезпечити вміст файлу у загальнодоступних каталогах на кшталт /tmp або у каталогах, що доступні групі для запису, ви повинні не лише вимкнути право запису для файлу, але й задати липкий біт для каталогу. В іншому випадку файл може бути видалений користувачем, що має право запису в каталог.
Нижче наведено кілька цікавих прикладів прав доступу до файлів.
$ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/pppd
crw-rw---- 1 root dip 108, 0 Jan 18 13:32 /dev/ppp
-rw-r--r-- 1 root root 1051 Jan 26 08:29 /etc/passwd
-rw-r----- 1 root shadow 746 Jan 26 08:29 /etc/shadow
-rwsr-xr-- 1 root dip 234504 Nov 24 03:58 /usr/sbin/pppd
$ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src
drwxrwxrwt 4 root root 4096 Feb 9 16:35 /tmp
drwxrwsr-x 10 root staff 4096 Jan 18 13:31 /usr/local
drwxrwsr-x 3 root src 4096 Jan 19 08:36 /usr/src
drwxrwsr-x 2 root mail 4096 Feb 2 22:19 /var/mail
drwxrwxrwt 3 root root 4096 Jan 25 02:48 /var/tmp
Існує також альтернативний цифровий спосіб опису прав доступу у командах chmod(1). При цьому використовуються 3 або 4 вісімкові цифри. Кожна з них означає наступне:
- 1ша необов'язкова цифра: сума біту користувача (=4), групи (=2) та липкого біту (=1)
- 2га цифра: сума прав на читання (=4), запис (=2) та виконання (=1) для власника
- 3тя цифра: те ж саме для групи
- 4та цифра: те ж саме для решти
Виглядає страшно, але насправді дуже просто. Якщо ви поглянете на перших кілька (2-10) стовпчиків виводу команди ls -l і прочитаєте їх у двійковому представленні прав доступу ("-" означає "0", а "rwx" означає 1), то такий двійковий режим має таке ж саме значення, що й вісімкове представлення прав доступу. Спробуйте, наприклад, виконати:
$ touch foo bar
$ chmod u=rw,go=r foo
$ chmod 644 bar
$ ls -l foo bar
-rw-r--r-- 1 penguin penguin 0 Nov 3 23:30 foo
-rw-r--r-- 1 penguin penguin 0 Nov 3 23:30 bar
Типова маска прав доступу може бути задана за допомогою вбудованої команди оболонки umask. Див. також builtins(7).
Часові відмітки
Для файлу в ГНУ/Лінукс є три типи часових відміток:
mtime : час модифікації (ls -l),
ctime : час зміни статусу (ls -lc),
atime : час останнього доступу (ls -lu).
Зверніть увагу - ctime це не час створення файлу.
Перезапис файлу змінює всі три часові відмітки.
Зміна власника чи прав доступу змінює ctime та atime файлу.
Читання файлу змінює atime.
Зверніть увагу, що навіть просте читання файлу викликає операцію запису файлу при оновленні atime у індексному вузлі. Монтування файлової системи з опцією noatime дозволяє системі пропускати цю операцію та пришвидшує доступ до файлів при зчитуванні. Див. mount(8).
Щоб змінити часові відмітки існуючих файлів, використовуйте команду touch(1).
Лінки
Існує два способи асоціювати файл шняга з іншою назвою бяка.
- жорсткий лінк - дублює назву існуючого файлу (ln шняга бяка)
- символьний лінк, або симлінк - спеціальний файл, що вказує на інший файл по назві (ln -s шняга бяка).
У поданому прикладі зверніть увагу на кількість лінків та відмінності в результаті виконання команди rm.
$ echo "Оригінальний вміст" > шняга
$ ls -l шняга
-rw-r--r-- 1 osamu osamu 4 Feb 9 22:26 шняга
$ ln шняга бяка # жорсткий лінк
$ ln -s шняга бяка # симлінк
$ ls -l шняга бяка бука
-rw-r--r-- 2 osamu osamu 4 Feb 9 22:26 бяка
lrwxrwxrwx 1 osamu osamu 3 Feb 9 22:28 бука -> шняга
-rw-r--r-- 2 osamu osamu 4 Feb 9 22:26 шняга
$ rm шняга
$ echo "Новий вміст" > шняга
$ cat бяка
Оригінальний вміст
$ cat бука
Новий вміст
Симлінк завжди має суто номінальні права доступу "rwxrwxrwx", як показано у вищенаведеному прикладі, тоді як дійсні права достпу задаються правами доступу файлу, на котрий він вказує.
Каталог .
вказує на каталог, в котрому він розташовано, таким чином кількість лінків будь-якого каталогу розпочинається з 2. Лінк ..
вказує на батьківський каталог, а тому кількість лінків каталога збільшується з додаванням до нього підкаталогів.
Названі канали (ФІФО)
Названий канал - це файл, що виступає у ролі каналу. Ви ставите що-небудь у такий файл і воно появляється з його іншого боку. У програмуванні це називається ФІФО (англ. FIFO, First-In-First-Out - Першим прийшов, першим пішов): те, що ви кладете першим з одного боку, першим появляється з протилежного кінця.
Якщо ви пишете в названий канал, процес, котрий здійснив запис, не завершиться до тих пір, поки інформація не буде повністю зчитана з каналу. Якщо ви читаєте з іменованого каналу, читаючий процес чекає, поки хоч щось можна зчитати з каналу перш ніж завершитись. Розмір каналу завжди рівний нулю -- він не містить даних, він просто зв'язує два процеси наподобі команди оболонки |
. Таким чином, оскільки названий канал має назву, двом процесам не потрібно бути запущеними з одного рядка; більше того, вони можуть запускатись навіть різними користувачами.
Ви можете спробувати зробити це наступним чином:
$ cd; mkfifo мій_канал
$ echo "Привіт" >мій_канал & # запустити у фоні
[1] 5952
$ ls -l мій_канал
prw-r--r-- 1 penguin penguin 0 2003-11-06 23:18 мій_канал
$ cat мій_канал
hello
[1]+ Done echo "Привіт" >мій_канал
$ ls mypipe
prw-r--r-- 1 penguin penguin 0 2003-11-06 23:20 мій_канал
$ rm мій_канал
Сокети
Сокет подібний на названий канал і також дозволяє процесам обмінюватись інформацією. Для сокетів ці процеси не повинні ані буде запущеними одночасно, ані бути наслідниками одного процесу. Це є ключовим у міжпроцесовій взаємодії. Обмін інформацією в цьому випадку може відбуватись через мережу між різними хостами.
Файли пристроїв
Файли пристроїв позначають фізичні або ж віртуальні пристрої у вашій системі на кшталт вінчестера, відеокарти, дисплею чи клавіатури. Прикладом віртуального пристрою є консоль, представлена файлом /dev/console.
Розрізняють два типи пристроїв:
символьні пристрої : до них можна доступитись по одному символу за раз, тому найменша кількість інформації, котра може бути зчитана чи записана становить 1 символ (байт)
блокові пристрої : до них можна доступитись більшими порціями, котрі називаються блоками, що містять певну кількість символів. Ваш вінчестер є блоковим пристроєм.
Ви можете читати з та писати в файли пристроїв, враховуючи що вони містять двійкові дані як правило у незрозумілій для сприйняття людиною формі. Запис даних у такі файли напряму може допомогти при вирішенні апаратних проблем. Наприклад, ви скидаєте текстовий файл на пристрій принтера /dev/lp0, або відправляєте команди модему у відповідний послідовний порт штибу /dev/ttyS0. Але якщо це робити неакуратно чи неуважно, то можна отримати купу клопотів. Тому будьте уважними.
/dev/null та інші
/dev/null - це особливий пристрій, що поглинає все, що ви в нього пишете. Якщо вам щось не потрібно, відправте його в /dev/null. Це справжнісінька бездонна бочка. Якщо ви спробуєте прочитати щось з /dev/null, то негайно отримаєте символ завершення рядка (EOF).
/dev/zero є аналогічним за винятком того, що при читанні з нього ви отримаєте символ \0 (це не те ж саме, що число нуль в таблиці ASCII). Див. також параграф 8.6.34 Німі файли.
Номер вузла пристрою
Номер вузлів пристроїв відображаються при запуску ls у формі:
$ ls -l /dev/hda /dev/ttyS0 /dev/zero
brw-rw---- 1 root disk 3, 0 Mar 14 2002 /dev/hda
crw-rw---- 1 root dialout 4, 64 Nov 15 09:51 /dev/ttyS0
crw-rw-rw- 1 root root 1, 5 Aug 31 03:03 /dev/zero
Тут:
/dev/hda : має первинний номер 3 і вторинний номер пристрою 0. Вони доступні на читання і запис користувачам, що включені до групи disk,
/dev/ttyS0 : має первинний номер пристрою 4 і вторинний 64. Доступний на читання і запис користувачам групи dialout, і
/dev/zero : має первинний номер пристрою 1 і вторинний номер 5. Доступний будь-кому на читання і запис.
В старіших системах в процесі встановлення вузли пристроїв створювались командою /sbin/MAKEDEV command. Див. MAKEDEV(8).
У сучасних системах файлова система в /dev формується автоматично подібно до файлової системи /proc.
Файлова система /proc
Файлова система /proc є віртуальною, несправжньою і містить інформацію про систему та запущені процеси.
Люди часто панікують, якщо зауважують особливий файл - /proc/kcore - що як правило є дуже великим. Це більш чи менш повна копія пам'яті вашого комп'ютера. Він використовується щоб шукати вади у ядрі. Насправді цей файл ніде не існує, тож можете не хвилюватись про його розмір.
Див. також підстроювання ядра за допомогою файлової системи proc, параграф 7.3 та proc(5).
Система X Window
Див. X, розділ 9.4.
Запуск системи X Window
Система X Window може запускатись автоматично з xdm-подібною графічною реєстрацією або ж вручну, з консолі за допомогою команди
$ exec startx
Меню в X Window
Оскільки середовище Х може мати багато віконних менеджерів, їхні способи взаємодії з користувачем можуть дуже й дуже відрізнятись. Будь ласка, запам'ятайте, що клац правою кнопкою миші по головному вікні викличе меню вибору. Воно доступне завжди.
Щоб побавитись з командною оболонкою, спробуйте запустити з меню Xterm:
"Графічні оболонки" --> "XTerm".
Для перегляду сторінок тенет запустіть Вогнелиса:
"Програми" --> "Інтернет" --> "Вогнелис".
Для перегляду файлів PDF знайдіть програму Xpdf у меню:
"Програми" --> "Переглядачі" --> "Xpdf".
Якщо ви не знайшли якогось елементу меню, встановіть відповідний пакунок. Дивіться також Початок керування пакунками Дебіен, параграф 6.2
Клавіатурні скорочення для системи X Window
Нижче наведено важливі комбінації клавіш, котрі вам потрібно знати працюючи в X Window.
Ctrl-Alt-F1 до F6 : Перемикнутись до іншого псевдо-терміналу (з X window, DOSEMU, та ін.)
Alt-F7 : Перемикнутись назад до X window
Ctrl-Alt-мінус : Змінити розрішення екрану (мінус - той що на цифровій клавіатурі)
Ctrl-Alt-плюс : Змінити розрішення екрану в протилежний бік (плюс - той що на цифровій клавіатурі)
Ctrl-Alt-Backspace : Завершити роботу X
Alt-X, Alt-C, Alt-V : Як і у Віндовз/Мак вирізати, скопіювати, вставити. Комбінації клавіш з Ctrl- в деяких програмах замінені на Alt- (наприклад, в Netscape Composer).
Подальше навчання
А тепер я рекомендую вам прочитати ключові книжки від Проекту документування Лінукс:
"Посібник системного адміністратора Лінукс"
: Вона покриває всі аспекти підтримки робочої системи, роботи з реєстраційними записами користувачів, резервуванням, конфігуруванням системи.
Пакунок: sysadmin-guide
Файл: /usr/share/doc/sysadmin-guide/html/index.html
Тенета: http://www.tldp.org/LDP/sag/index.html
"Посібник мережевого адміністратора Лінукс, друга редакція"
: Це простий посібник для адміністрування мережі в середовищі Лінукс.
Пакунок: (недоступний)
Файл: (недоступний)
Тенета: http://www.tldp.org/LDP/nag2/index.html
"Лінукс: Навчання і детальне роз'яснення для крутих користувачів"
: Симпатична книжка, доступна як в тенетах так і в твердій обкладинці; описується адміністрування систем ГНУ/Лінукс.
Автор: Paul Sheer
Видавництво: Prentice Hall
Пакунок: rutebook (з секції non-free)
Файл: /usr/share/doc/rutebook/
Додаткові ресурси описуються в ?розділі 15, Підтримка Дебіен.