Appendice G. Alternative ai comandi busybox

Diversamente dalle precedenti release di Red Hat Enterprise Linux, Red Hat Enterprise Linux 6 non include alcuna versione di busybox per i comandi della shell negli ambienti pre e post installazione. Tabella G.1, «Alternative ai comandi busybox» contiene un elenco di comandi busybox, i metodi equivalenti per l'implementazione delle stesse funzionalità in bash, e la disponibilità di queste alternative in ambienti %pre e %post. La tabella indica altresì il percorso esatto per il comando anche se generalmente non sarà necessario specificarlo poichè la variabile dell'ambiente PATH è impostata nell'ambiente di installazione.
Se un comando è solo disponibile in %post, il comando è in esecuzione sul sistema target e la sua disponibilità dipende quindi dalla presenza del pacchetto che lo fornisce. Ogni comando che appare nella colonna "Nuovo comando o alternativo" della Tabella G.1, «Alternative ai comandi busybox», è disponibile per Red Hat Enterprise Linux 6, anche se non tutti i comandi sono disponibili su ogni sistema installato.
Se un comando è stato elencato come non disponibile l'utente sarà in grado di creare una funzionalità equivalente con uno script Python. Il linguaggio Python è disponibile per autori di script %pre e %post, completo con un set di moduli Python pronti all'uso. Per questo motivo se un comando particolare non è disponibile nell'ambiente di installazione, è consigliato l'uso di Python come linguaggio di programmazione.

Tabella G.1. Alternative ai comandi busybox

