Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

附录 G. 备选 busybox 命令

与之前的 Red Hat Enterprise Linux 发行本不同, Red Hat Enterprise Linux 6 不包含在预安装或者后安装环境中提供 shell 命令的 busybox表 G.1 “备选 busybox 命令” 包含 busybox 命令列表,其功能与 bash 相当,并可在 %pre 和 %post 中使用这些备选功能。这个表格还提示该命令的具体路径,但通常不需要指定该路径,因为是在安装环境中设定 PATH 环境变量。
如果某个命令只能在 %post 使用,该命令将在目标系统中运行。其可用性因此要依赖与是否安装了提供该命令的软件包。表 G.1 “备选 busybox 命令” 中的 "新命令或者备选"列中出现的每个命令都可在 Red Hat Enterprise Linux 6 使用,但不是每个命令都可在每个安装的系统中使用。
如果列出的命令不可用,则可以使用 Python 脚本生成相当的功能。%pre 和 %post 脚本的作者可使用 Python 语言,他们可使用一组随时可用的 Python 模块完成脚本。因此,如果在安装环境中某个具体的命令不可用,我们建议使用 Python 作为脚本语言。

表 G.1. 备选 busybox 命令

Busybox 命令%pre%post新命令或者备选
addgroup/usr/sbin/groupadd
adduser/usr/sbin/useradd
adjtimex
ar/usr/bin/ar
arping/sbin/arping 或者 /usr/sbin/arping
ash/bin/bash
awk/sbin/awk/sbin/gawk 或者/usr/bin/gawk [a]
basename/bin/bash [b], /usr/bin/basename
bbconfig无 — 这个命令只可用于 Busybox
bunzip2/usr/bin/bunzip2/usr/bin/bzip2 -d
busybox
bzcat/usr/bin/bzcat/usr/bin/bzip2 -dc
cal/usr/bin/cal
cat/usr/bin/cat
catvcat -vET 或者 cat -A
chattr/usr/bin/chattr
chgrp/usr/bin/chgrp
chmod/usr/bin/chmod
chown/usr/bin/chown
chroot/usr/sbin/chroot
chvt/usr/bin/chvt
cksum/usr/bin/cksum
clear/usr/bin/clear
cmp/usr/bin/cmp
comm/usr/bin/comm
cp/usr/bin/cp
cpio/usr/bin/cpio
crond无 — 没有守护进程可用于脚本程序
crontab/usr/bin/crontab
cut/usr/bin/cut
date/usr/bin/date
dc/usr/bin/dc
dd/usr/bin/dd
deallocvt/usr/bin/deallocvt
delgroup/usr/sbin/groupdel
deluser/usr/sbin/userdel
devfsd无 — Red Hat Enterprise Linux不使用 devfs
df/usr/bin/df
diff/usr/bin/diff
dirname/bin/bash [c]/usr/bin/dirname
dmesg/usr/bin/dmesg
dnsd无 — 没有守护进程可用于脚本程序
dos2unixsed 's/.$//'
dpkg无 — 不支持 Debian 软件包
dpkg-deb无 — 不支持 Debian 软件包
du/usr/bin/du
dumpkmap
dumpleases
e2fsck/usr/sbin/e2fsck
e2label/usr/sbin/e2label
echo/usr/bin/echo
ed/sbin/sed/usr/bin/sed
egrep/sbin/egrep/usr/bin/egrep
eject/usr/bin/eject
env/usr/bin/env
ether-wake
expr/usr/bin/expr
fakeidentd无 — 没有守护进程可用于脚本程序
false/usr/bin/false
fbset/usr/sbin/fbset
fdflush
fdformat/usr/bin/fdformat
fdisk/usr/sbin/fdisk
fgrep/sbin/fgrep/usr/bin/fgrep
find/usr/bin/find
findfs
fold/usr/bin/fold
free/usr/bin/free
freeramdisk
fsck/usr/sbin/fsck
fsck.ext2/usr/sbin/fsck.ext2/usr/sbin/e2fsck
fsck.ext3/usr/sbin/fsck.ext3/usr/sbin/e2fsck
fsck.minix无 — 不支持 Minix 文件系统
ftpget/usr/bin/ftp 或者 Python ftplib 模块
ftpput/usr/bin/ftp 或者 Python ftplib 模块
fuser/sbin/fuser
getopt/usr/bin/getopt
getty
grep/sbin/grep/usr/bin/grep
gunzip/usr/bin/gunzip/usr/bin/gzip -d
gzip/usr/bin/gzip
hdparm/usr/sbin/hdparm
head/usr/bin/head
hexdump/usr/bin/hexdump
hostid/usr/bin/hostid or Python
hostname/sbin/hostname/usr/bin/hostname
httpd无 — 没有守护进程可用于脚本程序
hush
hwclock/usr/sbin/hwclock
id/usr/bin/id 或者 Python
ifconfig/sbin/ifconfig, /usr/sbin/ifconfig
ifdownifconfig device down
ifupifconfig device up
inetd无 — 没有守护进程可用于脚本程序
insmod/sbin/insmod/usr/sbin/insmod
install/usr/bin/install or mkdir/cp/chmod/chown/chgrp
ip/sbin/ip/usr/sbin/ip
ipaddrifconfig 或者 ip
ipcalc/sbin/ipcalc/usr/bin/ipcalc
ipcrm/usr/bin/ipcrm
ipcs/usr/bin/ipcs
iplinkip
iprouteip
iptunnel/sbin/iptunnel
kill/sbin/kill/usr/bin/kill
killall/usr/bin/killall
lash
last/usr/bin/last
lengthPython 或者 bash
less/usr/bin/less
linux32
linux64
ln/sbin/ln/usr/bin/ln
load_policy/sbin/load_policy/usr/sbin/load_policy
loadfont
loadkmap
login/usr/bin/login
logname/usr/bin/logname
losetup/usr/bin/losetup
ls/usr/bin/ls
lsattr/usr/bin/lsattr
lsmod/usr/bin/lsmod
lzmacat/usr/bin/lzmadec
makedevs/usr/bin/mknod
md5sum/usr/bin/md5sum
mdev
mesg/usr/bin/mesg
mkdir/sbin/mkdir/usr/bin/mkdir
mke2fs/usr/sbin/mke2fs
mkfifo/usr/bin/mkfifo
mkfs.ext2/usr/sbin/mkfs.ext2
mkfs.ext3/usr/sbin/mkfs.ext3
mkfs.minix无 — 不支持 Minix 文件系统
mknod/usr/bin/mknod
mkswap/usr/sbin/mkswap
mktemp/usr/bin/mktemp
modprobe/sbin/modprobe/usr/sbin/modprobe
more/usr/bin/more
mount/sbin/mount/usr/bin/mount
mountpoint查看 mount 命令的输出结果
msh
mt/usr/bin/mt
mv/usr/bin/mv
nameif
nc/usr/bin/nc
netstat/bin/netstat
nice/bin/nice
nohup/usr/bin/nohup
nslookup/usr/bin/nslookup
od/usr/bin/od
openvt/usr/bin/openvt
passwd/usr/bin/passwd
patch/usr/bin/patch
pidof/usr/sbin/pidof
ping/usr/bin/ping
ping6/bin/ping6
pipe_progress
pivot_root/sbin/pivot_root
printenv/usr/bin/printenv
printf/usr/bin/printf
ps/usr/bin/ps
pwd/usr/bin/pwd
rdate/usr/bin/rdate
readlink/sbin/readlink/usr/bin/readlink
readprofile/usr/sbin/readprofile
realpathPython os.path.realpath()
renice/usr/bin/renice
reset/usr/bin/reset
rm/sbin/rm/usr/bin/rm
rmdir/sbin/rmdir/usr/bin/rmdir
rmmod/sbin/rmmod/usr/bin/rmmod
route/sbin/route/usr/sbin/route
rpm/usr/bin/rpm
rpm2cpio/usr/bin/rpm2cpio
run-parts
runlevel
rx
sed/sbin/sed/usr/bin/sed
seq/usr/bin/seq
setarch/usr/bin/setarch
setconsole
setkeycodes/usr/bin/setkeycodes
setlogcons
setsid/usr/bin/setsid
sh/sbin/sh/usr/bin/sh
sha1sum/usr/bin/sha1sum
sleep/sbin/sleep/usr/bin/sleep
sort/usr/bin/sort
start-stop-daemon
stat/usr/bin/stat 或者 Python os.stat()
strings/usr/bin/strings
stty/bin/stty
su/bin/su
sulogin/sbin/sulogin
sum/usr/bin/sum
swapoff/usr/sbin/swapoff
swapon/usr/sbin/swapon
switch_root/sbin/switch_root
sync/usr/bin/sync
sysctl/sbin/sysctl
tail/usr/bin/tail
tar/usr/bin/tar
tee/usr/bin/tee
telnet/usr/bin/telnet
telnetd无 — 没有守护进程可用于脚本程序
test/usr/bin/test 或者 [ in bash
tftp/usr/bin/tftp
time/usr/bin/time 或者 Python
top/usr/bin/top
touch/sbin/touch/usr/bin/touch
tr/usr/bin/tr 或者 Python
traceroute/bin/traceroute
true/usr/bin/true
tty/usr/bin/tty
tune2fs/usr/sbin/tune2fs
udhcpc/sbin/dhclient
udhcpd无 — 没有守护进程可用于脚本程序
umount/sbin/umount/usr/bin/umount
uname/bin/uname 或者 Python os.uname()
uncompress
uniq/usr/bin/uniq
unix2dossed 's/$//'
unlzma/usr/bin/unlzma
unzip/usr/bin/unzip
uptime/usr/bin/uptime 或者 Python 读取 /proc/uptime
usleep/bin/usleep 或者 Python
uudecode/usr/bin/uudecode 或者 Python
uuencode/usr/bin/uuencode 或者 Python
vconfig/usr/sbin/vconfig
vi/usr/bin/vi
vlock
watch/usr/bin/watch
watchdog
wc/usr/bin/wc
wget/sbin/wget/usr/bin/wget
which/usr/bin/which
who/usr/bin/who
whoami/usr/bin/whoami
xargs/usr/bin/xargs
yes/usr/bin/yes
zcat/usr/bin/zcat
zcipNetworkManager 应该做的工作
[a] Red Hat Enterprise Linux 6 在安装环境中附带 GNU awk 而不是 busybox awk
[b] GNU bash 可使用字符串操作提供 basename 功能。If var="/usr/bin/command", then echo ${var##*/} gives command.
[c] GNU bash 可使用字符串操作提供 dirname 功能。If var="/usr/bin/command", then echo ${var%/*} gives /usr/bin