Home

UNIX For Beginners — Second Edition

image

Contents

1. Delete also works When the other person types his control d you will get the message EOF on your terminal If you write to someone who isn t logged in or who doesn t want to be disturbed you ll be told If the target is logged in but doesn t answer after a decent interval simply type control d On line Manual The Programmer s Manual is typically kept on line If you get stuck on something and can t find an expert to assist you you can print on your terminal some manual section that might help This is also use ful for getting the most up to date information on a command To print a manual section type man com mand name Thus to read up on the who command type man who and of course man man tells all about the man command Computer Aided Instruction Your system may have available a program called learn which provides computer aided instruction on the file system and basic commands the editor document preparation and even C programming Try typing the command learn If learn exists on your system it will tell you what to do from there II DAY TO DAY USE Creating Files The Editor If you have to type a paper or a letter or a pro gram how do you get the information stored in the machine Most of these tasks are done with the text editor ed Since ed is thoroughly documented in ed 1 and explained in A Tutorial Introduction to the UNIX Text E
2. When you get a login message type your login name in lower case Follow it by a the system will not do anything until you type a If a password is required you will be asked for it and if possible printing will be turned off while you type it Don t forget The culmination of your login efforts is a prompt character a single character that indicates that the sys tem is ready to accept commands from you The prompt character is usually a dollar sign or a percent sign You may also get a message of the day just before the prompt character or a notification that you have mail Typing Commands Once you ve seen the prompt character you can type commands which are requests that the system do something Try typing date followed by You should get back something like Mon Jan 16 14 17 10 EST 1978 Don t forget the after the command or nothing will happen If you think you re being ignored type a something should happen won t be mentioned again but don t forget it it has to be there at the end of each line Another command you might try is who which tells you everyone who is currently logged in who gives something like mb tty01 Jan16 09 11 ski tty05 Jan 16 09 33 gam ttyl1 Jan 16 13 07 The time is when the user logged in ttyxx is the system s idea of what terminal the user is on If you make a mistake typing the command name and refer to a non existent command you will be told For exam
3. What files are out there The Is for list command lists the names not contents of any of the files that knows about If you type Is the response will be junk temp which are indeed the two files just created The names are sorted into alphabetical order automatically but other variations are possible For example the command Is t causes the files to be listed in the order in which they were last changed most recent first The l option gives a long listing ls 1 will produce something like rw rw rw l bwk 41 Jul 22 2 56 junk rw rw rw 1 bwk 78 Jul 22 2 57 temp The date and time are of the last This is not strictly true if you hang up while editing the data you were working on is saved in a file called ed hup which you can continue with at your next session change to the file The 41 and 78 are the number of characters which should agree with the numbers you got from ed bwk is the owner of the file that is the person who created it The rw rw rw tells who has permission to read and write the file in this case every one Options can be combined ls lt gives the same thing as Is 1 but sorted into time order You can also name the files you re interested in and Is will list the information about them only More details can be found in Is 1 The use of optional arguments that begin with a minus sign like t and It is a common convention for programs In general if a program acc
4. and rm removes all files You had better be sure that s what you wanted to say The is not the only pattern matching feature available Suppose you want to print only chapters 1 through 4 and 9 Then you can say pr chap 12349 The means to match any of the characters inside the brackets A range of consecutive letters or digits can be abbreviated so you can also do this with pr chap 1 49 Letters can also be used within brackets a z matches any character in the range a through z The pattern matches any single character so ls lists all files which have single character names and Is l chap 1 lists information about the first file of each chapter chap1 1 chap2 1 etc Of these niceties is certainly the most useful and you should get used to it The others are frills but worth knowing If you should ever have to turn off the special meaning of etc enclose the entire argument in single quotes as in 1s We ll see some more examples of this shortly What s in a Filename Continued When you first made that file called junk how did the system know that there wasn t another junk some where else especially since the person in the next office is also reading this tutorial The answer is that gener ally each user has a private which contains only the files that belong to him When you log in you are in your directory Unless you take special action when you create a n
5. out mechanism so you ll be there forever unless you hang up Mail When you log in you may sometimes get the mes sage You have mail provides a postal system so you can communicate with other users of the system To read your mail type the command mail Your mail will be printed one message at a time most recent message first After each message mail waits for you to say what to do with it The two basic responses are d which deletes the message and which does not so it will still be there the next time you read your mailbox Other responses are described in the manual Earlier versions of mail do not process one message at a time but are otherwise similar How do you send mail to someone else Suppose it is to go to joe assuming joe is someone s login name The easiest way is this mail joe now type in the text of the letter on as many lines as you like After the last line of the letter type the character control d that is hold down control and type a letter d And that s it The control d sequence often called EOF for end of file is used throughout the system to mark the end of input from a terminal so you might as well get used to it For practice send mail to yourself This isn t as strange as it might sound mail to oneself is a handy reminder mechanism There are other ways to send mail you can send a previously prepared letter and you can mail to
6. system routines and interfaces file formats and some of the maintenance procedures You can t live without this although you will probably only need to read sec tion 1 Documents for Use with the Time sharing System Vol ume 2 of the Programmer s Manual This contains more extensive descriptions of major commands and tutorials and reference manuals All of the papers listed below are in it as are descriptions of most of the programs mentioned above D M Ritchie and K L Thompson The Time sharing System CACM July 1974 An overview of the sys tem for people interested in operating systems Worth reading by anyone who programs Contains a remark able number of one sentence observations on how to do things right The Bell System Technical Journal BSTJ Special Issue on July August 1978 contains many papers describing recent developments and some retrospective material The 2nd International Conference on Software Engi neering October 1976 contains several papers describing the use of the Programmer s Workbench ver sion of Document Preparation B W Kernighan A Tutorial Introduction to the Text Editor and Advanced Editing on Bell Laboratories 1978 Beginners need the introduction the advanced material will help you get the most out of the editor M E Lesk Typing Documents on Bell Laboratories 1978 Describes the ms macro package which iso lates the novice from the vagaries of
7. when you get tired of creating and moving files there is a command to remove files from the file system called rm rm temp temp will remove both of the files named You will get a warning message if one of the named files wasn t there but otherwise rm like most commands does its work silently There is no prompt ing or chatter and error messages are occasionally curt This terseness is sometimes disconcerting to new comers but experienced users find it desirable What s in a Filename So far we have used filenames without ever saying what s a legal name so it s time for a couple of rules First filenames are limited to 14 characters which is enough to be descriptive Second although you can use almost any character in a filename common sense says you should stick to ones that are visible and that you should probably avoid characters that might be used with other meanings We have already seen for example that in the ls command Is t means to list in time order So if you had a file whose name was t you would have a tough time listing it by name Besides the minus sign there are other characters which have special meaning To avoid pitfalls you would do well to use only letters numbers and the period until you re familiar with the situation On to some more positive suggestions Suppose you re typing a large document like a book Logically this divides into many small pieces like chapters and perhaps se
8. affect any permissions associated with a file if you couldn t access a file from your own directory chang ing to another directory won t alter that fact Of course if you forget what directory you re in type pwd to find out It is usually convenient to arrange your own files so that all the files related to one thing are in a directory separate from other projects For example when you write your book you might want to keep all the text in a directory called book So make one with mkdir book then go to it with cd book then start typing chapters The book is now found in presumably usr your name book To remove the directory book type rm book rmdir book The first command removes all files from the directory the second removes the empty directory You can go up one level in the tree of files by say ing cd is the name of the parent of whatever directory you are currently in For completeness is an alternate name for the directory you are in Using Files instead of the Terminal Most of the commands we have seen so far pro duce output on the terminal some like the editor also take their input from the terminal It is universal in sys tems that the terminal can be replaced by a file for either or both of input and output As one example Is makes a list of files on your terminal But if you say Is gt filelist a list of your files will be placed in the file filelist which will be created if
9. arguments It also looks after translating etc into lists of filenames and lt gt and into changes of input and output streams The shell has other capabilities too For example you can run two programs with one command line by separating the commands with a semicolon the shell recognizes the semicolon and breaks the line into two commands Thus date who does both commands before returning with a prompt character You can also have more than one program running simultaneously if you wish For example if you are doing something time consuming like the editor script of an earlier section and you don t want to wait around for the results before starting something else you can say ed file lt script amp The ampersand at the end of a command line says start this command running then take further commands from the terminal immedi ately that is don t wait for it to complete Thus the script will begin but you can do something else at the same time Of course to keep the output from interfer ing with what you re doing on the terminal it would be better to say ed file lt script gt script out amp which saves the output lines in a file called script out When you initiate a command with amp the system replies with a number called the process number which identifies the command in case you later want to stop it If you do you can say kill process number If you forget the process number the command ps wi
10. g h gt temp pr lt temp rm temp but this is more work than necessary Clearly what we want is to take the output of cat and connect it to the input of pr So let us use a pipe cat f g h pr The vertical bar means to take the output from cat which would normally have gone to the terminal and put it into pr to be neatly formatted There are many other examples of pipes For example Is pr 3 prints a list of your files in three col umns The program we counts the number of lines words and characters in its input and as we saw earlier who prints a list of currently logged on people one per line Thus who we tells how many people are logged on And of course Is we counts your files Any program that reads from the terminal can read from a pipe instead any program that writes on the ter minal can drive a pipe You can have as many elements in a pipeline as you wish Many programs are written so that they will take their input from one or more files if file arguments are given if no arguments are given they will read from the terminal and thus can be used in pipelines pr is one example pr 3 a b c prints files a b and c in order in three columns But in cat a b c pr 3 pr prints the information coming down the pipeline still in three columns The Shell We have already mentioned once or twice the mysterious shell which is in fact sh 1 The shell is the program that interprets what you type as commands and
11. it doesn t already exist or overwritten if it does The symbol gt means put the output on the following file rather than on the ter minal Nothing is produced on the terminal As another example you could combine several files into one by capturing the output of cat in a file cat f1 f2 f3 gt temp The symbol gt gt operates very much like gt does except that it means add to the end of That is cat f1 f2 f3 gt gt temp means to concatenate f1 f2 and f3 to the end of whatever is already in temp instead of overwrit ing the existing contents As with gt if temp doesn t exist it will be created for you In a similar way the symbol lt means to take the input for a program from the following file instead of from the terminal Thus you could make up a script of commonly used editing commands and put them into a file called script Then you can run the script on a file by saying ed file lt script As another example you can use ed to prepare a letter in file let then send it to sev eral people with mail adam eve mary joe lt let Pipes One of the novel contributions of the system is the idea of a pipe A pipe is simply a way to connect the output of one program to the input of another program so the two run as a sequence of processes a pipeline For example pr f g h will print the files f g and h beginning each on a new page Suppose you want them run together instead You could say cat f
12. on your machine Supporting Tools In addition to the basic formatters there is a host of supporting programs that help with document prepa ration The list in the next few paragraphs is far from complete so browse through the manual and check with people around you for other possibilities eqn and neqn let you integrate mathematics into the text of a document in an easy to learn language that closely resembles the way you would speak it aloud For example the eqn input sum from i 0 to n x sub i pi over 2 produces the output sum from i 0 to n x sub i pi over 2 The program tbl provides an analogous service for preparing tabular material it does all the computations necessary to align complicated columns with elements of varying widths refer prepares bibliographic citations from a data base in whatever style is defined by the formatting package It looks after all the details of numbering ref erences in sequence filling in page and volume num bers getting the author s initials and the journal name right and so on spell and typo detect possible spelling mistakes in a document spell works by comparing the words in your document to a dictionary printing those that are not in the dictionary It knows enough about English spelling to detect plurals and the like so it does a very good job typo looks for words which are unusual and prints those Spelling mistakes tend to be more unusual and thus show
13. to document preparation Put them on your list of things to learn about Most of these programs are either independently documented like eqn and tbl or are sufficiently sim ple that the description in the Programmer s Manual is adequate explanation Hints for Preparing Documents Most documents go through several versions always more than you expected before they are finally finished Accordingly you should do whatever possi ble to make the job of changing them easy First when you do the purely mechanical opera tions of typing type so that subsequent editing will be easy Start each sentence on a new line Make lines short and break lines at natural places such as after commas and semicolons rather than randomly Since most people change documents by rewriting phrases and adding deleting and rearranging sentences these precautions simplify any editing you have to do later Keep the individual files of a document down to modest size perhaps ten to fifteen thousand characters Larger files edit more slowly and of course if you make a dumb mistake it s better to have clobbered a small file than a big one Split into files at natural boundaries in the document for the same reasons that you start each sentence on a new line The second aspect of making change easy is to not commit yourself to formatting details too early One of the advantages of formatting packages like ms is that they permit you to delay decisi
14. up early when the most unusual words are printed first grep looks through a set of files for lines that con tain a particular text pattern rather like the editor s context search does but on a bunch of files For exam ple grep ing chap will find all lines that end with the letters ing in the files chap It is almost always a good practice to put single quotes around the pattern you re searching for in case it contains characters like or that have a special meaning to the shell grep is often useful for finding out in which of a set of files the misspelled words detected by spell are actually located diff prints a list of the differences between two files so you can compare two versions of something automatically which certainly beats proofreading by hand we counts the words lines and characters in a set of files tr translates characters into other characters for example it will convert upper to lower case and vice versa This translates upper into lower tr A Z a z lt input gt output sort sorts files in a variety of ways cref makes cross references ptx makes a permuted index keyword in context listing sed provides many of the editing facilities of ed but can apply them to arbitrarily long inputs awk provides the ability to do both pattern matching and numeric computations and to con veniently process fields within lines These programs are for more advanced users and they are not limited
15. UNIX For Beginners Second Edition Brian W Kernighan ABSTRACT This paper is meant to help new users get started on the UNIX operating system It includes basics needed for day to day use of the system typing commands correcting typing mistakes logging in and out mail inter terminal communication the file system printing files redirecting I O pipes and the shell document preparation a brief discussion of the major formatting programs and macro packages hints on preparing documents and capsule descriptions of some supporting software programming using the editor programming the shell programming in C other languages and tools An annotated bibliography 2 October 1978 UNIX For Beginners Second Edition Brian W Kernighan INTRODUCTION From the user s point of view the operating sys tem is easy to learn and use and presents few of the usual impediments to getting the job done It is hard however for the beginner to know where to start and how to make the best use of the facilities available The purpose of this introduction is to help new users get used to the main ideas of the system and start mak ing effective use of it quickly You should have a couple of other documents with you for easy reference as you read this one The most important is The it s often easier to tell you to read about something in the manual than to repeat its con tents here The other useful docu
16. a num ber of people all at once For more details see mail 1 The notation mail 1 means the command mail in sec tion 1 of the Writing to other users At some point out of the blue will come a mes sage like Message from joe tty07 accompanied by a startling beep It means that Joe wants to talk to you but unless you take explicit action you won t be able to talk back To respond type the command write joe This establishes a two way communication path Now whatever Joe types on his terminal will appear on yours and vice versa The path is slow rather like talking to the moon If you are in the middle of something you have to get to a state where you can type a command Normally whatever program you are running has to ter minate or be terminated If you re editing you can escape temporarily from the editor read the editor tutorial A protocol is needed to keep what you type from getting garbled up with what Joe types Typically it s like this Joe types write smith and waits Smith types write joe and waits Joe now types his message as many lines as he likes When he s ready for a reply he signals it by typing 0 which stands for over Now Smith types a reply also terminated by 0 This cycle repeats until someone gets tired he then sig nals his intent to quit with 00 for over and out To terminate the conversation each side must type a control d character alone on a line
17. ackslash it loses its erase meaning So to enter a sharp or at sign in something type or The system will always echo a newline at you after your at sign even if pre ceded by a backslash Don t worry the at sign has been recorded To erase a backslash you have to type two sharps or two at signs as in The backslash is used exten sively in to indicate that the following character is in some way special Read ahead has full read ahead which means that you can type as fast as you want whenever you want even when some command is typing at you If you type dur ing output your input characters will appear intermixed with the output characters but they will be stored away and interpreted in the correct order So you can type several commands one after another without waiting for the first to finish or even begin Stopping a Program You can stop most programs by typing the charac ter perhaps called delete or rubout on your termi nal The interrupt or break key found on most terminals can also be used In a few programs like the text editor stops whatever the program is doing but leaves you in that program Hanging up the phone will stop most programs Logging Out The easiest way to log out is to hang up the phone You can also type login and let someone else use the terminal you were on It is usually not sufficient just to turn off the terminal Most systems do not use a time
18. arn but the rewards for using them are so great that it is time well spent In this section we will provide a hasty look at the manuscript package known as ms Formatting requests typically consist of a period and two upper case letters such as TL which is used to introduce a title or PP to begin a new paragraph A document is typed so it looks something like this TL title of document AU author name SH sec tion heading PP paragraph PP another paragraph SH another section heading PP etc The lines that begin with a period are the formatting requests For example PP calls for starting a new paragraph The precise meaning of PP depends on what output device is being used typesetter or terminal for instance and on what publication the document will appear in For example ms normally assumes that a paragraph is preceded by a space one line in nroff line in troff and the first word is indented These rules can be changed if you like but they are changed by changing the interpretation of PP not by re typing the docu ment To actually produce a document in standard format using ms use the command troff ms files for the typesetter and nroff ms files for a terminal The ms argument tells troff and nroff to use the manuscript package of formatting requests There are several similar packages check with a local expert to determine which ones are in common use
19. ctions Physically it must be divided too for ed will not handle really big files Thus you should type the document as a number of files You might have a separate file for each chapter called chap1 chap2 etc Or if each chapter were broken into sev eral files you might have chap1 1 chap1 2 chap1 3 chap2 1 chap2 2 You can now tell at a glance where a particular file fits into the whole There are advantages to a systematic naming con vention which are not obvious to the novice user What if you wanted to print the whole book You could say pr chap1l 1 chap1 2 chap1 3 but you would get tired pretty fast and would probably even make mis takes Fortunately there is a shortcut You can say pr chap The means anything at all so this translates into print all files whose names begin with chap listed in alphabetical order This shorthand notation is not a property of the pr command by the way It is system wide a service of the program that interprets commands the shell sh 1 Using that fact you can see how to list the names of the files in the book ls chap produces chap1 1 chap1 2 chap1 3 The is not limited to the last position in a filename it can be anywhere and can occur several times Thus rm junk temp removes all files that contain junk or temp as any part of their name As a special case by itself matches every filename so pr prints all your files alphabetical order
20. ditor we won t spend any time here describing how to use it All we want it for right now is to make some files A file is just a collection of information stored in the machine a simplistic but adequate defini tion To create a file called junk with some text in it do the following ed junk invokes the text editor a command to ed to add text now type in whatever text you want signals the end of adding text The that signals the end of adding text must be at the beginning of a line by itself Don t forget it for until it is typed no other ed com mands will be recognized everything you type will be treated as text to be added At this point you can do various editing operations on the text you typed in such as correcting spelling mistakes rearranging paragraphs and the like Finally you must write the information you have typed into a file with the editor command w w ed will respond with the number of characters it wrote into the file junk Until the w command nothing is stored perma nently so if you hang up and go home the information is lost t But after w the information is there perma nently you can re access it any time by typing ed junk Type a q command to quit the editor If you try to quit without writing ed will print a to remind you A sec ond q gets you out regardless Now create a second file called temp in the same manner You should now have two files junk and temp
21. epts such optional arguments they precede any filename argu ments It is also vital that you separate the various arguments with spaces Is is not the same as Is l Printing Files Now that you ve got a file of text how do you print it so people can look at it There are a host of programs that do that probably more than are needed One simple thing is to use the editor since print ing is often done just before making changes anyway You can say ed junk 1 p ed will reply with the count of the characters in junk and then print all the lines in the file After you learn how to use the editor you can be selective about the parts you print There are times when it s not feasible to use the editor for printing For example there is a limit on how big a file ed can handle several thousand lines Sec ondly it will only print one file at a time and some times you want to print several one after another So here are a couple of alternatives First is cat the simplest of all the printing pro grams cat simply prints on the terminal the contents of all the files named in a list Thus cat junk prints one file and cat junk temp prints two The files are simply concatenated hence the name cat onto the terminal pr produces formatted printouts of files As with cat pr prints all the files named in a list The difference is that it produces headings with date time page num ber and file name at the top of each pa
22. ew file it is made in the directory that you are currently in this is most often your own direc tory and thus the file is unrelated to any other file of the same name that might exist in someone else s directory The set of all files is organized into a usually big tree with your files located several branches into the tree It is possible for you to walk around this tree and to find any file in the system by starting at the root of the tree and walking along the proper set of branches Conversely you can start where you are and walk toward the root Let s try the latter first The basic tools is the command pwd print working directory which prints the name of the directory you are currently in Although the details will vary according to the system you are on if you give the command pwd it will print something like usr your name This says that you are currently in the directory your name which is in turn in the directory usr which is in turn in the root directory called by convention just Even if it s not called usr on your system you will get something analogous Make the corresponding changes and read on If you now type ls usr your name you should get exactly the same list of file names as you get from a plain Is with no arguments Is lists the contents of the current directory given the name of a directory it lists the contents of that directory Next try ls usr This should print a
23. ge and extra lines to skip over the fold in the paper Thus pr junk temp will print junk neatly then skip to the top of a new page and print temp neatly pr can also produce multi column output pr 3 junk prints junk in 3 column format You can use any reasonable number in place of 3 and pr will do its best pr has other capabilities as well see pr 1 It should be noted that pr is not a formatting pro gram in the sense of shuffling lines around and justify ing margins The true formatters are nroff and troff which we will get to in the section on document prepa ration There are also programs that print files on a high speed printer Look in your manual under opr and Ipr Which to use depends on what equipment is attached to your machine Shuffling Files About Now that you have some files in the file system and some experience in printing them you can try big ger things For example you can move a file from one place to another which amounts to giving it a new name like this mv junk precious This means that what used to be junk is now precious If you do an ls command now you will get precious temp Beware that if you move a file to another one that already exists the already existing contents are lost forever If you want to make a copy of a file that is to have two versions of something you can use the cp command cp precious temp makes a duplicate copy of precious in temp1 Finally
24. have been added subsequently but this goes a long way for such a small effort The editor can be made to do things that would normally require special programs on other systems For example to list the first and last lines of each of a set of files such as a book you could laboriously type ed e chap1 1 1p p e chap1 2 1p p etc But you can do the job much more easily One way is to type ls chap gt temp to get the list of filenames into a file Then edit this file to make the necessary series of editing com mands using the global commands of ed and write it into script Now the command ed lt script will produce the same output as the laborious hand typing Alter nately and more easily you can use the fact that the shell will perform loops repeating a set of commands over and over again for a set of arguments for i in chap do ed i lt script done This sets the shell variable i to each file name in turn then does the com mand You can type this command at the terminal or put it in a file for later execution Programming the Shell An option often overlooked by newcomers is that the shell is itself a programming language with vari ables control flow if else while for case subrou tines and interrupt handling Since there are many building block programs you can sometimes avoid writing a new program merely by piecing together some of the building blocks with shell command files We will not go into any detai
25. his shell S C Johnson Yacc Yet Another Compiler Com piler Bell Laboratories CSTR 32 1978 M E Lesk Lex A Lexical Analyzer Generator Bell Laboratories CSTR 39 1975 S C Johnson Lint a C Program Checker Bell Lab oratories CSTR 65 1977 S I Feldman MAKE A Program for Maintaining Computer Programs Bell Laboratories CSTR 57 1977 J F Maranzano and S R Bourne A Tutorial Intro duction to ADB Bell Laboratories CSTR 62 1977 An introduction to a powerful but complex debugging tool S I Feldman and P J Weinberger A Portable Fortran 77 Compiler Bell Laboratories 1978 A full Fortran 77 for systems
26. irectory called profile and place in it the line startup When the shell first gains control when you log in it looks for the profile file and does whatever commands it finds in it We ll get back to the shell in the section on program ming IHI DOCUMENT PREPARATION systems are used extensively for document prepa ration There are two major formatting programs that is programs that produce a text with justified right mar gins automatic page numbering and titling automatic hyphenation and the like nroff is designed to produce output on terminals and line printers troff pro nounced tee roff instead drives a phototypesetter which produces very high quality output on photo graphic paper This paper was formatted with troff Formatting Packages The basic idea of nroff and troff is that the text to be formatted contains within it formatting com mands that indicate in detail how the formatted text is to look For example there might be commands that specify how long lines are whether to use single or double spacing and what running titles to use on each page Because nroff and troff are relatively hard to learn to use effectively several packages of canned for matting requests are available to let you specify para graphs running titles footnotes multi column output and so on with little effort and without having to learn nroff and troff These packages take a modest effort to le
27. ll tell you about everything you have running If you are desperate kill O will kill all your processes And if you re curi ous about other people ps a will tell you about all pro grams that are currently running You can say command 1 command 2 com mand 3 amp to start three commands in the background or you can start a background pipeline with command 1 command 2 amp Just as you can tell the editor or some similar pro gram to take its input from a file instead of from the ter minal you can tell the shell to read a file to get com mands Why not The shell after all is just a pro gram albeit a clever one For instance suppose you want to set tabs on your terminal and find out the date and who s on the system every time you log in Then you can put the three necessary commands tabs date who into a file let s call it startup and then run it with sh startup This says to run the shell with the file startup as input The effect is as if you had typed the contents of startup on the terminal If this is to be a regular thing you can eliminate the need to type sh simply type once only the com mand chmod x startup and thereafter you need only say startup to run the sequence of commands The chmod 1 command marks the file executable the shell recognizes this and runs it as a sequence of commands If you want startup to run automatically every time you log in create a file in your login d
28. long series of names among which is your own login name your name On many systems usr is a directory that contains the directories of all the normal users of the system like you The next step is to try ls You should get a response something like this although again the details may be different bin dev etc lib tmp usr This is a col lection of the basic directories of files that the system knows about we are at the root of the tree Now try cat usr your name junk if junk is still around in your directory The name asr your name junk is called the pathname of the file that you normally think of as junk Pathname has an obvious meaning it represents the full name of the path you have to follow from the root through the tree of directories to get to a particular file It is a universal rule in the system that anywhere you can use an ordi nary filename you can use a pathname Here is a picture which may make this clearer root LIN LAAN bin etc usr dev tmp JIN ZIN ZIN ZIA JIN LAAN adam eve mary he juk junk temp Notice that Mary s junk is unrelated to Eve s This isn t too exciting if all the files of interest are in your own directory but if you work with someone else or on several projects concurrently it becomes handy indeed For example your friends can print your book by saying pr usr your name chap Similarly you can find out what files your neighbor has by sayi
29. ls here examples and rules can be found in An Introduction to the by S R Bourne Programming in C If you are undertaking anything substantial C is the only reasonable choice of programming language everything in the system is tuned to it The system itself is written in C as are most of the programs that run on it It is also a easy language to use once you get started C is introduced and fully described in The C Programming Language by B W Kernighan and D M Ritchie Prentice Hall 1978 Several sections of the manual describe the system interfaces that is how you do I O and similar functions Read UNIX Program ming for more complicated things Most input and output in C is best handled with the standard I O library which provides a set of I O functions that exist in compatible form on most machines that have C compilers In general it s wisest to confine the system interactions in a program to the facilities provided by this library C programs that don t depend too much on special features of such as pipes can be moved to other com puters that have C compilers The list of such machines grows daily in addition to the original it currently includes at least Honeywell 6000 IBM 370 Interdata 8 32 Data General Nova and Eclipse HP 2100 Harris 7 VAX 11 780 SEL 86 and Zilog Z80 Calls to the standard I O library will work on all of these machines There are a number of supporting programs that go with C lin
30. ment is A Tutorial Introduction to the Text Editor which will tell you how to use the editor to get text programs data docu ments into the computer A word of warning the system has become quite popular and there are several major variants in wide spread use Of course details also change with time So although the basic structure of and how to use it is common to all versions there will certainly be a few things which are different on your system from what is described here We have tried to minimize the prob lem but be aware of it In cases of doubt this paper describes Version 7 This paper has five sections 1 Getting Started How to log in how to type what to do about mistakes in typing how to log out Some of this is dependent on which system you log into phone numbers for example and what terminal you use so this section must necessarily be supplemented by local information 2 Day to day Use Things you need every day to use the system effectively generally useful com mands the file system 3 Document Preparation Preparing manuscripts is one of the most common uses for systems This section contains advice but not extensive instruc tions on any of the formatting tools 4 Writing Programs is an excellent system for developing programs This section talks about some of the tools but again is not a tutorial in any of the programming languages provided by the system 5 A Reading List An an
31. ng Is asr neighbor name or make your own copy of one of his files by cp usr your neighbor his file yourfile If your neighbor doesn t want you poking around in his files or vice versa privacy can be arranged Each file and directory has read write execute permis sions for the owner a group and everyone else which can be set to control access See Is 1 and chmod 1 for details As a matter of observed fact most users most of the time find openness of more benefit than privacy As a final experiment with pathnames try ls bin usr bin Do some of the names look familiar When you run a program by typing its name after the prompt character the system simply looks for a file of that name It normally looks first in your directory where it typically doesn t find it then in bin and finally in asr bin There is nothing magic about commands like cat or ls except that they have been collected into a couple of places to be easy to find and administer What if you work regularly with someone else on common information in his directory You could just log in as your friend each time you want to but you can also say I want to work on his files instead of my own This is done by changing the directory that you are currently in cd usr your friend On some systems cd is spelled chdir Now when you use a filename in something like cat or pr it refers to the file in your friend s directory Changing directories doesn t
32. notated bibliography of documents that new users should be aware of I GETTING STARTED Logging In You must have a login name which you can get from whoever administers your system You also need to know the phone number unless your system uses permanently connected terminals The system is capa ble of dealing with a wide variety of terminals Ter minet 300 s Execuport TI and similar portables video CRT terminals like the HP2640 etc high priced graphics terminals like the Tektronix 4014 plotting ter minals like those from GSI and DASI and even the venerable Teletype in its various forms But note is strongly oriented towards devices with lower case If your terminal produces only upper case e g model 33 Teletype some video and portable terminals life will be so difficult that you should look for another termi nal Be sure to set the switches appropriately on your device Switches that might need to be adjusted include the speed upper lower case mode full duplex even parity and any others that local wisdom advises Establish a connection using whatever magic is needed for your terminal this may involve dialing a telephone call or merely flipping a switch In either case should type login at you If it types garbage you may be at the wrong speed check the switches If that fails push the break or interrupt key a few times slowly If that fails to produce a login message consult a guru
33. nroff and troff and takes care of most formatting situations If this specific package isn t available on your system something sim ilar probably is The most likely alternative is the macro package mm see your local guru if you use B W Kernighan and L L Cherry A System for Typesetting Mathematics Bell Laboratories Comput ing Science Tech Rep 17 M E Lesk Tbl A Program to Format Tables Bell Laboratories CSTR 49 1976 J F Ossanna Jr NROFF TROFF User s Manual Bell Laboratories CSTR 54 1976 troff is the basic for matter used by ms eqn and tbl The reference manual is indispensable if you are going to write or maintain these or similar programs But start with B W Kernighan A TROFF Tutorial Bell Laborato ries 1976 An attempt to unravel the intricacies of troff Programming B W Kernighan and D M Ritchie The C Program ming Language Prentice Hall 1978 Contains a tuto rial introduction complete discussions of all language features and the reference manual B W Kernighan and D M Ritchie Programming Bell Laboratories 1978 Describes how to interface with the system from C programs I O calls signals processes S R Bourne An Introduction to the Shell Bell Lab oratories 1978 An introduction and reference manual for the Version 7 shell Mandatory reading if you intend to make effective use of the programming power of t
34. ons to the last possible moment Indeed until a document is printed it is not even decided whether it will be typeset or put on a line printer As arule of thumb for all but the most trivial jobs you should type a document in terms of a set of requests like PP and then define them appropriately either by using one of the canned packages the better way or by defining your own nroff and troff com mands As long as you have entered the text in some systematic way it can always be cleaned up and re for matted by a judicious combination of editing com mands and request definitions IV PROGRAMMING There will be no attempt made to teach any of the programming languages available but a few words of advice are in order One of the reasons why the system is a productive programming environment is that there is already a rich set of tools available and facilities like pipes I O redirection and the capabilities of the shell often make it possible to do a job by pasting together programs that already exist instead of writing from scratch The Shell The pipe mechanism lets you fabricate quite com plicated operations out of spare parts that already exist For example the first draft of the spell program was roughly cat collect the files tr put each word on a new line tr delete punctua tion etc sort into dictionary order uniq discard duplicates comm print words in text but not in dictionary More pieces
35. ple if you type whom you will be told whom not found Of course if you inadvertently type the name of some other command it will run with more or less mysterious results Strange Terminal Behavior Sometimes you can get into a state where your ter minal acts strangely For example each letter may be typed twice or the may not cause a line feed or a return to the left margin You can often fix this by logging out and logging back in Or you can read the description of the command stty in section I of the manual To get intelligent treatment of tab characters which are much used in if your terminal doesn t have tabs type the command stty tabs and the system will convert each tab into the right number of blanks for you If your ter minal does have computer settable tabs the command tabs will set the stops correctly for you Mistakes in Typing If you make a typing mistake and see it before has been typed there are two ways to recover The sharp character erases the last character typed in fact suc cessive uses of erase characters back to the beginning of the line but not beyond So if you type badly you can correct as you go dd atte e is the same as date The at sign erases all of the characters typed so far on the current input line so if the line is irretriev ably fouled up type an and start the line over What if you must enter a sharp or at sign as part of the text If you precede either or by a b
36. software like adb prof etc are all virtually useless with Fortran programs There may also be a Fortran 77 compiler on your system If so this is a viable alternative to Ratfor and has the non trivial advantage that it is compatible with C and related programs The Ratfor processor and C tools can be used with Fortran 77 too If your application requires you to translate a lan guage into a set of actions or another language you are in effect building a compiler though probably a small one In that case you should be using the yacc com piler compiler which helps you develop a compiler quickly The lex lexical analyzer generator does the same job for the simpler languages that can be expressed as regular expressions It can be used by itself or as a front end to recognize inputs for a yacc based program Both yacc and lex require some sophistication to use but the initial effort of learning them can be repaid many times over in programs that are easy to change later on Most systems also make available other languages such as Algol 68 APL Basic Lisp Pascal and Snobol Whether these are useful depends largely on the local environment if someone cares about the lan guage and has worked on it it may be in good shape If not the odds are strong that it will be more trouble than it s worth V UNIX READING LIST General K L Thompson and D M Ritchie Programmer s Manual Bell Laboratories 1978 Lists commands
37. t checks C programs for potential porta bility problems and detects errors such as mismatched argument types and uninitialized variables For larger programs anything whose source is on more than one file make allows you to specify the dependencies among the source files and the processing steps needed to make a new version it then checks the times that the pieces were last changed and does the minimal amount of recompiling to create a consistent updated version The debugger adb is useful for digging through the dead bodies of C programs but is rather hard to learn to use effectively The most effective debugging tool is still careful thought coupled with judiciously placed print statements The C compiler provides a limited instrumentation service so you can find out where programs spend their time and what parts are worth optimizing Compile the routines with the p option after the test run use prof to print an execution profile The command time will give you the gross run time statistics of a program but they are not super accurate or reproducible Other Languages If you have to use Fortran there are two possibili ties You might consider Ratfor which gives you the decent control structures and free form input that char acterize C yet lets you write code that is still portable to other environments Bear in mind that Fortran tends to produce large and relatively slow running programs Furthermore supporting

Download Pdf Manuals

image

Related Search

Related Contents

GEN-6000-SMH0  TP-Link TD-W8960N User's Manual  Specifications  carnet spot50  Scrubtec545-553E-he  

Copyright © All rights reserved.
Failed to retrieve file