附錄 G. busybox 之外的其它指令

與先前的 Red Hat Enterprise Linux 發行版不同,Red Hat Enterprise Linux 6 不包含 busybox 來在預安裝與安裝後的環境中,提供 shell 指令。表格 G.1, “busybox 之外的其它指令” 包含了一列 busybox 指令、與在 bash 中實做相同功能一樣的方式,以及在 %pre 和 %post 環境中的額外指令可用性。此表格亦顯示了指令的完整路徑,不過因為 PATH 環境變數已設置於安裝環境中,因此您一般並不需要指定路徑。
若指令只能使用於 %post 環境下,那麼這項指令便會在目標系統上執行,也因此它的可用性會取決於提供了這項指令的套件是否已安裝。所有出現在 表格 G.1, “busybox 之外的其它指令” 的「New command or alternative」欄位中的指令,皆可使用於 Red Hat Enterprise Linux 6 中,儘管並非所有指令皆可使用於所有安裝的系統。
當有項指令被列為無法使用時,您可能能夠透過 Python script 來建立相等的功能。%pre 與 %post script 使用者皆能使用 Python 語言,並能使用完整的 Python 模組。因此,若在安裝環境下有您所無法使用的特定指令,建議您使用 Python 來作為 script 語言。

表格 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 -vETcat -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無 — scriptlet 沒有可用的 daemon
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無 — scriptlet 沒有可用的 daemon
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無 — scriptlet 沒有可用的 daemon
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 或 Python
hostname/sbin/hostname/usr/bin/hostname
httpd無 — scriptlet 沒有可用的 daemon
hush
hwclock/usr/sbin/hwclock
id/usr/bin/id 或 Python
ifconfig/sbin/ifconfig/usr/sbin/ifconfig
ifdownifconfig device down
ifupifconfig device up
inetd無 — scriptlet 沒有可用的 daemon
insmod/sbin/insmod/usr/sbin/insmod
install/usr/bin/install or mkdir/cp/chmod/chown/chgrp
ip/sbin/ip/usr/sbin/ip
ipaddrifconfigip
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無 — scriptlet 沒有可用的 daemon
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無 — scriptlet 沒有可用的 daemon
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 功能。若是 var="/usr/bin/command" 的話,那麼 echo ${var##*/} 便會回傳 command
[c] GNU bash 能藉由使用字串操作來提供 dirname 功能。若是 var="/usr/bin/command" 的話,那麼 echo ${var%/*} 便會回傳 /usr/bin