General UNIX command info
If you are not familiar with basic Unix commands (cp, mv, ls, cd, etc), you can
read about them
in these slides from last year's Unix skills class. Update
Apparently since Marc graduated, his webpage is gone, so that link is dead.
That class is not being taught this semester, so your best bet is to Google for
a linux intro.
Logging into eniac-l
If you are on a Unix/Linux system (including those in the lab) or a Mac with
Mac OSX, you can ssh to eniac-l with the command
ssh eniac-l.seas.upenn.edu
If your user name is different, you will need to do
ssh username@eniac-l.seas.upenn.edu
(on a Mac, open the terminal application and the command there)
If you are on a Windows system you can either use either Putty or
SecureCRT.
SecureCRT should already be installed on Windows systems in the department.
If you need to download it to your own computer, Putty is probably easiest, if
you are using a department computer and SecureCRT is already installed, you can
either just use that or download Putty.
If you use Putty
When you open Putty, it should present you with a setup dialog that looks like
this:
Fill in the hostname field (circled in red), then click open.
You will then be given a window asking for your login (username) and
password. After you enter these, the command prompt will appear in the
same window, and look something like this:
You are now at a prompt where you can enter commands.
If you use SecureCRT
When you open SecureCRT, you should get a connection dialog that looks
something like this
(except that it won't
have any sessions listed. Click the button to make a new one
(circled in red), resulting in a settings dialog that looks like this:
Fill in the three fields circled in red here, then click OK.
That should return you to the session selection screen, where you
can double click on the newly created session to login. You will then
get a login window- enter your user name, hit enter (or click OK), and
then password. That should result in a terminal window that looks like this:
You are now at a prompt where you can enter commands.
Editing your code
When you login, you are in your unix home directory. If you are in any
computer lab at school, this directory is mounted under windows (usually as
drive S:). You can simply create and edit files using whatever editor you
like in Windows, and save them on your S: drive, then login via
Putty or SecureCRT to compile and test them.
If you are not at school (i.e. you want to work on them from home),
or you want to learn how to use a UNIX editor, there
are main 3 choices: pico, emacs, and vim. You could also
edit the files at home, and copy them to eniac via whatever
method you choose (Putty has an SCP program for copying files
between computers, but its a little more painful to use than
Putty).
pico
To run pico, either simply do pico or do pico filename to
start with some file opened. Pico is a very simple editor, and lists
its commands at the bottom of the screen (^ means CTRL).
emacs
Emacs is my personal editor of choice. To run emacs, simply do
emacs or emacs filename to start emacs with a file opened.
If you are running it locally
(i.e. on a linux machine, or have downloaded the windows version), it
will bring up a graphical window for you to edit in. If not, it
will allow you to edit in your terminal. Emacs is a very powerful
editor, but the following commands will get you started (again ^ means
ctrl):
- ^x^c Quit
- ^x^s Save
- ^x^f Open
- ^xb Switch buffers (i.e. change to an open file)
- ^k Cut to end of line
- ^y Paste
- ^_ Undo
- ^SPACE Start selecting region
- ^w End selecting region and cut
- ESC-w End selecting region and copy
Note that if you are using graphical emacs, you can use the menus.
If any of you are interested in emacs, I can share many many more
commands, and I also recommend creating a .emacs file in your
homedirectory (when you login, do: emacs .emacs) with at least
the following:
(global-set-key "\C-c\C-v" 'compile)
(setq line-number-mode t)
(setq column-number-mode t)
(display-time)
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)
If you are a Mac user, I recommend Aquamacs.
If you are a Windows user, you can download a distribution of emacs
here.
More on emacs here.
Brief soapbox on emacs:
Yes, the controls are a little weird
at first. Yes, it has a little bit of a learning curve.
But emacs is a great editor. Why? Well for one thing
it is very powerful, very flexible, and universal.
What do I mean by these things? Well, let's start
with universal. I do everything in emacs- I write
C, C++, Java, SML, scheme, you name it- all in one editor.
But its not just code I write in emacs. When I want
to write a paper in LaTeX, I do that in emacs too.
I write my HTML in emacs (its what I'm using to write this).
For that matter, when I want to play tetris, I do that
in emacs too (don't believe me? open up emacs, hit ESC x then
type tetris ENTER).
You can make it do all sorts of cool things- in fact,
you can basically program your editor- it has its
own Lisp like programming language, so you
can write little bits of code for the editor
to do and bind them whatever key you want. And lots
of other cool stuff.
I'm gonna get off my emacs soapbox now.
vim
People who love vim really love it. Everyone else really hates it.
I am in the later category- about all I can tell you about it
is that if you end up in it by some unfortunate chance, ESC : q will quit.
If you really want to try vim, google for references on it.