Busybox command %pre %post Nuovi comandi o alternative
addgroup no yes /usr/sbin/groupadd
adduser no yes /usr/sbin/useradd
adjtimex no no nessuno
ar no yes /usr/bin/ar
arping yes yes /sbin/arping o /usr/sbin/arping
ash yes yes /bin/bash
awk yes yes /sbin/awk, /sbin/gawk, or /usr/bin/gawk [a]
basename yes yes /bin/bash [b], /usr/bin/basename
bbconfig no no nessuno — questo comando è specifico a Busybox
bunzip2 yes yes /usr/bin/bunzip2, /usr/bin/bzip2 -d
busybox no no nessuno
bzcat yes yes /usr/bin/bzcat, /usr/bin/bzip2 -dc
cal no yes /usr/bin/cal
cat yes yes /usr/bin/cat
catv no no cat -vET o cat -A
chattr yes yes /usr/bin/chattr
chgrp yes yes /usr/bin/chgrp
chmod yes yes /usr/bin/chmod
chown yes yes /usr/bin/chown
chroot yes yes /usr/sbin/chroot
chvt yes yes /usr/bin/chvt
cksum no yes /usr/bin/cksum
clear yes yes /usr/bin/clear
cmp no yes /usr/bin/cmp
comm no yes /usr/bin/comm
cp yes yes /usr/bin/cp
cpio yes yes /usr/bin/cpio
crond no no nessuno — nessun demone disponibile per gli scriptlets
crontab no yes /usr/bin/crontab
cut yes yes /usr/bin/cut
date yes yes /usr/bin/date
dc no yes /usr/bin/dc
dd yes yes /usr/bin/dd
deallocvt no yes /usr/bin/deallocvt
delgroup no yes /usr/sbin/groupdel
deluser no yes /usr/sbin/userdel
devfsd no no nessuno — Red Hat Enterprise Linux non utilizza devfs
df yes yes /usr/bin/df
diff no yes /usr/bin/diff
dirname yes yes /bin/bash [c], /usr/bin/dirname
dmesg yes yes /usr/bin/dmesg
dnsd no no nessuno — nessun demone disponibile per gli scriptlets
dos2unix no no sed 's/.$//'
dpkg no no nessuno — nessun supporto per i pacchetti Debian
dpkg-deb no no nessuno — nessun supporto per i pacchetti Debian
du yes yes /usr/bin/du
dumpkmap no no nessuno
dumpleases no no nessuno
e2fsck yes yes /usr/sbin/e2fsck
e2label yes yes /usr/sbin/e2label
echo yes yes /usr/bin/echo
ed no no /sbin/sed, /usr/bin/sed
egrep yes yes /sbin/egrep, /usr/bin/egrep
eject yes yes /usr/bin/eject
env yes yes /usr/bin/env
ether-wake no no nessuno
expr yes yes /usr/bin/expr
fakeidentd no no nessuno — nessun demone disponibile per gli scriptlets
false yes yes /usr/bin/false
fbset no yes /usr/sbin/fbset
fdflush no no nessuno
fdformat no yes /usr/bin/fdformat
fdisk yes yes /usr/sbin/fdisk
fgrep yes yes /sbin/fgrep, /usr/bin/fgrep
find yes yes /usr/bin/find
findfs no no nessuno
fold no yes /usr/bin/fold
free no yes /usr/bin/free
freeramdisk no no nessuno
fsck yes yes /usr/sbin/fsck
fsck.ext2 yes yes /usr/sbin/fsck.ext2, /usr/sbin/e2fsck
fsck.ext3 yes yes /usr/sbin/fsck.ext3, /usr/sbin/e2fsck
fsck.minix no no nessuno — nessun supporto per il file system Minix
ftpget yes yes /usr/bin/ftp o modulo Python ftplib
ftpput yes yes /usr/bin/ftp o modulo Python ftplib
fuser no yes /sbin/fuser
getopt no yes /usr/bin/getopt
getty no no nessuno
grep yes yes /sbin/grep, /usr/bin/grep
gunzip yes yes /usr/bin/gunzip, /usr/bin/gzip -d
gzip yes yes /usr/bin/gzip
hdparm yes yes /usr/sbin/hdparm
head yes yes /usr/bin/head
hexdump no yes /usr/bin/hexdump
hostid no yes /usr/bin/hostid or Python
hostname yes yes /sbin/hostname, /usr/bin/hostname
httpd no no nessuno — nessun demone disponibile per gli scriptlets
hush no no nessuno
hwclock yes yes /usr/sbin/hwclock
id no yes /usr/bin/id o Python
ifconfig yes yes /sbin/ifconfig, /usr/sbin/ifconfig
ifdown no no ifconfig device down
ifup no no ifconfig device up
inetd no no nessuno — nessun demone disponibile per gli scriptlets
insmod yes yes /sbin/insmod, /usr/sbin/insmod
install no yes /usr/bin/install or mkdir/cp/chmod/chown/chgrp
ip yes yes /sbin/ip, /usr/sbin/ip
ipaddr no no ifconfig o ip
ipcalc yes yes /sbin/ipcalc, /usr/bin/ipcalc
ipcrm no yes /usr/bin/ipcrm
ipcs no yes /usr/bin/ipcs
iplink no no ip
iproute no no ip
iptunnel no yes /sbin/iptunnel
kill yes yes /sbin/kill, /usr/bin/kill
killall yes yes /usr/bin/killall
lash no no nessuno
last no yes /usr/bin/last
length no no Python o bash
less yes yes /usr/bin/less
linux32 no no nessuno
linux64 no no nessuno
ln yes yes /sbin/ln, /usr/bin/ln
load_policy yes yes /sbin/load_policy, /usr/sbin/load_policy
loadfont no no nessuno
loadkmap no no nessuno
login yes yes /usr/bin/login
logname no yes /usr/bin/logname
losetup yes yes /usr/bin/losetup
ls yes yes /usr/bin/ls
lsattr yes yes /usr/bin/lsattr
lsmod yes yes /usr/bin/lsmod
lzmacat no yes /usr/bin/lzmadec
makedevs no no /usr/bin/mknod
md5sum yes yes /usr/bin/md5sum
mdev no no nessuno
mesg no yes /usr/bin/mesg
mkdir yes yes /sbin/mkdir, /usr/bin/mkdir
mke2fs yes yes /usr/sbin/mke2fs
mkfifo no yes /usr/bin/mkfifo
mkfs.ext2 yes yes /usr/sbin/mkfs.ext2
mkfs.ext3 yes yes /usr/sbin/mkfs.ext3
mkfs.minix no no nessuno — nessun supporto per il file system Minix
mknod yes yes /usr/bin/mknod
mkswap yes yes /usr/sbin/mkswap
mktemp yes yes /usr/bin/mktemp
modprobe yes yes /sbin/modprobe, /usr/sbin/modprobe
more yes yes /usr/bin/more
mount yes yes /sbin/mount, /usr/bin/mount
mountpoint no no Controllare l'output del comando mount
msh no no nessuno
mt yes yes /usr/bin/mt
mv yes yes /usr/bin/mv
nameif no no nessuno
nc no yes /usr/bin/nc
netstat no yes /bin/netstat
nice no yes /bin/nice
nohup no yes /usr/bin/nohup
nslookup yes yes /usr/bin/nslookup
od no yes /usr/bin/od
openvt yes yes /usr/bin/openvt
passwd no yes /usr/bin/passwd
patch no yes /usr/bin/patch
pidof yes yes /usr/sbin/pidof
ping yes yes /usr/bin/ping
ping6 no yes /bin/ping6
pipe_progress no no nessuno
pivot_root no yes /sbin/pivot_root
printenv no yes /usr/bin/printenv
printf no yes /usr/bin/printf
ps yes yes /usr/bin/ps
pwd yes yes /usr/bin/pwd
rdate no yes /usr/bin/rdate
readlink yes yes /sbin/readlink, /usr/bin/readlink
readprofile no yes /usr/sbin/readprofile
realpath no no Python os.path.realpath()
renice no yes /usr/bin/renice
reset no yes /usr/bin/reset
rm yes yes /sbin/rm, /usr/bin/rm
rmdir yes yes /sbin/rmdir, /usr/bin/rmdir
rmmod yes yes /sbin/rmmod, /usr/bin/rmmod
route yes yes /sbin/route, /usr/sbin/route
rpm yes yes /usr/bin/rpm
rpm2cpio no yes /usr/bin/rpm2cpio
run-parts no no nessuno
runlevel no no nessuno
rx no no nessuno
sed yes yes /sbin/sed, /usr/bin/sed
seq no yes /usr/bin/seq
setarch no yes /usr/bin/setarch
setconsole no no nessuno
setkeycodes no yes /usr/bin/setkeycodes
setlogcons no no nessuno
setsid no yes /usr/bin/setsid
sh yes yes /sbin/sh, /usr/bin/sh
sha1sum yes yes /usr/bin/sha1sum
sleep yes yes /sbin/sleep, /usr/bin/sleep
sort yes yes /usr/bin/sort
start-stop-daemon no no nessuno
stat no yes /usr/bin/stat o Python os.stat()
strings no yes /usr/bin/strings
stty no yes /bin/stty
su no yes /bin/su
sulogin no yes /sbin/sulogin
sum no yes /usr/bin/sum
swapoff yes yes /usr/sbin/swapoff
swapon yes yes /usr/sbin/swapon
switch_root no yes /sbin/switch_root
sync yes yes /usr/bin/sync
sysctl no yes /sbin/sysctl
tail yes yes /usr/bin/tail
tar yes yes /usr/bin/tar
tee yes yes /usr/bin/tee
telnet yes yes /usr/bin/telnet
telnetd no no nessuno — nessun demone disponibile per gli scriptlets
test no yes /usr/bin/test o [ in bash
tftp no yes /usr/bin/tftp
time no yes /usr/bin/time o Python
top yes yes /usr/bin/top
touch yes yes /sbin/touch, /usr/bin/touch
tr no yes /usr/bin/tr o Python
traceroute no yes /bin/traceroute
true yes yes /usr/bin/true
tty no yes /usr/bin/tty
tune2fs yes yes /usr/sbin/tune2fs
udhcpc no no /sbin/dhclient
udhcpd no no nessuno — nessun demone disponibile per gli scriptlets
umount yes yes /sbin/umount, /usr/bin/umount
uname no yes /bin/uname o Python os.uname()
uncompress no no nessuno
uniq yes yes /usr/bin/uniq
unix2dos no no sed 's/$//'
unlzma no yes /usr/bin/unlzma
unzip no yes /usr/bin/unzip
uptime no yes /usr/bin/uptime o lettura Python di /proc/uptime
usleep no yes /bin/usleep o Python
uudecode no yes /usr/bin/uudecode o Python
uuencode no yes /usr/bin/uuencode o Python
vconfig yes yes /usr/sbin/vconfig
vi yes yes /usr/bin/vi
vlock no no nessuno
watch no yes /usr/bin/watch
watchdog no no nessuno
wc yes yes /usr/bin/wc
wget yes yes /sbin/wget, /usr/bin/wget
which no yes /usr/bin/which
who no yes /usr/bin/who
whoami no yes /usr/bin/whoami
xargs yes yes /usr/bin/xargs
yes no yes /usr/bin/yes
zcat yes yes /usr/bin/zcat
zcip no no NetworkManager è in grado di far fronte a questo
[a] Red Hat Enterprise Linux 6 presenta GNU awk e non busybox awk nell'ambiente di installazione.
[b] GNU bash è in grado di fornire la funzionalità basename usando una manipolazione della stringa. Se var="/usr/bin/command", allora echo ${var##*/} darà command.
[c] GNU bash è in grado di fornire la funzionalità dirname usando una manipolazione della stringa. Se var="/usr/bin/command" allora echo ${var%/*} darà /usr/bin.