Как да използвате командата man на Linux: Скрити тайни и основи

Всичко, което трябва да знаете за Linux, е в неговите man страници. Например, можете да търсите команда за изпълнение на задача, дори и да не знаете как се казва. Но как можете да намерите man страниците? Ето няколко трика.

Вградено ръководство на Linux

Има една стара (от златната ера на Unix) шега на Linux, че единствената команда, която трябва да знаете, е човек, системата входна точка към ръководството за потребителя. Има частица истина в това, но дори човекът може да бъде объркан в началото. Или, по-точно, намирането на необходимата информация може да бъде объркващо.

Знаели ли сте някога какво искате да направите, но не сте знаели името на командата, която ще свърши задачата? Вероятно всички сме били там. Това е като да се опитваш да търсиш дума в речника, когато не знаеш думата.

И така, как можете да намерите това, което търсите? Е, има начини за заобикаляне на този проблем с човека.

Цифрите са друг проблем за първокурсниците. Какви са те и какво означават? Ще видите неща като man(2) или man(5), цитирани в документацията и в интернет. Ще видите и препратки към команди, последвани от числа, като mount(2) и mount(8). Със сигурност не може да има повече от една команда за монтиране, нали? Както ще видим, числата са важни и сравнително прости.

Говорейки за просто, търсенето в човека е доста лесно, след като знаете как да го направите. Всъщност има някои чисти начини, по които можете да търсите и навигирате в човека. Да го запалим и да разгледаме!

Как да отворите ръководството

За да използвате man, въведете man в командния ред, последвано от интервал и команда на Linux. man отваря ръководството за Linux към „man page“, която описва тази команда – ако може да я намери, разбира се.

Нека напишем следното и да видим какво казва човекът за човека:

man man

В

Man страницата за man се отваря.

Man страницата за

Както можете да видите, това е страницата man(1).

Следвайте тези съвети, за да навигирате в страницата:

За да се движите през страницата на ръководството един ред по ред: Използвайте колелото за превъртане на мишката или стрелките нагоре и надолу и клавишите Enter.
За да се придвижвате през страницата на ръководството един екран наведнъж: Натиснете интервала и клавишите PgDn и PgUp.
За да се придвижите директно в горната или долната част на страницата на ръководството: Натиснете клавишите Начало и Край.

Ако натиснете H, влизате в секцията за помощ и виждате таблица с алтернативни натискания на клавиши, които можете да използвате. Изброените по-горе вероятно ще се почувстват по-естествени за повечето хора.

За да излезете от man, просто натиснете Q.

Анатомията на мъжа страница

В горната част на страницата виждате заглавията „Име“ и „Резюме“. Има конвенция за оформлението на man страниците. Има страници с ръководство за команди, програми и функции за програмиране (библиотечни рутинни процедури). Няма да видите всички тези заглавия на всяка man страница, защото някои от тях се отнасят само за определени типове команди.

  Как да направите Steam конзола, задвижвана от Linux със SteamOS

Следват някои от заглавията, които може да видите:

Име: Името на командата, която man страницата описва.
Синопсис: Резюме на командата и нейния синтаксис.
Конфигурация: Подробности за конфигурацията за устройство.
Описание: Обяснение на това какво прави програмата.
Опции: Описание на опциите на командния ред, които командата приема.
Състояние на изход: Възможни стойности на състоянието на изход за командата и какво може да доведе до тяхното използване.
Връщана стойност: Ако man страницата е за библиотечна рутина, това описва стойността, която библиотечната рутина може да изпрати обратно на функцията, която е извикала тази рутина.
Грешки: Списък със стойностите, които могат да бъдат поставени в errno в случай на грешка.
Среда: Списък на променливите на средата, които влияят на командата или програмата и по какъв начин.
Файлове: Списък на файловете, които командата или програмата използва, като например конфигурационни файлове.
Атрибути: Резюме на различни атрибути на командата.
Версии: Подробности за версиите на ядрото или библиотеката на Linux, при които системно извикване или библиотечна функция се появи за първи път или се промени значително от предишните версии.
Съответствие на: Описание на всички стандарти, с които командата може да отговаря, като напр POSIX.
Бележки: Разни бележки.
Бъгове: Известни проблеми.
Примери: Един или повече примери, демонстриращи използването на командата.
Автори: Хората, които са написали или поддържат командата.
Вижте също: Препоръчително четиво, свързано с командата или темата.

