📄 ch09.htm
字号:
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<SCRIPT>
<!--
function displayWindow(url, width, height) {
var Win = window.open(url,"displayWindow",'width=' + width +
',height=' + height + ',resizable=1,scrollbars=yes');
}
//-->
</SCRIPT>
</HEAD>
-->
<H1></H1>
<UL>
<LI><A HREF="#Heading1">- 9 -</A>
<UL>
<LI><A HREF="#Heading2">GNU Project Utilities</A>
<UL>
<LI><A HREF="#Heading3">GNU Software Currently Available</A>
<UL>
<LI><A HREF="#Heading4">autoconf</A>
<LI><A HREF="#Heading5">bash</A>
<LI><A HREF="#Heading6">bc</A>
<LI><A HREF="#Heading7">BFD</A>
<LI><A HREF="#Heading8">binutils</A>
<LI><A HREF="#Heading9">bison</A>
<LI><A HREF="#Heading10">GNU C Compiler</A>
<LI><A HREF="#Heading11">GNU C Library</A>
<LI><A HREF="#Heading12">GNU C++ Library</A>
<LI><A HREF="#Heading13">calc</A>
<LI><A HREF="#Heading14">GNU Chess</A>
<LI><A HREF="#Heading15">CLISP</A>
<LI><A HREF="#Heading16">GNU Common Lisp</A>
<LI><A HREF="#Heading17">cpio</A>
<LI><A HREF="#Heading18">CVS</A>
<LI><A HREF="#Heading19">dc</A>
<LI><A HREF="#Heading20">DejaGnu</A>
<LI><A HREF="#Heading21">Diffutils</A>
<LI><A HREF="#Heading22">ecc</A>
<LI><A HREF="#Heading23">ed</A>
<LI><A HREF="#Heading24">elib</A>
<LI><A HREF="#Heading25">GNU Emacs</A>
<LI><A HREF="#Heading26">GNU Emacs 19</A>
<LI><A HREF="#Heading27">es</A>
<LI><A HREF="#Heading28">fileutils</A>
<LI><A HREF="#Heading29">find</A>
<LI><A HREF="#Heading30">finger</A>
<LI><A HREF="#Heading31">flex</A>
<LI><A HREF="#Heading32">fontutils</A>
<LI><A HREF="#Heading33">gas</A>
<LI><A HREF="#Heading34">gawk</A>
<LI><A HREF="#Heading35">gdb</A>
<LI><A HREF="#Heading36">gdbm</A>
<LI><A HREF="#Heading37">Ghostscript</A>
<LI><A HREF="#Heading38">Ghostview</A>
<LI><A HREF="#Heading39">gmp</A>
<LI><A HREF="#Heading40">GNats</A>
<LI><A HREF="#Heading41">gnuplot</A>
<LI><A HREF="#Heading42">gperf</A>
<LI><A HREF="#Heading43">GNU Graphics</A>
<LI><A HREF="#Heading44">grep</A>
<LI><A HREF="#Heading45">groff</A>
<LI><A HREF="#Heading46">gzip</A>
<LI><A HREF="#Heading47">hp2xx</A>
<LI><A HREF="#Heading48">indent</A>
<LI><A HREF="#Heading49">ispell</A>
<LI><A HREF="#Heading50">m4</A>
<LI><A HREF="#Heading51">make</A>
<LI><A HREF="#Heading52">mtools</A>
<LI><A HREF="#Heading53">MULE</A>
<LI><A HREF="#Heading54">NetFax</A>
<LI><A HREF="#Heading55">NetHack</A>
<LI><A HREF="#Heading56">NIH Class Library</A>
<LI><A HREF="#Heading57">nvi</A>
<LI><A HREF="#Heading58">octave</A>
<LI><A HREF="#Heading59">oleo</A>
<LI><A HREF="#Heading60">p2c</A>
<LI><A HREF="#Heading61">patch</A>
<LI><A HREF="#Heading62">PCL</A>
<LI><A HREF="#Heading63">perl</A>
<LI><A HREF="#Heading64">ptx</A>
<LI><A HREF="#Heading65">rc</A>
<LI><A HREF="#Heading66">RCS</A>
<LI><A HREF="#Heading67">recode</A>
<LI><A HREF="#Heading68">regex</A>
<LI><A HREF="#Heading69">Scheme</A>
<LI><A HREF="#Heading70">screen</A>
<LI><A HREF="#Heading71">sed</A>
<LI><A HREF="#Heading72">shellutils</A>
<LI><A HREF="#Heading73">GNU Shogi</A>
<LI><A HREF="#Heading74">Smalltalk</A>
<LI><A HREF="#Heading75">superopt</A>
<LI><A HREF="#Heading76">tar</A>
<LI><A HREF="#Heading77">termcap Library</A>
<LI><A HREF="#Heading78">TeX</A>
<LI><A HREF="#Heading79">texinfo</A>
<LI><A HREF="#Heading80">textutils</A>
<LI><A HREF="#Heading81">Tile Forth</A>
<LI><A HREF="#Heading82">time</A>
<LI><A HREF="#Heading83">tput</A>
<LI><A HREF="#Heading84">UUCP</A>
<LI><A HREF="#Heading85">uuencode/uudecode</A>
<LI><A HREF="#Heading86">wdiff</A>
</UL>
<LI><A HREF="#Heading87">Summary</A>
</UL>
</UL>
</UL>
<P>
<HR SIZE="4">
<H2 ALIGN="CENTER"><A NAME="Heading1<FONT COLOR="#000077">- 9 -</FONT></H2>
<H2 ALIGN="CENTER"><A NAME="Heading2<FONT COLOR="#000077">GNU Project Utilities</FONT></H2>
<P><I>by Peter MacKinnon</I></P>
<P>IN THIS CHAPTER</P>
<UL>
<LI>GNU Software Currently Available
</UL>
<P>The GNU project, administered by the Free Software Foundation (FSF), seeks to
provide software (in the form of source code) that is freely available to anyone
who wants to use it. The project has a lengthy manifesto that explains the motivation
behind this libertarian undertaking (for which we should all be thankful, since GNU
has some of the best software around!). One of the key ideas within this manifesto
is that high-quality software is an intrinsic human right, just as the air that we
breathe is. Although GNU software is freely distributed, it is not public domain
and is protected by the GNU General Public License. The main purpose behind the license
is to keep GNU software free.</P>
<P>For more information on the FSF, you can write to them at <BR>
<BR>
<I>Free Software Foundation</I></P>
<P><I>675 Massachusetts Avenue<BR>
<BR>
Cambridge, MA 02139<BR>
</I><BR>
You can also request copies by sending e-mail to <TT>gnu@prep.ai.mit.edu</TT>.</P>
<P>The distribution of Linux on this book's CD-ROM comes with virtually all of the
GNU programs that are currently available. They are archived using the <TT>tar</TT>
program and compressed using the GNU <TT>gzip</TT> utility. <TT>gzip</TT> tends to
compress better than the standard UNIX compression utility, <TT>compress</TT>. Files
compressed with <TT>gzip</TT> end with a <TT>.gz</TT> suffix, whereas <TT>compress</TT>
files end in <TT>.Z</TT>. However, <TT>gzip</TT> can uncompress <TT>compress</TT>
files as well as its own.</P>
<P>Each of these compressed files has a version number included in its filename so
that you can determine what version is most current. Once you decompress and un-<TT>tar</TT>
the GNU file, the program can be compiled and installed on your system. Most of the
files come with their own makefile. Most of the programs are refinements of standard
Linux utilities such as <TT>make</TT> and <TT>bc</TT>.
<H3 ALIGN="CENTER"><A NAME="Heading3<FONT COLOR="#000077">GNU Software Currently
Available</FONT></H3>
<P>So much software, either developed by or made available through the Free Software
Foundation (which develops the GNU products), is available that each program cannot
be described in detail. The following sections have brief descriptions of the GNU
utilities and programs that are included with this distribution of Linux. They are
summaries based on the descriptions of the programs as supplied by GNU.
<H4 ALIGN="CENTER"><A NAME="Heading4<FONT COLOR="#000077">autoconf</FONT></H4>
<P><TT>autoconf</TT> generates shell scripts that can automatically configure source
code packages (such as those for GNU). <TT>autoconf</TT> creates a script for a software
package from a file which lists the operating system features that the package can
utilize. <TT>autoconf</TT> requires GNU <TT>m4</TT> to generate the required macro
calls for its operation.
<H4 ALIGN="CENTER"><A NAME="Heading5<FONT COLOR="#000077">bash</FONT></H4>
<P>The shell called <TT>bash</TT> is an enhancement of the Bourne shell (thus the
name, which stands for Bourne Again SHell). It offers many of the extensions found
in <TT>csh</TT> and <TT>ksh</TT>. The <TT>bash</TT> shell also has job control, <TT>csh</TT>-style
command history, and command-line editing with <TT>Emacs</TT> and <TT>vi</TT> modes
built in. See Chapter 10, "<TT>bash</TT>."
<H4 ALIGN="CENTER"><A NAME="Heading6<FONT COLOR="#000077">bc</FONT></H4>
<P><TT>bc</TT> is an algebraic language that can be used interactively from a shell
command line, or with input files. GNU <TT>bc</TT> has a C-like syntax with several
extensions including multicharacter variable names, an <TT>else</TT> statement, and
full Boolean expressions. Unlike standard <TT>bc</TT>, GNU <TT>bc</TT> does not require
the separate <TT>dc</TT> program, which is another GNU calculator utility.
<H4 ALIGN="CENTER"><A NAME="Heading7<FONT COLOR="#000077">BFD</FONT></H4>
<P>The BFD library allows a program that operates on object files (such as <TT>ld</TT>
or <TT>gdb</TT>) to support many different formats efficiently. BFD provides a portable
interface, so that only BFD needs to know the details of a particular format. One
result is that all programs using BFD will support formats such as <TT>a.out</TT>
(default C executable) and <TT>COFF</TT>.
<H4 ALIGN="CENTER"><A NAME="Heading8<FONT COLOR="#000077">binutils</FONT></H4>
<P><TT>binutils</TT> includes a collection of development programs, including <TT>ar</TT>,
<TT>as</TT>,<TT> c++filt</TT>, <TT>gasp</TT>,<TT> gprof</TT>, <TT>encaps</TT>,<TT>
ld</TT>, <TT>nm</TT>,<TT> objcopy</TT>, <TT>objdump</TT>, <TT>ranlib</TT>, <TT>strings</TT>,
<TT>strings-gnu</TT>, <TT>strip</TT>, <TT>ld86</TT>, and <TT>as86</TT>.</P>
<P><TT>binutils</TT> Version 2.6.0.14 is written to use the BFD library. The GNU
linker <TT>ld</TT> emits source-line numbered error messages for multiply-defined
symbols and undefined references. The <TT>objdump</TT> program can display data such
as symbols from any file format understood by BFD.
<H4 ALIGN="CENTER"><A NAME="Heading9<FONT COLOR="#000077">bison</FONT></H4>
<P><TT>bison</TT> is an upwardly compatible replacement for the parser generator
<TT>yacc</TT>. <TT>bison</TT> takes a description of tokens in the form of a grammar
and generates a parser in the form of a C program.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -