Where do I find source code of linux commands?

Linux commands such as cp, dir, ls, grind, man (etc.) There are other programs that (hopefully written in C). I really want to know exactly how they work (and make some changes for some), so I need the source code. . . Can you tell me where to find source code for Linux commands? Thanks in advance!

Tags: , , , ,

One Response to “Where do I find source code of linux commands?”

  1. Bobby says:

    In general there are several places you can go to get the source for these commands. This is mostly because there can be several different implementations of the commands.

    1) The company who distributed your version of Linux. Most versions of these types of commands are under the GPL and as such the person or company who gave you the executable has to make a copy of the source code available to you. Usually these are released as source rpms, and some times come on one of the CDs or DVDs that you used to install Linux with. You can often find them on the web too.

    For example the RHEL5 Server source rpm (SRPM) is
    ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/coreutils-5.97-12.1.el5.src.rpm

    Most of the time your distribution will have a tool like yum to install these and other rpms for you.

    2) http://www.gnu.org
    GNU probably wrote the commands that are on your distribution of Linux, although a few very specialized distros use different implementations of the commands (Usually busybox http://www.busybox.net/ but this is really rare).

    http://www.gnu.org/software/coreutils/
    has instructions on how to download a very recent copy of the code, which may be much much newer then the version currently installed on your computer.

    NOTE:

    Some shells, like tcsh and csh have their own implementations of these commands built into them. This is because it is faster to run the command as part of your shell then to fork and exec a new command. So if you do change them be sure to check that you are actually running your updated version. BASH usually does not play these games but you can always check by running which followed by the name of your command.

Leave a Reply