Уся необхідна інформація про Linux зосереджена на його сторінках довідки. Наприклад, ви можете шукати команду для виконання певного завдання, навіть якщо не знаєте її точної назви. Але як знайти потрібні сторінки man? Ось декілька корисних порад.
Вбудована Довідка Linux
Існує старий, ще з часів розквіту Unix, жарт про Linux, що єдина команда, яку потрібно знати, це `man` – ваш головний портал до довідника користувача. І в цьому є велика частка правди, хоча навіть з `man` спочатку можна заплутатися. Або, точніше, пошук необхідної інформації може бути не завжди інтуїтивним.
Чи бувало у вас таке, що ви знали, що хочете зробити, але не пам’ятали назви потрібної команди? Всі, напевно, хоч раз були в такій ситуації. Це як намагатися знайти слово у словнику, не знаючи його написання.
То як же знайти те, що потрібно? На щастя, існують способи обійти цю проблему з допомогою команди `man`.
Цифри також викликають плутанину у новачків. Що вони означають? Ви часто бачите в документації посилання на `man(2)` або `man(5)`, і в інтернеті також можна зустріти команди з цифрами після них, наприклад `mount(2)` або `mount(8)`. Невже існує декілька команд `mount`? Як ми побачимо, ці цифри важливі і їх розуміння не таке вже й складне.
До речі, пошук усередині сторінок man досить простий, якщо знати як. Існує декілька зручних способів пошуку та навігації в цих сторінках. Давайте розберемося!
Як Відкрити Сторінку Довідки
Щоб скористатися командою `man`, введіть в терміналі `man`, потім пробіл і назву команди Linux. `man` відкриє сторінку довідки, де буде описано цю команду, якщо звичайно, вона її знайде.
Давайте введемо команду і подивимося, що `man` розповість про саму себе:
man man
Відкриється сторінка `man` для команди `man`.
Як бачимо, це сторінка `man(1)`.
Ось декілька порад для навігації сторінкою:
Для переміщення сторінкою на один рядок: використовуйте коліщатко миші або стрілки вгору/вниз, або клавішу Enter.
Для переміщення сторінкою на один екран: натисніть пробіл, клавіші PgDn або PgUp.
Для переходу на початок або кінець сторінки: натисніть клавіші Home або End.
Якщо натиснути `H`, ви потрапите до розділу довідки, де побачите таблицю з альтернативними комбінаціями клавіш. Перераховані вище, ймовірно, будуть більш зручними для більшості користувачів.
Щоб вийти з man, просто натисніть `Q`.
Структура Сторінки Man
У верхній частині сторінки ви знайдете заголовки “ІМ’Я” та “КОРОТКИЙ ОПИС”. Існує стандартний макет сторінок man. Існують сторінки довідки для команд, програм та функцій програмування (бібліотечних підпрограм). Не всі ці заголовки будуть присутні на кожній сторінці man, оскільки деякі з них стосуються тільки певних типів команд.
Ось деякі із заголовків, які ви можете побачити:
Ім’я: назва команди, яку описує сторінка довідки.
Короткий опис: коротка інформація про команду та її синтаксис.
Конфігурація: деталі налаштування пристрою.
Опис: пояснення того, що робить програма.
Параметри: опис параметрів командного рядка, які приймає команда.
Статус виходу: можливі значення статусу виходу для команди та причини їхнього використання.
Повернене значення: якщо сторінка довідки призначена для підпрограми бібліотеки, тут описується значення, яке бібліотечна програма може повернути функції, що її викликала.
Помилки: перелік значень, які можуть бути розміщені в `errno` у випадку помилки.
Середовище: список змінних середовища, які впливають на команду або програму, та яким чином.
Файли: список файлів, які використовує команда або програма, наприклад файли конфігурації.
Атрибути: короткий опис різних атрибутів команди.
Версії: інформація про версії ядра або бібліотеки Linux, де системний виклик або функція бібліотеки вперше з’явилися, або зазнали значних змін.
Відповідність: опис стандартів, яким відповідає команда, наприклад, POSIX.
Примітки: різноманітні примітки.
Помилки: відомі проблеми.
Приклади: один або кілька прикладів, що демонструють використання команди.
Автори: люди, які написали або підтримують команду.
Дивіться також: рекомендована література, що стосується команди або теми.
Розділи Man
Якщо ви прокрутите сторінку трохи вниз, ви побачите список розділів довідника.
Розділи:
Загальні команди: команди, які використовуються в командному рядку.
Системні виклики: функції, які надає ядро і які можуть бути викликані програмами.
Функції бібліотеки: функції, які можна викликати з бібліотек коду (в основному стандарт C).
Спеціальні файли: здебільшого пристрої, наприклад, ті, що знаходяться в `/dev`, та їхні драйвери.
Формати файлів та угоди: формати файлів, наприклад, файли `passwd`, таблиця `cron` та архівні файли `tar` .
Ігри: описи команд, наприклад, `fortune`, яка показує цитати з бази даних при її запуску.
Різне: описи таких речей, як inodes, параметри завантаження та сама команда man.
Адміністрування системи: команди та демони, зазвичай зарезервовані для використання з правами root.
Підпрограми ядра: інформація про внутрішню роботу ядра. Сюди входять, наприклад, інтерфейси функцій та змінні, корисні для програмістів, які пишуть драйвери пристроїв. У більшості систем цей розділ не встановлено.
Коли ви бачите команду, після якої йде цифра, це посилається на опис цієї команди в зазначеному розділі довідника. Наприклад, `man(1)` посилається на запис у першому розділі, що описує команду `man`.
На зображенні вище ми бачимо посилання на `man(7)`. Це означає, що в іншому розділі є додаткова інформація про `man`. Коли ми вперше відкрили сторінку довідника, вона показала нам `man(1)`. Якщо ви вводите просто `man` без номера розділу, `man` буде шукати у всіх розділах по черзі, поки не знайде запис для введеної команди. Звичайно, він знайшов `man(1)` раніше за `man(7)`.
Якщо ви хочете, щоб man знайшов запис з певного розділу, вам необхідно включити номер розділу у командний рядок.
Наприклад, введіть наступне, щоб відкрити запис про `man` у сьомому розділі:
man 7 man
Відкриється сторінка довідника для запису про `man` у сьомому розділі.
Ця сторінка довідки містить інструкції про те, як писати сторінки довідника. Вона описує формат файлу та макроси, які можна використовувати для спрощення цього завдання. Сторінка `man(1)` у першому розділі, яку ми розглядали раніше, описує, як використовувати саму команду `man`.
Як Знайти Записи в Розділах
Зазвичай, якщо вам потрібно знати, як використовувати команду, вам не потрібно вказувати номер розділу. `man` знайде стандартний запис, який описує, як використовувати цю команду в першому розділі довідника. Однак, іноді вам може знадобитися відкрити запис команди у певному розділі, оскільки потрібна інша інформація.
Ви можете легко дізнатися, які розділи довідника містять записи для певної команди. Кожна сторінка `man` має назву та короткий опис. Параметр `-f` (`whatis`) шукає заголовки сторінок та повертає список збігів.
Наприклад, введіть:
man -f man
Дві сторінки довідника для `man` перераховані разом з номерами розділів та коротким описом. Але будьте обережні, деякі записи мають однакові назви, але описують різні команди та функції.
Наприклад, введемо:
man -f printf
Схоже, що для `printf` є два записи: один у першому розділі, а інший у третьому. Однак, це різні команди. Сторінка довідки в першому розділі описує команду командного рядка `printf`, яка форматує вихід у вікні термінала. Сторінка довідки в третьому розділі описує сімейство бібліотечних функцій `printf` в мові програмування C.
Також можна шукати за короткими описами, а також заголовками сторінок. Для цього використовується параметр `-k` (`apropos`). Він також знайде збіги для терміна пошуку в інших, довших словах.
Введіть:
man -k printf
Багато з цих команд описані на одних і тих самих сторінках довідника, тому що їх основні функції здебільшого однакові. Сторінка довідки для `vprintf` описує можливості 10 команд, перерахованих на зображенні вище.
Ви можете використовувати цю функцію для пошуку інформації, пов’язаної з тим, що ви хочете зробити, навіть якщо не знаєте назви команди, яку потрібно використовувати.
Скажімо, ви хочете змінити пароль облікового запису користувача. Можна пошукати будь-які команди, які згадують слово “користувач” в заголовках або описах сторінок довідника. Потім можна передати вихід через `grep`, щоб знайти записи, які містять слово “пароль”.
Для цього введіть:
man -k 'user ' | grep password
Оскільки ми взяли слово “користувач” в одинарні лапки та додали пробіл в кінці, пошук буде здійснюватися тільки для “користувача”, а не “користувачів”. Швидкий перегляд результатів пошуку показує, що найбільш підходящий варіант – це команда `passwd`.
Оскільки це сторінка довідника з першого розділу, і нам не потрібно вказувати номер розділу в команді, введіть:
man passwd
Скажімо, нам потрібна команда для підрахунку слів в текстовому файлі. Введіть наступне, щоб перевірити, чи існує щось подібне:
man -k word | grep count
Щоб дізнатися все, що потрібно знати про підрахунок слів, введіть команду:
man wc
Якщо згадати про `wc`, ми також можемо використовувати параметр `-k` (`apropos`) з точкою (`.`) як пошуковим запитом, щоб знайти абсолютно все. Якщо передати результат через `wc` і скористатися опцією `-l` (рядки), це повідомить нам, скільки сторінок `man` є на комп’ютері.
Щоб це зробити, введіть команду:
man -k . | wc -l
На цьому комп’ютері Ubuntu є 6706 сторінок довідника, але не дивуйтесь, якщо у вас буде інша кількість. Це залежить від встановлених програмних пакетів та утиліт на вашому комп’ютері, а також від попередньо встановлених сторінок довідника.
Пошук на Сторінці Man
Ви також можете шукати вперед або назад від поточного положення на сторінці довідника.
Для прикладу, введіть наступне, щоб відкрити сторінку довідника для команди `history`:
man history
Щоб шукати вперед, натисніть косу риску (`/`), а потім введіть слово “подія”. Запит пошуку з’явиться внизу вікна термінала. Натисніть Enter, щоб почати пошук.
Вікно покаже перший результат зі збігами та виділить його.
Натисніть `n`, щоб перейти від результату до результату вниз по сторінці. Щоб шукати назад на сторінці довідника, натисніть `N`; це поверне вас до початку сторінки.
Щоб увімкнути або вимкнути підсвічування, натисніть `Esc+U`.
Якщо ви знаходитесь внизу сторінки довідника і хочете шукати вгору, натисніть знак питання (`?`), а потім введіть запит. В цьому випадку ми шукали слово “вхід”.
Знову ж таки, всі відповідні результати будуть виділені.
Щоб знайти наступний відповідний результат, натисніть `n`, щоб перейти до початку сторінки довідника. Натисніть `N`, щоб перейти до попереднього результату та до кінця сторінки.
Існує інший спосіб пошуку на сторінці довідника. Він приховує всі рядки, які не відповідають пошуковому запиту, тому найкраще використовувати номери рядків з цією технікою.
Якщо ми введемо `-N` і натиснемо Enter, ми побачимо номери рядків на сторінці довідки.
Натисніть амперсанд (`&`), введіть наш пошуковий запит (число), а потім Enter.
Будуть відображені лише ті рядки, які містять наш пошуковий запит.
Їх легко переглядати та знайти те, що виглядає цікаво. Ми вважаємо, що рядок 292 виглядає багатообіцяючим, тому хочемо перейти до нього на сторінці довідника.
Щоб знову побачити всі рядки, натисніть амперсанд (`&`), а потім Enter.
Введіть `292`, а потім `g`, щоб перейти до цього рядка.
Щойно ми введемо `g`, ми потрапимо до рядка 292 (саме тому `g` не з’являється на зображенні вище). Потім у верхній частині вікна термінала з’явиться рядок 292.
Можна натиснути `-n` і натиснути Enter, щоб прибрати номери рядків.
Читайте Цей Корисний Довідник
На сторінках довідника є дуже багато інформації. Навіть якщо ви вважаєте, що добре знаєте команди, майже напевно є інші можливості, про які ви ніколи не чули.
Ви також напевно знайдете команди, про існування яких не здогадувалися. З такою кількістю різних способів пошуку та отримання інформації, чудово, що все це у вас під рукою.