All registered students will receive an account on CLAC, which is a Linux server instance running on Google Cloud Platform. CLAC runs Ubuntu Linux, 64-bit version. All homework assignments in this class will be submitted and graded on CLAC.
If you are not familiar with Linux programming environment, you need to become familiar with it ASAP. There are many books and online tutorials you can use. For example, here is the top link that came up when I googled for “linux tutorial for beginners”: http://www.ee.surrey.ac.uk/Teaching/Unix/
On Mac OS X, launch the Terminal app, and type the following at the command prompt:
ssh YOUR_UNI@clac.cs.columbia.edu
On Windows, I recommend MobaXterm.
The official way to code in this course is to use a text editor and command line
tools. There are two popular text editors in the UNIX environment:
Emacs and Vim. They
split power users and programmers in UNIX world into two camps (that constantly
make fun of each other). The choice between them largely boils down to personal
taste. I recommend you pick one of those as your editor and start using it,
learning tips and tricks as you go. You can start with the built-in tutorials:
run vimtutor
at the command prompt for Vim, and click on “Emacs Tutorial”
under Help menu for Emacs. Emacs and Vim have been ported to virtually every
platform, so you can install and use them on your PC or Mac as well.
Another possibility is Nano (also called Pico). Nano is very easy to use, especially for beginners, but it is rather limited in functionality. It is only recommended for those who are new to UNIX and feel there are just too many things to learn before you get to do anything. Even so, I recommend that you switch to either Emacs or Vim as early as possible.
The application with which you interact in a terminal window – the program that
prints the command prompt and carries out the commands that you type – is called
a “shell”. There are many different shell programs. Your CLAC account is
configured to use the Bash shell by default. Try typing echo $SHELL
. You’re
good if you see /bin/bash
.
There is something you need to add to the .bashrc
file in your home directory
to setup your shell environment for this class. Type cd
to go to your home
directory, and then open the .bashrc
file in your editor. For example, type
the following to open the .bashrc
file using the Nano editor:
cd
nano .bashrc
Then, add the following line to the end of your .bashrc
file:
export EDITOR=your_editor
You should of course replace "your_editor"
with either vim, emacs, or nano,
depending on what editor you actually use.
Log out of CLAC (by typing exit
at the command prompt) and log in again. Type
echo $EDITOR
to see if your modification to .bashrc
has taken effect. If it
hasn’t, try adding the following lines to .bash_profile
file in your home
directory:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
Here are some UNIX commands that you should get comfortable with. You can use
the man
command to display the manual page for any given command. (Typing ‘q’
will exit out of the man
command.)
man, cat, less, rm, cp, ls, ll (an alias for ls -alF), pwd, cd, mkdir,
alias, locate, gcc, make, touch
Here are some more that you will find handy:
clear, history, date, mv, grep, diff, find, tar