Merge branch 'master' of caffeine:/users/www/www/
[mspang/www.git] / unix102 / index.xml
1 <?xml version='1.0'?>
2
3 <!DOCTYPE cscpage SYSTEM "../csc.dtd">
4
5 <cscpage title="UNIX 102 Tutorial Information">
6   <header />
7
8   <section title="UNIX 102 Reference Material"> 
9     <p>
10       This page contains some <a href="http://programmerryangosling.tumblr.com/">links</a> to material covered during UNIX 101 and 102,
11       as well as some extracurricular content for you to review in your free
12       time.  
13     </p>
14     <p>
15       The text file for the great editor race is available <a href="queue.txt">here</a>.
16     </p>
17     <p>
18       To begin with the first exercise, you will need the following file.
19       To download it and untar it, execute the following commands:
20     <pre>
21       wget http://csclub.uwaterloo.ca/unix102/vim_exercise.tar
22       tar -xvf vim_exercise.tar
23     </pre>
24     </p>
25     <p>
26       You can also download the <a href="unix101.pdf">slides</a> or <a href="cheatsheet.pdf">cheatsheet</a> handout from UNIX 101.
27     </p>
28   </section>
29
30   <section title="vim References">
31     <p>
32       First and foremost, make sure you have tried running vimtutor. This
33       program is available on the CSC systems, as well as the student.cs and
34       student.math environments. Try the following commands from a shell:
35     <pre>
36       ssh userid@linux.student.cs.uwaterloo.ca
37       vimtutor
38     </pre> 
39     This <a href="http://newbiedoc.sourceforge.net/text_editing/vim.html#BUILT-IN-HELP-VIM">document</a> from sourceforge should also prove to be useful.
40     </p>
41   </section>
42
43   <section title="bash References">
44     <p>
45       From the GNU bash reference manual (a very good source of information,
46       albeit a little arcane and verbose):
47     </p>
48     <ul>
49       <li><a href="http://www.gnu.org/software/bash/manual/bash.html#What-is-a-shell_003f">What is a shell?</a></li>
50       <li><a href="http://www.gnu.org/software/bash/manual/bash.html#Redirections">Redirecting input/output</a></li>
51       <li><a href="http://www.gnu.org/software/bash/manual/bash.html#Pattern-Matching">Globbing</a></li>
52       <li><a href="http://www.gnu.org/software/bash/manual/bash.html#Quoting">Quotes/escapes</a></li>
53       <li><a href="http://www.gnu.org/software/bash/manual/bash.html#Compound-Commands">Conditional and looping constructs</a></li>
54       <li><a href="http://www.gnu.org/software/bash/manual/bash.html#Shell-Parameters">Shell variables</a> (including <a href="http://www.gnu.org/software/bash/manual/bash.html#Special-Parameters">special variables</a>)</li>
55     </ul>
56     <p>
57       Here are some example bash scripts covered in today's lecture:
58     </p>
59     <ul>
60       <li>Simple script whose parameters are any number of text files, that will
61         print all the files and filenames to standard output: <a href="appender.sh">appender</a></li>
62       <li>RunC clone, that takes in a filename and executes all the tests it
63         can find for it in the current directory: <a href="walkc.sh">WalkC</a></li>
64       <li>Script that scrapes concert website for tickets and sends emails/text
65         messages when tickets are available: <a href="tickets_email.sh">tickets_email</a></li>
66     </ul>
67   </section>
68
69   <section title="Regular Expression References">
70     <p>
71       This 
72       <a href="http://www.regular-expressions.info/quickstart.html">page</a> 
73       is a good brief reference for regular expressions.
74     </p>
75   </section>
76
77   <section title="git References">
78     <p>
79       Look to the <a href="http://gitref.org/index.html">gitref</a> for a git 
80       reference, of course. As well, here's an article I found claiming to list 
81       the <a href="http://sixrevisions.com/resources/git-tutorials-beginners/">top 10 git tutorials</a>.
82       Whether or not that's true, you should still learn something.
83       Here is also a brief review of the commands we intended to cover today.
84     </p>
85     <p> This clones a copy of the codebase for you to work on locally:
86     <pre>
87       git clone
88     </pre>
89     This "pulls" (updates with) any new changes others have made since you last 
90     worked on the code, so they are now part of your local code:
91     <pre>
92       git pull
93     </pre>
94     This adds new files to the git repository:
95     <pre>
96       git add [files]
97     </pre>
98     This commits any of the changes that you've recently made in [files] (or -a 
99     for everything), getting ready to "push" the changes to other users:
100     <pre>
101       git commit [files] (-a)
102     </pre>
103     This "pushes" (sends) your changes back to the "master" repository, 
104     allowing other people working on the project to "pull" your changes.
105     <pre>
106       git push
107     </pre>
108     </p>
109   </section>
110
111   <section title="Beyond UNIX 10X">
112     <p>
113       You might be surprised - almost all the information on this page was at 
114       one point found using Google. Remember, your best resources for learning 
115       more about UNIX are your friends, your manpages, and the internet. So 
116       fire up your favorite search engine, and get learning! 
117     </p>
118   </section>
119
120
121   <footer />
122 </cscpage>