diff options
Diffstat (limited to 'chapter06/coreutils.xml')
-rw-r--r-- | chapter06/coreutils.xml | 403 |
1 files changed, 375 insertions, 28 deletions
diff --git a/chapter06/coreutils.xml b/chapter06/coreutils.xml index 24e7733e9..8ac6c756e 100644 --- a/chapter06/coreutils.xml +++ b/chapter06/coreutils.xml @@ -1,51 +1,63 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> <sect1 id="ch-system-coreutils" xreflabel="Coreutils"> -<title>Installing Coreutils-&coreutils-version;</title> -<?dbhtml filename="coreutils.html" dir="chapter06"?> +<title>Coreutils-&coreutils-version;</title> +<?dbhtml filename="coreutils.html"?> + +<indexterm zone="ch-system-coreutils"><primary sortas="a-Coreutils">Coreutils</primary></indexterm> <para>The Coreutils package contains utilities for showing and setting the basic system characteristics.</para> -<screen>&buildtime; &coreutils-time; -&diskspace; &coreutils-compsize;</screen> +<screen>&buildtime; 0.9 SBU +&diskspace; 69 MB</screen> + +<para>Coreutils installation depends on: Bash, Binutils, Coreutils, Diffutils, GCC, +Gettext, Glibc, Grep, Make, Perl, Sed.</para> -&aa-coreutils-down; -&aa-coreutils-dep; -<sect2><title> </title><para> </para></sect2> <sect2> <title>Installation of Coreutils</title> -<para>Apply the same Posixver patch we used previously:</para> - -<screen><userinput>patch -Np1 -i ../&coreutils-posixver-patch;</userinput></screen> - <para>Normally the functionality of <command>uname</command> is somewhat -broken, in that the <emphasis>-p</emphasis> switch always returns "unknown". -The following patch fixes this behaviour for Intel architectures:</para> +broken, in that the <emphasis>-p</emphasis> switch always returns +<quote>unknown</quote>. The following patch fixes this behavior for Intel +architectures:</para> -<screen><userinput>patch -Np1 -i ../&coreutils-uname-patch;</userinput></screen> +<screen><userinput>patch -Np1 -i ../coreutils-&coreutils-version;-uname-1.patch</userinput></screen> <para>We do not want Coreutils to install its version of the <command>hostname</command> program, because it is inferior to the version provided by Net-tools. Prevent its installation by applying a patch:</para> -<screen><userinput>patch -Np1 -i ../&coreutils-hostname-patch;</userinput></screen> +<screen><userinput>patch -Np1 -i ../coreutils-&coreutils-version;-hostname-1.patch</userinput></screen> <para>Now prepare Coreutils for compilation:</para> -<screen><userinput>./configure --prefix=/usr</userinput></screen> +<screen><userinput>DEFAULT_POSIX2_VERSION=199209 ./configure --prefix=/usr</userinput></screen> <para>Compile the package:</para> <screen><userinput>make</userinput></screen> <para>The test suite of Coreutils makes several assumptions about the presence -of files and users that aren't valid yet this early in the LFS build. We will +of files and users that aren't valid this early in the LFS build. We will therefore have to set up a few things before being able to run the tests. If -you choose not to run these tests, skip down to "Install the package".</para> +you choose not to run these tests, skip down to <quote>Install the +package</quote>.</para> -<para>First create a 'table of mounted filesystems' file with:</para> +<para>To be able to run the full test suite, the <command>su</command> program +needs to be installed. We didn't bother to install this little program in +<xref linkend="chapter-temporary-tools"/> because it requires root privileges, +so do it now:</para> + +<screen><userinput>make install-root</userinput></screen> + +<para>Create a 'table of mounted filesystems' file with:</para> <screen><userinput>touch /etc/mtab</userinput></screen> @@ -58,16 +70,12 @@ echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd</userinput></screen> <para>Now you're all set to run the test suite. First run the few tests that are meant to be run as <emphasis>root</emphasis>:</para> -<screen><userinput>make check-root</userinput></screen> +<screen><userinput>export NON_ROOT_USERNAME=dummy; make check-root</userinput></screen> <para>Then run the remainder of the tests as the <emphasis>dummy</emphasis> user:</para> -<screen><userinput>src/su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen> - -<para>The above command uses the newly compiled <command>src/su</command> -program, since in <xref linkend="chapter-temporary-tools"/> we didn't bother to -install it, because installing it requires root privileges.</para> +<screen><userinput>su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen> <para>When you're done testing, remove the dummy user and groups:</para> @@ -98,8 +106,347 @@ ln -s ../../bin/install /usr/bin</userinput></screen> </sect2> -&aa-coreutils-shortdesc; -&aa-coreutils-desc; -</sect1> +<sect2 id="contents-coreutils"><title>Contents of Coreutils</title> + +<para><emphasis>Installed programs</emphasis>: 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, su, sum, sync, tac, tail, tee, test, touch, tr, true, +tsort, tty, uname, unexpand, uniq, unlink, uptime, users, vdir, wc, who, +whoami and yes</para> + +</sect2> + + +<sect2><title>Short descriptions</title> + +<indexterm zone="ch-system-coreutils basename"><primary sortas="b-basename">basename</primary></indexterm> +<para id="basename"><command>basename</command> strips any path and a given suffix from +the given file name.</para> + +<indexterm zone="ch-system-coreutils cat"><primary sortas="b-cat">cat</primary></indexterm> +<para id="cat"><command>cat</command> concatenates files to standard output.</para> + +<indexterm zone="ch-system-coreutils chgrp"><primary sortas="b-chgrp">chgrp</primary></indexterm> +<para id="chgrp"><command>chgrp</command> changes the group ownership of each given +file to the given group. The group can be either given a a name or a numeric +ID.</para> + +<indexterm zone="ch-system-coreutils chmod"><primary sortas="b-chmod">chmod</primary></indexterm> +<para id="chmod"><command>chmod</command> changes the permissions of each given file +to the given mode. The mode can be either a symbolic representation of the +changes to make, or an octal number representing the new permissions.</para> + +<indexterm zone="ch-system-coreutils chown"><primary sortas="b-chown">chown</primary></indexterm> +<para id="chown"><command>chown</command> changes the user and/or group ownership of +each given file to the given user:group pair.</para> + +<indexterm zone="ch-system-coreutils chroot"><primary sortas="b-chroot">chroot</primary></indexterm> +<para id="chroot"><command>chroot</command> runs a given command with the specified +directory as the <filename>/</filename> directory. The given command can be an +interactive shell. On most systems only <emphasis>root</emphasis> can do +this.</para> + +<indexterm zone="ch-system-coreutils cksum"><primary sortas="b-cksum">cksum</primary></indexterm> +<para id="cksum"><command>cksum</command> prints the CRC (Cyclic Redundancy Check) checksum and the byte +counts of each specified file.</para> + +<indexterm zone="ch-system-coreutils comm"><primary sortas="b-comm">comm</primary></indexterm> +<para id="comm"><command>comm</command> compares two sorted files, outputting in +three columns the lines that are unique, and the lines that are common.</para> + +<indexterm zone="ch-system-coreutils cp"><primary sortas="b-cp">cp</primary></indexterm> +<para id="cp"><command>cp</command> copies files.</para> + +<indexterm zone="ch-system-coreutils csplit"><primary sortas="b-csplit">csplit</primary></indexterm> +<para id="csplit"><command>csplit</command> splits a given file into several new files, +separating them according to given patterns or line numbers, and outputting +the byte count of each new file.</para> + +<indexterm zone="ch-system-coreutils cut"><primary sortas="b-cut">cut</primary></indexterm> +<para id="cut"><command>cut</command> prints parts of lines, selecting the parts +according to given fields or positions.</para> + +<indexterm zone="ch-system-coreutils date"><primary sortas="b-date">date</primary></indexterm> +<para id="date"><command>date</command> displays the current time in the given +format, or sets the system date.</para> + +<indexterm zone="ch-system-coreutils dd"><primary sortas="b-dd">dd</primary></indexterm> +<para id="dd"><command>dd</command> copies a file using the given block size and +count, while optionally performing conversions on it.</para> + +<indexterm zone="ch-system-coreutils df"><primary sortas="b-df">df</primary></indexterm> +<para id="df"><command>df</command> reports the amount of disk space available +(and used) on all mounted file systems, or only on the file systems holding the +given files.</para> + +<indexterm zone="ch-system-coreutils dir"><primary sortas="b-dir">dir</primary></indexterm> +<para id="dir"><command>dir</command> is the same as ls.</para> + +<indexterm zone="ch-system-coreutils dircolors"><primary sortas="b-dircolors">dircolors</primary></indexterm> +<para id="dircolors"><command>dircolors</command> outputs commands to set the LS_COLOR +environment variable, to change the color scheme used by ls.</para> + +<indexterm zone="ch-system-coreutils dirname"><primary sortas="b-dirname">dirname</primary></indexterm> +<para id="dirname"><command>dirname</command> strips the non-directory suffix from +a given file name.</para> + +<indexterm zone="ch-system-coreutils du"><primary sortas="b-du">du</primary></indexterm> +<para id="du"><command>du</command> reports the amount of disk space used by the +current directory, or by each of the given directories including all their +subdirectories, or by each of the given files.</para> + +<indexterm zone="ch-system-coreutils echo"><primary sortas="b-echo">echo</primary></indexterm> +<para id="echo"><command>echo</command> displays the given strings.</para> + +<indexterm zone="ch-system-coreutils env"><primary sortas="b-env">env</primary></indexterm> +<para id="env"><command>env</command> runs a command in a modified environment.</para> + +<indexterm zone="ch-system-coreutils expand"><primary sortas="b-expand">expand</primary></indexterm> +<para id="expand"><command>expand</command> converts tabs to spaces.</para> + +<indexterm zone="ch-system-coreutils expr"><primary sortas="b-expr">expr</primary></indexterm> +<para id="expr"><command>expr</command> evaluates expressions.</para> + +<indexterm zone="ch-system-coreutils factor"><primary sortas="b-factor">factor</primary></indexterm> +<para id="factor"><command>factor</command> prints the prime factors of all specified +integer numbers.</para> + +<indexterm zone="ch-system-coreutils false"><primary sortas="b-false">false</primary></indexterm> +<para id="false"><command>false</command> does nothing, unsuccessfully. It always +exits with a status code indicating failure.</para> + +<indexterm zone="ch-system-coreutils mt"><primary sortas="b-mt">mt</primary></indexterm> +<para id="mt"><command>fmt</command> reformats the paragraphs in the given files.</para> + +<indexterm zone="ch-system-coreutils fold"><primary sortas="b-fold">fold</primary></indexterm> +<para id="fold"><command>fold</command> wraps the lines in the given files.</para> + +<indexterm zone="ch-system-coreutils groups-coreutils"><primary sortas="b-groups-coreutils">groups</primary></indexterm> +<para id="groups-coreutils"><command>groups</command> reports a user's group memberships.</para> + +<indexterm zone="ch-system-coreutils head"><primary sortas="b-head">head</primary></indexterm> +<para id="head"><command>head</command> prints the first ten lines (or the given +number of lines) of each given file.</para> + +<indexterm zone="ch-system-coreutils hostid"><primary sortas="b-hostid">hostid</primary></indexterm> +<para id="hostid"><command>hostid</command> reports the numeric identifier +(in hexadecimal) of the host.</para> + +<indexterm zone="ch-system-coreutils hostname-coreutils"><primary sortas="b-hostname-coreutils">hostname</primary></indexterm> +<para id="hostname-coreutils"><command>hostname</command> reports or sets the name of the +host.</para> + +<indexterm zone="ch-system-coreutils id"><primary sortas="b-id">id</primary></indexterm> +<para id="id"><command>id</command> reports the effective user ID, group ID, and +group memberships of the current user, or of a given user.</para> + +<indexterm zone="ch-system-coreutils install"><primary sortas="b-install">install</primary></indexterm> +<para id="install"><command>install</command> copies files while setting their +permission modes and, if possible, their owner and group.</para> + +<indexterm zone="ch-system-coreutils join"><primary sortas="b-join">join</primary></indexterm> +<para id="join"><command>join</command> joins from two files the lines that have +identical join fields.</para> + +<indexterm zone="ch-system-coreutils link"><primary sortas="b-link">link</primary></indexterm> +<para id="link"><command>link</command> creates a hard link with the given name +to the given file.</para> + +<indexterm zone="ch-system-coreutils ln"><primary sortas="b-ln">ln</primary></indexterm> +<para id="ln"><command>ln</command> makes hard links or soft links between files.</para> + +<indexterm zone="ch-system-coreutils logname"><primary sortas="b-logname">logname</primary></indexterm> +<para id="logname"><command>logname</command> reports the current user's login name.</para> + +<indexterm zone="ch-system-coreutils ls"><primary sortas="b-ls">ls</primary></indexterm> +<para id="ls"><command>ls</command> lists the contents of each given directory. +By default it orders the files and subdirectories alphabetically.</para> + +<indexterm zone="ch-system-coreutils md5sum"><primary sortas="b-md5sum">md5sum</primary></indexterm> +<para id="md5sum"><command>md5sum</command> reports or checks MD5 (Message Digest 5) checksums.</para> + +<indexterm zone="ch-system-coreutils mkdir"><primary sortas="b-mkdir">mkdir</primary></indexterm> +<para id="mkdir"><command>mkdir</command> creates directories with the given names.</para> + +<indexterm zone="ch-system-coreutils mkfifo"><primary sortas="b-mkfifo">mkfifo</primary></indexterm> +<para id="mkfifo"><command>mkfifo</command> creates FIFOs (First-In, First-Out, a "named pipe" in UNIX parlance) with the given names.</para> +<indexterm zone="ch-system-coreutils mknod"><primary sortas="b-mknod">mknod</primary></indexterm> +<para id="mknod"><command>mknod</command> creates device nodes with the given names. +A device node is a character special file, or a block special file, or a FIFO.</para> + +<indexterm zone="ch-system-coreutils mv"><primary sortas="b-mv">mv</primary></indexterm> +<para id="mv"><command>mv</command> moves or renames files or directories.</para> + +<indexterm zone="ch-system-coreutils nice"><primary sortas="b-nice">nice</primary></indexterm> +<para id="nice"><command>nice</command> runs a program with modified scheduling priority.</para> + +<indexterm zone="ch-system-coreutils nl"><primary sortas="b-nl">nl</primary></indexterm> +<para id="nl"><command>nl</command> numbers the lines from the given files.</para> + +<indexterm zone="ch-system-coreutils nohup"><primary sortas="b-nohup">nohup</primary></indexterm> +<para id="nohup"><command>nohup</command> runs a command immune to hangups, with +output redirected to a log file.</para> + +<indexterm zone="ch-system-coreutils od"><primary sortas="b-od">od</primary></indexterm> +<para id="od"><command>od</command> dumps files in octal and other formats.</para> + +<indexterm zone="ch-system-coreutils paste"><primary sortas="b-paste">paste</primary></indexterm> +<para id="paste"><command>paste</command> merges the given files, joining +sequentially corresponding lines side by side, separated by tab characters..</para> + +<indexterm zone="ch-system-coreutils pathchk"><primary sortas="b-pathchk">pathchk</primary></indexterm> +<para id="pathchk"><command>pathchk</command> checks whether file names are valid +or portable.</para> + +<indexterm zone="ch-system-coreutils pinky"><primary sortas="b-pinky">pinky</primary></indexterm> +<para id="pinky"><command>pinky</command> is a lightweight finger. It reports +some information about the given users.</para> + +<indexterm zone="ch-system-coreutils pr"><primary sortas="b-pr">pr</primary></indexterm> +<para id="pr"><command>pr</command> paginates and columnates files for printing.</para> + +<indexterm zone="ch-system-coreutils printenv"><primary sortas="b-printenv">printenv</primary></indexterm> +<para id="printenv"><command>printenv</command> prints the environment.</para> + +<indexterm zone="ch-system-coreutils printf"><primary sortas="b-printf">printf</primary></indexterm> +<para id="printf"><command>printf</command> prints the given arguments according to the +given format -- much like the C printf function.</para> + +<indexterm zone="ch-system-coreutils ptx"><primary sortas="b-ptx">ptx</primary></indexterm> +<para id="ptx"><command>ptx</command> produces from the contents of the given files +a permuted index, with each keyword in its context.</para> + +<indexterm zone="ch-system-coreutils pwd"><primary sortas="b-pwd">pwd</primary></indexterm> +<para id="pwd"><command>pwd</command> reports the name of the current directory.</para> + +<indexterm zone="ch-system-coreutils readlink"><primary sortas="b-readlink">readlink</primary></indexterm> +<para id="readlink"><command>readlink</command> reports the value of the given symbolic +link.</para> + +<indexterm zone="ch-system-coreutils rm"><primary sortas="b-rm">rm</primary></indexterm> +<para id="rm"><command>rm</command> removes files or directories.</para> + +<indexterm zone="ch-system-coreutils rmdir"><primary sortas="b-rmdir">rmdir</primary></indexterm> +<para id="rmdir"><command>rmdir</command> removes directories, if they are empty.</para> + +<indexterm zone="ch-system-coreutils seq"><primary sortas="b-seq">seq</primary></indexterm> +<para id="seq"><command>seq</command> prints a sequence of numbers, within a given +range and with a given increment.</para> + +<indexterm zone="ch-system-coreutils sha1sum"><primary sortas="b-sha1sum">sha1sum</primary></indexterm> +<para id="sha1sum"><command>sha1sum</command> prints or checks 160-bit SHA1 +checksums.</para> + +<indexterm zone="ch-system-coreutils shred"><primary sortas="b-shred">shred</primary></indexterm> +<para id="shred"><command>shred</command> overwrites the given files repeatedly with +strange patterns, to make it real hard to recover the data.</para> + +<indexterm zone="ch-system-coreutils sleep"><primary sortas="b-sleep">sleep</primary></indexterm> +<para id="sleep"><command>sleep</command> pauses for the given amount of time.</para> + +<indexterm zone="ch-system-coreutils sort"><primary sortas="b-sort">sort</primary></indexterm> +<para id="sort"><command>sort</command> sorts the lines from the given files.</para> + +<indexterm zone="ch-system-coreutils split"><primary sortas="b-split">split</primary></indexterm> +<para id="split"><command>split</command> splits the given file into pieces, by size +or by numbspliter of lines.</para> + +<indexterm zone="ch-system-coreutils stty"><primary sortas="b-stty">stty</primary></indexterm> +<para id="stty"><command>stty</command> sets or reports terminal line settings.</para> + +<indexterm zone="ch-system-coreutils su"><primary sortas="b-su">su</primary></indexterm> +<para id="su"><command>su</command> runs a shell with substitute user and group IDs.</para> + +<indexterm zone="ch-system-coreutils sum"><primary sortas="b-sum">sum</primary></indexterm> +<para id="sum"><command>sum</command> prints checksum and block counts for each +given file.</para> + +<indexterm zone="ch-system-coreutils sync"><primary sortas="b-sync">sync</primary></indexterm> +<para id="sync"><command>sync</command> flushes file system buffers. It forces +changed blocks to disk and updates the super block.</para> + +<indexterm zone="ch-system-coreutils tac"><primary sortas="b-tac">tac</primary></indexterm> +<para id="tac"><command>tac</command> concatenates the given files in reverse.</para> + +<indexterm zone="ch-system-coreutils tail"><primary sortas="b-tail">tail</primary></indexterm> +<para id="tail"><command>tail</command> prints the last ten lines (or the given +number of lines) of each given file.</para> + +<indexterm zone="ch-system-coreutils tee"><primary sortas="b-tee">tee</primary></indexterm> +<para id="tee"><command>tee</command> reads from standard input while writing both +to standard output and to the given files.</para> + +<indexterm zone="ch-system-coreutils test"><primary sortas="b-test">test</primary></indexterm> +<para id="test"><command>test</command> compares values and checks file types.</para> + +<indexterm zone="ch-system-coreutils touch"><primary sortas="b-touch">touch</primary></indexterm> +<para id="touch"><command>touch</command> changes file timestamps, setting the access +and modification times of the given files to the current time. Files that do +not exist are created with zero length.</para> + +<indexterm zone="ch-system-coreutils tr"><primary sortas="b-tr">tr</primary></indexterm> +<para id="tr"><command>tr</command> translates, squeezes, and deletes the given +characters from standard input.</para> + +<indexterm zone="ch-system-coreutils true"><primary sortas="b-true">true</primary></indexterm> +<para id="true"><command>true</command> does nothing, successfully. It always exits +with a status code indicating success.</para> + +<indexterm zone="ch-system-coreutils tsort"><primary sortas="b-tsort">tsort</primary></indexterm> +<para id="tsort"><command>tsort</command> performs a topological sort. It writes a +totally ordered list according to the partial ordering in a given file.</para> + +<indexterm zone="ch-system-coreutils tty"><primary sortas="b-tty">tty</primary></indexterm> +<para id="tty"><command>tty</command> reports the file name of the terminal +connected to standard input.</para> + +<indexterm zone="ch-system-coreutils uname"><primary sortas="b-uname">uname</primary></indexterm> +<para id="uname"><command>uname</command> reports system information.</para> + +<indexterm zone="ch-system-coreutils unexpand"><primary sortas="b-unexpand">unexpand</primary></indexterm> +<para id="unexpand"><command>unexpand</command> converts spaces to tabs.</para> + +<indexterm zone="ch-system-coreutils uniq"><primary sortas="b-uniq">uniq</primary></indexterm> +<para id="uniq"><command>uniq</command> discards all but one of successive +identical lines.</para> + +<indexterm zone="ch-system-coreutils unlink"><primary sortas="b-unlink">unlink</primary></indexterm> +<para id="unlink"><command>unlink</command> removes the given file.</para> + +<indexterm zone="ch-system-coreutils uptime-coreutils"><primary sortas="b-uptime-coreutils">uptime</primary></indexterm> +<para id="uptime-coreutils"><command>uptime</command> reports how long the system has been +running, how many users are logged on, and the system load averages.</para> + +<indexterm zone="ch-system-coreutils users"><primary sortas="b-users">users</primary></indexterm> +<para id="users"><command>users</command> reports the names of the users currently +logged on.</para> + +<indexterm zone="ch-system-coreutils vdir"><primary sortas="b-vdir">vdir</primary></indexterm> +<para id="vdir"><command>vdir</command> is the same as ls -l.</para> + +<indexterm zone="ch-system-coreutils wc"><primary sortas="b-wc">wc</primary></indexterm> +<para id="wc"><command>wc</command> reports the number of lines, words, and bytes +for each given file, and a total line when more than one file is given.</para> + +<indexterm zone="ch-system-coreutils who"><primary sortas="b-who">who</primary></indexterm> +<para id="who"><command>who</command> reports who is logged on.</para> + +<indexterm zone="ch-system-coreutils whoami"><primary sortas="b-whoami">whoami</primary></indexterm> +<para id="whoami"><command>whoami</command> reports the user name associated with the +current effective user ID.</para> + +<indexterm zone="ch-system-coreutils yes"><primary sortas="b-yes">yes</primary></indexterm> +<para id="yes"><command>yes</command> outputs 'y' or a given string repeatedly, +until killed.</para> + +</sect2> + + + +</sect1> |