From the book Advanced Programming in the Unix environment:Linux uses the Bourne-again shell for its default shell. In  fact,/bin/sh is a link to /bin/bash.The default user shell in FreeBSD  and Mac OS X is the TENEX C shell, but they use the Bourne shell for  their administrative shell scripts because the C shells programming  language is notoriously difcult to use.Solaris, having its heritage  in both BSD and System V, provides all the shells shown in Figure1.2.  Free ports of most of the shells area available on the Internet.What does the author mean by the term port here and how is it related to shells ?
What does port mean in context of a shell in unix?
terminology
A lot of mistakes and inaccuracies in there. Linux is an operating system kernel, it doesn't have a shell. See how shell and kernel belong to the same image reference.If by Linux, they mean a Linux distribution, then, they'd need to be more specific. Not all Linux distributions have bash as their sh.The default user shell in MacOS/X is no longer tcsh, but bash now.I don't think either FreeBSD or MacOS/X ever shipped with the Bourne shell. FreeBSD's sh is a POSIX shell based on the Almquist shell. MacOS/X's one used to be zsh and is now bash.port in this context would refer to a software initially designed for one Operating System that has been adapted (ported) to be able to build on another system. BSDs and MacOS/X (macports) have a packaging system named after that to bundle and include such alien software.In the context of shells, it doesn't really apply as most shells have been designed from the start as being able to compile on several operating systems.