[Mac OS X] Читаем man pages в Просмотр.app

25

Если вам нужно посмотреть руководство (man) на какую-нибудь команду и есть желание читать с большим удобством, чем в терминале, то несложно перенаправить вывод команды man в приложение Просмотр.app.

pic_0

pic_0

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

Открываем Терминал.app и вводим следующую команду:

sudo nano /usr/local/bin/pman

Вводим ваш пароль, в результате откроется окно редактора nano. Копируем в него вот эту строчку:


man -t [email protected] | open -f -a /Applications/Preview.app

pic_1

Нажимаем Ctr+X, затем Y, затем Enter. Для начинающих поясню — мы создали файл /usr/local/bin/pman, в котором содержится наш скрипт. Сделаем этот файл исполняемым, для чего выполним команду:

sudo chmod +x /usr/local/bin/pman

Проверяем. Смотрим, например, руководство по команде ping, для чего вводим команду:

pman ping

В результате должны получить, то, чего и добивались:

pic_2

P.S. Наш скрипт понимает и разделы команды man. Например man 8 ping.

Удачи!

25 комментариев Оставить свой

  1. 0
    Сергей

    Извращенцы.
    echo «man -t [email protected] | open -f -a /Applications/Preview.app» > pman
    Затем chmod +x, если нужно расшарить — sudo mv

  2. 0
    Сергей

    А ещё правильнее будет создать у себя директорию ~/bin и прописать её в ~/.bash_profile через export PATH=$PATH:~/bin
    В этой директории и создавать все свои скрипты.

  3. 0
    Сергей

    Слеш забыл
    echo «man -t \[email protected] | open -f -a /Applications/Preview.app» > pman

  4. 0

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

    И еще стоит подумать кого «извращенцем» назвать… поскольку мой вариант работает для всех пользователей в системе, а не как «А еще правильнее…»
    А это «еще правильнее» в виде прописывания пользовательского каталога PATH=$PATH:~/bin — полный верх безрассудства и открывание откровенной дыры в системе.
    😀

    • 0
      Аноним

      izlat, Насчет PATH=$PATH:~/bin, то это совершенно правильно советуют, главное чтобы он шел последним в списке $PATH, тогда никакой дыры не будет.

      Но для новичков все это сложо, так что можно бросать в /usr/local/bin, как советует автор заметки.

      • 0

        Аноним, Не будет, говорите? А если в этот же bin, вместе с pman поместить зловредный скрипт с названием man, который вызывается в pman ? 😀

        • 0
          Аноним

          izlat, >> главное чтобы он шел последним в списке $PATH

          Это как бы исключает, что man из ~/bin запуститься.

          • 0

            Аноним, в OS X необязательно запускать так: ./script
            достаточно сделать просто: script
            🙂

            • 0

              izlat, IMHO это таки дырка 🙂

              • 0
                Аноним

                izlat, Даже если сделать script, то интерпретатор будет проверять наличие исполняемого с самого начала $PATH, а значит первым будет /usr/bin потом /bin, потом /usr/sbin, потом /sbin и т.д. Так что бояться нечего. man точно запустится из /usr/bin

                • 0

                  Аноним, В любом случае, это потенциально опасно, можно разные варианты попридумывать типа вариантов коротких команд, набранных с опечаткой и т.п.
                  И самое главное, какого-то смысла, оправдывающего такую реализацию, я вообще не вижу. Зачем это делать так?

                  • 0
                    Аноним

                    izlat, Вообще-то если кому-то понадобится создать такую программу, то ему совершенно не составит труда переписать переменные окружения добавив в самое начало $PATH что-то вроде $HOME/evilbin.

                    $HOME/bin использут для хранения коротких самописных и несамописных скриптов и предрелизных версий ПО, например, компилятор, линковщик и библиотеки языка Go, пока рекомендуется помещать именно в $HOME/bin.

                    Плюсов невероятно много, начиная с того, что точно знаешь, что является системными программами или обычными приложениями, а что утилитами и скриптами созданными третьими лицами или вообще собой, потом репозитарии, как в случае с Go, обновялются очень часто. И что, мне делать sudo hg pull -u в /usr/local/bin ?

                    Если у вас таких скриптов до 10 и вы их не обновляете, то держите их в /usr/loca/bin или /opt. Есле же вы активно с ними работаете, то куда удобнее и безопаснее $HOME/bin.

                    • 0

                      Аноним, Может быть… Но я бы так делать точно не стал. У меня для моих скриптов обычно есть каталог ~/scripts и привычка набирать ./scripts/anyscript, с автодополнением это несложно.
                      А уж начинающим рекомендовать менять PATH точно не стану.

                      • 0

                        izlat, Давайте завершим это обсуждение, благо ему тут не место, да и опытные пользователи без нас разберутся как им лучше делать… 🙂

                      • 0
                        Аноним

                        izlat, Я тоже раньше хранил все в ~/code/ но потом надоело набирать 6c, 6l и другие команды подобного рода.

                        Еще я посмотрел по своим скриптам и заметил, что часть из них имеет некие персональные данные в себе. Так что это еще и безопаснее хранить их в $HOME.

                        • 0

                          Аноним, Если с персональными данными, то пожалуй действительно лучше в пользовательском каталоге, но все же PATH я бы править не стал. 🙂

  5. 0
    Alexander nomatter

    отличный скрипт, спасибо огромное!
    даёшь больше статей про терминал!

    • 0

      Alexander, Я уже опасаюсь что-либо про терминальные дела писать, поскольку слишком там богатые возможности и всегда найдется куча желающих покритиковать, что дескать «можно лучше и правильнее»… И никакие просьбы не делать этого, успеха не имеют. Все-равно будут самовыражаться, путем наведения критики, а нем путем написания собственных статей. 🙂

      А вступать в полемику с каждым по этим поводам нет ни времени, ни желания… 🙂

  6. 0

    отлично
    большое спасибо за идею, а уж реализацию каждый сам придумет

  7. 0
    Сергей

    Извините, пожалуйста, я не хотел разводить флейм на ровном месте. Постараюсь исправиться.

Авторизуйтесь Чтобы оставить комментарий