2009年8月23日星期日

GNUWin32

这是一个致力于把 Linux 下面一些常用的程序及其库 port 到 Win32 环境下面的项目,原来在 sourceforge 上只能每个程序分别下载,想过把瘾很难,一般只下载最需要的程序,比如 wget,现在有了一个自动下载的程序那是爽快多了,其实主要的方法还是 wget。

这个项目也应验了一个使用 C/C++ 编写程序面临的最大问题,那就是 dll hell,在 Windows 里面这个问题显得格外的突出,因为到现在为止,尚未找到有类似 Linux 下面的 deb 或者 rpm 的包管理系统。因此即便对现在的项目,我们下载了那些程序也不能保证其依赖关系没有冲突。下面我们选择这些项目里面比较有意思的学习一下,其实从另外一个侧面了解 Linux 下面那些优秀的命令行工具如何 work 的。

这个项目的绝大部分程序应该是使用 mingw32 这种原生的 C/C++ 编译器获得的,比起在虚拟机上运行的程序,性能自然是不必多说了。为了更好地了解这些程序,下面我们将它们进行分类。

格式转换
  • a2ps 将文本等格式转换成 ps,或者将 ps 输出到打印机。似乎不很好玩...
  • ascii_chart 将数据转换成为柱状图,支持多种图片格式。太简单了,也许生成 CGI 图片还可以...
  • barcode 将字符串用条形码编码,输出是一个 ps 文件,这个挺不错的,支持多种编码方式,记得原来上机用的那个卡就是用很简单的条形码做的,这个要用了就能做出别人的条形码了 orz
  • bm2font 估计是很古老的将图片转换成为 TeX font 的程序了...
  • bmp2png 言简意赅...
  • deroff 将 roff 文件格式中的一些关键字去掉
  • dvidj 打印 dvi 文件
  • enscript 文本转换为 ps
  • fax2png 这也很明显了... 其实是 tiff 和 png 的转换
  • gd 不知道是做啥的 -,-bbb
  • grap 将某种格式的 graph 描述转换成 LaTeX 的 pic 格式。
  • gri 做图程序,也是写个程序画图...
  • hp2xx 是把 hpgl 转换成矢量图形的程序。
  • imgtops2 将图片转换成为 ps 文件。
  • imgvtopgm 将 pilot image viewer 格式和 pgm 互相转换,提供相关文件信息。
  • jbigkit 提供 jbg 到 pbm 的转换。
  • jpeg2ps 提供 jpg 到 ps 的转换。
  • nenscript 将 ASCII 转换成为 ps。
  • netpbm 处理 pbm 格式的工具。
  • pbmadd 还是 pbm 的工具。
  • pdflib-lite 提供的是图片转换到 pdf 的功能以及多个 pdf 合并。
  • piechart 画饼图。
  • plotutils 一些作图的基本工具,如样条、字符等。
  • pngutils 一些跟 png 相关的小工具。
  • polyglotman 将 man 转换成其它格式。
  • psmark 在 ps 文件边上竖写一行字。
  • psutils 提供一些 ps 处理的常用命令。
  • scribe2latex,将 scribe 格式转换成 latex 代码。
  • sgitools 提供了一堆图形转换的工具。
  • t1lib、t1utils 提供处理 type 1 字体的程序。
  • ttf2pt1 提供将 ttf 字体转换成 type 1 的功能。
  • unrtf 将 RTF 格式转换成为其他格式。
  • urt 提供 ULE 文件格式的转换、操纵能力。
  • wv 提供将 doc 文件转换成为其他类型(如 PDF )的能力。
  • xpdf 提供了处理 PDF 文件的一般功能,但是可惜没有 Linux 下面的那个浏览器。
  • xpm2wico 将 xpm 转换成为 ico 文件。

压缩与解压缩
arc, arj, bsdtar, gzip, lha, mscompress, shareutil(编码二进制文件以便通过 email 发送), tar(打包), unrar(解压 rar), unzip(解压 .zip 文件), zimg, zip
compface 似乎针对某种图像的,没玩过...

