is changing symlinks for "linux from scratch" harmful?
In general, an Ubuntu system has been set up and tested by the Ubuntu developers. Changing these symlinks means you are taking over system configuration. It depends how well the alternative tools you symlink to can replace the original tools. Anyhow, it is not recommended to change such configuration on a production system, but do not hesitate and have fun on a system intended for learning only.
See this answer for some explanation about the dash
command interpreter, and the difference with bash
. Linking sh
to bash
will probably work well because bash
, when invoked as sh
, tries to mimic the startup behavior of the traditional Bourne Shell.
bison
is available in the main repository, and when installed, it links (via the "alternatives" system) to a small script /usr/bin/bison.yacc
that runs bison (Thanks to user mchid for the comment).
One can install gawk
on an Ubuntu system, and use this for the awk
command, but by default mawk
is used because is smaller and much faster than gawk
.
Ubuntu uses the Debian-alternatives system, which is why you some symlinks pointing to items in /etc/alternatives
. These, in turn, link back to the tool that is configured to be used. See here to learn about this system.