Как заставить `man` работать с командами и ключевыми словами для встроенных команд?

Причина, по которой вы не можете «видеть» .profile », состоит в том, что команда ls не отображает имена файлов и каталогов, начиная с . - это оригинальное устройство для« скрытия »файлов в Unix.

Вы все еще можете редактировать .profile, набрав emacs .profile (или любой редактор, который вы хотите использовать.)

И вы можете «видеть» все ваши файлы, набрав ls -al, который запрашивает «длинная форма» (более информативная) для всех указанных аргументов каталога или файла.

1
задан 28 March 2014 в 22:46

3 ответа

man bash-builtins

Это содержит фрагменты справки для встроенных команд, хотя и в немного более сжатом формате, чем эквивалент help.

26
ответ дан 24 May 2018 в 10:24
  • 1
    Хорошо знать! Это из раздела 7 руководства. До сих пор я не слышал об этой странице руководства. +1, но я не могу принять этот ответ, потому что это не совсем то, что я спросил. – Radu Rădeanu 26 March 2014 в 16:42

Вы можете установить страницы руководства об использовании системы POSIX для разработки, как

sudo apt-get install manpages-posix-dev

. Он предоставит справочные страницы для встроенных оболочек.

$ type cd
cd is a shell builtin

Теперь попробуйте [ ! d3]

$ man cd
CD(P)                      POSIX Programmer's Manual                      CD(P)

NAME
   cd - change the working directory

SYNOPSIS
   cd [-L | -P] [directory]


...
12
ответ дан 24 May 2018 в 10:24
  • 1
    Я ждал, когда кто-то придет с этим ответом. Но проблема в том, что это будет работать только для некоторых встроенных функций - , указанных в POSIX . – Radu Rădeanu 27 March 2014 в 16:42
  • 2
    Bash не строго придерживается POSIX, если не работает в режиме POSIX, поэтому эти страницы руководства могут быть неполными и могут быть ошибочными в некоторых случаях, особенно при описании поведения определенных функций. – Chris Down 28 March 2014 в 09:34
  • 3
    @ RaduRădeanu да, вы абсолютно правы, он будет работать для некоторых встроенных. – souravc 28 March 2014 в 10:01

Это решение работает отлично, но это тоже шутка, потому что первое, что я подумал, когда я прочитал ваш вопрос: «Кто все еще буквально использует человека из командной строки? Разве не все просто Google на странице руководства, которую они хотят (чтобы у них появлялись такие фантастические вещи, как неограниченная прокрутка)? ». Затем я понял, что на сайтах у меня обычно есть команды обоих типов, поэтому почему бы просто не использовать их для обеспечения единого интерфейса справочной страницы по всем командам. Следовательно, эта забава родилась.

Для этого требуется подключение к Интернету для любых записей, которые вы еще не искали хотя бы один раз. Он также нуждается в этих двух небольших приложениях, которые отсутствуют при установке Ubuntu по умолчанию:

 sudo apt-get install tidy html2text

Это не совсем необходимо, но они помогают сделать его немного приятнее. Tidy очистит HTML и html2text отформатирует этот html как форматированный текст (что обычно довольно тривиально, так как большинство этих сайтов уже отформатированы в тексте и просто завернуты в теги & lt; pre & gt..

Теперь все, что вам нужно сделать это, добавьте это в конец ~/.profile:

function iman() {
    if [ ! -d "/usr/share/iman" ]; then
        sudo mkdir -m a=rwx /usr/share/iman
    fi
    if [ ! -f "/usr/share/iman/$1.html" ]; then
        curl "http://unixhelp.ed.ac.uk/CGI/man-cgi?$1"| tidy -n -asxml 2>/dev/null| html2text > "/usr/share/iman/$1.html"; 
    fi
    if [ -f "/usr/share/iman/$1.html" ]; then
        cat "/usr/share/iman/$1.html";
    else
        echo "Entry not found."
    fi
}

После выхода из системы, а затем снова вы должны ввести это:

iman cd

и это

Здесь используется каталог данных (/ usr / share / iman), чтобы свести к минимуму наши требования к сети (так что это будет работать для записей, которые вы уже использовали найденный ранее даже без подключения, а также для минимизации нагрузки на этот случайный сайт страниц man linux, который я нашел с помощью системных записей, которые мы хотим в нем). Если вы больше не используете это, вы захотите удалить это для восстановления диска пространство.

Надеюсь, остальное довольно прямолинейно.

2
ответ дан 24 May 2018 в 10:24
  • 1
    «Кто все еще буквально использует человека из командной строки?» Я! и всем остальным, которые должны посетить центр обработки данных (без Интернета;)) – Rinzwind 26 March 2014 в 20:08
  • 2
    Точка, это не поможет вам тогда быть ясными. – krowe 26 March 2014 в 20:09
  • 3
    Я бы подумал наоборот: я редко использую Google для поиска команд bash. Гораздо быстрее просто ввести команду «man commande». без необходимости покидать клавиатуру. – this.lau_ 26 March 2014 в 20:23
  • 4
    alt + tab - & gt; alt + d - & gt; команда будет делать то же самое без мыши и без отмены текущей команды cli и с прокруткой и с миллионом других приятных вещей, которые дает вам браузер. Я уверен, что вы ничего не знаете об этом, потому что вы всегда используете этот сайт, а другие - от lynx ... ffs – krowe 26 March 2014 в 20:26
  • 5
    В случае встроенных функций функция iman возвращает тот же результат, что и man bash-builtins. – Radu Rădeanu 26 March 2014 в 20:43

Другие вопросы по тегам:

Похожие вопросы: