Выполнение команды whatis cd всегда возвращает "ничего подходящего" на Ubuntu 18.04.

Вопрос или проблема

Я просто игрался с командой whatis. По какой-то причине, каждый раз, когда я выполняю whatis cd, я получаю cd: nothing appropriate. Что это означает? Почему так? Похоже, что для cd тоже нет записи в man. Почему так?

cd — это встроенная команда оболочки:

$ type cd
cd is a shell builtin

Документацию для cd можно найти с помощью:

man builtins

Запустите её, затем нажмите / и ищите “cd”.

В Bash вы также можете открыть страницу помощи с помощью:

help cd

whatis отображает одну строку информации из страницы man команды (той, которую вы найдете в разделе NAME).

nothing appropriate отображается, когда страница man не найдена для этой команды.

cd не имеет собственной страницы man, потому что это не исполняемый файл, а встроенная команда вашей оболочки (как, например, shopt или alias)(*), отсюда и результат, который вы получаете.

(*) Чтобы усложнить вопрос, есть обычные команды, такие как echo и printf, которые переопределяются схожими (и обычно совместимыми) встроенными функциями оболочки, поэтому эти встроенные имеют собственную страницу man, но страница man на самом деле относится к исполняемому файлу (который может иметь немного другие параметры).

Ответ xenoid верен для Ubuntu, но я добавлю немного контекста.

whatis использует индекс, созданный и поддерживаемый mandb, чтобы найти документацию, которую вы ищете. Если указанный индекс не существует, или если команда, которую вы ищете, отсутствует в существующем индексе, вы увидите Nothing appropriate. Если ваша установка еще не имеет индекса mandb, вы можете создать его, выполнив sudo mandb. В Ubuntu man cd не возвращает никаких записей, так что не стоит ожидать, что whatis cd также вернет что-либо. Однако, например, в Rocky Linux man cd отправляет вас на справочную страницу BASH_BUILTINS, так что вы можете ожидать, что whatis cd также возвратит что-то. В моем случае мне пришлось выполнить mandb, чтобы создать справочный индекс, и теперь whatis cd возвращает следующее:

cd (1)               - bash built-in commands, see bash(1)
cd (1p)              - change the working directory

(Благодарность https://stackoverflow.com/a/11782300/26721886 за указание правильного направления)

Ответ или решение

Почему команда whatis cd не возвращает результаты в Ubuntu 18.04?

Когда вы выполняете команду whatis cd в Ubuntu 18.04 и получаете ответ "cd: ничего подходящего", это связано с тем, что cd является встроенной командой оболочки Bash, а не отдельным исполняемым файлом. Давайте разберем это более детально.

1. Встроенные команды в оболочке

Команда cd (change directory) используется для изменения текущего рабочего каталога. Важно отметить, что она является встроенной командой (builtin) языка shell, в отличие от многих других программ, которые имеют свои собственные man страницы. Чтобы подтвердить, что cd — это встроенная команда, вы можете использовать команду:

type cd

Это вернет:

cd is a shell builtin

Таким образом, поскольку cd не является отдельным исполняемым файлом, в системе нет отдельной man страницы для этой команды.

2. Отсутствие man страницы

Как было упомянуто, cd не имеет своей man страницы в Ubuntu, что объясняет, почему команда man cd не возвращает ничего. Тем не менее, документацию по встроенным командам Bash можно найти в разделе терминала Help. Чтобы получить информацию о cd, выполните следующую команду:

help cd

Это предоставит вам справочную информацию о функции команды и ее использовании. Альтернативно, вы также можете посмотреть на man страницу для встроенных команд, выполнив:

man builtins

Затем, используя поиск по странице (нажмите / и введите "cd"), вы сможете найти информацию об этой команде в контексте встроенных функций Bash.

3. Использование команды man

Команда whatis работает на основе индекса, который создается и поддерживается утилитой mandb. Она ищет информацию в базе данных man страниц, и если соответствующий индекс для команды cd отсутствует, вы получите сообщение о том, что "ничего подходящего". Чтобы убедиться, что индекс актуален, можно выполнить:

sudo mandb

4. Примеры из других дистрибутивов

Следует отметить, что в других дистрибутивах, например, в Rocky Linux, выполнение команды man cd может показать страницу, относящуюся к встроенным командам Bash, что также повлияет на результат выполнения whatis cd. Это объясняет различные поведения на разных системах.

Заключение

Таким образом, сообщение "cd: ничего подходящего" при выполнении whatis cd в Ubuntu 18.04 является нормальным, так как cd является встроенной командой Bash и не имеет отдельной man страницы. Для получения информации о ее использовании рекомендуется обращаться к встроенной справке с помощью команды help cd или искать информацию в man странице builtins. Эта специфика встроенных команд и их документации может немного отличаться в зависимости от конкретного дистрибутива Linux, но принцип остается тем же.

Если у вас возникли дополнительные вопросы или нужна дальнейшая помощь, не стесняйтесь обращаться!

Оцените материал
Добавить комментарий

Капча загружается...