<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3521813103867728569</id><updated>2012-02-02T06:21:39.560-08:00</updated><category term='ARTICLES'/><category term='share point portal blogs link'/><category term='Q AND ANS'/><category term='ASP Tutorials'/><category term='Sharepoint Tutorials'/><category term='Practice Questions for Exam 70-536'/><category term='WIDGETS'/><category term='INFORMATICA(ETL) NOTES'/><category term='german language tutorials'/><category term='Uml Tutorials'/><category term='C#.Net'/><category term='UNIX Tutorials'/><category term='SSIS'/><category term='DotNet Tutorials'/><category term='Tips and Tricks'/><category term='MISC'/><category term='MAIL COLLECTIONS'/><title type='text'>Knowledge is power</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://chalasanikamesh.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://chalasanikamesh.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default?start-index=101&amp;max-results=100'/><author><name>chalasani kamesh</name><uri>https://profiles.google.com/105231456151823138576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-wZK-njVDkZM/AAAAAAAAAAI/AAAAAAAADSk/NQfL40EoTyc/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>212</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3521813103867728569.post-4292881391023936688</id><published>2010-11-29T01:18:00.000-08:00</published><updated>2010-11-29T01:18:17.549-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX Tutorials'/><title type='text'>SIMPLE FILTERS</title><content type='html'>&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="font-size: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .25in;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Filters are the commands which accept data from standard input manipulate it and write the results to standard output. Filters are the central tools of the UNIX tool kit, and each filter performs a simple function. Some commands use delimiter, pipe (|) or colon (:). Many filters work well with delimited fields, and some simply won’t work without them. The piping mechanism allows the standard output of one filter serve as standard input of another. The filters can read data from standard input when used without a filename as argument, and from the file otherwise&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;The Simple Database&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;Several UNIX commands are provided for text editing and shell programming. (emp.lst) - each line of this file has six fields separated by five delimiters. The details of an employee are stored in one single line. This text file designed in fixed format and containing a personnel database. There are 15 lines, where each field is separated by the delimiter |.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;$ cat emp.lst&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;2233 | a.k.shukla | g.m | sales | 12/12/52 | 6000&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;9876 | jai sharma | director | production | 12/03/50 | 7000&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;5678 | sumit chakrobarty | d.g.m. | marketing | 19/04/43 | 6000&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;2365 | barun sengupta | director | personnel | 11/05/47 | 7800&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;5423 | n.k.gupta | chairman | admin | 30/08/56 | 5400&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;1006 | chanchal singhvi | director | sales | 03/09/38 | 6700&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;6213 | karuna ganguly | g.m. | accounts | 05/06/62 | 6300&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;1265 | s.n. dasgupta | manager | sales | 12/09/63 | 5600&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;4290 | jayant choudhury | executive | production | 07/09/50 | 6000&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;2476 | anil aggarwal | manager | sales | 01/05/59 | 5000&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;6521 | lalit chowdury | directir | marketing | 26/09/45 | 8200&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;3212 | shyam saksena | d.g.m. | accounts | 12/12/55 | 6000&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;3564 | sudhir agarwal | executive | personnel | 06/07/47 | 7500&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;2345 | j. b. sexena | g.m. | marketing | 12/03/45 | 8000&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;0110 | v.k.agrawal | g.m.| marketing | 31/12/40 | 9000&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;pr : paginating files&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;We know that,&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in; text-align: justify; text-indent: .5in;"&gt;cat dept.lst&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;01|accounts|6213&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;02|progs|5423&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;03|marketing|6521&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;04|personnel|2365&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;05|production|9876&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;06|sales|1006&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;pr command adds suitable headers, footers and formatted text. pr adds five lines of margin at the top and bottom. The header shows the date and time of last modification of the file along with the filename and page number.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in; text-align: justify; text-indent: .5in;"&gt;&lt;span lang="FR" style="mso-ansi-language: FR;"&gt;pr dept.lst&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in; text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span lang="FR" style="mso-ansi-language: FR;"&gt;May 06 10:38 1997 dept.lst page 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;01:accounts:6213&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;02:progs:5423&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;03:marketing:6521&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;04:personnel:2365&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;05:production:9876&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;06:sales:1006&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;…blank lines…&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;pr options&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;The different options for pr command are: &lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-k prints k (integer) columns&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-t to suppress the header and footer&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-h to have a header of user’s choice&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-d double spaces input&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-n will number each line and helps in debugging&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-on offsets the lines by n spaces and increases left margin of page&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;pr +10 chap01&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;starts printing from page 10&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;pr -l 54 chap01&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;this option sets the page length to 54&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;head – displaying the beginning of the file&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;The command displays the top of the file. It displays the first 10 lines of the file, when used without an option.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in; text-align: justify; text-indent: .5in;"&gt;head emp.lst&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in; text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;-n to specify a line count&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;head -n 3 emp.lst&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;will display the first three lines of the file.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;tail – displaying the end of a file&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;This command displays the end of the file. It displays the last 10 lines of the file, when used without an option.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in; text-align: justify; text-indent: .5in;"&gt;tail emp.lst&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in; text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;-n to specify a line count&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;tail -n 3 emp.lst&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;displays the last three lines of the file. We can also address lines from the beginning of the file instead of the end. The +count option allows to do that, where count represents the line number from where the selection should begin.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;tail +11 emp.lst&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Will display 11&lt;sup&gt;th&lt;/sup&gt; line onwards&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Different options for tail are:&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style="mso-list: l0 level1 lfo2; tab-stops: list .5in; text-align: justify;"&gt;Monitoring the file growth (-f)&lt;/li&gt;&lt;li class="MsoNormal" style="mso-list: l0 level1 lfo2; tab-stops: list .5in; text-align: justify;"&gt;Extracting bytes rather than lines (-c)&lt;/li&gt;&lt;/ul&gt;&lt;div class="MsoNormal" style="margin-left: .25in; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Use tail –f when we are running a program that continuously writes to a file, and we want to see how the file is growing. We have to terminate this command with the interrupt key.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;cut – slitting a file vertically&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;It is used for slitting the file vertically. head -n 5 emp.lst | tee shortlist will select the first five lines of emp.lst and saves it to &lt;i&gt;shortlist. &lt;/i&gt;We can cut by using -c option with a list of column numbers, delimited by a comma (cutting columns).&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;cut -c 6-22,24-32 shortlist&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;cut -c -3,6-22,28-34,55- shortlist&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;The expression 55- indicates column number 55 to end of line. Similarly, -3 is the same as 1-3.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Most files don’t contain fixed length lines, so we have to cut fields rather than columns (cutting fields).&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;-d for the field delimiter&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;-f for the field list&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;cut -d \ | -f 2,3 shortlist | tee cutlist1&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;will display the second and third columns of &lt;i&gt;shortlist&lt;/i&gt; and saves the output in &lt;i&gt;cutlist1. &lt;/i&gt;here | is escaped to prevent it as pipeline character&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-list: l1 level1 lfo1; tab-stops: list .5in; text-align: justify; text-indent: -.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="mso-list: Ignore;"&gt;•&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;To print the remaining fields, we have&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;cut –d \ | -f 1,4- shortlist &amp;gt; cutlist2&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;paste – pasting files&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;When we cut with &lt;i style="mso-bidi-font-style: normal;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;cut,&lt;/span&gt;&lt;/i&gt; it can be pasted back with the &lt;i style="mso-bidi-font-style: normal;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;paste&lt;/span&gt;&lt;/i&gt; command, &lt;i&gt;vertically&lt;/i&gt;&lt;span style="mso-bidi-font-style: italic;"&gt; rather than horizontally. We can view two files side by side by pasting them. In the previous topic, cut was used to create the two files cutlist1 and cutlist2 containing two cut-out portions of the same file. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;paste cutlist1 cutlist2&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;We can specify one or more delimiters with -d&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;paste -d “|” cutlist1 cutlist2&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Where each field will be separated by the delimiter |. Even though paste uses at least two files for concatenating lines, the data for one file can be supplied through the standard input.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;Joining lines (-s)&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Let us consider that the file &lt;i&gt;address book&lt;/i&gt; contains the details of three persons&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;cat addressbook&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;paste -s addressbook&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-to print in one single line&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;paste -s -d ”| | \n” addressbook&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-are used in a circular manner&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;sort : ordering a file&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Sorting is the ordering of data in ascending or descending sequence. The sort command orders a file and by default, the entire line is sorted&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify; text-indent: .5in;"&gt;sort shortlist&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;This default sorting sequence can be altered by using certain options. We can also sort one or more keys (fileds) or use a different ordering rule.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;sort options&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;The important sort options are:&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-tchar &lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;uses delimiter &lt;i&gt;char&lt;/i&gt; to identify fields&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-k n &lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sorts on nth field&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-k m,n&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;starts sort on mth field and ends sort on nth field&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-k m.n&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;starts sort on nth column of mth field&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-u&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;removes repeated lines&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-n&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sorts numerically&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-r&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;reverses sort order&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-f&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;folds lowercase to equivalent uppercase&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-m list&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;merges sorted files in list&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-c&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;checks if file is sorted&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify;"&gt;-o flname&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;places output in file flname&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;sort –t“|” –k 2 shortlist&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sorts the second field (name)&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;sort –t”|” –r –k 2 shortlist&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;or&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;sort –t”|” –k 2r shortlist&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sort order can be revered with this –r option.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;sort –t”|” –k 3,3 –k 2,2 shortlist&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;sorting on secondary key is also possible as shown above.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;sort –t”|” –k 5.7,5.8 shortlist&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;we can also specify a character position with in a field to be the beginning of sort as shown above (sorting on columns). &lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;sort –n numfile&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;when sort acts on numericals, strange things can happen. When we sort a file containing only numbers, we get a curious result. This can be overridden by –n (numeric) option.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;cut –d “|” –f3 emp.lst | sort –u | tee desigx.lst&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;Removing repeated lines can be possible using –u option as shown above. If we cut out the designation filed from emp.lst, we can pipe it to sort to find out the unique designations that occur in the file.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;Other sort options are:&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;sort –o sortedlist –k 3 shortlist&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;sort –o shortlist shortlist&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;sort –c shortlist&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;sort –t “|” –c –k 2 shortlist&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;sort –m foo1 foo2 foo3&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;uniq command – locate repeated and nonrepeated lines&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;When we concatenate or merge files, we will face the problem of duplicate entries creeping in. we saw how sort removes them with the –u option. UNIX offers a special tool to handle these lines – the uniq command. Consider a sorted dept.lst that includes repeated lines:&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in; text-align: justify; text-indent: .5in;"&gt;&lt;span lang="FR" style="mso-ansi-language: FR;"&gt;cat dept.lst&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;displays all lines with duplicates. Where as,&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in; text-align: justify; text-indent: .5in;"&gt;&lt;span lang="FR" style="mso-ansi-language: FR;"&gt;uniq dept.lst&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in; text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;simply fetches one copy of each line and writes it to the standard output. Since uniq requires a sorted file as input, the general procedure is to sort a file and pipe its output to uniq. The following pipeline also produces the same output, except that the output is saved in a file:&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span lang="FR" style="mso-ansi-language: FR;"&gt;sort&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;dept.lst | uniq – uniqlist&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span lang="FR" style="mso-ansi-language: FR;"&gt;Different uniq options are&amp;nbsp;: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Selecting the nonrepeated lines (-u)&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;cut –d “|” –f3 emp.lst | sort | uniq –u&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Selecting the duplicate lines (-d)&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;cut –d “|” –f3 emp.lst | sort | uniq –d&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Counting frequency of occurrence (-c)&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;cut –d “|” –f3 emp.lst | sort | uniq –c&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;tr command – translating characters&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;The tr filter manipulates the individual characters in a line. It translates characters using one or two compact expressions.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify; text-indent: .5in;"&gt;&lt;i&gt;tr options expn1 expn2 standard input&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;It takes input only from standard input, it doesn’t take a filename as argument. By default, it translates each character in expression1 to its mapped counterpart in expression2. The first character in the first expression is replaced with the first character in the second expression, and similarly for the other characters.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify; text-indent: .5in;"&gt;tr ‘|/’ ‘~-’ &amp;lt; emp.lst | head –n 3&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify; text-indent: .5in;"&gt;exp1=‘|/’ ; exp2=‘~-’&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify; text-indent: .5in;"&gt;tr “$exp1” “$exp2” &amp;lt; emp.lst&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Changing case of text is possible from lower to upper for first three lines of the file.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-align: justify; text-indent: .5in;"&gt;head –n 3 emp.lst | tr ‘[a-z]’ ‘[A-Z]’&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Different &lt;b style="mso-bidi-font-weight: normal;"&gt;tr options&lt;/b&gt; are:&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Deleting charecters (-d)&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tr –d ‘|/’ &amp;lt; emp.lst | head –n 3&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Compressing multiple consecutive charecters (-s)&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tr –s ‘ ‘ &amp;lt; emp.lst | head –n 3&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Complementing values of expression (-c)&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tr –cd ‘|/’ &amp;lt; emp.lst&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Using ASCII octal values and escape sequences&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;tr ‘|’ ‘\012’ &amp;lt; emp.lst | head –n 6&lt;/div&gt;&lt;div style="border-bottom: solid windowtext 1.0pt; border: none; mso-border-bottom-alt: solid windowtext .75pt; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;"&gt;  &lt;div class="MsoNormal" style="border: none; mso-border-bottom-alt: solid windowtext .75pt; mso-padding-alt: 0in 0in 1.0pt 0in; padding: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521813103867728569-4292881391023936688?l=chalasanikamesh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chalasanikamesh.blogspot.com/feeds/4292881391023936688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3521813103867728569&amp;postID=4292881391023936688&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default/4292881391023936688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default/4292881391023936688'/><link rel='alternate' type='text/html' href='http://chalasanikamesh.blogspot.com/2010/11/simple-filters.html' title='SIMPLE FILTERS'/><author><name>chalasani kamesh</name><uri>https://profiles.google.com/105231456151823138576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-wZK-njVDkZM/AAAAAAAAAAI/AAAAAAAADSk/NQfL40EoTyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521813103867728569.post-7822400722959924933</id><published>2010-11-26T02:49:00.000-08:00</published><updated>2010-11-26T02:49:48.388-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX Tutorials'/><title type='text'>UNIX System Calls</title><content type='html'>&lt;h2 align="center" style="margin-left: 0in; tab-stops: 0in; text-align: center; text-indent: 0in;"&gt;&lt;/h2&gt;&lt;h2 align="center" style="margin-left: 0in; tab-stops: 0in; text-align: center; text-indent: 0in;"&gt;&lt;/h2&gt;&lt;h2 align="center" style="margin-left: 0in; tab-stops: 0in; text-align: center; text-indent: 0in;"&gt;&lt;/h2&gt;&lt;h2 align="center" style="margin-left: 0in; text-align: center; text-indent: 0in;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A system call is just what its name implies -- a request for the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; operating system to do something on behalf of the user's program.&amp;nbsp; The&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system calls are functions used in the kernel itself.&amp;nbsp; To the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; programmer, the system call appears as a normal C function call.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; However since a system call executes code in the kernel, there must be a&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mechanism to change the mode of a process from user mode to kernel mode.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The C compiler uses a predefined library of functions (the C library)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; that have the names of the system calls.&amp;nbsp; The library functions&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; typically invoke an instruction that changes the process execution mode&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to kernel mode and causes the kernel to start executing code for system&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; calls.&amp;nbsp; The instruction that causes the mode change is often referred to&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; as an "operating system trap" which is a software generated interrupt.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The library routines execute in user mode, but the system call interface&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is a special case of an interrupt handler.&amp;nbsp; The library functions pass&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the kernel a unique number per system call in a machine dependent way --&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; either as a parameter to the operating system trap, in a particular&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; register, or on the stack -- and the kernel thus determines the specific&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system call the user is invoking.&amp;nbsp; In handling the operating system&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trap, the kernel looks up the system call number in a table to find the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; address of the appropriate kernel routine that is the entry point for&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the system call and to find the number of parameters the system call&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expects.&amp;nbsp; The kernel calculates the (user) address of the first&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parameter to the system call by adding (or subtracting, depending on the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; direction of stack growth) an offset to the user stack pointer,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; corresponding to the number of the parameters to the system call.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Finally, it copies the user parameters to the "u area" and call the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; appropriate system call routine.&amp;nbsp; After executing the code for the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system call, the kernel determines whether there was an error.&amp;nbsp; If so,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; it adjusts register locations in the saved user register context,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; typically setting the "carry" bit for the PS (processor status) register&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;and copying the error number into register 0 location.&amp;nbsp; If there were no&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errors in the execution of the system call, the kernel clears the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "carry" bit in the PS register and copies the appropriate return values&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from the system call into the locations for registers 0 and 1 in the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saved user register context.&amp;nbsp; When the kernel returns from the operating&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system trap to user mode, it returns to the library instruction after&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the trap instruction.&amp;nbsp; The library interprets the return values from the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kernel and returns a value to the user program.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;UNIX system calls are used to manage the file system, control processes,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and to provide interprocess communication.&amp;nbsp; The UNIX system interface&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; consists of about 80 system calls (as UNIX evolves this number will&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; increase).&amp;nbsp; The following table lists about 40 of the more important&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system call:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium; text-align: justify;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;GENERAL CLASS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPECIFIC CLASS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYSTEM CALL&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------------------------------------------------------------------------------------&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File Structure&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Creating a Channel&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;creat()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Related Calls&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;open()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; close()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Input/Output&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;read()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;write()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Random Access&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lseek()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Channel Duplication &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dup()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Aliasing and Removing&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;link()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Files&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;unlink()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File Status&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;stat()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fstat()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Access Control&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;access()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chmod()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chown()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;umask()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Device Control &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;ioctl()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---------------------------------------------------------------------&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Process Related&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Process Creation and&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exec()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Calls&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;Termination&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fork()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; wait()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exit()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Process Owner and Group&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getuid()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;geteuid()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;getgid()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;getegid()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Process Identity&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getpid()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;getppid()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Process Control&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;signal()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kill()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;alarm()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Change Working Directory&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chdir()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------------------------------------------------&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Interprocess&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pipelines&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;pipe()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Communication&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Messages&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; msgget()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;msgsnd()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; msgrcv()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;msgctl()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Semaphores&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;semget()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;semop()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shared Memory&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;shmget()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;shmat()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;shmdt()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------------------------------------------------------------------&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [NOTE:&amp;nbsp; The system call interface is that aspect of UNIX that has&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; changed the most since the inception of the UNIX system.&amp;nbsp; Therefore,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when you write a software tool, you should protect that tool by putting&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system calls in other subroutines within your program and then calling&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; only those subroutines.&amp;nbsp; Should the next version of the UNIX system&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; change the syntax and semantics of the system calls you've used, you&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; need only change your interface routines.]&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When a system call discovers and error, it returns -1 and stores the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reason the called failed in an external variable named "errno".&amp;nbsp; The &lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "/usr/include/errno.h" file maps these error numbers to manifest&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; constants, and it these constants that you should use in your programs.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When a system call returns successfully, it returns something other than&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -1, but it does not clear "errno".&amp;nbsp; "errno" only has meaning directly&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; after a system call that returns an error.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When you use system calls in your programs, you should check the value&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returned by those system calls.&amp;nbsp; Furthermore, when a system call&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; discovers an error, you should use the "perror()" subroutine to print a&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; diagnostic message on the standard error file that describes why the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system call failed.&amp;nbsp;&amp;nbsp; The syntax for "perror()" is:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void perror(string)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char string;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "perror()" displays the argument string, a colon, and then the error&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; message, as directed by "errno", followed by a newline.&amp;nbsp; The output of&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "perror()" is displayed on "standard error".&amp;nbsp; Typically, the argument&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; give to "perror()" is the name of the program that incurred the error,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; argv[0].&amp;nbsp; However, when using subroutines and system calls on files, the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; related file name might be passed to "perror()".&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; There are occasions where you the programmer might wish to maintain more&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; control over the printing of error messages than "perror()" provides --&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; such as with a formatted screen where the newline printed by "perror()"&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; would destroy the formatting.&amp;nbsp; In this case, you can directly access the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; same system external (global) variables that "perror()" uses.&amp;nbsp; They are:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extern int errno;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extern char *sys_errlist[];&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extern int sys_nerr;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "errno" has been described above.&amp;nbsp; "sys_errlist" is an array (table) of&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pointers to the error message strings.&amp;nbsp; Each message string is null&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; terminated and does not contain a newline.&amp;nbsp; "sys_nerr" is the number of&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; messages in the error message table and is the maximum value "errno" can&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assume.&amp;nbsp; "errno" is used as the index into the table of error messages.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Following are two sample programs that display all of the system error&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; messages on standard error.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* errmsg1.c &lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print all system error messages using "perror()"&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extern int errno, sys_nerr;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; sys_nerr; ++i)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fprintf(stderr, "%3d",i);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errno = i;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perror(" ");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (0);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* errmsg2.c&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print all system error messages using the global error message table.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extern int sys_nerr;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extern char *sys_errlist[];&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr,"Here are the current %d error messages:\n\n",sys_nerr);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; sys_nerr; ++i)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr,"%3d: %s\n", i, sys_errlist[i]);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;Following are some examples in the use of the most often used system&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; calls.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;File Structure Related System Calls&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The file structure related system calls available in the UNIX system let&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; you create, open, and close files, read and write files, randomly access&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; files, alias and remove files, get information about files, check the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; accessibility of files, change protections, owner, and group of files,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and control devices.&amp;nbsp; These operations either use a character string&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; that defines the absolute or relative path name of a file, or a small&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer called a file descriptor that identifies the I/O channel.&amp;nbsp; A&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; channel is a connection between a process and a file that appears to the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; process as an unformatted stream of bytes.&amp;nbsp; The kernel presents and&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; accepts data from the channel as a process reads and writes that&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; channel.&amp;nbsp; To a process then, all input and output operations are&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; synchronous and unbuffered.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When doing I/O, a process specifies the file descriptor for an I/O&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; channel, a buffer to be filled or emptied, and the maximum size of data&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to be transferred.&amp;nbsp; An I/O channel may allow input, output, or both.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Furthermore, each channel has a read/write pointer.&amp;nbsp; Each I/O operation&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; starts where the last operation finished and advances the pointer by the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; number of bytes transferred.&amp;nbsp; A process can access a channel's data&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; randomly by changing the read/write pointer.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; All input and output operations start by opening a file using either the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "creat()" or "open()" system calls.&amp;nbsp; These calls return a file&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; descriptor that identifies the I/O channel.&amp;nbsp; Recall that file&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; descriptors 0, 1, and 2 refer to standard input, standard output, and&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; standard error files respectively, and that file descriptor 0 is a&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; channel to your terminal's keyboard and file descriptors 1 and 2 are&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; channels to your terminal's display screen.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;o:p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/o:p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt;creat()&lt;/b&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The prototype for the creat() system call is:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int creat(file_name, mode)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *file_name;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int mode;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where file_name is pointer to a null terminated character string that&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; names the file and mode defines the file's access permissions.&amp;nbsp; The mode&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is usually specified as an octal number such as 0666 that would mean&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read/write permission for owner, group, and others or the mode may also&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; be entered using manifest constants defined in the "/usr/include/sys/stat.h"&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file.&amp;nbsp; If the file named by file_name does not exist, the UNIX system creates&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; it with the specified mode permissions. However, if the file does exist, its&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contents are discarded and the mode value is ignored.&amp;nbsp; The permissions of the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; existing file are retained.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Following is an example of how to use creat():&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; creat.c */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;sys types.h=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* defines types used by sys/stat.h */&lt;/sys&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;sys stat.h=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* defines S_IREAD &amp;amp; S_IWRITE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/sys&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int fd;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fd = creat("datafile.dat", S_IREAD | S_IWRITE);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fd == -1)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Error in opening datafile.dat\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("datafile.dat opened for read/write access\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("datafile.dat is currently empty\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; close(fd);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (0);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The following is a sample of the manifest constants for the mode&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; argument as defined in /usr/include/sys/stat.h:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IRWXU 0000700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* -rwx------ */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IREAD 0000400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* read permission, owner */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IRUSR S_IREAD&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IWRITE 0000200&amp;nbsp;&amp;nbsp;&amp;nbsp; /* write permission, owner */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IWUSR S_IWRITE&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IEXEC 0000100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* execute/search permission, owner */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IXUSR S_IEXEC&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IRWXG 0000070&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ----rwx--- */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IRGRP 0000040&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* read permission, group */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IWGRP 0000020&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* write&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IXGRP 0000010&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* execute/search "&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IRWXO 0000007&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* -------rwx */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IROTH 0000004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* read permission, other */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IWOTH 0000002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* write&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define S_IXOTH 0000001&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* execute/search "&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Multiple mode values may be combined by or'ing (using the | operator)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the values together as demonstrated in the above sample program.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&amp;nbsp;&amp;nbsp;open()&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next is the open() system call.&amp;nbsp; open() lets you open a file for&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reading, writing, or reading and writing.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The prototype for the open() system call is:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;fcntl.h&gt;&lt;/fcntl.h&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int open(file_name, option_flags [, mode])&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *file_name;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int option_flags, mode;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where file_name is a pointer to the character string that names the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file, option_flags represent the type of channel, and mode defines the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file's access permissions if the file is being created.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The allowable option_flags as defined in "/usr/include/fcntl.h" are:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; O_RDONLY 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Open the file for reading only */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; O_WRONLY 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Open the file for writing only */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; O_RDWR&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Open the file for both reading and writing*/&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; O_NDELAY 04&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Non-blocking I/O */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; O_APPEND 010&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* append (writes guaranteed at the end) */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; O_CREAT 00400&amp;nbsp; /*open with file create (uses third open arg) */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; O_TRUNC&amp;nbsp; 01000&amp;nbsp;&amp;nbsp;&amp;nbsp; /* open with truncation */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; O_EXCL&amp;nbsp;&amp;nbsp; 02000&amp;nbsp;&amp;nbsp;&amp;nbsp; /* exclusive open */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Multiple values are combined using the | operator (i.e. bitwise OR).&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note:&amp;nbsp; some combinations are mutually exclusive such as: &amp;nbsp;O_RDONLY |&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O_WRONLY and will cause open() to fail.&amp;nbsp; If the O_CREAT flag is used,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then a mode argument is required.&amp;nbsp; The mode argument may be specified in&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the same manner as in the creat() system call.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;Following is an example of how to use open():&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; open.c */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;fcntl.h&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* defines options flags */&lt;/fcntl.h&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;sys types.h=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* defines types used by sys/stat.h */&lt;/sys&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;sys stat.h=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* defines S_IREAD &amp;amp; S_IWRITE&amp;nbsp; */&lt;/sys&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static char message[] = "Hello, world";&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int fd;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char buffer[80];&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* open datafile.dat for read/write access&amp;nbsp;&amp;nbsp; (O_RDWR)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create datafile.dat if it does not exist&amp;nbsp; (O_CREAT)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return error if datafile already exists&amp;nbsp;&amp;nbsp; (O_EXCL)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; permit read/write access to file&amp;nbsp; (S_IWRITE | S_IREAD)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fd = open("datafile.dat",O_RDWR | O_CREAT | O_EXCL, S_IREAD | S_IWRITE);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fd != -1)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("datafile.dat opened for read/write access\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(fd, message, sizeof(message));&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lseek(fd, 0L, 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* go back to the beginning of the file */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (read(fd, buffer, sizeof(message)) == sizeof(message))&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\"%s\" was written to datafile.dat\n", buffer);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("*** error reading datafile.dat ***\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; close (fd);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("*** datafile.dat already exists ***\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (0);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&amp;nbsp;&amp;nbsp;close()&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; To close a channel, use the close() system call.&amp;nbsp; The prototype for the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; close() system call is:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int close(file_descriptor)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int file_descriptor;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where file_descriptor identifies a currently open channel.&amp;nbsp; close()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fails if file_descriptor does not identify a currently open channel.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The read() system call does all input and the write() system call does&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; all output.&amp;nbsp; When used together, they provide all the tools necessary to&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do input and output sequentially.&amp;nbsp; When used with the lseek() system&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call, they provide all the tools necessary to do input and output&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; randomly.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Both read() and write() take three arguments.&amp;nbsp; Their prototypes are:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int read(file_descriptor, buffer_pointer, transfer_size)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int file_descriptor;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *buffer_pointer;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned transfer_size;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int write(file_descriptor, buffer_pointer, transfer_size)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int file_descriptor;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;char *buffer_pointer;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned transfer_size;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where file_descriptor identifies the I/O channel, buffer_pointer points&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to the area in memory where the data is stored&amp;nbsp; for a read() or where&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the data is taken for a write(), and transfer_size defines the maximum&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; number of characters transferred between the file and the buffer.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read() and write() return the number of bytes transferred.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; There is no limit on transfer_size, but you must make sure it's safe to&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; copy transfer_size bytes to or from the memory pointed to by&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer_pointer.&amp;nbsp; A transfer_size of 1 is used to transfer a byte at a&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time for so-called "unbuffered" input/output.&amp;nbsp; The most efficient value&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for transfer_size is the size of the largest physical record the I/O&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; channel is likely to have to handle.&amp;nbsp; Therefore, 1K bytes -- the disk&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; block size -- is the most efficient general-purpose buffer size for a&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; standard file.&amp;nbsp; However, if you are writing to a terminal, the transfer&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is best handled in lines ending with a newline.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For an example using read() and write(), see the above example of&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; open().&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;lseek()&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The UNIX system file system treats an ordinary file as a sequence of&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bytes.&amp;nbsp; No internal structure is imposed on a file by the operating&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system.&amp;nbsp; Generally, a file is read or written sequentially -- that is,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from beginning to the end of the file.&amp;nbsp; Sometimes sequential reading and&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writing is not appropriate.&amp;nbsp; It may be inefficient, for instance, to&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read an entire file just to move to the end of the file to add&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; characters.&amp;nbsp; Fortunately, the UNIX system lets you read and write&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; anywhere in the file.&amp;nbsp; Known as "random access", this capability is made&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; possible with the lseek() system call.&amp;nbsp; During file I/O, the UNIX system&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uses a long integer, also called a File Pointer, to keep track of the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; next byte to read or write.&amp;nbsp; This long integer represents the number of&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bytes from the beginning of the file to that next character.&amp;nbsp; Random&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; access I/O is achieved by changing the value of this file pointer using&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the lseek() system call.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The prototype for lseek() is:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long lseek(file_descriptor, offset, whence)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int file_descriptor;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long offset;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int whence;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where file_descriptor identifies the I/O channel and offset and whence&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; work together to describe how to change the file pointer according to&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the following table:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; whence&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new position&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------------------------------&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; offset bytes into the file&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; current position in the file plus offset&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; current end-of-file position plus offset&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If successful, lseek() returns a long integer that defines the new file&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pointer value measured in bytes from the beginning of the file.&amp;nbsp; If&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsuccessful, the file position does not change.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Certain devices are incapable of seeking, namely terminals and the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; character interface to a tape drive.&amp;nbsp; lseek() does not change the file&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pointer to these devices.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Following is an example using lseek():&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* lseek.c&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;fcntl.h&gt;&lt;/fcntl.h&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int fd;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long position;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fd = open("datafile.dat", O_RDONLY);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( fd != -1)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; position = lseek(fd, 0L, 2);&amp;nbsp; /* seek 0 bytes from end-of-file */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (position != -1)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("The length of datafile.dat is %ld bytes.\n", position);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perror("lseek error");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("can't open datafile.dat\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; close(fd);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Many UNIX systems have defined manifest constants for use as the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "whence" argument of lseek().&amp;nbsp; The definitions can be found in the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "file.h" and/or "unistd.h" include files.&amp;nbsp; For example, the University&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; of Maryland's HP-9000 UNIX system has the following definitions:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from file.h we have:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define L_SET&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* absolute offset */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define L_INCR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* relative to current offset */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define L_XTND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* relative to end of file */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and from unistd.h we have:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define SEEK_SET&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set file pointer to "offset" */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define SEEK_CUR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 /* Set file pointer to current plus "offset" */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define SEEK_END&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set file pointer to EOF plus "offset" */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The definitions from unistd.h are the most "portable" across UNIX and&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MS-DOS C compilers.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;link()&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The UNIX system file structure allows more than one named reference to a&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; given file, a feature called "aliasing".&amp;nbsp; Making an alias to a file&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; means that the file has more than one name, but all names of the file&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; refer to the same data.&amp;nbsp; Since all names refer to the same data,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; changing the contents of one file changes the contents of all aliases to&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; that file.&amp;nbsp; Aliasing a file in the UNIX system amounts to the system&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; creating a new directory entry that contains the alias file name and&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then copying the i-number of a existing file to the i-number position of&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this new directory entry.&amp;nbsp; This action is accomplished by the link()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system call.&amp;nbsp; The link() system call links an existing file to a new&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The prototype for link() is:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int link(original_name, alias_name)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *original_name, *alias_name;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where both original_name and alias_name are character strings that name&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the existing and new files respectively.&amp;nbsp; link() will fail and no link&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; will be created if any of the following conditions holds:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a path name component is not a directory.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a path name component does not exist.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a path name component is off-limits.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; original_name does not exist.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alias_name does exist.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; original_name is a directory and you are not the superuser.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a link is attempted across file systems.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the destination directory for alias_name is not writable.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the destination directory is on a mounted read-only file system.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Following is a short example:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; link.c&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((link("foo.old", "foo.new")) == -1)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perror(" ");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* return a non-zero exit code on error */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(0);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unlink()&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The opposite of the link() system call is the unlink() system call.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unlink() removes a file by zeroing the i-number part of the file's&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; directory entry, reducing the link count field in the file's inode by 1,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and releasing the data blocks and the inode if the link count field&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; becomes zero.&amp;nbsp; unlink() is the only system call for removing a file in&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the UNIX system.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The prototype for unlink() is:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int unlink(file_name)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *file_name;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where file_name names the file to be unlinked.&amp;nbsp; unlink() fails if any of&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the following conditions holds:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a path name component is not a directory.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a path name component does not exist.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a path name component is off-limits.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file_name does not exist.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file_name is a directory and you are not the superuser.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the directory for the file named by file_name is not writable.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the directory is contained in a file system mounted read-only.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; It is important to understand that a file's contents and its inode are&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; not discarded until all processes close the unlinked file.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Following is a short example:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; unlink.c&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((unlink("foo.bar")) == -1)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perror(" ");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* return a non-zero exit code on error */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (0);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File Status&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stat() - fstat()&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The i-node data structure holds all the information about a file except the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file's name and its contents.&amp;nbsp; Sometimes your programs need to use the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; information in the i-node structure to do some job.&amp;nbsp; You can access this&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; information with the stat() and fstat() system calls.&amp;nbsp; stat() and fstat()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return the information in the i-node for the file named by a string and by a&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file descriptor, respectively.&amp;nbsp; The format for the i-node struct returned by&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; these system calls is defined in /usr/include/sys/stat.h.&amp;nbsp; stat.h uses types&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; built with the C language typedef construct and defined in the file&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /usr/include/sys/types.h, so it too must be included and must be included&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; before the inclusion of the stat.h file.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The prototypes for stat() and fstat() are:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;sys types.h=""&gt;&lt;/sys&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;sys stat.h=""&gt;&lt;/sys&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int stat(file_name, stat_buf)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *file_name;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct stat *stat_buf;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int fstat(file_descriptor, stat_buf)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int file_descriptor;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct stat *stat_buf;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where file_name names the file as an ASCII string and file_descriptor names&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the I/O channel and therefore the file.&amp;nbsp; Both calls returns the file's&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; specifics in stat_buf.&amp;nbsp; stat() and fstat() fail if any of the following&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conditions hold:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a path name component is not a directory (stat() only).&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file_name does not exit (stat() only).&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a path name component is off-limits (stat() only).&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file_descriptor does not identify an open I/O channel (fstat() only).&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stat_buf points to an invalid address.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Following is an extract of the stat.h file from the University's HP-9000.&amp;nbsp; It&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shows the definition of the stat structure and some manifest constants used&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to access the st_mode field of the structure.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* stat.h&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct&amp;nbsp;&amp;nbsp; stat&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dev_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_dev;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The device number containing the i-node */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ino_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_ino;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The i-number */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned short st_mode;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The 16 bit mode */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; short&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_nlink;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The link count; 0 for pipes */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ushort&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_uid;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The owner user-ID */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ushort&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_gid;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The group-ID&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dev_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_rdev;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* For a special file, the device number */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; off_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_size;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The size of the file; 0 for special files */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_atime;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The access time.&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_spare1;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_mtime;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The modification time.&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;st_spare2;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_ctime;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* The status-change time.&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_spare3;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_blksize;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_blocks;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_remote:1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set if file is remote */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dev_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_netdev;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ID of device containing */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* network special file */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ino_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_netino;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Inode number of network special file */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; st_spare4[9];&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; S_IFMT&amp;nbsp;&amp;nbsp; 0170000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* type of file */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S_IFDIR&amp;nbsp; 0040000&amp;nbsp; /* directory */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S_IFCHR&amp;nbsp; 0020000&amp;nbsp; /* character special */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S_IFBLK&amp;nbsp; 0060000&amp;nbsp; /* block special */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S_IFREG&amp;nbsp; 0100000&amp;nbsp; /* regular (ordinary) */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S_IFIFO&amp;nbsp; 0010000&amp;nbsp; /* fifo */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S_IFNWK 0110000&amp;nbsp;&amp;nbsp; /* network special */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S_IFLNK&amp;nbsp; 0120000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* symbolic link */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S_IFSOCK 0140000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* socket */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; S_ISUID&amp;nbsp; 0004000&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;/* set user id on execution */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; S_ISGID&amp;nbsp; 0002000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* set group id on execution */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; S_ENFMT&amp;nbsp; 0002000&amp;nbsp;&amp;nbsp; /* enforced file locking (shared with S_ISGID)*/&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define&amp;nbsp; S_ISVTX&amp;nbsp; 0001000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* save swapped text even after use */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Following is an example program demonstrating the use of the stat() system&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call to determine the status of a file:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; status.c&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; demonstrates the use of the stat() system call to determine the&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status of a file.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;sys types.h=""&gt;&lt;/sys&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;sys stat.h=""&gt;&lt;/sys&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define ERR&amp;nbsp;&amp;nbsp; (-1)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define TRUE&amp;nbsp; 1&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define FALSE 0&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main();&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main(argc, argv)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int argc;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *argv[];&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int isdevice = FALSE;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct stat stat_buf;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (argc != 2)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Usage:&amp;nbsp; %s filename\n", argv[0]);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (1);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( stat( argv[1], &amp;amp;stat_buf) == ERR)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perror("stat");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (1);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nFile:&amp;nbsp; %s&amp;nbsp; status:\n\n",argv[1]);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((stat_buf.st_mode &amp;amp; S_IFMT) == S_IFDIR)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Directory\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ((stat_buf.st_mode &amp;amp; S_IFMT) == S_IFBLK)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;printf("Block special file\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isdevice = TRUE;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ((stat_buf.st_mode &amp;amp; S_IFMT) == S_IFCHR)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Character special file\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isdevice = TRUE;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ((stat_buf.st_mode &amp;amp; S_IFMT) == S_IFREG)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Ordinary file\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ((stat_buf.st_mode &amp;amp; S_IFMT) == S_IFIFO)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("FIFO\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -32-&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (isdevice)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Device number:%d, %d\n", (stat_buf.st_rdev &amp;gt; 8) &amp;amp; 0377,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stat_buf.st_rdev &amp;amp; 0377);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Resides on device:%d, %d\n", (stat_buf.st_dev &amp;gt; 8) &amp;amp; 0377,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stat_buf.st_dev &amp;amp; 0377);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("I-node: %d; Links: %d; Size: %ld\n", stat_buf.st_ino,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stat_buf.st_nlink, stat_buf.st_size);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((stat_buf.st_mode &amp;amp; S_ISUID) == S_ISUID)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Set-user-ID\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((stat_buf.st_mode &amp;amp; S_ISGID) == S_ISGID)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("Set-group-ID\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((stat_buf.st_mode &amp;amp; S_ISVTX) == S_ISVTX)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Sticky-bit set -- save swapped text after use\n");&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Permissions: %o\n", stat_buf.st_mode &amp;amp; 0777);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (0);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;access()&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; To determine if a file is accessible to a program, the access() system call&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; may be used.&amp;nbsp; Unlike any other system call that deals with permissions,&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; access() checks the real user-ID or group-ID, not the effective ones.&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The prototype for the access() system call is:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int access(file_name, access_mode)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *file_name;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int access_mode;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where file_name is the name of the file to which access permissions given in&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; access_mode are to be applied.&amp;nbsp; Access modes are often defined as manifest&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; constants in /usr/include/sys/file.h.&amp;nbsp; The available modes are:&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Value&amp;nbsp;&amp;nbsp;&amp;nbsp; Meaning&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file.h constant&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -----&amp;nbsp;&amp;nbsp;&amp;nbsp; ------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ------&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; existence&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; F_OK&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; execute&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; X_OK&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 02&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W_OK&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 04&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R_OK&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; These values may be ORed together to check for mone than one access&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; permission.&amp;nbsp; The call to access() returns 0 if the program has the given&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; access permissions, otherwise -1 is returned and errno is set to the reason&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for failure.&amp;nbsp; This call is somewhat useful in that it makes checking for a&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; specific permission easy.&amp;nbsp; However, it only answers the question "do I have&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this permission?"&amp;nbsp; It cannot answer the question "what permissions do I&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; have?"&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The following example program demonstrates the use of the access() system&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call to remove a file.&amp;nbsp; Before removing the file, a check is made to make&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sure that the file exits and that it is writable (it will not remove a&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read-only file).&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* remove.c&amp;nbsp; */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;stdio.h&gt;&lt;/stdio.h&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include &lt;sys file.h=""&gt;&lt;/sys&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define ERR&amp;nbsp;&amp;nbsp; (-1)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main();&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int main(argc, argv)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;int argc;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char *argv[];&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (argc != 2)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Usage:&amp;nbsp; %s filename\n", argv[0]);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (1);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (access (argv[1], F_OK) == ERR)&amp;nbsp;&amp;nbsp;&amp;nbsp; /* check that file exists */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;perror(argv[1]);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (1);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (access (argv[1], W_OK) == ERR)&amp;nbsp;&amp;nbsp;&amp;nbsp; /* check for write permission */&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr,"File:&amp;nbsp; %s&amp;nbsp; is write protected!\n", argv[1]);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (1);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (unlink (argv[1]) == ERR)&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perror(argv[1]);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (1);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit (0);&lt;/div&gt;&lt;div class="PreformattedText" style="font-size: medium;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521813103867728569-7822400722959924933?l=chalasanikamesh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chalasanikamesh.blogspot.com/feeds/7822400722959924933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3521813103867728569&amp;postID=7822400722959924933&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default/7822400722959924933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default/7822400722959924933'/><link rel='alternate' type='text/html' href='http://chalasanikamesh.blogspot.com/2010/11/unix-system-calls.html' title='UNIX System Calls'/><author><name>chalasani kamesh</name><uri>https://profiles.google.com/105231456151823138576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-wZK-njVDkZM/AAAAAAAAAAI/AAAAAAAADSk/NQfL40EoTyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521813103867728569.post-5638164756410256152</id><published>2010-11-08T02:45:00.000-08:00</published><updated>2010-11-08T02:45:16.498-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX Tutorials'/><title type='text'>The vi Editor</title><content type='html'>&lt;div align="center" class="MsoNormal" style="margin-left: .25in; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: x-large;"&gt;&lt;span class="Apple-style-span" style="font-size: 19px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .25in;"&gt;To write and edit some programs and scripts, we require editors. UNIX provides vi editor for BSD system – created by Bill Joy. Bram Moolenaar improved vi editor and called it as vim (vi improved) on Linux OS.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;vi Basics&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;To add some text to a file, we invoke,&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-indent: .5in;"&gt;&lt;span lang="FR" style="mso-ansi-language: FR;"&gt;vi &lt;i&gt;&lt;filename&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/filename&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;span style="mso-bidi-font-style: italic;"&gt;In all probability, the file doesn’t exist, and vi presents you a full screen with the filename shown at the bottom with the qualifier. The cursor is positioned at the top and all remaining lines of the screen show a ~. They are non-existent lines. The last line is reserved for commands that you can enter to act on text. This line is also used by the system to display messages. This is the command mode. This is the mode where you can pass commands to act on text, using most of the keys of the keyboard. This is the default mode of the editor where every key pressed is interpreted as a command to run on text. You will have to be in this mode to copy and delete text&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;span style="mso-bidi-font-style: italic;"&gt;For, text editing, vi uses 24 out of 25 lines that are normally available in the terminal. To enter text, you must switch to the input mode. First press the key i, and you are in this mode ready to input text. Subsequent key depressions will then show up on the screen as text input.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;span style="mso-bidi-font-style: italic;"&gt;After text entry is complete, the cursor is positioned on the last character of the last line. This is known as current line and the character where the cursor is stationed is the current cursor position. This mode is used to handle files and perform substitution. After the command is run, you are back to the default command mode. If a word has been misspelled, use ctrl-w to erase the entire word.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;span style="mso-bidi-font-style: italic;"&gt;Now press esc key to revert to command mode. Press it again and you will hear a beep. A beep in vi indicates that a key has been pressed unnecessarily. Actually, the text entered has not been saved on disk but exists in some temporary storage called a buffer. To save the entered text, you must switch to the execute mode (the last line mode). Invoke the execute mode from the command mode by entering a: which shows up in the last line. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;The Repeat Factor&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;vi provides repeat factor in command and input mode commands. Command mode command &lt;span style="mso-bidi-font-weight: bold;"&gt;k&lt;b&gt; &lt;/b&gt;&lt;/span&gt;moves the cursor one line up. &lt;span style="mso-bidi-font-weight: bold;"&gt;10k&lt;b&gt; &lt;/b&gt;&lt;/span&gt;moves cursor 10 lines up.&lt;/div&gt;&lt;div class="MsoNormal"&gt;To undo whenever you make a mistake, press&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;i&gt;Esc u&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;To clear the screen in command mode, press&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ctrl-l&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Don’t use (caps lock) - vi commands are case-sensitive&lt;/div&gt;&lt;div class="MsoNormal"&gt;Avoid using the PC navigation keys&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Input Mode – Entering and Replacing Text&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;It is possible to display the mode in which is user is in by typing,&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in; text-align: justify; text-indent: .5in;"&gt;:set showmode&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Messages like INSERT MODE, REPLACE MODE, CHANGE MODE, etc will appear in the last line.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Pressing ‘i’ changes the mode from command to input mode. To append text to the right of the cursor position, we use &lt;i&gt;a, text. &lt;/i&gt;I and A behave same as i and a, but at line extremes&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;I inserts text at the beginning of line. A appends text at end of line. &lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;o opens a new line below the current line&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-indent: -.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="mso-list: Ignore;"&gt;•&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;i&gt;r&lt;letter&gt;&lt;/letter&gt;&lt;/i&gt; replacing a single character&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-indent: -.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="mso-list: Ignore;"&gt;•&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;i&gt;s&lt;text word=""&gt;&lt;/text&gt;&lt;/i&gt; replacing text with s&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-indent: -.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="mso-list: Ignore;"&gt;•&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;i&gt;R&lt;text word=""&gt;&lt;/text&gt;&lt;/i&gt; replacing text with R&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-list: l0 level1 lfo1; tab-stops: list .5in; text-indent: -.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="mso-list: Ignore;"&gt;•&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Press esc key to switch to command mode after you have keyed in text&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Some of the input mode commands are:&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in;"&gt;&lt;b&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;COMMAND&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;FUNCTION&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;i&lt;span style="mso-tab-count: 4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;inserts text&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;a&lt;span style="mso-tab-count: 4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;appends text&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;I &lt;span style="mso-tab-count: 4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;inserts at beginning of line&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;A &lt;span style="mso-tab-count: 4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;appends text at end of line&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;o&lt;span style="mso-tab-count: 4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;opens line below&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;O &lt;span style="mso-tab-count: 4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;opens line above&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;r &lt;span style="mso-tab-count: 4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;replaces a single character&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;s&lt;span style="mso-tab-count: 4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;replaces with a text&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;S&lt;span style="mso-tab-count: 4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;replaces entire line &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Saving Text and Quitting – The ex Mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;When you edit a file using vi, the original file is not distributed as such, but only a copy of it that is placed in a buffer. From time to time, you should save your work by writing the buffer contents to disk to keep the disk file current. When we talk of saving a file, we actually mean saving this buffer. You may also need to quit vi after or without saving the buffer. Some of the save and exit commands of the ex mode is:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-indent: .5in;"&gt;&lt;b&gt;Command &lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Action&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;:W&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;saves file and remains in editing mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;:x&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;saves and quits editing mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;:wq&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;saves and quits editing mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;:w &lt;i&gt;&lt;filename&gt; &lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/filename&gt;&lt;/i&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;save as&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;:w! &lt;i&gt;&lt;filename&gt;&lt;/filename&gt;&lt;/i&gt; &lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;save as, but overwrites existing file&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;:q&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;quits editing mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;:q!&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;quits editing mode by rejecting changes made&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;:sh &lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;escapes to UNIX shell&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 1.0in;"&gt;&lt;span style="mso-bidi-font-weight: bold;"&gt;:recover &lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;recovers file from a crash&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Navigation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;A command mode command doesn’t show up on screen but simply performs a function.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;To move the cursor in four directions,&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;k&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;moves cursor up&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;j&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;moves cursor down&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;h&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;moves cursor left&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;l &lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;moves cursor right&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Word Navigation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .25in;"&gt;Moving by one character is not always enough. You will often need to move faster along a line. vi understands a word as a navigation unit which can be defined in two ways, depending on the key pressed. If your cursor is a number of words away from your desired position, you can use the word-navigation commands to go there directly. There are three basic commands:&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;b&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;moves back to beginning of word&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;e&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;moves forward to end of word&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;w&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;moves forward to beginning word&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Example,&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;5b takes the cursor 5 words back&lt;/div&gt;&lt;div class="MsoNormal"&gt;3w takes the cursor 3 words forward&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Moving to Line Extremes&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .25in;"&gt;Moving to the beginning or end of a line is a common requirement.&lt;/div&gt;&lt;div class="MsoNormal"&gt;To move to the first character of a line&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-tab-count: 4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 or |&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;30| moves cursor to column 30&lt;/div&gt;&lt;div class="MsoNormal"&gt;$ moves to the end of the current line&lt;/div&gt;&lt;div class="MsoNormal"&gt;The use of these commands along with b, e, and w is allowed &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Scrolling&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;Faster movement can be achieved by scrolling text in the window using the control keys. The two commands for scrolling a page at a time are&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in;"&gt;ctrl-f&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;scrolls forward&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in;"&gt;ctrl-b&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;scrolls backward&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;10ctrl-f&lt;span style="mso-tab-count: 1;"&gt; &lt;/span&gt;scroll 10 pages and navigate faster&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in;"&gt;ctrl-d&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;scrolls half page forward&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in;"&gt;ctrl-u&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;scrolls half page backward&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The repeat factor can also be used here.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Absolute Movement&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The editor displays the total number of lines in the last line&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Ctrl-g&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;to know the current line number&lt;/div&gt;&lt;div class="MsoNormal"&gt;40G&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;goes to line number 40&lt;/div&gt;&lt;div class="MsoNormal"&gt;1G&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;goes to line number 1&lt;/div&gt;&lt;div class="MsoNormal"&gt;G&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;goes to end of file&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Editing Text&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The editing facilitates in vi are very elaborate and invoke the use of operators. They use operators, such as,&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;d&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;delete&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;y&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;yank (copy)&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Deleting Text&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;x&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;deletes a single character&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;dd&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;delete entire line&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;yy&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;copy entire line&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;6dd&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;deletes the current line and five lines below&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Moving Text&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;Moving text (p) puts the text at the new location.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;p and P place text on right and left only when you delete parts of lines. But the same keys get associated with “below” and “above” when you delete complete lines&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Copying Text&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;Copying text (y and p) is achieved as,&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;yy&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;copies current line&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;10yy&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;copies current line &amp;amp; 9 lines below&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Joining Lines&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;J&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;to join the current line and the line following it&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;4J&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;joins following 3 lines with current line&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Undoing Last Editing Instructions&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;In command mode, to undo the last change made, we use &lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;u&lt;/div&gt;&lt;div class="MsoNormal"&gt;To discard all changes made to the current line, we use&lt;span style="mso-tab-count: 4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;U&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;vim (LINUX) lets you undo and redo multiple editing instructions. u behaves differently here; repeated use of this key progressively undoes your previous actions. You could even have the original file in front of you. Further 10u reverses your last 10 editing actions. The function of U remains the same.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;You may overshoot the desired mark when you keep u pressed, in which case use ctrl-r to redo your undone actions. Further, undoing with 10u can be completely reversed with 10ctrl-r. The undoing limit is set by the execute mode command: set undolevels=n, where n is set to 1000 by default.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Repeating the Last Command&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;The . (dot) command is used for repeating the last instruction in both editing and command mode commands&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;For example:&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;2dd deletes 2 lines from current line and to repeat this operation, type. &lt;b&gt;(dot)&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Searching for a Pattern&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;/ search forward&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .25in;"&gt;? search backward&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;/printf&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp; &lt;/span&gt; &lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;The search begins forward to position the cursor on the first instance of the&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;word&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;?pattern&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Searches backward for the most previous instance of the pattern&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Repeating the Last Pattern Search&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;n&lt;span style="mso-tab-count: 3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;repeats search in same direction of original search&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify; text-indent: .5in;"&gt;n doesn’t necessarily repeat a search in the forward direction. The direction depends on the search command used. If you used? printf to search in the reverse direction in the first place, then n also follows the same direction. In that case, N will repeat the search in the forward direction, and not n.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Search and repeat commands&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Command &lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Function&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;/pat&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;searches forward for pattern pat&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;?pat&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;searches backward for pattern pat&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;n &lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;repeats search in same direction along which previous search was made&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;N &lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;repeats search in direction opposite to that along which previous search was made&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Substitution – search and replace&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;We can perform search and replace in execute mode using :s. Its syntax is,&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; text-indent: .5in;"&gt;:address/source_pattern/target_pattern/flags&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;:1,$s/director/member/g&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;can also use % instead of 1,$&lt;/div&gt;&lt;div class="MsoNormal"&gt;:1,50s/unsigned//g&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;deletes unsigned everywhere in lines 1 to 50&lt;/div&gt;&lt;div class="MsoNormal"&gt;:3,10s/director/member/g&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;substitute lines 3 through 10&lt;/div&gt;&lt;div class="MsoNormal"&gt;:.s/director/member/g&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;only the current line&lt;/div&gt;&lt;div class="MsoNormal"&gt;:$s/director/member/g&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;only the last line&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Interactive substitution: sometimes you may like to selectively replace a string. In that case, add the c parameter as the flag at the end:&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;:1,$s/director/member/gc&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;Each line is selected in turn, followed by a sequence of carets in the next line, just below the pattern that requires substitution. The cursor is positioned at the end of this caret sequence, waiting for your response.&lt;/div&gt;&lt;div class="MsoNormal" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: solid windowtext 1.0pt; border: none; mso-border-bottom-alt: solid windowtext .75pt; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;"&gt;  &lt;div class="MsoNormal" style="border: none; mso-border-bottom-alt: solid windowtext .75pt; mso-padding-alt: 0in 0in 1.0pt 0in; padding: 0in; text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;The ex mode is also used for substitution. Both search and replace operations also use regular expressions for matching multiple patterns.&lt;/div&gt;&lt;div class="MsoNormal" style="border: none; mso-border-bottom-alt: solid windowtext .75pt; mso-padding-alt: 0in 0in 1.0pt 0in; padding: 0in; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="border: none; mso-border-bottom-alt: solid windowtext .75pt; mso-padding-alt: 0in 0in 1.0pt 0in; padding: 0in; text-align: justify;"&gt;&lt;span style="mso-tab-count: 1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;The features of vi editor that have been highlighted so far are good enough for a beginner who should not proceed any further before mastering most of them. There are many more functions that make vi a very powerful editor. Can you copy three words or even the entire file using simple keystrokes? Can you copy or move multiple sections of text from one file to another in a single file switch? How do you compile your C and Java programs without leaving the editor? vi can do all this. &lt;/div&gt;&lt;div class="MsoNormal" style="border: none; mso-border-bottom-alt: solid windowtext .75pt; mso-padding-alt: 0in 0in 1.0pt 0in; padding: 0in; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo2; tab-stops: list .5in;"&gt;Source:      Sumitabha Das, “UNIX – Concepts and Applications”, 4&lt;sup&gt;th&lt;/sup&gt; edition,      Tata McGraw Hill, 2006&lt;/li&gt;&lt;/ul&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521813103867728569-5638164756410256152?l=chalasanikamesh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chalasanikamesh.blogspot.com/feeds/5638164756410256152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3521813103867728569&amp;postID=5638164756410256152&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default/5638164756410256152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default/5638164756410256152'/><link rel='alternate' type='text/html' href='http://chalasanikamesh.blogspot.com/2010/11/vi-editor.html' title='The vi Editor'/><author><name>chalasani kamesh</name><uri>https://profiles.google.com/105231456151823138576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-wZK-njVDkZM/AAAAAAAAAAI/AAAAAAAADSk/NQfL40EoTyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521813103867728569.post-1949363155037038081</id><published>2010-11-04T05:31:00.001-07:00</published><updated>2010-11-04T05:33:06.919-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX Tutorials'/><title type='text'>vi Editor Information</title><content type='html'>&lt;h1 align="center" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: 19px;"&gt;To enter vi:&lt;/span&gt;&lt;/h1&gt;&lt;div class="MsoNormal"&gt;To enter vi from the command line, use any of the forms below: &lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;vi &lt;i&gt;file&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;Invoke &lt;i&gt;vi&lt;/i&gt; editor on &lt;i&gt;file&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;vi &lt;i&gt;file1 file2&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;Invoke &lt;i&gt;vi&lt;/i&gt; editor on files sequentially&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;view &lt;i&gt;file&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;Invoke &lt;i&gt;vi&lt;/i&gt; editor on file in read only mode&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;vi +n &lt;i&gt;file&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;Invoke &lt;i&gt;vi&lt;/i&gt; editor; editing starts on line n&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;vi -r &lt;i&gt;file&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;Recover changes made to &lt;i&gt;file&lt;/i&gt; after a system crash&amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;/div&gt;&lt;h2 align="center" style="text-align: center;"&gt;ex Commands&lt;/h2&gt;&lt;h3&gt;To enter an ex command from vi:&lt;/h3&gt;&lt;div class="MsoNormal"&gt;To enter an &lt;i&gt;ex&lt;/i&gt; command from &lt;i&gt;vi&lt;/i&gt;, use this form: &lt;/div&gt;:[address] &lt;i&gt;command&lt;/i&gt; [options] &lt;br /&gt;&lt;i&gt;address&lt;/i&gt; is the line number or range of lines that are the object of &lt;i&gt;command&lt;/i&gt;. If no address is given, the current line is the object of the command. &lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 18pt;"&gt;Address Symbols&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;In &lt;i&gt;ex&lt;/i&gt; command syntax, &lt;i&gt;address&lt;/i&gt; can be specified by any of the following: &lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;1,$&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;All lines in the file.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;x,y&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Lines &lt;i&gt;x&lt;/i&gt; through &lt;i&gt;y&lt;/i&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;x;y&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Lines &lt;i&gt;x&lt;/i&gt; through &lt;i&gt;y&lt;/i&gt;, with current line reset   to &lt;i&gt;x&lt;/i&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;0&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Top of file.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;.&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Current line.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 5;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;n&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Absolute line number &lt;i&gt;n&lt;/i&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 6;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;$&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Last line.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 7;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;%&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;All lines; same as 1,$.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 8;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;x&lt;/i&gt;-&lt;i&gt;n&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;n&lt;/i&gt; lines before &lt;i&gt;x&lt;/i&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 9;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;x&lt;/i&gt;+&lt;i&gt;n&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;n&lt;/i&gt; lines after &lt;i&gt;x&lt;/i&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 10;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;-[&lt;i&gt;n&lt;/i&gt;]&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;One or &lt;i&gt;n&lt;/i&gt; lines previous.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 11;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;+[&lt;i&gt;n&lt;/i&gt;]&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;One or &lt;i&gt;n&lt;/i&gt; lines ahead.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 12;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;'&lt;i&gt;x&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Line marked with &lt;i&gt;x&lt;/i&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 13;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;'&amp;nbsp;'&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Previous mark.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 14; mso-yfti-lastrow: yes;"&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;/&lt;i&gt;pat &lt;/i&gt;/ or ?&lt;i&gt;pat &lt;/i&gt;?&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Ahead or back to line matching &lt;i&gt;pat&lt;/i&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;&lt;span style="font-size: 18pt;"&gt;Option Symbols&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;In &lt;i&gt;ex&lt;/i&gt; command syntax, &lt;i&gt;options&lt;/i&gt; may be any of the following: &lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in; mso-padding-alt: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;!&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Indicates a variant form of the command, overriding the   normal behavior.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;count&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;The number of times the command is to be repeated. &lt;i&gt;count&lt;/i&gt;   cannot precede the command, because a number preceding an &lt;i&gt;ex&lt;/i&gt; command   is treated as a line address. d3 deletes three lines beginning with the   current line; 3d deletes line 3.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2; mso-yfti-lastrow: yes;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;file&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;The name of a file that is affected by the command. %   stands for current file; # stands for previous file.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;&lt;span style="font-size: 18pt;"&gt;Commands&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;append&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;a&lt;/b&gt;[&lt;b&gt;!&lt;/b&gt;] &lt;br /&gt;&lt;i&gt;text&lt;/i&gt;&lt;br /&gt;.&lt;br /&gt;Append &lt;i&gt;text&lt;/i&gt; at specified &lt;i&gt;address&lt;/i&gt;, or at present address if none   is specified. Add a &lt;b&gt;!&lt;/b&gt; to switch the autoindent setting that will be   used during input. That is, if autoindent was enabled, &lt;b&gt;!&lt;/b&gt; disables it.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;copy&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;co&lt;/b&gt; &lt;i&gt;destination&lt;/i&gt;&lt;br /&gt;Copy the lines included in &lt;i&gt;address&lt;/i&gt; to the specified &lt;i&gt;destination&lt;/i&gt;   address. The command &lt;b&gt;t&lt;/b&gt; is a synonym for &lt;b&gt;copy&lt;/b&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;delete&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;d&lt;/b&gt; [&lt;i&gt;buffer&lt;/i&gt;]&lt;br /&gt;Delete the lines included in &lt;i&gt;address&lt;/i&gt;. If &lt;i&gt;buffer&lt;/i&gt; is specified,   save or append the text to the named buffer.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;edit&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;e&lt;/b&gt;[&lt;b&gt;!&lt;/b&gt;] [&lt;i&gt;+n&lt;/i&gt;] [&lt;i&gt;filename&lt;/i&gt;]&lt;br /&gt;Begin editing on &lt;i&gt;filename&lt;/i&gt;. If no &lt;i&gt;filename&lt;/i&gt; is given, bring in   another copy of the curent file. Add a &lt;b&gt;!&lt;/b&gt; to edit the new file even if   the current file has not been saved since the last change. With the &lt;i&gt;+n&lt;/i&gt;   argument, begin editing on line &lt;i&gt;n&lt;/i&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;insert&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;i&lt;/b&gt;[&lt;b&gt;!&lt;/b&gt;]&lt;br /&gt;&lt;i&gt;text&lt;/i&gt;&lt;br /&gt;.&lt;br /&gt;Insert &lt;i&gt;text&lt;/i&gt; at line before the specified address, or at present   address if none is specified. Add a &lt;b&gt;!&lt;/b&gt; to switch the autoindent setting   during input of &lt;i&gt;text&lt;/i&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 5;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;map&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;map&lt;/b&gt; &lt;i&gt;char commands&lt;/i&gt;&lt;br /&gt;Define a macro named &lt;i&gt;char&lt;/i&gt; in visual mode with the specified sequence   of commands. &lt;i&gt;char&lt;/i&gt; is usually a single character, or the sequence &lt;i&gt;#n&lt;/i&gt;,   representing a function key on the keyboard.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 6;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;mark&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;ma&lt;/b&gt; &lt;i&gt;char&lt;/i&gt;&lt;br /&gt;Mark the specified line with &lt;i&gt;char&lt;/i&gt;, a single lowercase letter. Return   later to the line with 'x.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 7;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;move&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;m&lt;/b&gt; &lt;i&gt;destination&lt;/i&gt;&lt;br /&gt;Move the lines specified by &lt;i&gt;address&lt;/i&gt; to the &lt;i&gt;destination&lt;/i&gt; address.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 8;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;next&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;n&lt;/b&gt;[&lt;b&gt;!&lt;/b&gt;] [[+&lt;i&gt;command&lt;/i&gt;]&lt;i&gt;filelist&lt;/i&gt;]&lt;br /&gt;Edit the next file from the command-line argument list. Use args to list   these files. If &lt;i&gt;filelist&lt;/i&gt; is provided, replace the current argument   list with &lt;i&gt;filelist&lt;/i&gt; and begin editing on the first file; if &lt;i&gt;command&lt;/i&gt;   is given (containing no spaces), execute &lt;i&gt;command&lt;/i&gt; after editing the   first such file.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 9;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;put&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;pu&lt;/b&gt; [&lt;i&gt;char&lt;/i&gt;]&lt;br /&gt;Restore previously deleted or yanked lines, from named buffer specified by &lt;i&gt;char&lt;/i&gt;,   to the line specified by &lt;i&gt;address&lt;/i&gt;; if &lt;i&gt;char&lt;/i&gt; is not specified, the   last deleted or yanked text is restored.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 10;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;quit&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;quit&lt;/b&gt;[&lt;b&gt;!&lt;/b&gt;]&lt;br /&gt;Terminate current editing session. Use &lt;b&gt;!&lt;/b&gt; to discard changes made since   the lsat save. If the editing session includes additional files in the   argument list that have not yet been accessed, quit by typing &lt;b&gt;q!&lt;/b&gt; or by   typing &lt;b&gt;q&lt;/b&gt; twice.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 11;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;read&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;r&lt;/b&gt; &lt;i&gt;filename&lt;/i&gt;&lt;br /&gt;Copy the text of &lt;i&gt;filename&lt;/i&gt; at the specified &lt;i&gt;address&lt;/i&gt;. If &lt;i&gt;filename&lt;/i&gt;   is not specified, the current filename is used.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 12;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;read&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;r !&lt;/b&gt;&lt;i&gt;command&lt;/i&gt;&lt;br /&gt;Read in the output of &lt;i&gt;command&lt;/i&gt; into the text after the line specified   by &lt;i&gt;address&lt;/i&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 13;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;substitute&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;s&lt;/b&gt; [/&lt;i&gt;pattern&lt;/i&gt;/&lt;i&gt;repl&lt;/i&gt;/] [&lt;i&gt;options&lt;/i&gt;]&lt;br /&gt;Replace each instance of &lt;i&gt;pattern&lt;/i&gt; on the specified lines with &lt;i&gt;repl&lt;/i&gt;.   If &lt;i&gt;pattern&lt;/i&gt; and &lt;i&gt;repl&lt;/i&gt; are omitted, repeat last substitution. An   option of g substitutes all instances of &lt;i&gt;pattern&lt;/i&gt; on the line. An   option of c prompts for confirmation before change.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 14;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;undo&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;u&lt;/b&gt;&lt;br /&gt;Reverse the changes made by the last editing command.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 15;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;write&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;w&lt;/b&gt;[&lt;b&gt;!&lt;/b&gt;] [[&lt;b&gt;&amp;gt;&amp;gt;&lt;/b&gt;]&lt;i&gt;filename&lt;/i&gt;]&lt;br /&gt;Write lines specified by &lt;i&gt;address&lt;/i&gt; to &lt;i&gt;filename&lt;/i&gt;, or full contents   of buffer if &lt;i&gt;address&lt;/i&gt; is not specified. If &lt;i&gt;filename&lt;/i&gt; is also   omitted, save the contents of the buffer to the current filename. if &lt;b&gt;&amp;gt;&amp;gt;&lt;/b&gt;   &lt;i&gt;filename&lt;/i&gt; is used, write contents to the end of the specified &lt;i&gt;filename&lt;/i&gt;.   Add a &lt;b&gt;!&lt;/b&gt; to force the editor to write over any current contents of &lt;i&gt;filename&lt;/i&gt;.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 16;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;yank&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;ya&lt;/b&gt; [&lt;i&gt;char&lt;/i&gt;] [&lt;i&gt;count&lt;/i&gt;]&lt;br /&gt;Place lines specified by &lt;i&gt;address&lt;/i&gt; in named buffer indicated by &lt;i&gt;char&lt;/i&gt;,   or if no &lt;i&gt;char&lt;/i&gt; is specified place in general buffer.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 17;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;z&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;z&lt;/b&gt; [&lt;i&gt;type&lt;/i&gt;] [&lt;i&gt;count&lt;/i&gt;]&lt;br /&gt;Print a window of text with line specified by &lt;i&gt;address&lt;/i&gt; at the top. &lt;i&gt;type&lt;/i&gt;   can be one of:&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;     &lt;td style="padding: .75pt .75pt .75pt .75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;+&lt;/div&gt;&lt;/td&gt;     &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Place specified line at the top of the window (default).&lt;/div&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;     &lt;td style="padding: .75pt .75pt .75pt .75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;-&lt;/div&gt;&lt;/td&gt;     &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Place specified line at bottom of the window.&lt;/div&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;     &lt;td style="padding: .75pt .75pt .75pt .75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;.&lt;/div&gt;&lt;/td&gt;     &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Place specified line in the center of the window.&lt;/div&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3;"&gt;     &lt;td style="padding: .75pt .75pt .75pt .75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;^&lt;/div&gt;&lt;/td&gt;     &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Print the previous window.&lt;/div&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"&gt;     &lt;td style="padding: .75pt .75pt .75pt .75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;=&lt;/div&gt;&lt;/td&gt;     &lt;td style="padding: .75pt .75pt .75pt .75pt;"&gt;&lt;div class="MsoNormal"&gt;Place specified line in the center of the window and     leave the current line at this line.&lt;/div&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;count&lt;/i&gt; specifies the number of lines to be   displayed.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 18; mso-yfti-lastrow: yes;"&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;!&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 3.75pt 3.75pt 3.75pt 3.75pt;"&gt;&lt;div class="MsoNormal"&gt;[&lt;i&gt;address&lt;/i&gt;] &lt;b&gt;!&lt;/b&gt;&lt;i&gt;command&lt;/i&gt;&lt;br /&gt;Execute &lt;i&gt;command&lt;/i&gt; in a shell. If &lt;i&gt;address&lt;/i&gt; is specified, apply the   lines contained in &lt;i&gt;address&lt;/i&gt; as standard input to &lt;i&gt;command&lt;/i&gt;, and   replace the lines with the output.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;/div&gt;&lt;h2 align="center" style="text-align: center;"&gt;vi Commands&lt;/h2&gt;&lt;i&gt;vi&lt;/i&gt; has two "modes", &lt;i&gt;command&lt;/i&gt; and &lt;i&gt;insert&lt;/i&gt;. Insert mode (text entry) is terminated by &lt;escape&gt;, which toggles back to command mode. &lt;escape&gt; in command mode is ignored. &lt;/escape&gt;&lt;/escape&gt;&lt;br /&gt;&lt;br /&gt;In &lt;i&gt;vi&lt;/i&gt;, commands have the following general form: &lt;br /&gt;[&lt;i&gt;n&lt;/i&gt;] &lt;i&gt;operator &lt;/i&gt;[&lt;i&gt;m&lt;/i&gt;] &lt;i&gt;object&lt;/i&gt; &lt;br /&gt;The basic editing &lt;i&gt;operators&lt;/i&gt; are:&lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in; mso-padding-alt: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;c&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Begin a change.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;d&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Begin a deletion.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2; mso-yfti-lastrow: yes;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;y&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Begin a yank (or copy).&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;If the current line is the object of the operation, then the operator is the same as the object: &lt;b&gt;cc&lt;/b&gt;, &lt;b&gt;dd&lt;/b&gt;, &lt;b&gt;yy&lt;/b&gt;. Otherwise, the editing operators act on objects specified by cursor-movement commands or pattern-matching commands. &lt;i&gt;n&lt;/i&gt; and &lt;i&gt;m&lt;/i&gt; are the number of times the operation is performed, or the number of objects the operation is performed on. If both &lt;i&gt;n&lt;/i&gt; and &lt;i&gt;m&lt;/i&gt; are specified, the effect is &lt;i&gt;n&lt;/i&gt; x &lt;i&gt;m&lt;/i&gt;. &lt;br /&gt;An object can represent any of the following text blocks:&lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in; mso-padding-alt: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;word&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Includes characters up to a space or punctuation mark. A   capitalized object is a variant form that recognizes only blank spaces.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;sentence&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Is up to ., !, ? followed by two spaces.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;paragraph&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Is up to next blank line or paragraph macro defined by &lt;b&gt;para=&lt;/b&gt;option.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;section&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Is up to next section heading defined by &lt;b&gt;sect=&lt;/b&gt;option.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3&gt;Examples&lt;/h3&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in; mso-padding-alt: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;2cw&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Change the next two words.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;d}&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Delete up to next paragraph.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;d^&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Delete back to beginning of line.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;5yy&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Copy the next five lines.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4; mso-yfti-lastrow: yes;"&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;y&lt;/b&gt;]]&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.5pt 1.5pt 1.5pt 1.5pt;"&gt;&lt;div class="MsoNormal"&gt;Copy up to the next section.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: 18pt;"&gt;Movement Commands&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in; mso-padding-alt: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Character:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;h,j,k,l&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Left, down, up, right (direction arrows)&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Text:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;w, W, b, B&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Forward, backward by word&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;e, E&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;End of word&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 5;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;), (&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Beginning of next, previous sentence&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 6;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;},{&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Beginning of next, previous paragraph&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 7;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;]],[[&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Beginning of next, previous section&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 8;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Lines:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 9;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;0, $&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;First, last position of current line&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 10;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;^&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;First character of current line (ignore spaces)&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 11;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;+, -&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;First character of next, previous line&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 12;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;n&lt;/i&gt;|&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Column &lt;i&gt;n&lt;/i&gt; of current line&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 13;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;H&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Top line of screen&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 14;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;M&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Middle line of screen &lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 15;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;L&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Last line of screen&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 16;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;n&lt;/i&gt;H&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;n&lt;/i&gt; (number) of lines after top line&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 17;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;n&lt;/i&gt;L&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;n&lt;/i&gt; (number) of lines before last line&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 18;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Screens:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 19;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Ctrl-F&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Scroll forward one screen&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 20;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Ctrl-B&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Scroll backward one screen&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 21;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Ctrl-D, Ctrl-U&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Scroll down, up one-half screen&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 22;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Ctrl-E, Ctrl-Y&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Show one more line at bottom, top of window&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 23;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;z&lt;return&gt;&lt;/return&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Reposition line with cursor: to top of screen&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 24;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;z.&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Reposition line with cursor: to middle of screen&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 25;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;z-&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Reposition line with cursor: to bottom of screen&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 26;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Ctrl-L, Ctrl-R&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Redraw screen (without scrolling)&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 27;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Searches:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 28;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;/&lt;i&gt;pattern&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Search forward for pattern&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 29;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;?&lt;i&gt;pattern&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Search backward for pattern&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 30;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;n, N&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Repeat last search in same, opposite direction&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 31;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;/, ?&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Repeat previous search forward, backward&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 32;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;f&lt;i&gt;x&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Search forward for character &lt;i&gt;x&lt;/i&gt; in current line&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 33;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;F&lt;i&gt;x&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Search backward for character &lt;i&gt;x&lt;/i&gt; in current line&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 34;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;t&lt;i&gt;x&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Search forward for character before &lt;i&gt;x&lt;/i&gt; in current   line&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 35;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;T&lt;i&gt;x&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Search backward for character after &lt;i&gt;x&lt;/i&gt; in current   line&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 36;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Repeat previous current-line search&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 37;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;,&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Repeat previous current-line search in opposite direction&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 38;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Line number:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 39;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Ctrl-G&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Display current line number and file name&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 40;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;i&gt;n&lt;/i&gt;G&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Move to line number &lt;i&gt;n&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 41;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;G&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Move to last line in file&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 42;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:&lt;i&gt;n&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Move to line number &lt;i&gt;n&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 43;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Marking position:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 44;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;m&lt;i&gt;x&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Mark current position as &lt;i&gt;x&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 45;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;`&lt;i&gt;x&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Move cursor to &lt;i&gt;x&lt;/i&gt; (grave character)&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 46;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;``&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Return to previous mark or context (two grave characters)&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 47;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;'&lt;i&gt;x&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Move to beginning of line containing mark &lt;i&gt;x&lt;/i&gt; (single   quote)&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 48; mso-yfti-lastrow: yes;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;''&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Return to beginning of line containing previous mark (two   single quotes)&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;&lt;span style="font-size: 18pt;"&gt;Editing Commands&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in; mso-padding-alt: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Insert:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;i, a&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Insert text before, after cursor&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;I, A&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Insert text at beginning, end of line&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;o, O&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Open new line for text below, above cursor&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Change:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 5;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;r&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Change character (no &lt;escape&gt; required)&lt;/escape&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 6;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;cw&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Change word&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 7;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;cc&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Change currnt line&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 8;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;C&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Change to end of line&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 9;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;R&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Type of characters&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 10;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;s&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Delete character and substitute text&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 11;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;S&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Delete current line and substitute text&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 12;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Delete, move:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 13;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;x&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Delete character&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 14;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;X&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Delete character before cursor&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 15;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;dw&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Delete word&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 16;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;dd&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Delete current line&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 17;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;D&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Delete to end of line&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 18;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;p, P&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Put deleted text after, before cursor&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 19;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;"&lt;i&gt;n&lt;/i&gt;p&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Put text from delete buffer &lt;i&gt;n&lt;/i&gt; after cursor (for   last nine deletions)&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 20;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Yank:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 21;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;yw&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Yank (copy) word&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 22;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;yy&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Yank current line&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 23;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;"&lt;i&gt;a&lt;/i&gt;yy&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Yank current line into named buffer &lt;i&gt;a&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 24;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;p, P&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Put yanked text after, before cursor&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 25;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;"&lt;i&gt;a&lt;/i&gt;P&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Put text from buffer &lt;i&gt;a&lt;/i&gt; before cursor&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 26;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;i&gt;Other commands:&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 27;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;.&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Repeat last edit command&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 28;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;u, U&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Undo last edit; restore current line&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 29; mso-yfti-lastrow: yes;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;J&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Join two lines&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;b&gt;&lt;span style="font-size: 18pt;"&gt;Exit Commands&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in; mso-padding-alt: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;tbody&gt;&lt;tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;ZZ&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Write (save) and quit file&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:x&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Write (save) and quit file&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:wq&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Write (save) and quit file&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:w&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Write (save) file&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 4;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:w!&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Write (save) file (overriding protection)&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 5;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:30, 60w &lt;i&gt;newfile&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Write from line 30 through 60 as &lt;i&gt;newfile&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 6;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;:30, 60w &amp;gt;&amp;gt; &lt;i&gt;file&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Write from line 30 through line 60 and append to &lt;i&gt;file&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 7;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:w %.&lt;i&gt;new&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Write current buffer named &lt;i&gt;file&lt;/i&gt; as &lt;i&gt;file.new&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 8;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:q&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Quit file&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 9;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:q!&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Quit file (overriding protection)&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 10;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Q&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Quit &lt;i&gt;vi&lt;/i&gt; and invoke &lt;i&gt;ex&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 11;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:e &lt;i&gt;file2&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Edit &lt;i&gt;file2&lt;/i&gt; without leaving &lt;i&gt;vi&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 12;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:n&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Edit next file&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 13;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;" valign="top"&gt;&lt;div class="MsoNormal"&gt;:e!&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Return to version of current file at time of last write   (save)&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 14;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;:e#&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Edit alternate file&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 15;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;%&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Current filename&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-irow: 16; mso-yfti-lastrow: yes;"&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;#&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 2.25pt 2.25pt 2.25pt 2.25pt;"&gt;&lt;div class="MsoNormal"&gt;Alternate filename&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521813103867728569-1949363155037038081?l=chalasanikamesh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chalasanikamesh.blogspot.com/feeds/1949363155037038081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3521813103867728569&amp;postID=1949363155037038081&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default/1949363155037038081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default/1949363155037038081'/><link rel='alternate' type='text/html' href='http://chalasanikamesh.blogspot.com/2010/11/vi-editor-information.html' title='vi Editor Information'/><author><name>chalasani kamesh</name><uri>https://profiles.google.com/105231456151823138576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-wZK-njVDkZM/AAAAAAAAAAI/AAAAAAAADSk/NQfL40EoTyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521813103867728569.post-7230138711104186952</id><published>2010-11-03T22:17:00.000-07:00</published><updated>2010-11-03T22:17:05.869-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UNIX Tutorials'/><title type='text'>UNIX SHELL COMMANDS</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;a href="" name="shell"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;What is a Shell?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="shell1"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;A shell is basically the user interface in UNIX. It is a program that allows the system to understand your commands. The shell has three main uses:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;a href="" name="shell2"&gt;&lt;/a&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Interactive Use&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;When used interactively, a shell waits for you to type a command at the prompt&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Customizing your UNIX session&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The shell lets you define environment variables that control the behavior of your UNIX session, such as setting the appearance of the screen.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;a href="" name="shell3"&gt;&lt;/a&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol; font-size: 10.0pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Programming&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The UNIX shell provides a number of commands that can be used to create programs called&amp;nbsp;shell scripts. Scripts are useful for executing a series of individual commands. They can also execute commands in loops (repeatedly) or conditionally (if-else). There are three main types of shells: the&amp;nbsp;Bourne&amp;nbsp;shell, the&amp;nbsp;Korn&amp;nbsp;shell, and the&amp;nbsp;C&amp;nbsp;shell. Most people at Brown use the&amp;nbsp;tcsh, which is an enhanced C shell.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;a href="" name="shell5"&gt;&lt;/a&gt;&lt;a href="" name="shell4"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;xterm&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The command xterm starts up a new shell. If you are using this command from a shell, however, you will want to put it in the background using the '&amp;amp;' operator. Otherwise you will be running the shell from the shell in which it was executed from and won't be able to use that shell anymore. A useful option for the xterm is -e which allows you to specify the program to be run in the xterm window. If I want a login shell, for example, I type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;xterm -e /bin/login &amp;amp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;. This provides a new shell with a login prompt which allows someone to login to the computer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;a href="" name="setenv"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;setenv&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;In UNIX, the system has to have a way to store certain settings that the shell and various programs use. This information is stored in "environment variables" each of which has a name (like DISPLAY, PATH, TIMEZONE, HOME) and a value. There is no standard UNIX command to set these environment variables, but the C-Shell (which you are probably using a form of) has a built-in command called setenv which you can use to set one of these variables.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;printenv&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The C-Shell command (again, not a real UNIX command) printenv will show you the contents of an environment variable.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 106.05pt;"&gt;&lt;a href="" name="operators"&gt;&lt;/a&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Some Useful Operators for the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;csh&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&amp;nbsp;or&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;tcsh&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: 65.1pt; mso-padding-alt: 1.4pt 1.4pt 1.4pt 1.4pt; mso-table-layout-alt: fixed;"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 19.55pt;" width="26"&gt;   &lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;*&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 386.3pt;" width="515"&gt;   &lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;match any characters in a filename (wild-card)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 19.55pt;" width="26"&gt;   &lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;|&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 386.3pt;" width="515"&gt;   &lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;take output from one command and use it as input   for a second command (pipe)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 19.55pt;" width="26"&gt;   &lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&amp;gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 386.3pt;" width="515"&gt;   &lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;redirect output (over-writes)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 19.55pt;" width="26"&gt;   &lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&amp;gt;&amp;gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 386.3pt;" width="515"&gt;   &lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;append output&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-lastrow: yes;"&gt;   &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 19.55pt;" width="26"&gt;   &lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&amp;amp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 386.3pt;" width="515"&gt;   &lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;run process in the background&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal" style="margin-left: 176.75pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 176.75pt;"&gt;&lt;a href="" name="simple"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Simple Commands&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 176.75pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;man&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;This command displays information from online documentation. It will give you a manual page for virtually any command (or programming function) available on the system, which describes what the command does and how it is used. Each command in this document is linked to its man page for easy reference.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;finger&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Locate any user using the finger command. This command provides useful user information such as login name, the person's real name, what computers the user is currently logged in on, when the users last login was, and information about when the user last received and checked e-mail. It also includes the information listed in the files&amp;nbsp;.plan&amp;nbsp;and.project. These files will be explained later, but here is an example of what you would see if you typed in a shell&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;finger dmb&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;. Alternatively, you could use finger with a person's first or last name, and it will find all the login names for that name. If fingering a username, you can abbreviate this command to f [username]. You can also finger at a machine and get back who is logged into that machine and from where. Typing&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;finger @cslab0a&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;will return all the users logged on to cslab0a. Typing finger by itself will tell you who is logged on to the machine you are on.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;a href="http://www.cs.brown.edu/courses/bridge/1998/res/UnixGuide.html#top"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 176.75pt;"&gt;&lt;a href="" name="files"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Files and Directories&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="files3"&gt;&lt;/a&gt;&lt;a href="" name="files2"&gt;&lt;/a&gt;&lt;a href="" name="files1"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;cd&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The cd command lets you navigate the filesystem. The UNIX filesystem is organized as a heirarchy where each level is separated by a "/". The "root" directory is simply called /. So, if I am in / I can type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;cd u/ck&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;and I will be in /u/ck, ck's home directory, since it will change directories relative to my current path. If I codefix the directory name with a /, it will jump to an absolute location so typing&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;cd /u/ljc&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;from /u/ck will put you into /u/ljc. Also, the directory ".." is one level up in the heirarchy, so from /u/adt typing&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;cd ..&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&amp;nbsp;will move you up one directory into /u.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="ls"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;ls&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;This command lists all directories and files contained inside the current directory, when typed alone. The ls commands has a number of options that let you display a variety of information about what is contained in a directory. Some useful options include:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;-a&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Lists all the files in a directory, including the normally hidden . files.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;-F&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Flag filenames by adding&amp;nbsp;/&amp;nbsp;to directories,&amp;nbsp;*&amp;nbsp;to executable files, and&amp;nbsp;@&amp;nbsp;to symbolic links.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;-l&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The long format listing includes permissions, owner, size and modification time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;-R&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;lists subdirectories as well as directories recursively.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;So, for example, if i want to flag filenames when using the ls command, I can type ls -F.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 106.05pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;These commands allow you to display the contents of a file, which is useful if you want to scroll through a file that is too long to fit within one screen. Two simple ways to do this are to use the more and less commands. These commands are similar in that you can read, but not edit a file using this command.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Using more, press the return key to view the next line of text, the spacebar to read the next page of text,&amp;nbsp;q&amp;nbsp;to quit, and&amp;nbsp;/&amp;nbsp;to search.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;You can use the same commands in less, but in addition you can use the arrow keys to navigate by line, and&amp;nbsp;u&amp;nbsp;to move up a page. A useful option is&amp;nbsp;-N, which numbers the line in the files.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;To use more or less, type more or less and the name of the file you want to read. Type any option you want to use before the filename. As with any command in this guide, for more options or more information about a command, see the man pages.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;mv&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;This allows you to change the name of a file, or move files or directories around. To create a new file in UNIX we simply try to open a file that does not exist in a&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;text editor&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;, described below. UNIX will then create a new file with this name. If we want to change the name of a file or move it to a directory other than the one it was created in, we use the mv command. To use this command, we type mv then the name or names of the files we want to move and then the directory or new file name we want to move to. For example, if we have a file named foo and we want to rename it foo.html, we type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;mv foo foo.html&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;. Now if we want to move foo.html to dmb's home directory, we type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;mv foo.html /u/dmb&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;cp&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;To copy a file into a file with a different name, or into another directory, we use the cp command. Above, we moved foo to foo.html, but if we want to copy foo into a file called foo.html, but don't want to remove foo, we type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;cp foo foo.html&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;. Likewise, we can copy a file into another directory:&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;cp foo.html /u/dmb&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;. If we want to copy a file from a different directory into a current directory, we can use a '.' to mean the current directory. So to copy foo.html from dmb's home directory into the current directory, type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;cp /u/dmb/foo.html .&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;rm&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;To remove a file we no longer need, we use the rm command. This command has a number of useful options:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;-i&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;This makes rm interactive, and asks the user if it wants to rm the file or files named. The user responds with&amp;nbsp;y&amp;nbsp;or&amp;nbsp;n.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="rm-r1"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;-r&lt;a href="" name="rm-r"&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;In UNIX, an&amp;nbsp;*&amp;nbsp;can be used as a wild card. Typing&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;rm *.html&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&amp;nbsp;removes all files whose name ends in ".html". Likewise, typing&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;rm *&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&amp;nbsp;removes all the contents of a directory. However, to recursively remove the contents of all subdirectories, you must use the -r option. The command can also be used to remove a not-empty directory and its contents by specifying a directory name. Be warned! This is a dangerous command to use, because if the directory contains files, you may be unknowingly removing them when you remove the entire directory.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="rm-r4"&gt;&lt;/a&gt;&lt;a href="" name="rm-r3"&gt;&lt;/a&gt;&lt;a href="" name="rm-r2"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;mkdir&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;To create a new directory, use the mkdir command. This will create a new directory with the specified name in the current directory. So to create the directory JavaWork in the current directory, we type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;mkdir JavaWork&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;rmdir&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;To remove an empty directory, or to remove the name of a directory, but not its contents type rmdir and the directory name. For a directory that is not empty, the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;rm -r&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;command can be used.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;pwd&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;This commands prints out the full pathname of the current directory. So if I type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;pwd&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;while I am in ljc's home directory, UNIX responds&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;/home/ljc&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;chmod&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The chmod command is a little more complicated than some of the other commands, but extremely important. Everything you create has permissions for the people who can read, write to, or execute the file or directory you create. The command&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;ls -l&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&amp;nbsp;lists the permissions of a file. If you want to change who can read a file you use the command chmod. You must then specify who you are changing permission for and what permission you are changing it to. Who and the permission are connected by either a '+' (to add a permission), a '-' (to remove a permission), or an '=' (to assign a permission and remove other permissions). Who can be either 'u' for the user, 'g' for the group the user belongs to (all users belong to at least one group), 'o' for everyone else, and 'a' all. The common permissions include r (read), w (write), and x (execute - for directories and executable files). Here are some examples of how to change permissions on the file foo.html:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Add read permission for all:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;chmod a+r foo.html&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Add read and write permissions for the group:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;chmod g+rw foo.html&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;remove execute permission for others:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;chmod o-x foo.html&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;chgrp&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Often users belong to more than one group. To change the group that has permission on a certain file, use the chgrp command. To use this command, type chgrp, the name of the new group you want to assign the file to, and the file name. For example, to assign foo.html to the cs015 group, type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;chgrp cs015 foo.html&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;grep&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The grep command allows you to search one or more files for lines that match an expression. Two useful options of this command are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;-i&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Ignores uppercase and lowercase distinctions&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;-n&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Prints lines and their line numbers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;To use the command, type grep, any options you want, the expression to search for and the files to search in. For example to search for the word UNIX in foo.html, type&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;grep UNIX foo.html&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;cat&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The command cat simply takes a file or multiple files and outputs them. While it may seem simple, it allows you to perform many powerful operations. UNIX has notions of standard input and standard output. Your screen is typically standard output, so when you run a command, the output appears on your screen. However, you can redirect standard output, so it goes to a file. The&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&amp;gt; operator&amp;nbsp;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;will redirect standard output to a file, and the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&amp;gt;&amp;gt; operator&amp;nbsp;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;will append standard output to a file. So,&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;cat a b &amp;gt; foo.html&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;will create a file, foo.html that consists of the contents of a followed by the contents of b. If we then type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;cat c &amp;gt;&amp;gt; foo.html&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;foo.html will contain the contents of a then b then c. Another redirection operator, called&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;pipe&amp;nbsp;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;(the '|' key), takes the output of one operation and uses it as the input to another operation. So&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;cat foo.html | mail dmb&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;will take the output from foo. html and use it as the input for and e-mail to dmb.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;du&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;This command prints the disk usage (without the -k option, it prints out the number of 512-byte blocks used). The -k option writes the files sizes in units of 1024 bytes, rather than 512. If you name a directory, it will print out the size of that directory and all sub-directories, or the default is the home directory.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;gzip/gunzip&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The gzip command reduces the size of the named files by compressing it. To read a gzipped file, you must first uncompress it by using the gunzip command.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;compress/uncompress&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Basically the same as gzip, compress reduces the size of the named files. To read the files, use uncompress.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;touch&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The touch command updates the access and modification times of the named files to the current time and date. The command is useful because some commands rely on a file's access and modification times.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;tail&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The head command prints only the first ten lines of the named file and the tail command prints only the last ten lines. If you want head or tail to print out a different number of lines, you can specify the length as&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;-&lt;the lines="" number="" of=""&gt;&amp;nbsp;&lt;/the&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;. For example,&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;head -20&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;will print out the first 20 lines of a file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;sort&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;To sort the lines of a file, typically in alphabetical or numerical order, use the sort command. One useful option is&amp;nbsp;-r, sort in reverse order.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;ln&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The ln command creates links for files. For example, if you type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;ln foo.html foo&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;, foo becomes a psuedonym for foo.html. If foo is an already existing file, it is overwritten. If foo is a directory, however, a link named foo.html is created in foo. The&amp;nbsp;-s&amp;nbsp;option creates a symbolic link, which lets you link across file systems and also lets you see the name of the link when you run ls -l.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 70.7pt;"&gt;&lt;a href="" name="communication"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;Communication Commands&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;zwrite&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The command zwrite sends a message to another user by using the zephyr notification service, by displaying a window with a message on the recipient's screen. Zephyr is not available on all UNIX systems, but zwrite is a commonly used command at Brown.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;zwgc&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Zephyr Windgowgram Client program, or zwgc, is the main zephyr client used for zwrites. To receive zwrites, a user must be running zwgc. This can be done by using the command zwgc, or if you want to receive zwrites in a shell, type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;zwgc -ttymode&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;write&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The write command is used when zwrite is not available. It allows you to write to the shell (usually the console) of another user. In order to write to a user, however, you must first&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;remotely log on (rsh)&amp;nbsp;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;to their machine. To end a message, type control-d on a line by itself.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;talk&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The command talk creates a two-way, screen-oriented communication program. It allows users to type simultaneously, with their output displayed in separate regions of the screen. To send a talk request, type talk and then &lt;user name=""&gt;@&lt;their machine=""&gt;. So, for example, to send a talk request to dmb, who is logged on to cslab0a, type&amp;nbsp;&lt;/their&gt;&lt;/user&gt;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;talk dmb@cslab0a&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;. The recipient of the request is then prompted for a response.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;mesg&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The mesg command changes the ability of others to send write or zwrite messages or talk requests to a user. Typing&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;mesg n&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;or&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;mesg -n&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;forbids messages, while&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;mesg y&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;or&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;mesg -y&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;allows messages.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;mail&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The mail command is a quick and easy way to send an email to someone. Just type mail and the address of the person you want to mail. You will then be prompted for a subject and any cc's. Then just type your message and control-d on a line by itself to send the mail.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;pine&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;There are a number of ways to read e-mail in UNIX. One option is pine. It a screen-oriented tool with limited functions for message-handling. You can also use pine to send a quick email without opening your mail directory and inbox (which pine does when you type the pine alone) by typing pine followed by an e-mail address.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;tin&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;There are also a number of options to use to read newsgroups. One popular news reader is tin, which like pine is screen-oriented with functions to read and compose news. When you start up tin, it will show a list of the newsgroups found in you .newsrc file in your home directory. You can also specify a newsgroup for tin to open by typing tin and then the name of the newsgroup.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="process"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;span style="mso-tab-count: 5;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Process Commands&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;a href="" name="process1"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Everything you run from your account is called a process. So when you are running a shell, netscape and emacs, you are running three processes. There are a number of useful commands for dealing with processes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="process3"&gt;&lt;/a&gt;&lt;a href="" name="process2"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;ps&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Without specifying options, ps lists all the active processes running from a given shell. A more useful way of using the ps command is to use the&amp;nbsp;-u&amp;nbsp;option, which you specify a user, and this lists&amp;nbsp;all&amp;nbsp;the processes that user is running. Each process listed has a 'PID' (process id) number associated with it. This is an important number!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;kill&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Use kill with a PID number to terminate a process. Use the ps command (above) to find out the PID for a process. Then type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;kill &lt;pid&gt;&amp;nbsp;&lt;/pid&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;to stop the process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;nice&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;All commands that you run have a priority. To give a command a lower priority, use nice with the command name. You can specify how "nice" you want to be by using the&amp;nbsp;-noption with a number from 1 to 19. A higher number means a lower priority. This command is often used if you are running something on a machine and want to give others priority when they are running processes that are more important.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;top&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The command top displays the top 15 processes on the system and periodically updates this information. If you specify a number, then that number processes will be displayed instead of the default.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;fg&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;If a process is running in the background, fg runs it in the foreground.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;bg&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;If a process is running in the foreground, bg runs it in the background.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 212.1pt;"&gt;&lt;a href="" name="editors"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Text Editors&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;a href="" name="editors1"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;There are a number of text editors available when using the UNIX operating system. Some work from with in the shell that you start it in. Start up these editors by using their name and then the name of the file you wish to edit. A new file is indicated by a name that does not already exist in the directory you are in. Other editors start up in their own windows when you start them from a shell. Read the man pages for more information about how to use the different text editors.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 106.05pt;"&gt;&lt;a href="" name="editors2"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-tab-count: 2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Text Editors in a Shell:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;emacs&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;pico&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;vi&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 212.1pt;"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Text Editor Applications:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;xemacs&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;emacs-19&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 212.1pt;"&gt;&lt;a href="" name="printers"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Using Printers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;a href="" name="printers1"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;In UNIX, you can print a file without opening it in a text editor using various commands. When you print to one of Brown's printers, your file will be printed with a "banner" sheet that identifies who the print job is for. The CS department has various locations to print to. The printer for undergraduates is cis. The department also has three printers for staff, namely ps1, ps2 and ps3. The 'ps' is short for POSTSCRIPT, which is what our printers use to understand and print the files.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;lpr&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The command lpr prints the named files to either the user's default printer (for most undergraduates, cis) or to the named printer using the -P option. For example, to print foo.html to cis (and cis is not the default printer), type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;lpr -Pcis foo.html&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;lpq&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;To print out the printer queue to check the status of a print job, use the lpq command. To specify a printer, use the -P option as used above. So, if I want to print out the queue for cis, I type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;lpq -Pcis&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;lprm&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The command lprm allows you to remove a job from the printer queue. To use the command, you can specify the job number by using the lpq command to determine what the number is. So if I find out from lpq that the job I want to remove is 787, I can type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;lprm 787&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;to remove the job from the printer queue. Using the command alone removes the first of your jobs in the printer queue.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;pr&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The pr command is most commonly used at brown with the&amp;nbsp;-f&amp;nbsp;option to print multiply files without banner sheets between the files. For example, if I want to print foo1, foo2 and foo3, I type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;pr -f foo1 foo2 foo3 | lpr&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;. The&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;pipe (|) operation&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&amp;nbsp;takes the output from the first command and uses it as the input for the second command. The pr command is basically used to apply options to, and then sent to the printer by piping the output to the lpr command. For more options, see the man pages.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;enscript&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The printer at Brown reads mainly POSTSCRIPT files. The enscript command converts text files to POSTSCRIPT format for printing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 176.75pt;"&gt;&lt;a href="" name="logon"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Logging On to Machines&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;a href="" name="logon1"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Logging on to a machine on console (at the terminal) is simple. But what if you want to use someone else's machine to log into your account, or log into another machine remotely. This is useful when you are running a number of processes on your machine and it would be faster to run some on another machine.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="logon3"&gt;&lt;/a&gt;&lt;a href="" name="logon2"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;su&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The su command allows you to become the "super-user" or another user in a shell. In order to use su, the password of the super-user must be supplied when prompted. If the first argument to su is a dash (-), for example&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;su - dmb&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;, the computer will go through the entire login sequence, where as without the dash, the environment will remain unchanged.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="rsh"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;rsh&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The rsh command creates a remote shell by connecting to the specified computer. If you specify a command, the command will be executed on the specified computer. A useful option is -l, which allows you to log in as a specified user. So, typing&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;rsh cslab0a -l dmb&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;will allow dmb to remotely log on to cslab0a from the computer she is on. She will have to type her password at the prompt for this to be successful, however. If dmb is already logged on the computer she is trying to rsh another machine from, she does not have to use the -l option. She can simply type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;rsh cslab0a&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;rlogin&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The command rlogin creates a remote login session from your terminal to the machine specified. Once again, you can specify a user name using the -l option. For dmb to remotely log on to another machine from someone else's account she would type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;rlogin cslab0a -l dmb&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;and type her password at the prompt. To remotely log on from her own account to another machine she would simply need to type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;rlogin cslab0a&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 176.75pt;"&gt;&lt;a href="" name="xserver"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;X server and DISPLAY&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;a href="" name="xserver1"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;When you are logged onto console on a machine, you own the X server, or what can be displayed on your screen. In order for other users or other machines to use your DISPLAY, you must give them permission, and in order for a user to use the DISPLAY of another machine, he or she must set the DISPLAY to be that computer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="xserver3"&gt;&lt;/a&gt;&lt;a href="" name="xserver2"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;xhost&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The xhost command is used to add and delete computers or users to the list allowed to make connections to the x server, which enables something to appear on the screen. Use&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;xhost + &lt;name&gt;&amp;nbsp;&lt;/name&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;to add permission, or&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;xhost - &lt;name&gt;&amp;nbsp;&lt;/name&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;to remove a permission. Using xhost + without a name allows anyone to use your xserver. The command&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;xhost + localhost&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;can be used to allow any user logged on to your machine to use the display.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;setenv DISPLAY&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The command&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;setenv&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&amp;nbsp;is used to set the various environment variables. A common variable that is often changed is the 'DISPLAY' variable, which determines where something will be displayed. You can set DISPLAY to any computer that has given your computer, or a user, permission to use the x server. So, for example, if you are a super-user on a computer and you want to set DISPLAY to localhost, you would type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;setenv DISPLAY localhost:0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 176.75pt;"&gt;&lt;a href="" name="misc"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Miscellaneous Commands&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="" name="misc3"&gt;&lt;/a&gt;&lt;a href="" name="misc2"&gt;&lt;/a&gt;&lt;a href="" name="misc1"&gt;&lt;/a&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;yppasswd&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Everyone has a password to get into their account for security purposes. You can change your network password using the yppasswd command. After typing the command, it will prompt you for your old password (for security reasons) and then ask you the new password twice to prevent mistakes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;cal&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The cal command prints a calendar to standard output. You can specify a month (using the number for the month) and a year, or just a year to print a calendar for an entire year. If you do not specify anything, a calendar for the current month is printed. So to print the calendar for December 1999, type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;cal 12 1999&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;date&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The date command simply returns the current date and time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;whoami&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The whoami command displays the login name of the current effective user. If you have used su to adopt another user, whoami wil report the login name associated with that user ID. For a command similar to whoami, but with more options, see the man pages for&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;who&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;which&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The command which takes a list of specified names and looks for what would be executed had these names been given as commands. UNIX allows you to alias commands to a shorter name in your .alias file. If you have aliased a command, the which expands the name. For example, if I have the command 'zwrite' aliased to 'z' in my .alias file, and I type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;which z&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;, the command returns&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;z: aliased to zwrite&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;loc&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The command loc returns the address of a user. This command is extremely useful when used with the -g option, which locates all users in the specified group. For example, if i wanted to locate all of the cs015 tas, I would type&amp;nbsp;&lt;/span&gt;&lt;span class="SourceText"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: &amp;quot;Courier New&amp;quot;;"&gt;loc -g cs015ta&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;groups&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The groups command will list all of the groups a specified user belongs to. If a user is not specified, the groups for the current user will be listed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;grplist&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;The grplist command will list all the users in a specified group.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;telnet&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;To create a connection to a remote system, use telnet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;keyinit&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;In order to telnet into the Brown Computer Science department's telnet host, you must use the S/Key authentication system. The keyinit command is used to initialize the system or change your password so you can use S/Key one-time passwords to login. This lets you avoid sending a real password over the network.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;lw, sunfree, sunlist&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;These are commands used for the sun lab at Brown University. They provide information in various formats about who is logged in on console on what computer in the sunlab. Sorry, there are no man pages for these commands.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;xstartfm&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;Framemaker is a word processing and desktop publishing package. It is often used to make lecture slides in the Brown cs department. To start framemaker, use the xstartfm command. It is often helpful to run framemaker in the background by using the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&amp;amp; operator&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&lt;b&gt;xcolorsel&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;xcolorsel displays the colors available (usually the contents of the rgb.txt file). Each color will consist of three intergers (usually 0-255) representing the RGB values and a nickname for the color. You may want to run this command in the background using the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Arial; mso-bidi-font-family: Mangal;"&gt;&amp;amp; operator&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10.0pt; mso-bidi-font-family: Mangal;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3521813103867728569-7230138711104186952?l=chalasanikamesh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chalasanikamesh.blogspot.com/feeds/7230138711104186952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3521813103867728569&amp;postID=7230138711104186952&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default/7230138711104186952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3521813103867728569/posts/default/7230138711104186952'/><link rel='alternate' type='text/html' href='http://chalasanikamesh.blogspot.com/2010/11/unix-shell-commands.html' title='UNIX SHELL COMMANDS'/><author><name>chalasani kamesh</name><uri>https://profiles.google.com/105231456151823138576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-wZK-njVDkZM/AAAAAAAAAAI/AAAAAAAADSk/NQfL40EoTyc/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3521813103867728569.post-5479188302948429866</id><published>2010-11-02T22:30:00.000-07:00</published><updated>2010-11-02T22:31:12.805-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Q AND ANS'/><title type='text'>SQL SERVER 2008 INTERVIEW QUESTIONS</title><content type='html'>&lt;div class="Section1"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Can you explain about buffer cash and log Cache in sql server?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Buffer Cache:&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Buffer cache is a memory pool in which data pages are read. It performance of the buffer cache is indicated as follows: 95% indicates that pages that were found in the memory are 95% of time. Another 5% is needed for physical disk access. If the value falls below 90%, it is the indication of more physical memory requirement on the server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Log Caches:&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Log cache is a memory pool used to read and write the log pages. A set of cache pages are available in each log cache. The synchronization is reduced between log and data buffers by managing log caches separately from the buffer cache.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;What is a Trace frag? Where do we use it?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Temporary setting of specific server characteristics is done by trace tags. DBCC TRACEON is the command to set the trace flags. Once activated, trace flag will be in effect until the server is restarted. Trace frags are frequently used for diagnosing performance issues.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;For example, the trace flag 3205 is used for disabling hard compression for tape drives, when an instance of SQL Server starts.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Describe how to use Linked Server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;MS SQL Server supports the connection to different OLE DB on an ad hoc basis. This persistent connection is referred as Linked Server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;The following are the steps to use Linked Server for any OLE DB. I refer this to use an MS-Excel workbook.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;1.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Open SQL Server Management Studio in SQL Server 2005&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;2.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Expand Server Objects in Object Explorer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;3.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Right-click on Linked Servers. Click on New Linked Server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;4.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Select General page in the left pane and&lt;br /&gt;i. Type any name for the linked server in the first text box&lt;br /&gt;ii. Select the Other Data Source option.&lt;br /&gt;iii. Click on Microsoft Jet 4.0 OLE DB Provider from the Provider list.&lt;br /&gt;iv. Type the Excel as the name of the OLE DB data source.&lt;br /&gt;v. Type the full path and file name of the Excel file in Data Source box.&lt;br /&gt;vi. Type the Excel version no. (7.0, 8.0 etc) in the Provider String. Use Excel 8.0 for Excel 2000, Excel 2002 or Excel 97.&lt;br /&gt;vii. To create a linked server click on OK.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Explain how to make remote connection in database?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;The following is the process to make a remote connection in database:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l1 level1 lfo2; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Use SQL Server Surface Area Configuration Tool for enabling the remote connection in database.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l1 level1 lfo2; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Click on Surface Area Configuration for Services and Connections.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l1 level1 lfo2; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Click on SQLEXPRESS/Database Engine/RemoteConnections&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l1 level1 lfo2; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Select the radio button: Local and Remote Connections and select ‘Using TCP/IP only’ under Local and Remote Connections.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l1 level1 lfo2; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Click on OK button / Apply button&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Explain how to send email from database?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;SQL Server has a feature for sending mail. Stored procedures can also be used for sending mail on demand. With SQL Server 2005, MAPI client is not needed for sending mails.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;The following is the process for sending emails from database.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;- Make sure that the SQL Server Mail account is configured correctly and enable Database Mail.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;- Write a script to send an e-mail. The following is the script.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;USE [YourDB]&lt;br /&gt;EXEC msdb.dbo.sp_send_dbmail&lt;br /&gt;@recipients = 'mathew@xyz.com;&lt;br /&gt;@body = ' A warm wish for your future endeavor',&lt;br /&gt;@subject = 'This mail was sent using Database Mail' ;&lt;br /&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Difference between cross join and Full outer join&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Cross Join :&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;No join conditions are specified.&lt;br /&gt;Results in pairs of rows.&lt;br /&gt;Results in Cartesian product of two tables.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Full Outer Join:&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;&lt;br /&gt;A combination of both left and right outer joins.&lt;br /&gt;Results in every row from both of the tables , at least once.&lt;br /&gt;Assigns NULL for unmatched fields.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Explain the purposes of OPENXML clause sql server stored procedure&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;OPENXML parses the XML data in SQL Server in an efficient manner. It’s primary ability is to insert XML data to the RDB. It is also possible to query the data by using OpenXML. The path of the XML element needs to be specified by using ‘xpath’.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;The following is a procedure for retrieving xml data:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;DECLARE @index int&lt;br /&gt;DECLARE @xmlString varchar(8000)&lt;br /&gt;SET @xmlString ='&lt;persons&gt;&lt;br /&gt;&lt;person id="15201"&gt; &lt;name&gt;Prasanth&lt;/name&gt;&lt;br /&gt;&lt;phoneno&gt;9343463943/PhoneNo&amp;gt;&lt;br /&gt;&lt;/phoneno&gt;&lt;/person&gt; &lt;person id="15202"&gt; &lt;name&gt;Laasya&lt;/name&gt;&lt;br /&gt;&lt;phoneno&gt;9342673212&lt;/phoneno&gt;&lt;br /&gt;EXEC sp_xml_preparedocument @index OUTPUT, @xmlString&amp;nbsp;&lt;/person&gt;&lt;/persons&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;SELECT * FROM OPENXML (@index, 'Persons/Person') WITH (id varchar(10), Name varchar(100) 'Name' , PhoneNo varchar(50) 'PhoneNo')&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;EXEC sp_xml_removedocument @index&lt;br /&gt;The above code snippet results the following:&lt;br /&gt;15201 Prasanth 9343463943&lt;br /&gt;15202 Laasya 9342673212&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;Explain inline variable assignment in sql server 2008 with an example.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Inline variable assignment in SQL Server 2008 enables to – declare, and assign the variables in a ‘single line’.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The traditional Ex:&lt;br /&gt;DECLARE @myVar int&lt;br /&gt;SET @myVar = 5&lt;br /&gt;need to declare the variable and assigning it to the variable to split into 2 lines and use 2 statements - DECLARE and SET.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;In SQL Server 2008, as the name suggests ‘inline’, both declaration and assignment can be given in a single line:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;DECLARE @myVar int = 5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;What is Compound Operators in sql server 2008? Explain with an example&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Compound operators feature is enhanced in SQL Server 2008. They are like compound operators in languages like C, C++ etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Compound operators are a combination of operator with another operator.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The compound assignment operators are - arithmetic operators - +=,-=,*=, /=, %=, bitwise operators -&amp;amp;=, ^=,|=&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Declare @number int&lt;br /&gt;Set @number = 10&lt;br /&gt;--using Compound assignment operator&lt;br /&gt;Set @number+=200&lt;br /&gt;Select @number as MyResult&lt;br /&gt;Go&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;SQL Server 2008 introduces automatic auditing. Explain its benefits&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Automatic auditing is a true auditing solution for enterprise customers. STL Trace can be used for satisfying several auditing needs. SQL Server Auditing feature offers a number of advantages that attracts and help DBAs with much more easily achievable goals. These include meeting regulatory compliance requirements. These include –&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;5.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Provision for centralized storage of audit logs and integration with system center&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;6.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Better performance that is noticeable&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;7.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Permits free-grained auditing in which an audit can be targeted for some specific actions by a principle against a particular object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;8.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Allows the objects of audit to be treated as first class database objects, which mean Transact-SQL DDL statements can create these objects.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;9.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The database object is controlled by database engine’s permission model and enforcement control.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;10.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;A new level permission is featured in SQL Audit – ALTER ANY SERVER AUDIT- which allows a principle to CREATE, ALTER and DROP an Audit Specification object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l0 level1 lfo1; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;11.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;A database level permission – ALTER ANY DATABASE AUDIT – is introduced to allow a principle to CREATE, ALTER and DROP a Database specification object..&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain Compression - row-level and page-level compression in sql server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Data compression is a feature which is used to reduce disk storage space and increase the performance of the query by reducing the I/O operations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;SQL Server 2008 supports two types of compression – Row-level compression and Page-level compression.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;A row-level and page-level compression takes place on the metadata.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Page level compression results in persisting certain common data that affects rows in a single location.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The compression takes place into number of bits. For example, the length of ‘varchar’ will be stored in 3 bits.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;What is filtered indexes in sql server 2008? Explain its benefits and provide an example&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Filtered index in SQL Server 2008 is an index WHERE clause. A filtered index is an optimized non-clustered index. It allows for defining the filter predicate with WHERE clause at the time of creating index. The rows from the filtered index are available in B-Tree will contain the rows which only satisfy the criteria of the filter while creating the index.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The benefits of Filtered indexes are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l1 level1 lfo2; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Has only that row which satisfies the filter criteria defined. This results in reducing the storage space need for the index.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l1 level1 lfo2; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The filtered index statistics are accurate and more compact. The reason is they consider only the tuples / rows in the filtered index and it reduces the cost of overhead of updating the statistics.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l1 level1 lfo2; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The data modification impact is less by using filtered index. Because it is updated only at the time where the data of the index is impacted.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l1 level1 lfo2; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The cost of maintenance will be reduced, because only the subset of rows will be considered which rebuilding the index.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Ex: CREATE NONCLUSTERED INDEX FI_Employee_DOJ ON Employee(DOJ)&lt;br /&gt;WHERE DOJ IS NOT NULL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;In the above example the NOT NULL is the filtered criteria for the index. Employee is the table and DOJ is the column name.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain Resource governor in sql server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Resource Governor enables the DBA for managing the work load of SQL Server and critical system resource consumption. The limits of CPU and memory which are the incoming sessions to the SQL Server will be controlled by Resource Governor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The various scenarios that occur when sudden spike in CPU and memory utilization that result in slow responses for querying requests. The Resource Governor enables the DBA’s to differentiate the workloads and allocates the shared resources which allow the available CPU and memory resources.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain Plan freezing in sql server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Plan freezing is a new concept that allows the DBAs to persist plan guides. These guides could be reverted to when the queries either fail or drain the resources after the upgrade. The stability to queries is achieved by Plan Freezing. Several monitoring features for checking when the query is succeeded or failed are included with Plan Freezing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain Table Value Parameters (TVP) in sql server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;A user defined tables are allowed between queries using the Table Value Parameters feature of SQL Server 2008. It also supports defining the tables between a client and a server. Querying, joining, inserting values, updating values etc., can be done as is being done with a normal table. Instead of a query taking a long list of parameters, they simple take TVP as a parameter.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;For creating TVP, one need to define a user defined type and the columns which the TVP would hold. The following example creates a customer type which holds an id and name.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;CREATE TYPE Customer AS TABLE (id int, CustomerName nvarchar(50))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;A dummy table is created for persisting the information.&lt;br /&gt;CREATE TABLE Customers (id int, CustomerName nvarchar(50)) GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;A procedure can also be created which takes a single parameter as a Table Value Parameter. Data can be inserted into two different tables, however from the outside it is a single object and only a single stored procedure is being called.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;CREATE Procedure AddCustomers(@customer Customer READONLY) AS&lt;br /&gt;INSERT INTO Customers SELECT id, CustomerName FROM @customer&lt;br /&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The TVP as parameter must have the READONLY attribute and TVPs are basically temporary tables persisted on the server in tempdb.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain Intellisense in sql server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Prior to SQL Server 2008, IntelliSense was available from third-party products. Red-Gate has a pretty good IntelliSense product.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;IntelliSense of SQL Server 2008 is ON by default, and can be turn it OFF by using Tools-&amp;gt;Options from Management Studio.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The process involves in creating a table object like the following:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;IF OBJECT_ID('SalesHistory')&amp;gt;0&lt;br /&gt;DROP TABLE SalesHistory;&lt;br /&gt;GO&lt;br /&gt;CREATE TABLE [dbo].[SalesHistory]&lt;br /&gt;(&lt;br /&gt;[SaleID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,&lt;br /&gt;[Product] [char](150) NULL,&lt;br /&gt;[SaleDate] [date] NULL,&lt;br /&gt;[SalePrice] [money] NULL&lt;br /&gt;)&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;Only the table exists. Use DML statements like SELECT, INSERT against SalesHistory table. A dropdown list of the fields available would be chosen from the table. This helps in knowing the information about columns easier.&lt;br /&gt;DML statements can also be used with IntelliSense. For example type UPDATE statement against the SalesHistory table. A list of available fields are available for UPDATE statement. Not only for UPDATE also other statements.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain PowerShell included in SQL Server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Windows PowerShell is a new and powerful scripting shell which can be used by developers and administrators for automating server administration and deployment of the application. The PowerShell supports complex logic than the Transact-SQL scripts, which provides the SQL Server administrators the power to build robust administration scripts. Other Microsoft products can be administered by PowerShell. In a nut shell, PowerShell is a common scripting language across different servers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;There are two Windows PowerShell snap-ins provided by SQL Server provides:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l2 level1 lfo3; tab-stops: list 0in left 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;SQL Server provider: It enables the navigation mechanism similar to the file system paths. Paths that are similar to file system paths can be built. The process is associated with SQL Server management object model and the other nodes are object model classes based.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l2 level1 lfo3; tab-stops: list 0in left 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Set of cmdlets: These are the commands which are utilized in PowerShell scripts for specifying an action of SQL Server. The actions such as running sqlcmd script which contains Transact-SQL or XQuery statements, are supported by cmdlets.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain Declarative Management Framework (DMF) in SQL Server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Declarative Management Framework is a system for managing the instances of SQL Server 2008. It is a policy based system. The database security can be tighten with polity management, automated administration and explicit administration. A policy can be designed for prohibiting the usage of unauthorized applications and the naming conventions on the database are implied for developers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Various tasks are planned by many DBAs and backing up databases, reviewing events logs, scanning for improper / unauthorized object creations, long running query SPIDs killing are being performed. Lot of tactical and reactionary items on the list of tasks can keep the conscientious DBA busy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;SQL Server will enforce to define the policies by using Management Studio and select certain servers for enforcing the policy. These can be monitored from SSMS, which acts as a central console.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Encryption of entire databases without the need for application changes in sql server 2008. Comment&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The demands of regulatory compliance and overall data privacy concern are enabled by encryption in organizations. Searching for encrypted data by using fuzzy searches or range includes secure data from unauthorized users, and data encryption. The existing applications need not be changed by using this concept.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain External Key Management in&amp;nbsp;sql server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;A comprehensive solution for encryption and key management is provided by SQL Server 2008. The growing need for greater information security within the data centers of enterprises is managed by security keys. This could be done by excellent support given by SQL Server 2008, by supporting third-party keys management and hardware security module products.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain Enhanced database mirroring in&amp;nbsp;sql server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Data base mirroring in SQL Server 2008 is enhanced by:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l3 level1 lfo4; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Automatic Page Repair: The principal is enabled and mirror computers for recovering transparently from 823 and 824 errors on data pages, with a request for a fresh copy of the page that is corrupted from the mirroring partner.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l3 level1 lfo4; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Improved Performance: The outgoing log stream is compressed by SQL Server 2008 for minimizing the network bandwidth that is required by database mirroring.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l3 level1 lfo4; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Enhanced Supportability: Additional performance counters for enabling more granular accounting of the time, which is spent across the different stages of DBMS log processing. Dynamic Management Views and extensions of the existing views are included, for exposing additional information that is concerned to mirroring sessions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain Hot Add CPU in&amp;nbsp;sql server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;CPUs can dynamically be added to a running system, by using Hot Add CPU feature. New hardware can be added physically and online hardware partitioning logically. A virtualization layer can be used to add this feature virtually.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Hot Add CPU feature allows a database for scaling on demand for extending memory resources added online, The CPU resources can be supported for SQL Server 2008 on hardware platforms that supports, without the need of application downtime&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The following are the requirements for Hot Add CPU:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-list: l4 level1 lfo5; tab-stops: list .5in; text-indent: -.25in;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;1.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Hardware which supports Hot Add CPU&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-list: l4 level1 lfo5; tab-stops: list .5in; text-indent: -.25in;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;2.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Windows Server 2008 Datacenter server of 64-bit or Windows Server 2008 Enterprise Edition for the Itanium-Based System operating system.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-list: l4 level1 lfo5; tab-stops: list .5in; text-indent: -.25in;"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;3.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;&amp;nbsp;SQL Server Enterprise.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain Extended events in&amp;nbsp;sql server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Extended Events are the enhanced event handling system in SQL Server. It is an architecture that is highly scalable, highly configurable. It allows the DBAs for collecting the required information, could it be little or much, for problem identification or problem trouble shooting.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Data collection which can output to an Event Tracing for Windows target is one of the key features of Extended Events. This allows the correlating data with the data collected from the corresponding operating system with the help of Event Tracing for Windows. Even the wait events could be correlated with the kernel EWT data. This process is done within a single view for isolating the waits for a specific reason.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The events are handled by an engine which is a services and objects collection which allows defining, process and managing event sessions, event data and event sessions respectively.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain&amp;nbsp;sql server 2008 backup compression&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;A compression backup is smaller than uncompressed backup. The backup speed significantly increases because it needs less disk space and I/O operations. The CPU usage is increased and the increased and the additional CPU that is consumed by the process of compression would impact the operations that are running concurrently.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The following processes can be isolated for obtaining a good picture&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;- Physical disk counters&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-list: l5 level1 lfo6; tab-stops: list .5in; text-indent: -.25in;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10pt;"&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Device throughput bytes / second counter of SQL Server Backup Device object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: .5in; mso-list: l5 level1 lfo6; tab-stops: list .5in; text-indent: -.25in;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10pt;"&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Backup/Restore throughput / second counter of SQL Server Databases object.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain filestream storage of sql server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The complexity of application development and reduces the managing unstructured data cost. The manageability is increased by extending various capabilities which are available only to relational data to non-relational data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;SQL Server 2008 came with 2 new capabilities for persisting BLOB data:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;1. FILESTREAM: It is an attribute that can be set on a ‘varbinary’ column for data persistence on the file streams. This enables the benefits from fast streaming capabilities and storage capabilities.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;2. Remote BLOB storage: It is a client-side API which reduces the application building complexity and relies on an external persistence for BLOBs and a database for relational data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;SQL Server 2008 will also continue the support for standard BLOB type through the data type ‘varbinary’.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Sparse Columns of&amp;nbsp;sql server 2008. Explain with an example&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;A column with an optimized storage for null values is known as sparse column. Sparse columns reduce the storage space needs for null values. In a scenario of saving 20 percent to 40 percent of storage space, sparse columns can be considered. They are created using CREATE TABLE or ALTER TABLE statements. Sparse columns can be used with&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;- Column sets: The statements INSERT, DELETE, UPDATE could be referred the sparse columns by name. The same an also be combined into a single XML Column. This is a column set.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;- Filtered index: As there are several null value rows in sparse columns, they are appropriate for filtered indexes. The filtered index on a sparse column can accommodate only the rows / tuples which populate values. The index created with filtered index is small and more efficient index.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;A large number of user defined properties can be accessed by using sparse columns and filtered indexes enabled applications such as Share Point Services of windows are efficiently store and access.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;TIME data type, datetime2, datetimeoffset data type in sql server 2008. Explain with an example for each&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;TIME Data type:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;TIME data type of SQL Server 2008 allows to exclusively storing the time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The following is an example of using TIME data type:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;DECLARE @dot as TIME&lt;br /&gt;SET @dot = get date()&lt;br /&gt;PRINT @dt&lt;br /&gt;The above script displays the output as HH:MM:SS.SSSSSSS format. The TIME has the data range from 00:00:00.0000000 through 23:59:59.9999999.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;DATETIME2 Data Type:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;DATETIME2 is a data type which returns date/time. It provides larger factional seconds and the year compared to DATETIME data type. There are options to specify the number fractions as per the need. The maximum fraction is 7 and the minimum fraction is 0.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The following is an example of using DATETIME2 data type:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;DECLARE @dt7 datetime2(7)&lt;br /&gt;SET @dt7 = Getdate()&lt;br /&gt;PRINT @dt7&lt;br /&gt;The above script displays the date as YYYY-MM-DD HH:MM:SS.SSSSSSS format.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;DATETIMEOFFSET Data type:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;To store date, time along with time zone, the DATETIMEOFFSET is used. This is important when dealing with date of several countries with various time zones. The clock is based on 24-hour clock.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The following is an example of using DATETIMEOFFSET data type:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;DECLARE @dt DATETIMEOFFSET(0)&lt;br /&gt;SET @dt = '2007-10-29 22:50:55 -1:00'&lt;br /&gt;DECLARE @dt1 DATETIMEOFFSET(0)&lt;br /&gt;SET @dt1 = '2007-10-29 22:50:55 +5:00'&lt;br /&gt;SELECT DATEDIFF(hh,@dt,@Dt1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Explain spatial data types - geometry and geography in&amp;nbsp;sql server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Location based data can be seamlessly consumed and extended by the enterprises with the comprehensive support of spatial data types.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Geometry data type: This data type supports a flat 2D surface with points of XY coordinates. The points could be on line string, on lines and also mark the polygon edges. There are certain methods like STintersects, STarea, STDistance and STTouch which uses geometry data types.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Geography data type: The similar methods of geometry data type are used in this data type. But the type reflects on curved 2D surfaces. The ST* functions are utilized but the results in the curvature.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;DECLARE @gmtry geometry;&lt;br /&gt;SET @gmtry = geometry::STGeomFromText('POINT (3 4)', 0);&lt;br /&gt;DECLARE @grphy geography;&lt;br /&gt;SET @grphy = geography::STGeomFromText('POINT (3 4)', 4326);&lt;br /&gt;Certain observations need to be considered. They are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;- A polygon is tried which is larger than a hemisphere, an ArgumentException is thrown.&lt;br /&gt;- If the returned result is larger than a hemisphere, then a NULL value is returned.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Describe policy based administration feature of SQL Server 2008&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Policy based database administration allows the DBA for managing the instances and objects of SQL Server 2008 across the enterprise by a defined policies that are set. These policies are the rules and regulations which determine the possible ways of what to do and what not to do and the way the violations of policies are enforced and reported. The policies are well defined by using facets and conditions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Facet: An object which contains the properties which well describes a component.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Condition: A logical expression that is defined on a facet. It is used for identification of acceptable property values of the facet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Change Data Capture (CDC) feature in sql server 2008. Explain with an example&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Change Data Capture is a feature that is used for tracking the changes on a table. The process involves in steps.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Step 1 – Creation of a database&lt;br /&gt;The database name is MyDataBase&lt;br /&gt;USE [master]&lt;br /&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;/*** Object: Database [MyDataBase] ***/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;IF EXISTS (SELECT name FROM sys.databases WHERE name = 'MyDataBase')&lt;br /&gt;DROP DATABASE [MyDataBase]&lt;br /&gt;GO&lt;br /&gt;USE [master]&lt;br /&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;/*** Object: Database [MyDataBase] ***/&lt;br /&gt;CREATE DATABASE [MyDataBase]&lt;br /&gt;GO&lt;br /&gt;Step 2 - Creation of a table in MyDataBase database&lt;br /&gt;USE [MyDataBase]&lt;br /&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;/*** Object: Table [dbo].[MyTable] ***/&lt;br /&gt;IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTable]')&lt;br /&gt;AND type in (N'U'))&lt;br /&gt;DROP TABLE [dbo].[MyTable]&lt;br /&gt;GO&lt;br /&gt;USE [MyDataBase]&lt;br /&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;CREATE TABLE [dbo].[MyTable](&lt;br /&gt;[ID] [int] NOT NULL,&lt;br /&gt;[Name] [varchar](100) NULL,&lt;br /&gt;CONSTRAINT [MyTable_PK] PRIMARY KEY&lt;br /&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Step 3 - Enabling Change Data Capture feature.&lt;br /&gt;The Transact SQL command enables the Change Data Capture feature.&lt;br /&gt;After enabling the Change Data Capture, a schema along with objects is created.&lt;br /&gt;USE [MyDataBase]&lt;br /&gt;GO&lt;br /&gt;EXEC sys.sp_cdc_enable_db_change_data_capture&lt;br /&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Using the cdc the columns, tables, history of ddl commands, index columns and time mappings are created as follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;cdc.captured_columns&lt;br /&gt;cdc.change_tables&lt;br /&gt;cdc.ddl_history&lt;br /&gt;cdc.index_columns&lt;br /&gt;cdc.lsn_time_mapping&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Describe how to store and query Spatial Data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Spatial data is stored by using Geometry and Geography data types that are introduced in SQL Server 2008.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Geometry data type is created as follows:&lt;br /&gt;CREATE TABLE SpatialTable&lt;br /&gt;( id int IDENTITY (1,1),&lt;br /&gt;GeomCol1 geometry,&lt;br /&gt;GeomCol2 AS GeomCol1.STAsText() );&lt;br /&gt;GO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The data into the geometry data column is persisted by using the following INSERT command&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;INSERT INTO SpatialTable (GeomCol1)&lt;br /&gt;VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The data in the geometry data columns is queried by using the following DECLARE and SELECT statements:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;DECLARE @geom1 geometry;&lt;br /&gt;DECLARE @geom2 geometry;&lt;br /&gt;DECLARE @result geometry;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;SELECT @geom1 = GeomCol1 FROM SpatialTable WHERE id = 1;&lt;br /&gt;SELECT @geom2 = GeomCol1 FROM SpatialTable WHERE id = 2;&lt;br /&gt;SELECT @result = @geom1.STIntersection(@geom2);&lt;br /&gt;SELECT @result.STAsText();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Describe Entity Data Services in sql server 2008, i.e. Line Of Business (LOB) framework and Entity Query Language (eSQL)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;SQL Server 2008 allows objects to be created for high level business like Customers, Parts, Inventory. Instead of returning individual rows and tables, these entities could be used. The E-R model will now match with the SQL model.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;MERGE in sql server 2008. Explain with an example&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Merge statement allows a single statement for INSERT, DELETE and UPDATE a row that depends on a condition. The target table for certain operations is based on the results of join with a source table. The following example illustrates the use of MERGE.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;MERGE InventoryMaster AS invmstr&lt;br /&gt;USING (SELECT InventoryID, Descr FROM NewInventory) AS src&lt;br /&gt;ON invmstr. InventoryID = src. InventoryID&lt;br /&gt;WHEN MATCHED THEN&lt;br /&gt;UPDATE SET invmstr.Descr = src.Descr&lt;br /&gt;WHEN NOT MATCHED THEN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;INSERT (InventoryID, Descr) VALUES (src. InventoryID, src.Descr);.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;What is blocking?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Blocking happens when one connection from an application holds a lock and a second connection requires a conflicting lock type. This forces the second connection to wait, blocked on the first..&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;What is Public Role in SQL Server?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Every database has a public role which holds all the default permissions for the users in a database. This role cannot be dropped and cannot have roles or groups assigned. For security reasons, permissions granted to public role should be minimized..&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Discuss about SQL Server Login?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;SQL server login is used to connect to SQL server. This used when login in through the windows login credentials is not existent. This is possible when SQL Server is configured to operate in Mixed Mode. SQL server login is typically needed when applications are connected to external vendors or for users who don’t have any windows NT/2000 account.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Discuss about Builtin\Administrator.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The built in Administrator Account is basically used during some setup to join some machine in the domain. The built in administrator should be disabled immediately thereafter. For any disaster recovery, the account will be automatically enabled. It should not be used for normal operations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Failover clustering overview&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Failover clustering is mainly used for data availability. Typically in a failover cluster, there are two machines. One machine provides the basic services and the second is available to run the service when the primary system fails. The primary system is monitored periodically to check if it works. This monitoring may be performed by the failover computer or an independent system also called as cluster controller. In an event of failure of primary computer, the failover system takes control.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="XML"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Describe the XML support SQL server extends.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;SQL Server (server-side) supports 3 major elements:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;a. Creation of XML fragments: This is done from the relational data using FOR XML to the select query.&lt;br /&gt;b. Ability to shred xml data to be stored in the database.&lt;br /&gt;c. Finally, storing the xml data.&lt;br /&gt;Client-side XML support in SQL Server is in the form of SQLXML. It can be described in terms of&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l6 level1 lfo7; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;XML Views: providing bidirectional mapping between XML schemas and relational tables.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; mso-list: l6 level1 lfo7; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;span style="color: black; font-family: Symbol; font-size: 10pt;"&gt;·&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Creation of XML Templates: allows creation of dynamic sections in XML.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 35.35pt; tab-stops: 35.35pt; text-indent: -14.15pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Brief about Bulk copy with an example.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Bulk copy utility of SQL allows data to be copied from one data file to another. The data is first exported from the source data file and then imported into the SQL server using the bcp command. It can also be used to transfer data from a table to a file&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Describe how bcp command prompt utility is used to import and export data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;The bcp utility is accessed from the command prompt.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;Syntax:&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;bcp {dbtable | query} {in | out | queryout | format} datafile [-n native type] [-c character type] [-S server name] [-U username] [-P password] [-T trusted connection]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;It starts with specifying the database or object name. In and out means whether the data needs to be copied into or out of the database. Hence in will be used for importing data while out will be used to export data. Remaining arguments are the basic command line arguments.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;Example1&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt; import data of Company database to the employee table&lt;br /&gt;bcp Company.dbo.employee in c:\temp\employee.bcp -c -Sstevenw -Usa –P&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;Example2:&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Export data of Company database from the employee table&lt;br /&gt;bcp Company.dbo.employee out c:\temp\employee.bcp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Describe how bulk insert statement is used to import data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Bulk Insert is used to copy data from a file into a table or view in a format as specified by the user.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt; font-weight: normal;"&gt;Syntax:&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;BULK INSERT&lt;br /&gt;[ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ]&lt;br /&gt;FROM 'data_file'&lt;br /&gt;[ WITH&lt;br /&gt;(&lt;br /&gt;[ [ , ] BATCHSIZE = batch_size ]&lt;br /&gt;[ [ , ] CHECK_CONSTRAINTS ]&lt;br /&gt;[ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ]&lt;br /&gt;[ [ , ] DATAFILETYPE =&lt;br /&gt;{ 'char' | 'native'| 'widechar' | 'widenative' } ]&lt;br /&gt;[ [ , ] FIELDTERMINATOR = 'field_terminator' ]&lt;br /&gt;[ [ , ] FIRSTROW = first_row ]&lt;br /&gt;[ [ , ] FIRE_TRIGGERS ]&lt;br /&gt;[ [ , ] FORMATFILE = 'format_file_path' ]&lt;br /&gt;[ [ , ] KEEPIDENTITY ]&lt;br /&gt;[ [ , ] KEEPNULLS ]&lt;br /&gt;[ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ]&lt;br /&gt;[ [ , ] LASTROW = last_row ]&lt;br /&gt;[ [ , ] MAXERRORS = max_errors ]&lt;br /&gt;[ [ , ] ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) ]&lt;br /&gt;[ [ , ] ROWS_PER_BATCH = rows_per_batch ]&lt;br /&gt;[ [ , ] ROWTERMINATOR = 'row_terminator' ]&lt;br /&gt;[ [ , ] TABLOCK ]&lt;br /&gt;[ [ , ] ERRORFILE = 'file_name' ]&lt;br /&gt;)]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 35.35pt;"&gt;&lt;strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;Example:&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black; font-family: Arial; font-size: 10pt;"&gt;BULK INSERT target.txt FROM ‘C:\Dest.txt’ WITH ( FIELDTERMINATOR = ‘ ” , ” ‘)&lt;br /&gt;The FIELDTERMINATOR argument allows you to specify the delimiter used to discern column values.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="tab-stops: 35.35pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-family: 'Times New Roman'; font-size: 12pt;"&gt;&lt;br clear="all" style="mso-break-type: section-break; page-break-before: always;" /&gt; &lt;/span&gt;  &lt;br /&gt;&lt;div class="MsoBodyText" style="line-height: 12.75pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-pagination: widow-orphan;"&gt;&lt;strong&gt;&lt;span style="color: #555555;"&gt;• &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: #555555; font-family: Verdana; font-size: 9pt;"&gt;What kind of comparison operators can be used in a WHERE clause?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: 1.4pt; mso-padding-alt: 1.4pt 1.4pt 1.4pt 1.4pt; mso-table-layout-alt: fixed;"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td style="background: #EDEFF0; border-right: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-top-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 221.75pt;" width="296"&gt;&lt;div align="left" class="TableHeading" style="layout-grid-mode: char; text-align: left;"&gt;Operator&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #EDEFF0; border: double gray 1.0pt; mso-border-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 262.6pt;" width="350"&gt;&lt;div align="left" class="TableHeading" style="layout-grid-mode: char; text-align: left;"&gt;Meaning&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 221.75pt;" width="296"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl01"&gt;&lt;/a&gt;= (Equals)&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 262.6pt;" width="350"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;Equal to&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 221.75pt;" width="296"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl02"&gt;&lt;/a&gt;&amp;gt; (Greater   Than)&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 262.6pt;" width="350"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;Greater than&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 221.75pt;" width="296"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl03"&gt;&lt;/a&gt;&amp;lt; (Less Than)&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 262.6pt;" width="350"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;Less than&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 221.75pt;" width="296"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl04"&gt;&lt;/a&gt;&amp;gt;= (Greater   Than or Equal To)&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 262.6pt;" width="350"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;Greater than or equal to&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 221.75pt;" width="296"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl05"&gt;&lt;/a&gt;&amp;lt;= (Less Than   or Equal To)&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 262.6pt;" width="350"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;Less than or equal to&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 221.75pt;" width="296"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl06"&gt;&lt;/a&gt;&amp;lt;&amp;gt; (Not   Equal To)&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 262.6pt;" width="350"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;Not equal to&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 221.75pt;" width="296"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl07"&gt;&lt;/a&gt;!= (Not Equal   To)&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 262.6pt;" width="350"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;Not equal to (not SQL-92   standard)&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 221.75pt;" width="296"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl08"&gt;&lt;/a&gt;!&amp;lt; (Not Less   Than)&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 262.6pt;" width="350"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;Not less than (not   SQL-92 standard)&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-lastrow: yes;"&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 221.75pt;" width="296"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl09"&gt;&lt;/a&gt;!&amp;gt; (Not   Greater Than)&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 262.6pt;" width="350"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;Not greater than (not   SQL-92 standard)&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoBodyText" style="line-height: 12.75pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-pagination: widow-orphan;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoBodyText" style="line-height: 12.75pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-pagination: widow-orphan;"&gt;&lt;strong&gt;&lt;span style="color: #555555;"&gt;• &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: #555555; font-family: Verdana; font-size: 9pt;"&gt;What are the logical operators?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: 1.4pt; mso-padding-alt: 1.4pt 1.4pt 1.4pt 1.4pt; mso-table-layout-alt: fixed;"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td style="background: #EDEFF0; border-right: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-top-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 90.9pt;" width="121"&gt;&lt;div align="left" class="TableHeading" style="layout-grid-mode: char; text-align: left;"&gt;Operator&lt;/div&gt;&lt;/td&gt;   &lt;td style="background: #EDEFF0; border: double gray 1.0pt; mso-border-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 391.95pt;" width="523"&gt;&lt;div align="left" class="TableHeading" style="layout-grid-mode: char; text-align: left;"&gt;Meaning&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 90.9pt;" width="121"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl011"&gt;&lt;/a&gt;ALL&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 391.95pt;" width="523"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;TRUE if all of a set of   comparisons are TRUE.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 90.9pt;" width="121"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl021"&gt;&lt;/a&gt;AND&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 391.95pt;" width="523"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;TRUE if both Boolean   expressions are TRUE.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 90.9pt;" width="121"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl031"&gt;&lt;/a&gt;ANY&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 391.95pt;" width="523"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;TRUE if any one of a set   of comparisons are TRUE.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 90.9pt;" width="121"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl041"&gt;&lt;/a&gt;BETWEEN&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 391.95pt;" width="523"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;TRUE if the operand is   within a range.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 90.9pt;" width="121"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl051"&gt;&lt;/a&gt;EXISTS&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 391.95pt;" width="523"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;TRUE if a subquery   contains any rows.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 90.9pt;" width="121"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl061"&gt;&lt;/a&gt;IN&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 391.95pt;" width="523"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;TRUE if the operand is   equal to one of a list of expressions.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 90.9pt;" width="121"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl071"&gt;&lt;/a&gt;LIKE&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 391.95pt;" width="523"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;TRUE if the operand   matches a pattern.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 90.9pt;" width="121"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl081"&gt;&lt;/a&gt;NOT&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 391.95pt;" width="523"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;Reverses the value of   any other Boolean operator.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 90.9pt;" width="121"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl091"&gt;&lt;/a&gt;OR&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 391.95pt;" width="523"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;TRUE if either Boolean   expression is TRUE.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr style="mso-yfti-lastrow: yes;"&gt;   &lt;td style="border-bottom: double gray 1.0pt; border-left: double gray 1.0pt; border-right: none; border-top: none; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 90.9pt;" width="121"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3521813103867728569&amp;amp;postID=5479188302948429866" name="ctl00_rs1_mainContentContainer_ctl10"&gt;&lt;/a&gt;SOME&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-top: none; border: double gray 1.0pt; mso-border-bottom-alt: double gray .3pt; mso-border-left-alt: double gray .3pt; mso-border-right-alt: double gray .3pt; padding: 1.4pt 1.4pt 1.4pt 1.4pt; width: 391.95pt;" width="523"&gt;&lt;div class="TableContents" style="layout-grid-mode: char;"&gt;TRUE if some of a set of   comparisons are TRUE.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoBodyText" style="line-height: 12.75pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-pagination: widow-orphan;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoBodyText" style="line-height: 12.75pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-pagination: widow-orphan;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: 1.4pt; mso-padding-alt: 1.4pt 1.4pt 1.4pt 1.4pt; mso-table-layout-alt: fixed;"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td style="ba
