我在 Windows 7 上使用 Git bash。它为我提供了一种方法来使用我以前在 Ubuntu 机器上的 bash shell 上使用的大多数命令。但是 man 和 info 命令不起作用。有没有办法让这些(令人难以置信的)文档命令在 Windows 上的 Git bash shell 上运行?
答案1
您可以使用在线文档。
答案2
我把其他一些答案拼凑在一起,得到一个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 3 printf
系统调用。
弱点:源代码 (man.he.net) 并非完全是 RESTful API,即使没有找到任何内容,它也会返回 200,因此很难给出准确的错误消息。相反,无论问题是什么,它只会打印“Got nothing”。这可能可以改进。此外,生成的页面包含 html 实体,例如,<
而不是<
,这会使一些使用字符串变得丑陋。
答案3
你能让手册页在 Git 的 bash 环境中运行,但考虑其他工作量较少的替代方案可能更方便。
我在 SuperUser 上也没有多少声誉,所以很遗憾,我无法在回复中提供我需要的所有链接。我重新发布我的回复在 Tumblr 上。
总之:
- Git 的 bash 是 msysGit 项目的一部分。
- msysGit 是 MinGW 和 MSYS 项目的一个分支
- 你需要 msysGit 或 MinGW 来安装 MinGW-get
- 你需要 MinGW-get 来安装 Groff
- 你需要 Groff 来运行这些脚本在 msys bash shell 中为你提供 man 命令
- 有了这些脚本,您就可以阅读手册页了。您只需将它们下载到您在脚本中指定的路径即可。
祝你好运。
答案4
此外Sathya 的回答,你也可以在 Windows 的 bash 中执行以下操作:
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).
作者:Richard M. Stallman 和 David MacKenzie 撰写。
报告错误 将错误报告给[电子邮件保护] GNU coreutils 主页:<http://www.gnu.org/software/coreutils/>;使用 GNU 软件的一般帮助:<http://www.gnu.org/gethelp/>; 将 ls 翻译错误报告给 <http://translationproject.org/team/>;
版权所有版权所有 (C) 2011 自由软件基金会,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 年 9 月
<STRONG><A HREF="/man1/LS">LS(1)</A></STRONG></PRE>