获取信息
  • attr 获得 NTFS 文件系统的信息,似乎没啥用 -,-bb
  • bc 原来在这里也介绍过,是个简易计算器,嗯,不喜欢用鼠标点 Windows 的 calc 的同志可以考虑。
  • calc 语法和 C 接近的计算器,似乎比 bc 友善和强大。
  • cpuid 获得 cpu 信息,看起来比一般的测试 cpu 信息的程序都小很多...
  • dmidecode 用来解码 bios 信息的工具。
  • freetype 处理字体的工具,不过似乎在 Windows 下面不好用?
  • gcal 获得日历。
  • hodie 打印 latin 格式的日期。
  • id-utils 建立文件的 id 数据库?不知道具体怎么用...
  • jwhois 是一个 whois 的 client。
  • texinfo 是建立 info 帮助系统和浏览的工具。
  • units 提供单位转换功能。
  • x86info 提供 x86 系统信息,如 CPU 等。


编程
  • autoconf, automake 似乎就是 shell 脚本
  • awka,把 awk 程序翻译成 C 程序,这个比较好玩,简单的正则表达式可以容易的写成 C 程序了
  • bison 是兼容 yacc 的 parser,搞编译器的人应该都知道
  • btyacc 另外一种 yacc
  • cpp 和 cppi 都是 C 的预处理程序相关。
  • cproto 产生 C 的函数原型,估计可以用来自动生成 .h?
  • diffutils 一个是 diff 一个是 patch。最常用的看修改过什么的工具了...
  • fdlibm 是一个 C 的数学库。
  • flex 是个词法分析器。
  • gdbm 是 GNU 的数据库管理
  • gettext 就是著名的多语言支持的库以及支撑程序了。
  • giflib/libungif 是一个用来处理 GIF 图片格式的 C 语言库,包括一些 GIF 的小工具,比如裁剪、提供相关信息,转换文件格式等等。
  • gperf,嗯,提供程序执行的性能的程序,优化程序的时候使用。
  • groff 写 man page 的东西。
  • gsl 就是 GNU 科学计算库。
  • hello 似乎是写程序的示例程序,虽然说很简单,但是可以被初学者用来学者维护代码之类的使用。
  • help2man,帮助建立一个简单的 man page,从程序的 --help 输出。
  • hex2bin 和 hextools 提供将二进制文件转换到 hex 格式,然后逆向转换功能,这个跟 ultraedit 的二进制文件编辑功能类似,只是用两步进行的。
  • indent 将 C 程序代码进行缩进。
  • jpeg 是 libjpeg 一个 C 的 jpeg 库。
  • libart 是一个矢量作图的库,似乎是 GNOME 里面的一个项目
  • libconfig 提供一个统一的存储配置的方案。
  • libgw32c... 不知道干啥的。
  • libiconv、libintl 是 gettext 的一部分。
  • libopennet 处理 URL 的库。
  • libpaper 打印使用的纸张配置。
  • libpng 处理 png 文件的库。
  • libtool 提供 libtool 工具。
  • libutf 提供 C 语言的 utf8 支持。
  • libwmf 提供对 wmf 格式的支持。
  • libxmi 提供渲染 2D 对象的 C/C++ 接口。
  • libxml2 是一个 xml 的 parser。
  • libxslt 是一个 xslt 的库,用于对 xml 进行转换。
  • m4 是宏语言 m4。
  • make 提供了 GNU make。
  • openssl 提供了 openssl 命令及其相关的库。
  • patch 提供了给程序打补丁的功能。
  • pdcurses 是一个 terminal 的库。
  • popt 提供解析命令行参数的 C 库。
  • re2c 将 RE 转换成 C 代码。
  • readline 这是一个标准的用来和用户交互的库,有历史记录等功能。
  • regex、rx、rxspencer 就是正则表达式。
  • sunrpc 产生实现 RPC 的 C 代码的程序。
  • termcap 是编写 terminal 程序的库。
  • tiff 处理 tiff 格式的库和相关工具。
  • troff 和 groff 类似。
  • xpm 提供 xpm 处理的 C 库。
  • zlib 压缩用的库。

