123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447 |
- <?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>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; 0.9 SBU
- &diskspace; 69 MB</screen>
- <para>Coreutils installation depends on: Bash, Binutils, Coreutils, Diffutils, GCC,
- Gettext, Glibc, Grep, Make, Perl, Sed.</para>
- <sect2>
- <title>Installation of Coreutils</title>
- <para>Normally the functionality of <command>uname</command> is somewhat
- 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-&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-&coreutils-version;-hostname-1.patch</userinput></screen>
- <para>Now prepare Coreutils for compilation:</para>
- <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 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 <quote>Install the
- package</quote>.</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 two dummy groups and a dummy user name:</para>
- <screen><userinput>echo "dummy1:x:1000" >> /etc/group
- echo "dummy2:x:1001:dummy" >> /etc/group
- 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 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>su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen>
- <para>When you're done testing, remove the dummy user and groups:</para>
- <screen><userinput>sed -i '/dummy/d' /etc/passwd /etc/group</userinput></screen>
- <para>Install the package:</para>
- <screen><userinput>make install</userinput></screen>
- <para>And move some programs to their proper locations:</para>
- <screen><userinput>mv /usr/bin/{[,basename,cat,chgrp,chmod,chown,cp,dd,df} /bin
- mv /usr/bin/{date,echo,false,head,install,ln,ls} /bin
- mv /usr/bin/{mkdir,mknod,mv,pwd,rm,rmdir,sync} /bin
- mv /usr/bin/{sleep,stty,su,test,touch,true,uname} /bin
- mv /usr/bin/chroot /usr/sbin</userinput></screen>
- <para>We'll be using the <filename>kill</filename> program from the Procps
- package (installed as <filename>/bin/kill</filename> later in the chapter).
- Remove the one installed by Coreutils:</para>
- <screen><userinput>rm /usr/bin/kill</userinput></screen>
- <para>Finally, create a symlink to be FHS-compliant:</para>
- <screen><userinput>ln -s ../../bin/install /usr/bin</userinput></screen>
- </sect2>
- <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>
|