2.2 Урок 1
Сертифікат: |
Linux Essentials |
---|---|
Версія: |
1.6 |
Розділ: |
2 Знайдіть свій шлях у системі Linux |
Тема: |
2.2 Використання командного рядку для отримання допомоги |
Урок: |
1 з 1 |
Вступ
Командний рядок є дуже складним інструментом. Кожна команда має свої унікальні параметри, тому документація є ключовою під час роботи з системою Linux. Окрім каталогу /usr/share/doc/
, у якому зберігається більшість документації, інші різноманітні інструменти також надають інформацію про використання команд Linux. У цьому розділі зосередимось на способах доступу до цієї документації з метою отримання допомоги.
Існує безліч способів отримати допомогу в командному рядку Linux. man
, help
та info
це лише деякі з них. В Linux Essentials ми зосередимося на man
і info
, оскільки вони найбільш часто використовуються як інструменти для отримання допомоги.
Іншою темою цього розділу буде пошук файлів. Ви в основному працюватимете з командою locate
.
Отримання допомоги через командний рядок
Вбудована допомога
При запуску з параметром --help
більшість команд відображають короткі інструкції щодо їх використання. Хоча не всі команди забезпечують цю опцію, все ж варто спробувати дізнатися більше про параметри команди. Майте на увазі, що інструкції з --help
часто є досить короткими в порівнянні з іншими джерелами документації, які ми обговоримо далі в цьому уроці.
Сторінки документації
Більшість команд мають сторінку посібника або man-сторінку. Ця документація зазвичай встановлюється разом із програмним забезпеченням і доступна за допомогою команди man
. Команда, сторінка посібника якої має бути відображена, додається до man
як аргумент:
$ man mkdir
Ця команда відкриває сторінку посібника для mkdir
. Ви можете використовувати клавіші зі стрілками вгору та вниз або пробіл для навігації сторінкою посібника. Щоб вийти зі сторінки посібника, натисніть Q.
Кожна сторінка посібника розділена максимум на 11 розділів, хоча багато з цих розділів є необов’язковими:
Секція | Опис |
---|---|
NAME |
Назва команди та короткий опис |
SYNOPSIS |
Опис синтаксису команди |
DESCRIPTION |
Опис дії команди |
OPTIONS |
Доступні параметри |
ARGUMENTS |
Доступні аргументи |
FILES |
Допоміжні файли |
EXAMPLES |
Зразок командного рядка |
SEE ALSO |
Перехресні посилання на відповідні теми |
DIAGNOSTICS |
Попередження та повідомлення про помилки |
COPYRIGHT |
Автор(и) команди |
BUGS |
Будь-які відомі обмеження команди |
На практиці більшість сторінок посібника містять не всі ці частини.
Сторінки посібника розділені на вісім категорій, пронумерованих від 1 до 8:
Категорія | Опис |
---|---|
1 |
Команди користувача |
2 |
Системні виклики |
3 |
Функції бібліотеки С |
4 |
Драйвери та файли пристроїв |
5 |
Конфігураційні файли та формати файлів |
6 |
Ігри |
7 |
Різне |
8 |
Команди системного адміністратора |
9 |
Функції ядра (не стандартні) |
Кожна man-сторінка належить точно до однієї секції. Однак кілька секцій можуть містити сторінки керівництва з однаковою назвою. Візьмемо як приклад команду passwd
. Цю команду можна використовувати для зміни пароля користувача. Оскільки passwd
є командою користувача, її man-сторінка знаходиться в секції 1. Окрім команди passwd
, файл бази даних паролів /etc/passwd
також має сторінку керівництва, яка також називається passwd
. Оскільки цей файл є файлом конфігурації, він належить до секції 5. Коли йдеться про man-сторінку, секція часто додається до імені сторінки man, як у passwd(1)
або passwd(5)
для визначення відповідної man-сторінки.
За замовчуванням man passwd
відображає першу доступну сторінку посібника, у цьому випадку passwd(1)
. Категорію потрібної сторінки посібника можна вказати за допомогою такої команди, як man 1 passwd
або man 5 passwd
.
Ми вже обговорювали, як переміщатися сторінкою man і як повернутися до командного рядка. Всередині man
використовує команду less
для відображення вмісту сторінки посібника. less
дозволяє шукати текст на сторінці посібника. Щоб шукати слово linux
, ви можете просто використовувати /linux
для прямого пошуку з точки, де ви перебуваєте на сторінці, або ?linux
, щоб почати пошук назад. Ця дія виділяє всі відповідні результати та переміщує сторінку до першого виділеного збігу. В обох випадках ви можете ввести N, щоб перейти до наступного збігу. Щоб знайти більше інформації про ці додаткові функції, натисніть H, і з’явиться меню з усією інформацією.
Інформаційні сторінки
Іншим інструментом, який допоможе вам під час роботи з системою Linux, є інформаційні сторінки. Інформаційні сторінки, як правило, більш детальні, ніж сторінки посібника, і відформатовані у вигляді гіпертексту, подібно до веб-сторінок в Інтернеті.
Інформаційні сторінки можуть відображатися так:
$ info mkdir
Для кожної інформаційної сторінки info
зчитує інформаційний файл, структурований на окремі вузли в дереві. Кожен вузол містить просту тему, а команда info
містить гіперпокликання, які можуть допомогти вам переходити від однієї теми до іншої. Ви можете отримати доступ до покликання, натиснувши клавішу Enter і встановивши курсор на одну з провідних зірочок.
Як і man
, інструмент info
також має команди навігації сторінкою. Ви можете дізнатися більше про ці команди, натиснувши ?, перебуваючи на інформаційній сторінці. Ці інструменти допоможуть вам легше переміщатися сторінкою, а також зрозуміти, як отримати доступ до вузлів і переміщуватися в межах дерева вузлів.
Директорія /usr/share/doc/
Як згадувалося раніше, у каталозі /usr/share/doc/
зберігається більшість документації про команди, які використовує система. Цей каталог містить каталог для більшості пакунків, встановлених у системі. Ім’я каталогу зазвичай є ім’ям пакунку, а іноді зазначена і його версія. Ці каталоги містять файл README
або readme.txt
, який містить основну документацію пакунка. Разом з файлом README
папка також може містити інші файли документації, наприклад, журнал змін, який містить детальну історію програми, або приклади файлів конфігурації для конкретного пакунку.
Інформація у файлі README
відрізняється для різних пакунків. Усі файли записані звичайним текстом, тому їх можна прочитати за допомогою будь-якого текстового редактора, зручного для користувача. Точна кількість і типи файлів залежать від пакунку. Перевірте деякі каталоги, щоб отримати уявлення про їх вміст.
Пошук файлів
Команда locate
Система Linux складається з численних каталогів і файлів. Linux має багато інструментів для пошуку певного файлу в системі. Найшвидшим з них є команда locate
.
locate
шукає в базі даних, а потім виводить кожне ім’я, яке відповідає заданому рядку:
$ locate note /lib/udev/keymaps/zepto-znote /usr/bin/zipnote /usr/share/doc/initramfs-tools/maintainer-notes.html /usr/share/man/man1/zipnote.1.gz
Команда locate
також підтримує використання символів підстановки та регулярних виразів, тому рядок пошуку не повинен відповідати повній назві потрібного файлу. Ви дізнаєтеся більше про регулярні вирази в наступному розділі.
За замовчуванням locate
поводиться так, ніби шаблон буде оточений зірочками, тому locate PATTERN
те саме, що locate *PATTERN*
. Це дозволяє вам просто задавати підрядки замість точного імені файлу. Ви можете змінити цю поведінку за допомогою різних параметрів, які можете знайти на man-сторінці посібника «locate».
Оскільки locate
читає з бази даних, ви можете не знайти файл, який нещодавно створили. Базою даних керує програма з назвою updatedb
. Зазвичай вона запускається періодично, але якщо у вас є права root і вам потрібно негайно оновити базу даних, ви можете запустити команду updatedb
самостійно в будь-який час.
Команда find
find
є ще одним дуже популярним інструментом, який використовується для пошуку файлів. Ця команда має інший підхід порівняно з командою locate
. Команда find
здійснює рекурсивний пошук у дереві каталогів, включно з його підкаталогами. find
виконує такий пошук під час кожного виклику, він не підтримує базу даних, як locate
. Як і locate
, find
також підтримує символи підстановки та регулярні вирази.
find
вимагає принаймні шлях, за яким він має шукати. Крім того, можна додати так звані вирази, щоб забезпечити критерії фільтрації для відображення файлів. Прикладом є вираз -name
, який шукає файли з певною назвою:
~$ cd Downloads ~/Downloads $ find . -name thesis.pdf ./thesis.pdf ~/Downloads $ find ~ -name thesis.pdf /home/carol/Downloads/thesis.pdf
Перша команда find
шукає файл у поточному каталозі Downloads
, тоді як друга шукає файл у домашньому каталозі користувача.
Команда find
дуже складна, тому вона не буде охоплена іспитом Linux Essentials. Однак це потужний інструмент, який особливо зручний на практиці.
Вправи до посібника
-
Використовуйте команду
man
, щоб дізнатися, що робить кожна команда:Команда Опис ls
Відображає вміст каталогу.
cat
cut
cd
cp
mv
mkdir
touch
wc
passwd
rm
rmdir
more
less
whereis
head
tail
sort
tr
chmod
grep
-
Відкрийте інформаційну сторінку
ls
і знайдіть MENU.-
Які у вас є варіанти?
-
Знайдіть параметр, який дозволяє сортувати вихідні дані за часом зміни.
-
-
Виведіть шлях до перших 3-х файлів
README
. Використовуйте командуman
, щоб визначити правильний параметр дляlocate
. -
Створіть файл під назвою
test
у своєму домашньому каталозі. Знайдіть його абсолютний шлях за допомогою командиlocate
. -
Ви одразу його знайшли? Що вам потрібно було зробити, щоб команда
locate
його знайшла? -
Знайдіть тестовий файл, який ви створили раніше, за допомогою команди
find
. Який синтаксис ви використовували і який отримали абсолютний шлях?
Дослідницькі вправи
-
У таблиці вище є одна команда, яка не має man-сторінки. Для якої з них і чому, на ваш погляд, відсутня man-сторінка?
-
Використовуючи команди в таблиці вище, створіть таке дерево файлів. Імена, які починаються з великої літери, - це каталоги, а назви, записані в нижньому регістрі, - це файли.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
-
Відобразіть на екрані поточний робочий каталог включно з підкаталогами.
-
Знайдіть в дереві всі файли, які закінчуються цифрою.
-
Видаліть все дерево каталогів за допомогою однієї команди.
Підсумки
У цьому уроці ви дізналися:
-
Як отримати допомогу
-
Як використовувати команду
man
-
Як переміщатися по сторінці
man
-
Різні розділи сторінки
man
-
Як використовувати команду
info
-
Як переміщатися між різними вузлами
-
Як шукати файли в системі
Команди, які використовуються у вправах:
man
-
Відобразити сторінку посібника.
info
-
Відобразити інформаційну сторінку.
locate
-
Знаходить у базі даних
locate
файли з певним іменем. find
-
Знаходить у файловій системі імена, що відповідають набору критеріїв вибору.
updatedb
-
Оновлює базу даних
locate
.
Відповіді до вправ посібника
-
Використовуйте команду
man
, щоб дізнатися, що робить кожна команда:Команда Опис ls
Відображає вміст каталогу
cat
Об’єднує або переглядає текстові файли
cut
Видаляє розділи з текстового файлу
cd
Здійснює перехід в інший каталог
cp
Копіює файл
mv
Переміщує файл (її також можна використовувати для перейменування)
mkdir
Створює новий каталог
touch
Створює файл або змінює час і дату останньої зміни існуючого файлу
wc
Підраховує кількість слів, рядків або байтів у файлі
passwd
Змінює пароль користувача
rm
Видаляє файл
rmdir
Видаляє каталог
more
Забезпечує перегляд текстових файлів по одному екрану за раз
less
Переглядає текстові файли, дозволяє прокручувати вгору і вниз по рядку або по сторінці за раз
whereis
Відображає шлях до вказаної програми та пов’язаних файлів посібника
head
Відображає кілька перших рядків файлу
tail
Відображає кілька останніх рядків файлу
sort
Впорядковує файли у числовому або алфавітному порядку
tr
Перекладає або видаляє символи файлу
chmod
Змінює права доступу до файлу
grep
Здійснює пошук у файлі
-
Відкрийте інформаційну сторінку
ls
і знайдіть MENU.*-
Які у вас є варіанти?
-
Які файли перераховані
-
Яка інформація вказана
-
Сортування виходу
-
Детальна інформація про версії сортування
-
Загальне форматування виводу
-
Форматування часових позначок файлу
-
Форматування імен файлів
-
-
Знайдіть параметр, який дозволяє сортувати вихідні дані за часом зміни.
-t
or--sort=time
-
-
Виведіть шлях до перших 3-х файлів
README
. Використовуйте командуman
, щоб визначити правильний параметр дляlocate
.$ locate -l 3 README /etc/alternatives/README /etc/init.d/README /etc/rc0.d/README
-
Створіть файл під назвою
test
у своєму домашньому каталозі. Знайдіть його абсолютний шлях за допомогою команди$ touch test $ locate test /home/user/test
-
Ви одразу його знайшли? Що вам потрібно було зробити, щоб команда
locate
його знайшла?$ sudo updatedb
Файл новостворений, тому в базі даних про нього немає запису.
-
Знайдіть тестовий файл, який ви створили раніше, за допомогою команди
find
. Який синтаксис ви використовували і який отримали абсолютний шлях?$ find ~ -name test
або
$ find . -name test /home/user/test
Відповіді до дослідницьких вправ
-
У таблиці вище є одна команда, яка не має man-сторінки. Для якої з них і чому, на ваш погляд, відсутня man-сторінка?
Команда
cd
. Вона не має сторінки посібника, оскільки це вбудована команда оболонки. -
Використовуючи команди в таблиці вище, створіть таке дерево файлів. Імена, які починаються з великої літери, - це каталоги, а назви, pаписані в нижньому регістрі, - це файли.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
Рішення – комбінація команд
mkdir
таtouch
. -
Відобразіть на екрані поточний робочий каталог, включно з підкаталогами.
$ ls -R
-
Знайдіть в дереві всі файли, які закінчуються цифрою.
$ find ~ -name "*[0-9]" $ locate "*[0-9]"
-
Видаліть все дерево каталогів за допомогою однієї команди.
$ rm -r Documents Downloads Test test