shell 相关
  • chsuf 用于批量修改文件后缀
  • coreutils 这里也介绍了,最实用的系列程序
  • cpio 传统程序,没用过 -,-b
  • crypt 用于产生那个 shadow 里面的 hash 结果。
  • cygutils 包括几个 cygwin 里面的小工具,如 dos 和 unix 格式转换,打印 ascii 字符表等。
  • diction 似乎是做某些输入规则的检查。
  • doschk 检查文件名的 dos 兼容性
  • ed 和 edll 两个文件编辑器,功能... 如果你喜欢 Unix 的话...
  • file 检测文件类型。
  • filetype 似乎还不如 file。
  • findutils 提供 locate、find 和 xargs。
  • gawk 提供 awk。
  • gengetopt 为 C 程序生成一个命令行参数的 parser,使用的 GNU libc 的那个 getopt 系列的实现的。
  • grep 这个就不用说了,著名程序之一。
  • gsar,和 grep 类似,但是是将所有文件当作二进制来处理的,允许进行替换。
  • less 是一个 pager。
  • libarchives 提供 bsd 的 tar 和 cpio 命令。
  • mawk、nawk 提供了 awk 的一个变体。
  • minised 提供了一个 sed 的简化版。
  • mktemp 创建临时文件夹。
  • ntfsprog 一些 NTFS 的工具。
  • pcregrep 提供了一个和 perl 的 RE 一样的 grep。
  • rpl 使用 RE 进行多文件的替换。
  • sed 就是那个著名的流编辑器、
  • sgrep 还是 grep。
  • src-highlite 代码高亮,与 page 一起用。
  • tre 是一个类似 grep 的东西,提供的是近似匹配。
  • tree 获得树状目录结构。
  • util-linux 提供一些常用的 Linux 命令,如 whereis 等。
  • wget 命令行下载功能。
  • which 提供 which 命令。

游戏
chess 国际象棋的计算引擎。
crafty 另一个国际象棋引擎。

8 条评论:

匿名 说...

What's up to all, for the reason that I am truly eager of reading this web site's post to
bе updated rеgularly. It consists
οf nice materiаl.
Also visit my weblog - http://www.prweb.com/releases/silkn/sensepilreview/prweb10193901.htm

匿名 说...

Annoуеd ωith those unsightly stretch markѕ?



mу webpаge; buy trilastin

匿名 说...

Annoуed with those unsightly stгetch
marks?

My page :: buy trilastin
My site :: jiyon.com

匿名 说...

No adԁitional timе eхpendеd on thе gym, no back рain maіnlу becаuѕe оf to many cгunchеs oг other ѕtomaсh workout
routіnes anԁ no far a lot more sweatу worκoutѕ
simρly tо ensuгe that your abs seem excellent.


Heгe is mу homepagе; http://Www.Prnewswire.com/news-releases/flex-belt-review-and-Latest-coupon-code-savings-now-featured-at-awesomealldaycom-190317331.html

匿名 说...

Ideal after it ωаs introduced in the global mагketplace,
cigarеtte users аrounԁ the worlԁ loсаted a thіng new to гave about.



my web blog ... Www.Prnewswire.Com

匿名 说...

Whаt's up, of course this piece of writing is in fact good and I have learned lot of things from it about blogging. thanks.

my site mouse click the next article

匿名 说...

Before going directly towards the jewelry shop and returning the engagement ring, it's best to have an idea or background towards the current value with the ring inside market. Metal clay or art clay as it really is also known as can be fired in the variety of ways including in a very kiln, gas stove or perhaps a hand held gas torch. Normally associated with all the Goths in Europe with Harley bikers in the US, it absolutely was firstly and quite a few famously worn with the phantom of the comic strip fame.

Feel free to visit my site; http://www.gorillabaseball.com/

匿名 说...

You is going to be witness to many people diverse looks in
design, but the solid factors that last are those that famous makers use continually.
A  Watch makers offer a lot of choices in the men's and women's watches, that
the watch you dream of can be on the wrist inside
a heartbeat. Another mark of quality on this chronometers is inside the few
technicians that make them.

Here is my weblog; projecteande.com