<< Back to man.ChinaUnix.net

6.59. Util-linux-2.12q

Util-linux 软件包包含许多工具。其中比较重要的是加载、卸载、格式化、分区和管理硬盘驱动器,打开 tty 端口和得到内核消息。

预计编译时间: 0.2 SBU
所需磁盘空间: 11.6 MB
安装依赖于: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Zlib

6.59.1. FHS 兼容性说明

FHS 推荐使用 /var/lib/hwclock 目录代替常用的 /etc 目录以定位 adjtime 文件。要将 hwclock 编译成与 FHS 兼容的程序,运行下面的命令:

sed -i 's@etc/adjtime@var/lib/hwclock/adjtime@g' \
    hwclock/hwclock.c
mkdir -p /var/lib/hwclock

6.59.2. 安装 Util-linux

Util-linux 在基于新版本的 Linux-Libc-Headers 编译时会出错,下面的补丁修正了这个问题:

patch -Np1 -i ../util-linux-2.12q-cramfs-1.patch

Util-linux 有一个安全漏洞允许用户不使用 nosuid 选项重新挂载一个卷,下面的补丁修正了这个问题:

patch -Np1 -i ../util-linux-2.12q-umount_fix-1.patch

为编译 Util-linux 做准备:

./configure

编译软件包:

make HAVE_KILL=yes HAVE_SLN=yes

make 参数的意思是:

HAVE_KILL=yes

防止编译和安装 kill 程序(已经由 Procps 安装了)。

HAVE_SLN=yes

防止编译 sln 程序(这是静态连接的 ln ,已经由 Glibc 安装了)。

这个软件包没有附带测试程序。

安装软件包并将 logger 二进制文件移动到 /bin 目录,因为 LFS-Bootscripts 需要它:

make HAVE_KILL=yes HAVE_SLN=yes install
mv /usr/bin/logger /bin

6.59.3. Util-linux 的内容

安装的程序: agetty, arch, blockdev, cal, cfdisk, chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate, dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt, hexdump, hwclock, ipcrm, ipcs, isosize, line, logger, look, losetup, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, namei, pg, pivot_root, ramsize (链接到 rdev), raw, rdev, readprofile, rename, renice, rev, rootflags (链接到 rdev), script, setfdprm, setsid, setterm, sfdisk, swapdev, swapoff (链接到 swapon), swapon, tunelp, ul, umount, vidmode (链接到 rdev), whereis, write

简要描述

agetty

打开 tty 端口,为登录名称建立命令控制符,并引出 login 程序

arch

报告机器的体系结构

blockdev

在命令行中调用块设备的 ioctl

cal

显示一个简单的日历

cfdisk

处理指定设备的分区表

chkdupexe

找出重复的可执行文件

col

过滤回显反馈线

colcrt

过滤那些 nroff 终端不具备输出的能力,比如高分点距、半线距

colrm

过滤掉给出的列

column

把输出格式化为几列

ctrlaltdel

设置 CTRL+ALT+DEL 组合键的功能为硬重启或软重启

cytune

查询和修改 Cyclade 驱动器的中断入口

ddate

把阳历日期转换为 Discordian 日期

dmesg

显示内核的启动信息

elvtune

调整块设备的相互作用和性能

fdformat

低级格式化一张软盘

fdisk

磁盘分区管理程序

fsck.cramfs

对 Cramfs 文件系统的一致性进行检查

fsck.minix

对 Minix 文件系统的一致性进行检查

getopt

在给出的命令行进行选项和参数解析

hexdump

用用户指定的方式(包括ASCII, 十进制, 十六进制, 八进制)显示一个文件或者标准输入的数据

hwclock

查询和设置硬件时钟(也被称为 RTC 或 BIOS 时钟)

ipcrm

删除给定的进程间通信(IPC)资源

ipcs

提供 IPC 状态信息

isosize

报告 iso9660 文件系统的大小

line

单行拷贝

logger

设置系统日志的入口

look

显示以某个给定字符串开头的行

losetup

启动和控制回环(loop)设备

mcookie

xauth 生成 magic cookies (128位的随机16进制数)

mkfs

在一个设备(通常是一个硬盘分区)设备上建立文件系统

mkfs.bfs

创建一个 Santa Cruz Operations (SCO) bfs 文件系统

mkfs.cramfs

创建 cramfs 文件系统

mkfs.minix

创建 Minix 文件系统

mkswap

初始化指定设备或文件,以用做交换分区

more

分屏显示文件,但没有 less 好用

mount

把一个文件系统从一个设备挂载到一个目录

namei

显示指定路径的符号链接

pg

显示文本文件内容,一次显示一屏

pivot_root

使某个文件系统成为当前进程的根文件系统

ramsize

显示或者改变 RAM disk 的大小

raw

将一个原始的 Linux 字符设备绑定到一个块设备

rdev

查询和设置内核的根设备和其他信息

readprofile

显示内核侧写文件 /proc/profile 的信息

rename

对文件进行重命名

renice

修改正在运行进程的优先级

rev

颠倒一个文件每行字符的顺序

rootflags

在挂载根设备时查询和设置额外的信息

script

为终端会话过程建立一个 typescipt 文件,记录会话过程中终端的输出。

setfdprm

设置用户定义的软盘参数

setsid

在一个新的会话中运行程序

setterm

设置终端属性

sfdisk

磁盘分区表管理工具

swapdev

在启动内核中设置交换分区设备

swapoff

取消对指定交换设备和交换文件的使用

swapon

使指定的交换设备和交换文件生效

tunelp

设置打印设备的参数

ul

用来将指定文件中出现的下划线使用指定终端画下横线的序列

umount

卸载一个被挂载的文件系统

vidmode

查询和设置视频模式

whereis

确定某命令二进制文件、源文件、手册文档的位置

write

发一个消息给另一个用户,如果他开启了 writting 的话。