Справочные страницы по Git Bash в Windows 7

19

Я использую Git bash в Windows 7. Он позволяет мне использовать большинство команд, которые я использовал в оболочке bash на моей машине с Ubuntu. Но команды man и info не работают. Есть ли способ заставить эти (невероятные) команды документирования работать над оболочкой Git bash в Windows?

Prasanth
источник

Ответы:

2

Вы можете использовать онлайн-документацию.

Справочные страницы Linux онлайн и информационные страницы GNU

Сатьяджит Бхат
источник
Есть ли программы, которые будут подключаться к этим веб-страницам из командной строки и отображать результат? так что я все еще могу набрать info grep на оболочке и получить результаты там?
Прасант
1
@Prasanth, возможно, вы можете сделать wget <URL> и затем выполнить поиск.
Сатьяджит Бхат
или он мог сделать это curl "http://man.he.net/?topic=<command_name>&section=all". замените <command_name>команду, которую вы ищете
mr5
7

Это может быть немного излишним, но вы можете загрузить Cygwin , который будет включать в себя bash, manи информация читателей как pinfo.

Установщик cygwin позволит вам настроить вашу установку на довольно маленькое подмножество cygwin.

Рич Гомолка
источник
2
Не перегибать ни в малейшей степени; кажется довольно распространенным, что кто-то захочет получить опыт работы с Unixy в Windows и по ошибке установит Git Bash, думая, что это способ его получить. Тем временем Cygwin на самом деле обеспечивает один, возможно, в максимально возможной степени или почти совсем.
Аарон Миллер
6

Вы можете заставить man-страницы работать в среде git bash, но, вероятно, удобнее рассмотреть другие альтернативы, которые требуют меньше работы.

У меня также мало представителей в SuperUser, поэтому мне грустно говорить, что я не могу дать в ответ все ссылки, которые мне нужны. Я повторно опубликовал свой ответ на Tumblr.

В итоге:

  • Git's bash является частью проекта msysGit.
  • msysGit - это форк проекта MinGW и MSYS
  • Для установки MinGW-get вам потребуется либо msysGit, либо MinGW.
  • Вам понадобится MinGW-get для установки Groff
  • Вам понадобится Groff для запуска этих скриптов, чтобы дать вам команду man из оболочки msys bash
  • С этими сценариями вы можете читать страницы руководства. Вам просто нужно скачать их по пути, указанному вами в скриптах.

Удачи.

