Я использую Git Bash на Windows 7. Это дает мне возможность использовать большинство команд, которые я использовал в оболочке bash на моей машине с Ubuntu. Но команды man и info не работают. Есть ли способ заставить эти (невероятные) команды документирования работать над оболочкой Git bash в Windows?
7 ответов
Это может быть немного излишним, но вы можете скачать Cygwin, который будет включать в себя bash
, man
и читателей информации, таких как pinfo
.
Установщик cygwin позволит вам настроить вашу установку на довольно маленькое подмножество cygwin.
Вы можете заставить man-страницы работать в среде git bash, но, вероятно, удобнее рассмотреть другие альтернативы, которые требуют меньше работы.
У меня также мало представителей в SuperUser, поэтому мне грустно говорить, что я не могу дать в ответ все ссылки, которые мне нужны. Я повторно опубликовал свой ответ на Tumblr.
В итоге:
- Git's bash является частью проекта msysGit.
- msysGit - это форк проекта MinGW и MSYS
- Вам понадобится либо msysGit, либо MinGW, чтобы установить MinGW-get
- Вам понадобится MinGW-get для установки Groff
- Вам понадобится Groff для запуска этих скриптов, чтобы дать вам команду man из оболочки msys bash
- С этими сценариями вы можете читать страницы руководства. Вам просто нужно загрузить их по пути, указанному вами в скриптах.
Удачи.
В дополнение к ответу Сатья, вы также можете сделать это в bash для Windows:
curl -v --silent "http://man.he.net/?topic=<command_name>§ion=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 */=>@|) 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<newline>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>
Я собрал воедино некоторые другие ответы, чтобы получить команду 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-объекты, такие как <
вместо <
, что делает некоторые строки использования некрасивыми.
Вы можете использовать онлайн-документацию.
Справочные страницы Linux онлайн и информационные страницы GNU
Если кто-то еще пытается заставить man
работать на Windows и использует Msys2, вот что я нашел:
Я очень близко подошел к ответу выше, в котором говорится, что нужно установить groff
(доступный через pacman), а затем использовать скрипт, в основе которого лежит вызов groff -Tascii -mandoc -P-c
.
Но я не смог заставить его работать на моих страницах man (находится в /usr/share/man
), если сначала я не распаковал файлы gz !
Это не было приемлемым решением, поэтому я посмотрел дальше и обнаружил, что, запустив
pacman -Ss -man
что есть три пакета (в настоящее время), которые имеют префикс "man-". (смотрите их здесь).
Я попробовал тот, который называется man-db, он работает, и теперь у меня есть возможность управлять man
обычным образом.