CS21 Lab 0: Linux and vim

Due 11:59pm Thursday 4 September 2008

This lab assignment should get you used to running update21 and handin21, and teach you a few of the common commands used in the Linux/UNIX terminal window.

Read the class web page

Start by reading through all of the CS21 homepage. Pay special attention to the Schedule, Academic Integrity and How to succeed in CS21 parts. You should get into the habit of checking this page weekly; the class schedule, homework assignments, weekly readings, and announcements will be posted to the class Schedule weekly.

Read the CS web pages

Go to the CS homepage (http://www.cs.swarthmore.edu/). From there click on the "Help" button and read the Welcome Message, The User Agreement, and The CS Lab Rules pages.

Using Linux

Much of this assignment will introduce you to some common Linux commands. We will review these commands regularly in class, and you are also encouraged to attend one of the using Linux help sessions this week in Science Center 240. You may attend either session.

Learn some Linux

To begin the assignment, open a Terminal window. You do this by clicking on the black square in the center of the toolbar terminal or by clicking on the XFCE menu button xfcemenu and then choosing "Terminal". When the Terminal window opens, you will see the shell prompt which will look something like this:
lemon[~]$

In the above prompt, lemon is the name of the machine you are working on, so this may be different for you if you are working on a different machine.

If you don't have one already, create a cs21 subdirectory in your home directory and set the permissions so that only you can access it. Here is an example of commands to enter to do this and to verify that it worked ('$' is the shell prompt and text after '#' are comments explaining the commands):
  $  cd                 # change to your home directory 
  $  pwd                # print current working directory
  $  mkdir cs21         # create a new subdirectory named cs21
  $  ls                 # list contents of current directory
  $  chmod 700 cs21     # make cs21 dir only accessible to you
  $  ls -l              # list permissions (cs21 should be drwx------)
  $  cd cs21            # change to cs21 directory
  $  pwd                # print current working directory 
Further information about the Unix directory structure can be found on the department's web site.

Learn the editor...vim

In your cs21 directory run the vim tutorial to learn how to edit files in Unix. This tutorial will take about 20-30 minutes.

  $  vimtutor           # start the vim tutorial

Run update21 and create bio.txt

Once you have learned how to use a Unix editor program, run update21 to get the starting directory for homework 0, then cd into that directory:

$ update21             # creates subdirectory 00 in your cs21/labs directory
$ cd                   # cd into your home directory
$ cd cs21/labs/00      # cd into the directory for lab 00
$ pwd                  # check to see that you are in the correct directory
		       # if you are, pwd should list: 
		       # /home/your_user_name/cs21/labs/00
The program handin21 will only submit files in this labs/00 directory.

Next, start up vim (or vi) and open a new file named bio.txt and answer these questions:

  1. Tell me about some of your strengths. What are some things that you are good at doing (they don't have to have anything to do with CS)?
  2. Tell me a bit about why are you taking CS21.
  3. Tell me about any prior CS experience you have.

To start editing the file:

$ vim bio.txt

After you are done editing your bio.txt file, save your changes, exit vim (:wq in escape mode), and enter the ls command to list the file bio.txt. You can also run the cat command on the file to list it's contents to the terminal window:

$ cat bio.txt


Submit

Once you are satisfied with your bio.txt file, hand it in by typing handin21 at the unix prompt. You may run handin21 as many times as you like, and only the most recent submission will be recorded. This is useful if you realize after handing in some programs that you'd like to make a few more changes to them.