Мъжът Раздели

Ако превъртите надолу няколко страници, ще видите списък с разделите в ръководството.

Ръчни секции, изброени в

Секциите са:

Общи команди: Команди, които използвате в командния ред.
Системни извиквания: Функции, предоставени от ядрото, които програмата може да извиква.
Функции на библиотеката: Функциите, програмите могат да извикват кодови библиотеки (главно стандарта C).
Специални файлове: Обикновено устройства, като тези, които се намират в /dev, и техните драйвери.
Файлови формати и конвенции: Формати за файлове, като например passwd, cron таблица и tar архивни файлове.
Игри: Описания на команди, като fortune, които показват цитати от база данни, когато ги стартирате.
Разни: Описания на неща като inodes, параметри за зареждане и самия човек.
Системно администриране: Команди и демони обикновено са запазени за root за работа.
Подпрограми на ядрото: Информация, свързана с вътрешната работа на ядрото. Това включва функционални интерфейси и променливи, полезни за програмисти, които пишат драйвери на устройства, например. В повечето системи този раздел не е инсталиран.

Когато видите команда, последвана от число, това се отнася до описанието на тази команда в този раздел на ръководството. Например, man(1) се отнася до записа в раздел първи на ръководството, описващ командата man.

На изображението по-горе виждате препратка към man(7). Това означава, че има повече информация за човека в друг раздел. Когато за първи път отворихме man страницата, тя показа man(1). Ако въведете само man без номер на раздел, man търси всички секции по ред, търсейки запис за въведената от вас команда. Разбира се, той намери човек (1) преди човек (7).

Ако искате да принудите човека да намери запис от определен раздел, трябва да включите номера на раздела в командния ред.

Например, въвеждаме следното, за да отворим записа за мъж в раздел седми:

man 7 man

В

Ръководството се отваря към записа за мъж в раздел седми.

  Как да инсталирате темата Vimix GTK на Linux

А

Тази страница на справочник предоставя инструкции за писане на man страници. Той описва файловия формат и макросите, които можете да използвате, за да свършите част от работата вместо вас. Страницата man(1) в раздел първи, която разгледахме по-рано, описва как да използваме самия man.

Как да намерите записи в секции

Обикновено, ако просто искате да знаете как да използвате команда, не е нужно да давате номер на раздел. man ще намери стандартния запис, който описва как да използвате тази команда в раздел първи от ръководството. Понякога обаче трябва да отворите запис на команда в определен раздел, защото искате различна информация.

Можете лесно да разберете кои раздели на ръководството съдържат записи за дадена команда. Всяка страница има заглавие и кратко описание. Опцията -f (whatis) търси заглавията на страниците и връща списък със съвпадения.

За този пример въвеждаме следното:

man -f man

В

Двете man страници за man са изброени заедно с техните номера на раздели и кратки описания. Внимавайте обаче – някои записи имат едно и също име, но описват различни команди и функции.

Например въвеждаме следното:

man -f printf

В

Изглежда, че са намерени два записа за printf: първият в раздел първи и друг в раздел трети. Това обаче са различни команди. Man страницата в раздел първи описва командата printf на командния ред, която форматира изхода в прозореца на терминала. Man страницата в раздел три описва printf семейство от библиотечни функции в Език за програмиране C.

Възможно е също да търсите в кратките описания, както и в заглавията на страниците. За да направите това, използвате опцията -k (apropos). Това също ще съвпада с поява на думата за търсене в други, по-дълги думи.

Пишем следното:

man -k printf

В

Много от тези команди са описани в същите няколко man страници, тъй като основната им функционалност е основно същата. Man страницата за vprintf описва функционалността на 10 от командите, изброени на изображението по-горе.

Можете да използвате тази функционалност, за да търсите информация, свързана с това, което се опитвате да постигнете, дори ако не знаете името на командата, която искате да използвате.

Да приемем, че искате да промените паролата на потребителски акаунт. Можем да търсим всякакви команди, които споменават „потребител“ в заглавията или описанията на страницата на ръководството. След това можем да го изпратим чрез grep, за да търсим записи, които съдържат „парола“.

