6.46. Installing Sh-utils-2.0

Estimated build time:           2 minutes
Estimated required disk space:  11 MB

6.46.1. Installation of Sh-utils

Install Shellutils by running the following commands:

./configure --prefix=/usr &&
make &&
make install &&
cd /usr/bin &&
mv date echo false pwd stty /bin &&
mv su true uname hostname /bin &&
mv chroot ../sbin

6.46.2. FHS compliance notes

There is a command installed in this package which is named test. It is often used in shell scripts to evaluate conditions, but is more often encountered in the form of [ condition ]. These brackets are built into the bash interpreter, but the FHS dictates that there should be a [ binary. We create that in this way, while still in the /usr/bin directory:

ln -sf test [

6.46.3. Contents

The Sh-utils package contains the basename, chroot, date, dirname, echo, env, expr, factor, false, groups, hostid, hostname, id, logname, nice, nohup, pathchk, pinky, printenv, printf, pwd, seq, sleep, stty, su, tee, test, true, tty, uname, uptime, users, who, whoami and yes programs.

6.46.4. Description

6.46.4.1. basename

basename strips directory and suffixes from filenames.

6.46.4.2. chroot

chroot runs a command or interactive shell with special root directory.

6.46.4.3. date

date displays the current time in a specified format, or sets the system date.

6.46.4.4. dirname

dirname strips non-directory suffixes from file name.

6.46.4.5. echo

echo displays a line of text.

6.46.4.6. env

env runs a program in a modified environment.

6.46.4.7. expr

expr evaluates expressions.

6.46.4.8. factor

factor prints the prime factors of all specified integer numbers.

6.46.4.9. false

false always exits with a status code indicating failure.

6.46.4.10. groups

groups prints the groups a user is in.

6.46.4.11. hostid

hostid prints the numeric identifier (in hexadecimal) for the current host.

6.46.4.12. hostname

hostname sets or prints the name of the current host system

6.46.4.13. id

id prints the real and effective UIDs and GIDs of a user or the current user.

6.46.4.14. logname

logname prints the current user's login name.

6.46.4.15. nice

nice runs a program with modified scheduling priority.

6.46.4.16. nohup

nohup runs a command immune to hangups, with output to a non-tty

6.46.4.17. pathchk

pathchk checks whether file names are valid or portable.

6.46.4.18. pinky

pinky is a lightweight finger utility which retrieves information about a certain user

6.46.4.19. printenv

printenv prints all or part of the environment.

6.46.4.20. printf

printf formats and prints data (the same as the printf C function).

6.46.4.21. pwd

pwd prints the name of the current/working directory

6.46.4.22. seq

seq prints numbers in a certain range with a certain increment.

6.46.4.23. sleep

sleep delays for a specified amount of time.

6.46.4.24. stty

stty changes and prints terminal line settings.

6.46.4.25. su

su runs a shell with substitute user and group IDs

6.46.4.26. tee

tee reads from standard input and writes to standard output and files.

6.46.4.27. test

test checks file types and compares values.

6.46.4.28. true

True always exits with a status code indicating success.

6.46.4.29. tty

tty prints the file name of the terminal connected to standard input.

6.46.4.30. uname

uname prints system information.

6.46.4.31. uptime

uptime tells how long the system has been running.

6.46.4.32. users

users prints the user names of users currently logged in to the current host.

6.46.4.33. who

who shows who is logged on.

6.46.4.34. whoami

whoami prints the user's effective userid.

6.46.4.35. yes

yes outputs a string repeatedly until killed.

6.46.5. Dependencies

Sh-utils-2.0 needs the following to be installed:


sh from the bash package

ar from the binutils package
as from the binutils package
ld from the binutils package

cmp from the diffutils package

chmod from the fileutils package
chown from the fileutils package
cp from the fileutils package
ln from the fileutils package
ls from the fileutils package
mv from the fileutils package
rm from the fileutils package

cc from the gcc package

egrep from the grep package
grep from the grep package

make from the make package

sed from the sed package

basename from the sh-utils package
expr from the sh-utils package
sleep from the sh-utils package
uname from the sh-utils package

cat from the textutils package
tr from the textutils package