Приложение G. Альтернативы команд busybox

Альтернативы команд busybox

В отличие от предыдущих выпусков, Red Hat Enterprise Linux 6 не включает набор команд busybox для окружений %pre и %post. Таблица G.1, «Альтернативы команд busybox» содержит список команд busybox, их альтернативы в bash и доступность в окружениях %pre и %post. В таблице приведены полные пути к командам, хотя при выполнении в их указании необходимости нет, так как это определяется переменной PATH.
Если команда может выполняться только в окружении %post, доступ к ней будет определяться наличием соответствующего пакета. Команды, перечисленные в столбце «Новая команда или альтернатива» (см. Таблица G.1, «Альтернативы команд busybox»), доступны в Red Hat Enterprise Linux 6, хотя не все команды будут доступны в установленной системе.
Если команда недоступна, можно воссоздать ее функциональность с помощью сценария Python, так как в окружении %pre и %post доступны инструменты и модули 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
catv нет нет cat -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 нет нет нет — скриплеты не могут использовать службы
dos2unix нет нет sed '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 нет нет none — файловая система 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 нет нет нет — скриплеты не могут использовать службы
hush нет нет нет
hwclock да да /usr/sbin/hwclock
id нет да /usr/bin/id или Python
ifconfig да да /sbin/ifconfig, /usr/sbin/ifconfig
ifdown нет нет ifconfig устройство down
ifup нет нет ifconfig устройство up
inetd нет нет нет — скриплеты не могут использовать службы
insmod да да /sbin/insmod, /usr/sbin/insmod
install нет да /usr/bin/install или mkdir/cp/chmod/chown/chgrp
ip да да /sbin/ip, /usr/sbin/ip
ipaddr нет нет ifconfig или ip
ipcalc да да /sbin/ipcalc, /usr/bin/ipcalc
ipcrm нет да /usr/bin/ipcrm
ipcs нет да /usr/bin/ipcs
iplink нет нет ip
iproute нет нет ip
iptunnel нет да /sbin/iptunnel
kill да да /sbin/kill, /usr/bin/kill
killall да да /usr/bin/killall
lash нет нет нет
last нет да /usr/bin/last
length нет нет Python или 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
realpath нет нет Python 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 или [ в 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
unix2dos нет нет sed '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
zcip нет нет NetworkManager предоставляет эту функиональность

[a] В состав Red Hat Enterprise Linux 6 входит GNU awk вместо busybox awk.

[b] В GNU bash функциональность basename достигается путем обработки строк. Выражение If var="/usr/bin/command", then echo ${var##*/} вернет command.

[c] В GNU bash функциональность dirname достигается путем обработки строк. Выражение If var="/usr/bin/command", then echo ${var%/*} вернет /usr/bin.