📄 coreutils.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=gb2312" />
<title>
6.15. Coreutils-5.2.1
</title>
<link rel="stylesheet" href="../stylesheets/lfs.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1" />
<link rel="stylesheet" href="../stylesheets/lfs-print.css" type="text/css" media="print" />
</head>
<body id="lfs" class="6.1">
<div class="navheader">
<div class="headertitles">
<h4>
Linux From Scratch - Version 6.1
</h4>
<h3>
Chapter 6. 安装系统基础软件
</h3>
</div>
<ul class="headerlinks">
<li class="prev">
<a accesskey="p" href="gcc.html" title="GCC-3.4.3">后退</a>
<p>
GCC-3.4.3
</p>
</li>
<li class="next">
<a accesskey="n" href="zlib.html" title="Zlib-1.2.2">前进</a>
<p>
Zlib-1.2.2
</p>
</li>
<li class="up">
<a accesskey="u" href="chapter06.html" title="Chapter 6. 安装系统基础软件">上一级</a>.
</li>
<li class="home">
<a accesskey="h" href="../index.html" title="Linux From Scratch - Version 6.1">回首页</a>
</li>
</ul>
</div>
<div class="wrap" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<h1 class="sect1">
6.15. Coreutils-5.2.1
</h1>
</div>
<div class="package" lang="zh_cn" xml:lang="zh_cn">
<p>Coreutils 软件包包括一整套基本的 shell 工具。</p>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">预计编译时间:</span></strong> <span class="seg">0.9 SBU</span>
</div>
<div class="seg">
<strong><span class="segtitle">所需磁盘空间:</span></strong> <span class="seg">52.8 MB</span>
</div>
</div>
</div>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">安装依赖于:</span></strong> <span class="seg">Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed</span>
</div>
</div>
</div>
</div>
<div class="installation" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<h2 class="sect2">
6.15.1. 安装 Coreutils
</h2>
</div>
<p>通常 <span><strong class="command">uname</strong></span> 程序总是有点毛病的,比如 <em class="parameter"><tt>-p</tt></em> 选项总是得到 "unknown" 的结果。下面的补丁对 Intel 平台的机器能修正这个问题:
</p>
<pre class="userinput"><kbd class="command">patch -Np1 -i ../coreutils-5.2.1-uname-2.patch</kbd></pre>
<p>阻止 Coreutils 安装后面将由别的包安装的程序:
</p>
<pre class="userinput"><kbd class="command">patch -Np1 -i \
../coreutils-5.2.1-suppress_uptime_kill_su-1.patch</kbd></pre>
<p>为编译 Coreutils 做准备:
</p>
<pre class="userinput"><kbd class="command">DEFAULT_POSIX2_VERSION=199209 ./configure --prefix=/usr</kbd></pre>
<p>编译软件包:</p>
<pre class="userinput"><kbd class="command">make</kbd></pre>
<p> Coreutils 软件包的测试套件对系统进行了某些假设,比如要求有非root用户和组,但是我们目前的系统中尚不存在。如果你不想运行测试套件,就直接跳过下面将要进行的测试,直接从“安装软件包”那里继续。
</p>
<p>下面的命令为我们做测试前的准备,创建两个 dummy 组和一个 dummy 用户:
</p>
<pre class="userinput"><kbd class="command">echo "dummy1:x:1000:" >> /etc/group
echo "dummy2:x:1001:dummy" >> /etc/group
echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd</kbd></pre>
<p>现在已经准备好可以运行测试套件了,首先运行那些需要以<span class="emphasis"><em>root</em></span>运行的测试:
</p>
<pre class="userinput"><kbd class="command">make NON_ROOT_USERNAME=dummy check-root</kbd></pre>
<p>然后以 <span class="emphasis"><em>dummy</em></span> 用户运行剩余的测试:
</p>
<pre class="userinput"><kbd class="command">src/su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"</kbd></pre>
<p>测试结束后,删除 dummy 组和用户:
</p>
<pre class="userinput"><kbd class="command">sed -i '/dummy/d' /etc/passwd /etc/group</kbd></pre>
<p>
安装软件包:
</p>
<pre class="userinput"><kbd class="command">make install</kbd></pre>
<p>把一些程序移动到合适的位置:</p>
<pre class="userinput"><kbd class="command">mv /usr/bin/{[,basename,cat,chgrp,chmod,chown,cp,dd,df} /bin
mv /usr/bin/{date,echo,false,head,hostname,install,ln} /bin
mv /usr/bin/{ls,mkdir,mknod,mv,pwd,rm,rmdir,sync} /bin
mv /usr/bin/{sleep,stty,test,touch,true,uname} /bin
mv /usr/bin/chroot /usr/sbin</kbd></pre>
<p>最后,创建一些必要的符号链接以符合FHS标准:
</p>
<pre class="userinput"><kbd class="command">ln -s ../../bin/install /usr/bin</kbd></pre>
</div>
<div class="content" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<a id="contents-coreutils" name="contents-coreutils"></a>
<h2 class="sect2">
6.15.2. Contents of Coreutils
</h2>
</div>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">安装的程序:</span></strong> <span class="seg">basename, cat, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head, hostid, hostname, id, install, join, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep, sort, split, stat, stty, sum, sync, tac, tail, tee, test, touch, tr, true, tsort, tty, uname, unexpand, uniq, unlink, users, vdir, wc, who, whoami, yes</span>
</div>
</div>
</div>
<div class="variablelist">
<h3>
<a id="id3318468" name="id3318468"></a>简要描述</h3>
<table border="0">
<col align="left" valign="top" />
<tbody>
<tr>
<td>
<a id="basename" name="basename"></a><span class="term"><span><strong class="command">basename</strong></span></span>
</td>
<td>
<p>去掉文件名中的目录和后缀。</p>
</td>
</tr>
<tr>
<td>
<a id="cat" name="cat"></a><span class="term"><span><strong class="command">cat</strong></span></span>
</td>
<td>
<p>把文本文件的内容发送到标准输出。</p>
</td>
</tr>
<tr>
<td>
<a id="chgrp" name="chgrp"></a><span class="term"><span><strong class="command">chgrp</strong></span></span>
</td>
<td>
<p>改变文件和目录属组,属组可以使用组名或者组识别号表示。</p>
</td>
</tr>
<tr>
<td>
<a id="chmod" name="chmod"></a><span class="term"><span><strong class="command">chmod</strong></span></span>
</td>
<td>
<p>改变文件和目录的权限,权限可以使用符号或者八进制两种表达方式。</p>
</td>
</tr>
<tr>
<td>
<a id="chown" name="chown"></a><span class="term"><span><strong class="command">chown</strong></span></span>
</td>
<td>
<p>改变文件和目录的所有权(包括用户和/或组)。</p>
</td>
</tr>
<tr>
<td>
<a id="chroot" name="chroot"></a><span class="term"><span><strong class="command">chroot</strong></span></span>
</td>
<td>
<p>使用特定的目录作为执行某个命令或者交互 shell 的根目录。在多数系统中,只有 root 用户能运行这个命令。</p>
</td>
</tr>
<tr>
<td>
<a id="cksum" name="cksum"></a><span class="term"><span><strong class="command">cksum</strong></span></span>
</td>
<td>
<p>输出指定的每个文件的CRC(循环冗余校验)和字节数。</p>
</td>
</tr>
<tr>
<td>
<a id="comm" name="comm"></a><span class="term"><span><strong class="command">comm</strong></span></span>
</td>
<td>
<p>一行一行对两个已经排序的文件进行比较。</p>
</td>
</tr>
<tr>
<td>
<a id="cp" name="cp"></a><span class="term"><span><strong class="command">cp</strong></span></span>
</td>
<td>
<p>复制文件。</p>
</td>
</tr>
<tr>
<td>
<a id="csplit" name="csplit"></a><span class="term"><span><strong class="command">csplit</strong></span></span>
</td>
<td>
<p>
把一个文件按照给定的模式或者行号分成几块。</p>
</td>
</tr>
<tr>
<td>
<a id="cut" name="cut"></a><span class="term"><span><strong class="command">cut</strong></span></span>
</td>
<td>
<p>从指定的文件中提取特定的列送到标准输出。</p>
</td>
</tr>
<tr>
<td>
<a id="date" name="date"></a><span class="term"><span><strong class="command">date</strong></span></span>
</td>
<td>
<p>以特定的格式显示当前时间,或者设置系统日期。</p>
</td>
</tr>
<tr>
<td>
<a id="dd" name="dd"></a><span class="term"><span><strong class="command">dd</strong></span></span>
</td>
<td>
<p>以可选块长度复制文件,默认情况下从标准输入设备输出到标准输出设备。复制过程中,还可以对文件进行一些转换。</p>
</td>
</tr>
<tr>
<td>
<a id="df" name="df"></a><span class="term"><span><strong class="command">df</strong></span></span>
</td>
<td>
<p>显示参数中的文件所在分区磁盘空间的使用情况,如果没有给出文件参数就显示所有已经安装的文件系统的可用空间数量。</p>
</td>
</tr>
<tr>
<td>
<a id="dir" name="dir"></a><span class="term"><span><strong class="command">dir</strong></span></span>
</td>
<td>
<p>
同<span><strong class="command">ls</strong></span></p>
</td>
</tr>
<tr>
<td>
<a id="dircolors" name="dircolors"></a><span class="term"><span><strong class="command">dircolors</strong></span></span>
</td>
<td>
<p>输出设置 <tt class="envar">LS_COLOR</tt> 环境变量的命令。 <tt class="envar">LS_COLOR</tt> 环境变量用来改变 <span><strong class="command">ls</strong></span> 及相关工具默认的颜色组合。
</p>
</td>
</tr>
<tr>
<td>
<a id="dirname" name="dirname"></a><span class="term"><span><strong class="command">dirname</strong></span></span>
</td>
<td>
<p>显示从文件名去掉不是目录的后缀后的内容。</p>
</td>
</tr>
<tr>
<td>
<a id="du" name="du"></a><span class="term"><span><strong class="command">du</strong></span></span>
</td>
<td>
<p>显示参数使用的磁盘空间的数量,对于参数为目录还会列出每个子目录磁盘空间占用情况。</p>
</td>
</tr>
<tr>
<td>
<a id="echo" name="echo"></a><span class="term"><span><strong class="command">echo</strong></span></span>
</td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -