Unix Directories, Files and Inodes
Every directory and file is listed in its parent directory. In the case of the root directory, that parent is itself. A directory is a file that contains a table listing the files contained within it, giving file names to the inode numbers in the list. An inode is a special file designed to be read by the kernel to learn the information about each file. It specifies the permissions on the file, ownership, date of creation and of last access and change, and the physical location of the data blocks on the disk containing the file.
A program, or command, interacts with the kernel to provide the environment and perform the functions called for by the user. A program can be an executable shell file, known as a shell script; a built-in shell command; or a source compiled, object code file.
The shell is a command line interpreter. The user interacts with the kernel through the shell. You can write ASCII [text]scripts to be acted upon by a shell.