# Util-linux-&util-linux-version;

The Util-linux package contains miscellaneous utility programs. Among them are utilities for handling file systems, consoles, partitions, and messages.

## FHS compliance notes

The FHS recommends using the `/var/lib/hwclock` directory instead of the usual `/etc` directory as the location for the `adjtime` file. To make the `hwclock` program FHS-compliant, run the following:

    sed -i -e 's@etc/adjtime@var/lib/hwclock/adjtime@g' \
        $(grep -rl '/etc/adjtime' .)
    mkdir -pv /var/lib/hwclock

## Installation of Util-linux

Prepare Util-linux for compilation:

    ./configure --enable-arch \
        --enable-write --disable-login --disable-su

## The meaning of the configure options:

`--enable-arch`

- This option allows the `arch` program to be installed.

`--enable-write`

- This option allows the `write` program to be installed.

`--disable-login --disable-su`

- Disables building the `login` and `su` programs, as the Shadow package installs its own versions.

Compile the package:

    make

To test the results, issue: `make check`.

Install the package:

    make install

Move the `logger` binary to `/bin` as it is needed by the CLFS-Bootscripts package:

    mv -v /usr/bin/logger /bin

## Contents of Util-linux

Installed programs Installed libraries Installed directories
- addpart, agetty, arch, blkid, blockdev, cal, cfdisk, chcpu, chrt, col, colcrt, colrm, column, ctrlaltdel, cytune, delpart, dmesg, eject, fallocate, fdformat, fdisk, findfs, findmnt, flock, fsck, fsck.cramfs, fsck.minix, fsfreeze, fstrim, getopt, hexdump, hwclock, ionice, ipcmk, ipcrm, ipcs, isosize, kill, ldattach, logger, look, losetup, lsblk, lscpu, lslocks, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, mountpoint, namei, partx, pg, pivot_root, prlimit, raw, readprofile, rename, renice, resizepart, rev, rtcwake, script, scriptreplay, setarch, setsid, setterm, sfdisk, sulogin, swaplabel, swapoff (link to swapon), swapon, switch_root, tailf, taskset, tunelp, ul, umount, unshare, utmpdump, uuidd, uuidgen, wall, wdctl, whereis, wipefs, and write libblkid.[a,so], libmount.[a,so], and libuuid.[a,so] /usr/include/blkid, /usr/include/libmount, /usr/include/uuid, /usr/share/getopt, /var/lib/hwclock

Short Descriptions

`addpart`

- Informs the kernel of a new partition

`agetty`

- Opens a tty port, prompts for a login name, and then invokes the `login` program

`arch`

- Reports the machine's architecture

`blkid`

- A command line utility to locate and print block device attributes

`blockdev`

- Allows users to call block device ioctls from the command line

`cal`

- Displays a simple calendar

`cfdisk`

- Manipulates the partition table of the given device

`chcpu`

- Utility to configure CPUs

`chrt`

- Manipulates real-time attributes of a process

`col`

- Filters out reverse line feeds

`colcrt`

- Filters `nroff` output for terminals that lack some capabilities, such as overstriking and half-lines

`colrm`

- Filters out the given columns

`column`

- Formats a given file into multiple columns

`ctrlaltdel`

- Sets the function of the Ctrl+Alt+Del key combination to a hard or a soft reset

`cytune`

- Tunes the parameters of the serial line drivers for Cyclades cards

`ddate`

- Gives the Discordian date or converts the given Gregorian date to a Discordian one

`delpart`

- Asks the kernel to remove a partition

`dmesg`

- Dumps the kernel boot messages

`eject`

- Eject removable media

`fallocate`

- Preallocates space to a file

`fdformat`

- Low-level formats a floppy disk

`fdisk`

- Manipulates the partition table of the given device

`findfs`

- Finds a file system by label or Universally Unique Identifier (UUID)

`findmnt`

- Lists mounted filesystems or searches for a filesystem

`flock`

- Acquires a file lock and then executes a command with the lock held

`fsck`

- Is used to check, and optionally repair, file systems

`fsck.cramfs`

- Performs a consistency check on the Cramfs file system on the given device

`fsck.minix`

- Performs a consistency check on the Minix file system on the given device

`fsfreeze`

- Suspends and resumes access to a filesystem

`fstrim`

- Discards unused blocks on a mounted filesystem

`getopt`

