Xref: utzoo comp.unix.i386:4693 comp.unix.xenix:11337 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!auspex!guy From: guy@auspex.auspex.com (Guy Harris) Newsgroups: comp.unix.i386,comp.unix.xenix Subject: Re: Layers Keywords: SCO UNIX Layers Ersatz Job Contrl Message-ID: <3289@auspex.auspex.com> Date: 2 May 90 17:53:51 GMT References: <940@s8.Morgan.COM> <263E2DB2.12E0@marob.masa.com> Followup-To: comp.unix.i386 Organization: Auspex Systems, Santa Clara Lines: 20 >BTW, while running 'strings' on ksh to find the version number, I >noticed that the pathnames of many standard utilities are hard-coded into >the binary. Why would ksh would want to call cc, make, sed, grep, who, >pr, mail or ls? Because you typed "cc", "make", etc. to it.... >Any why would it care about date, mv, rm, or chmod >when these are just wrappers around system calls? Many modern UNIX shells have mechanisms to avoid doing a full search of PATH every time you run a command. The S5 Bourne shell, the C shell, and the Korn shell all seem to have their own different ones; "ksh" uses aliases. It supports "tracked aliases"; this means that the first time you run a command, it does a path search, and then aliases that command's name to the full path of the copy it found, so that subsequent executions go straight to the right path. As I remember, the Korn shell also includes some pre-defined aliases of that sort, and those are the strings you found.