За да направите това, въвеждаме следното:

man -k 'user ' | grep password

Тъй като поставихме думата „потребител“ в единични кавички и включихме интервал в края, тя ще намери съвпадения само за „потребител“, а не за „потребители“. Бърз поглед през резултатите от търсенето ни показва, че вероятният кандидат е passwd.

Тъй като това е man страница на раздел 1 и не е необходимо да включваме номера на раздел в командата, въвеждаме следното:

man passwd

Да кажем, че имаме нужда от команда, която отчита броя на думите в текстов файл. Пишем следното, за да видим дали съществува нещо подобно:

man -k word | grep count

В

За да разберете всичко, което трябва да знаете за броенето на думи, въвеждаме тази команда:

man wc

Говорейки за wc, можем също да използваме опцията -k (apropos) с една точка (.) като цел за търсене, която ще съответства на всичко. Ако преминем през wc и използваме опцията -l (редове), това ще ни каже колко man страници има на компютъра.

  Как да използвате Unified Remote за управление на компютър с Linux

За да направим всичко това, въвеждаме следната команда:

man -k . | wc -l

В

На този компютър с Ubuntu има 6706 man страници, но не се учудвайте, ако броят им е различен на вашия. Може да варира в зависимост от това кои софтуерни пакети и помощни програми имате на вашата машина и кои страници на справочник са били предварително инсталирани.

Търсене в man страница

Можете също да търсите напред или назад от текущата си позиция в man страница.

За този пример въвеждаме следното, за да отворим man страницата за командата history:

man history

В

За да търсим напред, натискаме наклонената черта (/) и след това въвеждаме думата „събитие“. Целта за търсене се появява в долната част на прозореца на терминала и натискаме Enter, за да започнем търсенето.

В

Прозорецът показва първия резултат от всички намерени съвпадения и те са маркирани.

А

Натиснете „n“, за да преминете от резултат към резултат към края на страницата. За да търсите назад в man страницата, натиснете “N”; това ще ви премести обратно в горната част на страницата.

За да включите и изключите подчертаването, натиснете Esc+U.

Ако сте близо до дъното на страницата на ръководството и искате да търсите нагоре, натиснете въпросителния знак (?) и след това въведете думата за търсене. Търсихме „вход“.

А

Отново всички съвпадащи резултати са подчертани.

Резултати за търсената дума

За да потърсите следващия съвпадащ резултат, натиснете “n”, за да се придвижите към началото на страницата на ръководството. Натиснете „N“, за да преминете към предишния резултат на съвпадение и да се придвижите към края на страницата на ръководството.

Има и друг начин да търсите в man страница. Той скрива всички редове, които не съдържат съвпадение с вашата дума за търсене, така че е най-добре да използвате номера на редове с тази техника.

Ако напишем “-N” и натиснете Enter, можем да видим номерата на редовете в man страницата.

Натискаме амперсанда (&), въвеждаме нашата дума за търсене (число) и след това натискаме Enter.

А

Показват се само редовете, които съдържат нашата дума за търсене.

Редове, които съдържат думата

Лесно е да ги прегледате и да забележите всички, които изглеждат интересни. Смятаме, че ред 292 изглежда обещаващ, така че искаме да отидем в този раздел на страницата на ръководството и да го проверим.

За да видим всички редове отново, натискаме амперсанда (&) и след това натискаме Enter.

В

Пишем „292“ и след това „g“, за да отидем на този ред.

Команда за преминаване към ред

Веднага след като напишем „g“, се отвеждаме до ред 292 (което е причината „g“ да не се появява на изображението по-горе). След това в горната част на прозореца на терминала се показва ред 292.

Можете да натиснете “-n” и да натиснете Enter, за да премахнете номерата на редовете.

Прочетете страхотния наръчник

Има изобилие от информация в man страниците. Дори с команди, които смятате, че познавате добре, сигурно е, че има и други опции, за които никога не сте чували.

Също така определено ще намерите команди, за които не сте знаели, че съществуват. С толкова много различни начини за търсене и проследяване на информация е страхотно да имате всичко на една ръка разстояние.