Дейв
источник
2
Вы можете установить человека с MinGW-get install msys-man. Man также доступен в виде двоичного файла для Windows: sourceforge.net/projects/ezwinports/files (можно найти в FAQ: mingw.org/wiki/FAQ#toc10 ). На этой странице также есть groff. Либо, вероятно, будет работать быстрее, чем эти сценарии.
Сэм Хаслер
@SamHasler msys-man великолепен. Спасибо за совет, я не знаю, как я пропустил это.
Дейв
4

Я соединил некоторые другие ответы, чтобы получить manкоманду, которую можно использовать, как если бы она была изначально. Просто вставьте следующее в свой .bashrc, и либо в sourceнего, либо заново откройте свой терминал.

function man {
    local section=all
    if [[ "$1" =~ ^[0-9]+$ ]]; then section="$1"; shift; fi
    local doc="$(curl -v --silent --data-urlencode topic="$@" --data-urlencode section="$section" http://man.he.net/ 2>&1)"
    local ok=$?
    local pre="$(printf '%s' "$doc" | sed -ne "/<PRE>/,/<\/PRE>/ { /<PRE>/ { n; b; }; p }")"
    [[ $ok -eq 0 && -n "$pre" ]] && printf '%s' "$pre" | less || printf 'Got nothing.\n' >&2
    return $ok
}

Он также поддерживает запрос определенных разделов man, например, man 3 printfдля системного вызова.

Слабые стороны: Источник (man.he.net) не совсем API RESTful, и он возвращает 200, даже когда ничего не найдено, поэтому трудно дать точные сообщения об ошибках. Вместо этого, это просто печатает «Получил ничего», независимо от того, в чем проблема. Это, вероятно, может быть улучшено. Кроме того, результирующая страница содержит html-сущности, такие как &lt;вместо <, что делает некоторые строки использования некрасивыми.

Pianosaurus
источник
2

В дополнение к ответу Сатья , вы также можете сделать это в bash для Windows:

curl -v --silent "http://man.he.net/?topic=<command_name>&section=all" 2>&1 | sed -n "/<PRE>/,/<\/PRE>/p"

Просто замените <command_name>команду, которую вы ищете.

Пример вывода для команды ls:

<PRE> ОПИСАНИЕ ls [ОПЦИЯ] ... [ФАЙЛ] ...

ОПИСАНИЕ Вывести информацию о ФАЙЛАХ (текущий каталог по умолчанию). Сортируйте записи в алфавитном порядке, если не указан ни -cftuvSUX, ни --sort.

   Mandatory  arguments  to  long  options are mandatory for short options
   too.

   -a, --all
          do not ignore entries starting with .

   -A, --almost-all
          do not list implied . and ..

   --author
          with -l, print the author of each file

   -b, --escape
          print C-style escapes for nongraphic characters

   --block-size=SIZE
          scale   sizes   by   SIZE   before   printing    them.     E.g.,
          `--block-size=M'  prints sizes in units of 1,048,576 bytes.  See
          SIZE format below.

   -B, --ignore-backups
          do not list implied entries ending with ~

   -c     with -lt: sort by, and show, ctime (time of last modification of
          file  status  information)  with -l: show ctime and sort by name
          otherwise: sort by ctime, newest first

   -C     list entries by columns

   --color[=WHEN]
          colorize the output.   WHEN  defaults  to  `always'  or  can  be
          `never' or `auto'.  More info below

   -d, --directory
          list  directory entries instead of contents, and do not derefer-
          ence symbolic links

   -D, --dired
          generate output designed for Emacs' dired mode

   -f     do not sort, enable -aU, disable -ls --color

   -F, --classify
          append indicator (one of */=&gt;@|) to entries

   --group-directories-first
          group directories before files.

          augment  with  a  --sort option, but any use of --sort=none (-U)
          disables grouping

   -G, --no-group
          in a long listing, don't print group names

   -h, --human-readable
          with -l, print sizes in human readable format (e.g., 1K 234M 2G)

   --si   likewise, but use powers of 1000 not 1024

   -H, --dereference-command-line
          follow symbolic links listed on the command line

   --dereference-command-line-symlink-to-dir
          follow each command line symbolic link that points to  a  direc-
          tory

   --hide=PATTERN
          do  not  list implied entries matching shell PATTERN (overridden
          by -a or -A)

   --indicator-style=WORD
          append indicator with style WORD to entry names: none (default),
          slash (-p), file-type (--file-type), classify (-F)

   -i, --inode
          print the index number of each file

   -I, --ignore=PATTERN
          do not list implied entries matching shell PATTERN

   -k     like --block-size=1K

   -l     use a long listing format

   -L, --dereference
          when showing file information for a symbolic link, show informa-
          tion for the file the link references rather than for  the  link
          itself

   -m     fill width with a comma separated list of entries

   -n, --numeric-uid-gid
          like -l, but list numeric user and group IDs

   -N, --literal
          print  raw entry names (don't treat e.g. control characters spe-
          cially)

   -o     like -l, but do not list group information
          enclose entry names in double quotes

   --quoting-style=WORD
          use  quoting style WORD for entry names: literal, locale, shell,
          shell-always, c, escape

   -r, --reverse
          reverse order while sorting

   -R, --recursive
          list subdirectories recursively

   -s, --size
          print the allocated size of each file, in blocks

   -S     sort by file size

   --sort=WORD
          sort by WORD instead of name: none -U, extension  -X,  size  -S,
          time -t, version -v

   --time=WORD
          with  -l,  show time as WORD instead of modification time: atime
          -u, access -u, use -u, ctime -c, or  status  -c;  use  specified
          time as sort key if --sort=time

   --time-style=STYLE
          with  -l, show times using style STYLE: full-iso, long-iso, iso,
          locale, +FORMAT.  FORMAT is interpreted like `date';  if  FORMAT
          is  FORMAT1&lt;newline&gt;FORMAT2, FORMAT1 applies to non-recent files
          and FORMAT2 to recent files; if STYLE is prefixed with `posix-',
          STYLE takes effect only outside the POSIX locale

   -t     sort by modification time, newest first

   -T, --tabsize=COLS
          assume tab stops at each COLS instead of 8

   -u     with  -lt:  sort  by, and show, access time with -l: show access
          time and sort by name otherwise: sort by access time

   -U     do not sort; list entries in directory order

   -v     natural sort of (version) numbers within text

   -w, --width=COLS
          assume screen width instead of current value

   -x     list entries by lines instead of by columns

   -X     sort alphabetically by entry extension

   -Z, --context
          print any SELinux security context of each file

   Using color to distinguish file types is disabled both by  default  and
   with  --color=never.  With --color=auto, ls emits color codes only when
   standard output is connected to a terminal.  The LS_COLORS  environment
   variable can change the settings.  Use the dircolors command to set it.

Статус выхода: 0, если все в порядке,

   1      if minor problems (e.g., cannot access subdirectory),

   2      if serious trouble (e.g., cannot access command-line argument).

АВТОР Автор Ричард М. Столлман и Дэвид Маккензи.

Сообщение об ошибках Сообщайте об ошибках на домашнюю страницу bug-coreutils@gnu.org GNU coreutils: < http://www.gnu.org/software/coreutils/> ; Общая помощь с использованием программного обеспечения GNU: < http://www.gnu.org/gethelp/> ; Сообщайте об ошибках перевода на < http://translationproject.org/team/> ;

АВТОРСКОЕ ПРАВО Copyright (C) 2011 Free Software Foundation, Inc. Лицензия GPLv3 +: GNU GPL версии 3 или более поздней версии < http://gnu.org/licenses/gpl.html> ;. Это бесплатное программное обеспечение: вы можете изменять и распространять его. НЕ ПРЕДОСТАВЛЯЕТСЯ ГАРАНТИИ, если это разрешено законом.

СМОТРИ ТАКЖЕ Полная документация для ls поддерживается в виде руководства в формате Texinfo. Если на вашем сайте правильно установлены программы info и ls, команда

          info coreutils 'ls invocation'

   should give you access to the complete manual.

GNU coreutils 8.12.197-032bb сентябрь 2011 г.
<STRONG> <A HREF="/man1/LS"> LS (1) </A> </ STRONG> </ PRE>

MR5
источник
1

Ответ , от этого вопроса , может быть полезен:

Предоставляет вам информацию для команды прямо в окне bash.

Краткая справка по команде Git

git [command] -help

Открывает онлайн информацию о команде в вашем браузере.

Git команда Manual Pages

git help [command]
git [command] --help
Джастин
источник
В будущем ожидается, что вы будете приводить и указывать соответствующую информацию, предоставляя ссылку. Вы также должны научиться правильно форматировать свои ответы.
Ramhound
Похоже, это только для команд Git. Они не обязательно совпадают с их не-мерзавцами. Например git grep, не поддерживает эту -Rопцию. git-scm.com/docs/git#_git_commands
Lorem Ipsum
0

Если кто-то пытается заставить manработать Windows и использует Msys2 , вот что я нашел:

Я подошел очень близко, воспользовавшись ответом выше, в котором говорится, что нужно установить groff(доступно через pacman), а затем использовать здесь скрипт , в основе которого лежит вызов groff -Tascii -mandoc -P-c.

Но я не мог заставить его работать на моих страницах man (найденных в /usr/share/man), пока я сначала не распаковал файлы gz !

Это не было приемлемым решением, поэтому я посмотрел дальше и обнаружил, что, запустив

pacman -Ss -man

что есть три пакета (в настоящее время), которые имеют префикс "man-". ( смотрите их здесь ).

Я попробовал тот, который называется man-db , он работает, и теперь у меня есть возможность бегать manобычным образом.

TT--
источник
Сегодня я могу просто запустить pacman -S manи установить вырученные средства, как и ожидалось
Тоби
0

Добавьте его в конец .bashrc

C:\Users\<Username>\.bashrc

function man() {
    VAR1="http://man.he.net/?topic="
    VAR2=$1
    VAR3="&section=all"
    VAR4="$VAR1$VAR2$VAR3"
    curl -v --silent "$VAR4" 2>&1 | sed -n "/<PRE>/,/<\/PRE>/p"
}

Добавьте его в конец .bash_profile

C:\Users\<Username>\.bash_profile

# Read .bashrc
source ~/.bashrc

Перезапустите терминал.

man findвернет страницы справочника для find.


Вот версия для действительно короткого ответа:

function man-short() {
    $1 --help
}
dfghjiuytr4567890
источник