home *** CD-ROM | disk | FTP | other *** search
- H-NET H-NET H-NET H-NET H-NET H-NET H-NET H
- N N
- E ** H-Net Magazine ** E
- T T
- H Volume One, Issue 1, File #03 of 20 H
- N N
- E An Introduction to UNIX, by MINOTAUR. E
- T T
- H-NET H-NET H-NET H-NET H-NET H-NET H-NET H
-
-
- UNIX is widely-touted as 'the operating sustem of the future', though in fact
- it dates from 1969 (it was developed originally by Bell Laboratories, which
- runs most of the telephone systems in the USA). Since then it's been under
- continuous development; so it's not so much an old operating system as a fairly
- mature one, if you see what I mean. Hackernet BBS has many unix files for you.
-
- Unix gets brownie points straight off because it was conceived by a user of
- computers rather than a software specialist or some other sort of software
- designer. So it is relatively easy to use; which nearly all other software the
- prime goal often seems to be to make money, or to sell more hardware and
- software, or whatever.
-
- In brief, UNIX is a general-purpose, multi-user operarting system with a clever
- method of holding files. It's a complex system, which means both that it is
- rich in facilities and difficult to get to grip with - until now!.....
-
- BEGINNER'S GUIDE TO THE WONDERFUL WORLD OF UNIX
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- The aim of this first textfile is to give an insight into the fundamentals of
- UNIX. Subsequent textfiles will delve into all areas of UNIX in greater depth.
-
- WHAT IS UNIX?
- ~~~~~~~~~~~~~
-
- The UNIX operating system can be divided into a number of distinct parts. First
- there is the part of the system which performs all of the interface to the
- hardware, scheduling disks, managing memory, handling terminal I/O and
- generallu handling any requests to and from the devices on the system. This
- part of UNIX is called the UNIX Kernel. It is in fact one large, compiled 'C'
- program which is kept on the hard disk and loaded into memory when the system
- is booted up. The UNIX Kernel is always kept in memory because practically
- everything that is done on UNIX uses the Kernel. Buts on its own, it is of
- little use. There is no point in just having an interface to the hardware - an
- itnerface to the user is also required. This is provided by the UNIX shell.
-
- The shell is another name for a TIP (Terminal Interface Program) or a JCL (Job
- Control Language). Its job is to read input from the terminal and execute the
- right programs, depending on the input. A program which is executing in UNIX
- is called a process. In fact, the shell is also a 'C' program which is
- executing for each terminal which is logged on. It reads input from the
- terminal, interprets the input in various ways and starts the appropriate
- processes.
-
- As well as interpreting input and executing processes, the shell has its own
- control-flow constructs and it can therefore be used as a programming language.
- It also handles pipes and redirection of I/O which will be the subject of a
- later textfile.
-
- The way the UNIX shell works is much the same as other operating systems. It
- displays a prompt, normally '$' the user types in the command to execute and
- the shell reads the command, searches for the program which is the same name as
- the command typed in and it then executes this file, if it found it. When the
- program finishes executing, the shell redisplays the prompt to the terminal.
-
- OK, so we have a Kernel to handle the devices and a Shell to interpret input
- form the users terminal. The final and by far the largest part of UNIX is the
- Programs. There are many Programs in UNIX which form a part of the operating
- system. In UNIX jargon, these are called Utilities.
-
- There are Utilities to look at directories, edit files, semd files to the line
- printer, perform backups, look at files, delete files, the list is endless.
- These Utilities are, to the user, commands which are typed in at the terminal
- prompt. For example; 'ls' is the UNIX Utility to list the directory; 'cd' is
- the Utility to change directory. In some systems the Utilities form a part of
- the terminal interface program which interacts with the user. In UNIX, very
- few Utilities are a part of the Shell, the majority of them are external to the
- Shell and are called up whenever they are needed.
-
- This is because there are 200-300 UNIX Utilities, and including all of them in
- the shell would obviously increase the size of the Shell to an unreasonable
- level. It is much neater to keep them on the disk to be called as and when
- they are needed.
-
- On a typical UNIX system, as well as the operating system, there would also be
- some other packages, word processing, spreadsheets, etc. These are necessary
- because UNIX does not include any of these - UNIX is only an Operating System.
-
-
- THE UNIX FILE STRUCTURE
- ~~~~~~~~~~~~~~~~~~~~~~~
-
- The above description of UNIX is very conceptual. You never actually se the
- UNIX Kernel, excpept perhaps as a process on the system. The Shell too, is
- just always there when you login. The file structure, however, has to be
- manipulated and managed by the user all the time. The UNIX file structure is
- hierarchical.
-
- Within the file structure there are files and there are directories - as shown
- in the diagram below :-
-
- /(root)
-
- |
- _________________________________________________
- | | | | | | |
- bin dev etc lib tmp unix usr
- | | | | | | |
- ----- ----- ----- ----- ----- ----- -----
- | | | | | | | | | | | | | | | | | | | | |
- --- ---
- ||| |||
-
- Files contain data and directories contain either files and/or directories. At
- the top of the hierarchy is the ROOT directory, this is sometimes referred to
- as /(slash). Below the root directory are the system files and directories.
-
- When a user logs into the system, he logs into his HOME directory. Every user
- of the system has a HOME directory where he can create and delete files and
- directories. This part of the system belongs to him. User directories are
- usually kept in the directory 'usr' which is directly below the root directory.
- For example, say the user Fred has the directory structure as shown below :-
-
-
-
-
-
-
-
-
-
- /(root)
- |
- usr
- |
- fred
- |
- ----------------------------------
- | | | | |
- cprogs memos wpfles sprdsht pending
- | | | | |
- ----- ----- ----- ----- -----
- | | | | | | | | | | | | | | |
- 1990
-
- When Fred logs on he will automatically go to the directory 'fred'. If
- however, Fred wants to examine his spreadsheets, he may want to go to the
- spreadsheet directory. He would do this by using the 'cd' command to change
- directory, i.e:
-
- $cd sprdsht
-
- This command would make his CURRENT DIRECTORY the spreadsheets directory but
- his HOME directory wouls remain the same. If he wanted to move to his 1988
- directory from his home directory the command would be :
-
- $cd sprdsht/1990
-
- The '/' between the two directory names is the delimiter.
-
- The construct 'sprdsht/1990' is called a Pathname. Infact this particular type
- of Pathname is called a Relative Pathname because it is relative to the
- directory the user is currently in. That is, the path 'sprdsht/1990' would be
- meaningless if the users current directory was 'wpfls'.
-
- Another type of pathname is an Absolute Pathname. This, as the name suggests,
- is a path from the root directory and is therefore independent of the user's
- current directory. Absolute pathnames are represented by using a '/' as the
- first character of a path. For example, the Absolute Pathname of the directory
- mentioned would be '/usr/fred/sprdsht/1990'.
-
- The command :-
-
- $cd /usr/fred/sprdsht/1990
-
- would take Fred right to the directory regardless of his current directory. the
- command to find the Absolute Directory is :-
-
- $pwd
-
- The stands for 'print working directory'. As mentioned above, the command to
- look at the contents of a directory is 'ls'. By simply typing :-
-
- $ls
-
- a list of filenames is output. This looks like :-
-
- cprogs
- memos
- wpfls
- sprdsht
- pending
-
- This is fine if just the names is required but, it is impossible to tell from
- this information which are files and which are directories. As with a lot of
- UNIX commands, the 'ls' command performs a mimimum function.
-
- UNIX commands, generally speaking, have a number of options which can be used
- with them, depending on exactly what the user wants. For example the 'ls'
- command just lists directories, if you want extra information, you have to ask
- for it. UNIX must have either been written by a mimimalist or someone who
- didn't like typing!!! It does no more and no less than it is asked to, this is
- something that users find quite difficult to understand.
-
- The 'ls' command is the perfect example of this. In most other systems it
- would be called 'dir' or 'list'. The most commonly used option with 'ls' is
- 'ls -l'. In this case the 'l' stands for 'long'. The command therefore
- produces a long listing of the current directory. The output looks soemthing
- like that shown below :-
-
- drwxr_xr_x 4 Fred 96 Jun 1 10:00 cprogs
- drwxr_xr_x 4 Fred 195 Jul 25 09:34 memos
- drwxr-xr_x 2 Fred 167 Aug 14 17:29 wpfls
- drwxr_xr_x 2 Fred 84 May 7 07:56 sprdsht
- drwxr_xr_x 2 Fred 952 Jun 16 13:51 pending
-
- This will tell you whether the entry is a file or a directory. The permissions
- (r is for read, w is for write, x is for execute), the number of links to the
- file, the owner, the size (in bytes), the date it was last modified, and the
- name of the entry. Options for the commands are sometimes (not always)
- preceeded with a minus sign and they usually consist of a letter which usually
- stands for something. The reason for this vagueness in the format of UNIX is
- that UNIX has evolved through time and commands have been written by a variety
- of people from a variety of places so there are no hard and fast rules - this
- is another thing that newcomers to UNIX find frustrating. It would be true to
- say that for each one of the 'rules' mentioned above, there are exceptions.
- There are also special commands for adding and removing directories from the
- directory structure. They are 'rmdir' for removing directories and 'mkdir' for
- making directories. They both expect a Pathname as a parameter which is the
- name of the directory to be created or removed. For example, to create the
- directory 'letters' below the directory 'wpfls' from Fred's HOME directory :-
-
- $mkdir wpfls/letters
-
- To remove this directory :-
-
- $rmdir wpfls/letters
-
- The command 'rmdir' will only remove empty directories, that is directories
- which do not contain files or sub-directories.
-
- Every directory in UNIX has two hidden entries, these are '.'(dot) and '..'
- (dot-dot). These are created when the directory is created. '.' references
- the current directory and '..' references the directory above the current
- directory (called the Parent directory). These two directories are in fact the
- key to the way the whole file system is put together. They can be seen by
- using the '-a' option in the 'ls' command (i.e. 'ls -al') and they can also be
- used in relative pathnames. For example :-
-
- $cd ../wpfls
-
- from the directory 'sprdsht' in Fred's HOME directory is a perfectly acceptable
- command.
-
- With these commands many generations of UNIX users have had their first
- foot-hold on UNIX. If you have any UNIX problems or comments to make then
- please leave me (MINOTAUR) a message on the Hackernet BBS.
-
- Minotaur.
-
- ===============================================================================
- [Hackernet BBS,LEEDS,UK(0532)557739, 24hrs. Home of H-Net Hacking magazine]
-
- Downloaded From P-80 International Information Systems 304-744-2253
-