- Parses options in the given command line

`hexdump`

- Dumps the given file in hexadecimal or in another given format

`hwclock`

- Reads or sets the system's hardware clock, also called the Real-Time Clock (RTC) or Basic Input-Output System (BIOS) clock

`ionice`

- Gives and sets program I/O scheduling class and priority

`ipcmk`

- Creates various IPC resources

`ipcrm`

- Removes the given Inter-Process Communication (IPC) resource

`ipcs`

- Provides IPC status information

`isosize`

- Reports the size of an iso9660 file system

`kill`

- Send a signal to a process

`ldattach`

- Attaches a line discipline to a serial line

`logger`

- Enters the given message into the system log

`look`

- Displays lines that begin with the given string

`losetup`

- Sets up and controls loop devices

`lsblk`

- Prints information about block devices

`lscpu`

- Prints CPU architechture information

`lslocks`

- Lists local system locks

`mcookie`

- Generates magic cookies (128-bit random hexadecimal numbers) for `xauth`

`mkfs`

- Builds a file system on a device (usually a hard disk partition)

`mkfs.bfs`

- Creates a Santa Cruz Operations (SCO) bfs file system

`mkfs.cramfs`

- Creates a cramfs file system

`mkfs.minix`

- Creates a Minix file system

`mkswap`

- Initializes the given device or file to be used as a swap area

`more`

- A filter for paging through text one screen at a time

`mount`

- Attaches the file system on the given device to a specified directory in the file-system tree

`mountpoint`

- Tells you whether or not a directory is a mount point.

`namei`

- Shows the symbolic links in the given pathnames

`partx`

- Tells the kernel about the presence and numbering of on-disk partitions

`pg`

- Displays a text file one screen full at a time

`pivot_root`

- Makes the given file system the new root file system of the current process

`prlimit`

- Gets and sets a process' resource limits

`raw`

- Binds a Linux raw character device to a block device

`readprofile`

- Reads kernel profiling information

`rename`

- Renames the given files, replacing a given string with another

`renice`

- Alters the priority of running processes

`resizepart`

- Asks the Linux kernel to resize a partition

`rev`

- Reverses the lines of a given file

`rtcwake`

- Enters a system sleep state until a specified wakeup time

`script`

- Makes a typescript of a terminal session

`scriptreplay`

- Plays back typescripts created by `script`

`setarch`

- Changes reported architecture in new program environment and sets personality flags

`setsid`

- Runs the given program in a new session

`setterm`

- Sets terminal attributes

`sfdisk`

- A disk partition table manipulator

`sulogin`

- Allows root to log in; it is normally invoked by `init` when the system goes into single user mode

`swaplabel`

- Prints or changes the label or UUID of a swap area

`swapoff`

- Disables devices and files for paging and swapping

`swapon`

- Enables devices and files for paging and swapping and lists the devices and files currently in use

`switch_root`

- Switches to another filesystem as the root of the mount tree

`tailf`

- Tracks the growth of a log file. Displays the last 10 lines of a log file, then continues displaying any new entries in the log file as they are created

`taskset`

- Retrieves or sets a process's CPU affinity

`tunelp`

- Tunes the parameters of the line printer

`ul`

- A filter for translating underscores into escape sequences indicating underlining for the terminal in use

`umount`

- Disconnects a file system from the system's file tree

`unshare`

- Runs a program with some namespaces unshared from parent

`utmpdump`

- Displays the content of the given login file in a more user-friendly format

`uuidd`

- A daemon used by the UUID library to generate time-based UUIDs in a secure and guranteed-unique fashion.

`uuidgen`

- Creates new UUIDs. Each new UUID can reasonably be considered unique among all UUIDs created, on the local system and on other systems, in the past and in the future

`wall`

- Writes a message to all logged-in users

`wdctl`

- Show hardware watchdog status

`whereis`

- Reports the location of the binary, source, and man page for the given command

`wipefs`

- Wipes a filesystem signature from a device

`write`

- Sends a message to the given user if that user has not disabled receipt of such messages

`libblkid`

- Contains routines for device identification and token extraction

`libmount`

- Contains routines for parsing the `/etc/fstab`, `/etc/mtab`, and `/proc/self/mountinfo` files, managing `/etc/mtab`, and configuring various mount options

`libuuid`

- Contains routines for generating unique identifiers for objects that may be accessible beyond the local system