You are on page 1of 61

Introduction to the Maths Computer

System

August 11, 2016


Introduction

This booklet is divided into three parts.

The first part introduces the local services. Even if you know
Unix you should read this section.
The second part introduces Unix. We hope there is enough
there to keep you afloat until you can attend the Universitys
Introduction to Unix course.
The third part is a glossary of Unix terms. It will include some
extra commands not covered in part 2.

We have aimed to make all examples in this booklet work accurately


for new users. Old users may have slightly different setups but
should still find much of this booklet useful.

Your login-name on the Maths Linux system is your CRSid. Your


CRSid is generated from your initials and used by various systems
within the University e.g. Email (Hermes), Web authentication
(Raven).

This booklet uses crsid in place of your login-name in many of the


examples.

CRSid = Common Registration Service identifier.

1
Assistance: The Helpdesk

Our computing documentation is at

http://www.maths.cam.ac.uk/computing/

To contact us by email

help@maths.cam.ac.uk

and telephone at Xt 66100

If the problem is urgent, then email the really-urgent address and/or


phone the extension 66100.

really-urgent@maths.cam.ac.uk

When emailing us please include your crsid (university login name),


computer name, office number and phone.

Email (Hermes) and Raven services are run by the Universitys


central IT services with their own pages.

http://www.ucs.cam.ac.uk/linkpages/newcomers

2
Part I: Local IT Services

The majority of people using the departmental computer system have


a Linux desktop. People with different desktops should still read this
booklet as you are likely to run your code on Linux.

Any member of the department who happens to have no desktop


provided should contact us via help@maths.cam.ac.uk. If you
cannot log into your desktop please check whether you have access
by visiting the online list of computers and entering your crsid.

http://www.maths.cam.ac.uk/computing/comptable/

Search for your computers name. If it is not there, please email us


with your research group, office number and the name of the desktop
computer. If it is there, please double-check that you have typed your
password correctly and that the computer is plugged into a network
socket before emailing us.

We run a version of Linux called Ubuntu 14.04.

https://help.ubuntu.com/

3
Laptops, Tablets and Smartphones

We provide both wireless and wired connections for your own


mobile devices and computers.

If you wish to use a wired connection please only connect to a


free network port which is marked with a sticker and/or an orange
network cable. The sticker will say something similar to

This data outlet is connected to the CMS laptop


network. Laptops may be connected here.

Connecting your laptop to any other port will not work. This
includes your desktops port since that is on a different network.

If you need to use this network and there are no laptop network
ports available in your office, please contact us by emailing
help@maths.cam.ac.uk with your office number and if possible the
number of the free network port you need to have added to the laptop
network.

For assistance with network connections see

https://www.maths.cam.ac.uk/computing/laptops/

Should you have a problem connecting or printing, please if possible


include the output from accessing the following page from your
laptop when emailing us.

https://www.wireless.cam.ac.uk/person/self/usage/
(wireless)

http://lapserv.maths.cam.ac.uk/authstatus/ (wired)

4
Virus Checker

Please make sure any computers you use other than the department
computers have up-to-date virus checkers on them. The University
has a license for some products which you can use free of charge.

http://www.ucs.cam.ac.uk/support/anti-virus/

If your computer has a virus and is attempting to spread it to


other computers, we will have to disconnect it until the problem is
resolved.

5
Linux Computers

In addition to your desktop computer you also have remote access to


many other computers on our network via ssh (see later).

To see the names, locations and spec of different computers check

http://www.maths.cam.ac.uk/computing/comptable/

Enter your CRSid to see just the computers to which you have login
access.

If the computer you want to use is switched off, you can switch it on
over the network with wake computer name from the command line
or via this web page.

https://things.maths.cam.ac.uk/it-admin/wakeup.
cgi

Be considerate towards other computer users. When running your


code on a computer that is in another office, make sure you leave the
office (console) user with enough resources to move their mouse and
type.

Do this by using the nice command. We have more information on


this topic at

http://www.maths.cam.ac.uk/computing/policy/longjobs.html

6
Windows Computers

We have a variety of ways for people to access Microsoft Windows


applications.

There are a few public computers running Microsoft Windows 7.

The Desktop Services / Managed Cluster Service (DS/MCS)


Computers in room GL.04 and the Part III room in the basement
of Pav B are accessible to department members. These computers
are dual boot Windows 7 / Ubuntu Linux and are managed by the
University Computing Service.

http://www.maths.cam.ac.uk/computing/mcs/

The windows remote desktop server which is called RDS is


accessible from the linux desktops.

Applications Office Windows Applications

Or if using the command line in a terminal or xterm:

$ windows_applications &

On this you will find all the standard Microsoft Windows programs
as well as some mathematical software.

http://www.maths.cam.ac.uk/computing/win7/

7
Printing and Scanning

Each pavilion has at least one public scanner and a number of public
printers. In general you have access to all of these. The webpage
below provides the locations and instructions for use of these.

http://www.maths.cam.ac.uk/computing/printing/

When a printer is flashing its orange maintenance light, the small


LCD display should tell you why. It may be out of paper, it may
have a paper jam (try to remove the jammed paper yourself, being
careful not to tear it) or it may be out of toner. Please change the
toner yourself if you feel confident to. Some pavilion secretaries
keep a supply of toners close by, and DAMTP toners are kept in
room BL.05 (basement of pavilion B). Old toners should be placed
in any of the black toner recycling bins and unwanted output in the
blue paper recycling bins.

If you are unable to resolve a printer issue yourself, please email


help@maths giving the name and location of the printer. If a printer
is out of toner and you cannot find a replacement cartridge please
speak to a secretary.

There are two poster printers. Please carefully check any conference
posters for errors before printing the final version on the poster
printer.

http://www.maths.cam.ac.uk/computing/printing/
poster.html

8
Printing Tips and Rules

If a printer isnt working the best thing to do is remove your job from
the printer queue (use the lprm command) and send it to a different
printer.

If a PDF file wont print, try using a different PDF viewer.

To save paper, think before you print, print double-sided where


possible, and consider printing more than one page per side of A4.

Please use black and white printers where possible because the
colour printers cost three times more to print the same black and
white page.

Be careful to use the correct media for overheads/transparencies as


the wrong ones can melt inside the unit, make it unusable for several
days, and cost both time and money to remove.

We do not charge for printing, instead we expect responsible usage.

http://www.maths.cam.ac.uk/computing/printing/
cant_print.html

http://www.maths.cam.ac.uk/computing/printing/
rules.html

9
Remote Access

Whichever departmental Linux computer you log into you will see
the same files (home directory) and the same environment. If your
office is moved, there is no need to move your computer.

To connect to a departmental Linux computer from any Windows


machine, use Winex which will give you the same graphical
environment as when sitting at the Linux computer.

http://www.maths.cam.ac.uk/computing/win7/winex.
html

The Linux computers shut themselves down when idle and unused
to save energy, but ssh.maths.cam.ac.uk is always switched on.

We have further information on this topic at

http://www.maths.cam.ac.uk/computing/remoteaccess/general.
html

If you are using a laptop and want to see your department home
directory from it see:

https://www.maths.cam.ac.uk/computing/laptops/
homedir.html

10
Quota and Backups

Your home directory (where you store files by default) has a quota
and is backed up regularly. If you delete or overwrite a file you
wanted please refer to

http://www.maths.cam.ac.uk/computing/files/
backups/deletedfile.html

Up in the top right hand side of your desktop is a quota icon. If you
hover your mouse over the square with a percent in it, you will see
how much quota you have and how much you are using. The quota
command will give you the same information from the command
line.

Keep an eye on the files you download and create. By default


these are placed in the Downloads or Desktop subdirectory of your
home directory, and their disk usage soon mounts up. Items in your
Wastebasket or Recycle Bin also count towards your quota. You
need to empty the Wastebasket or Recycle Bin to completely remove
them.

http://www.maths.cam.ac.uk/computing/files/quota.
html

11
Additional File Storage

You have access to additional file space in the store spaces. These
have no quotas and only limited backup (two weeks of). Like your
home directory, the store spaces are accessible from any department
Linux computer.

We also have scratch spaces which are the hard disks of different
computers and are accessible only from the computer itself. These
are wiped when a computer is reinstalled. They are useful if you
want to write a file directly instead of across the network.

For how to use store and scratch space see:

http://www.maths.cam.ac.uk/computing/files/scratch.html

For a list of which storage spaces are available type store-space.


Please speak to your supervisor if you think your research group
should have its own storage space. The cost is 250 per terabyte.

Please keep all shared areas tidy, preferably by creating a directory


named after your crsid and placing your files within.

12
Email and calendars

The University email service is called Hermes. The most


straightforward way to access it from anywhere in the world is via
webmail.

https://webmail.hermes.cam.ac.uk/

The notes on how to set up other email programs are at

http://www.ucs.cam.ac.uk/email

http://www.ucs.cam.ac.uk/email/muasettings

The department supported email programs are pine, thunderbird and


webmail. If you need assistance setting up your email program, we
can help you provided you are running one of these. Otherwise
beyond pointing you at which settings to use we may not be able
to actually configure your program.

Information for mobile devices is at

http://www.ucs.cam.ac.uk/mobiledevices

The universitys calendar service is:

http://www.ucs.cam.ac.uk/googleapps/calendar.html

13
Your @cam address and the lookup service

Your official Cambridge email address is crsid@cam.ac.uk. It is


important to make sure that email to this address is forwarded
somewhere that you read regularly. By default, it will be forwarded
to your Hermes account. You can check and edit your @cam
delivery address at

http://www.lookup.cam.ac.uk/

Please also check and fill out the other information on your
University lookup page. You can do this as soon as you have a Raven
account. The lookup service is used to search for people and for the
university email address book service.

14
Email Lists

Each member of the department should be on the


cms-all@maths.cam.ac.uk email list.

A list of Maths email lists with links to department-specific lists is at

http://www.maths.cam.ac.uk/internal/email_lists/

You can see which @lists.cam.ac.uk lists your @cam address is


subscribed to and subscribe to other lists from your lists page

https://lists.cam.ac.uk/mailman/

http://www.ucs.cam.ac.uk/email/lists/listmanaging.
html

For more information on email lists see

http://www.ucs.cam.ac.uk/email/lists

15
Computing News

We maintain a message of the day on the internal webpage telling of


important changes to the system.

http://www.maths.cam.ac.uk/computing/news/

The early hours of Wednesday morning are reserved for computer


reboots. We try to announce these at least a few days in advance on
the message of the day.

Note: If you are writing code that will run over a number of days,
we recommend you checkpoint it. While the Wednesday morning
reboots are planned, sometimes we have a power cut or someone
accidentally switches off a computer.

http://www.maths.cam.ac.uk/computing/policy/longjobs.html#
Preparing

Some people prefer to read the computer announcements by email.


We keep two lists. One which has all the announcements sent
to it (maths-motd-all), the other which only has really important
ones sent to it (maths-motd-important). Messages about upcoming
reboots are sent to both lists.

To sign up for these and other @lists.cam.ac.uk mailing lists, go to

https://lists.cam.ac.uk/mailman/

16
Software

The list of numerical and mathematical software, including Matlab


and Mathematica, is at

http://www.maths.cam.ac.uk/computing/software/

If we dont have software you need and it is free, you can try to install
it yourself. Some members of the department make their installed
code available for others to use. This saves multiple people from
installing the same code.

http://www.maths.cam.ac.uk/computing/software/
own.html

http://www.maths.cam.ac.uk/computing/software/
user-maint.html

Consider attending the free training course on how to install Unix


software.

http://www.training.cam.ac.uk/ucs/theme/unix?providerId=
36407

The UCS also sells software, but generally not for personal use so it
is best to ask us to order any software you need.

17
Scientific Computing

To learn about scientific computing please see the documentation.

http://www.maths.cam.ac.uk/computing/hpc_sci/
http://www.maths.cam.ac.uk/computing/mpi.html

You can search for Scientific Computingtraining courses at

http://www.training.cam.ac.uk

18
Guests and Visitors

Never give out your passwords.

If someone comes to visit you and theyd like WiFi access, generate
a wireless ticket for them here (select Colleague Tickets tab).

https://www.wireless.cam.ac.uk/person/self/

Or bring them to CMS Reception who can create longer-term tickets.

If you have a formal academic or official visitor staying more than


a few days see your group or pavilion secretary, preferably a few
days before the person arrives. They will issue your visitor with the
appropriate access.

If a new person is joining your group, your group/pavilion secretary


is the person to contact to arrange computer accounts. Please contact
the secretary at least a week before the person is due to arrive.

19
Privacy

All files you create on the department system are by default private
(readable only by you) and your email is also private.

If you want new files you create to be readable by other people, edit
the line at the end of your .bashrc file

umask 0077

to read

umask 0022

It is expected that people will not look at files not belonging to them
which they have no good reason to look at.

In Part 2 of this booklet we explain more about how to change who


can read your files.

20
Purchases

If you wish to buy a computer from your research grant funds, please
first check

http://www.maths.cam.ac.uk/computing/buying/

Then contact help@maths.

The University is a member of SUPC, which in summary means it


can purchase some hardware at discounted prices.

http://www.ucs.cam.ac.uk/support/
hardware-support/hwoverview

Broken Computers

The department fixes its own broken computers. Please email us if


your computer is broken, as we have no way to distinguish a broken
machine from one which is simply turned off.

For personal computers, a department computer officer may take a


quick look at your broken hardware (time dependent).

21
Sharing Resources

Please remember to consider others when working. For example


if you need to run code on lots of computers, leave some of the
better ones for others. Make sure your code doesnt slow down the
computer for interactive use.

http://www.maths.cam.ac.uk/computing/policy/longjobs.html

In store and scratch spaces, look at the total space available (df -h .).
Archive and compress or remove your files as you finish with them.
When a space fills a lot of people are inconvenienced.

Please remove personal data from the system before you leave.
It is impossible for the computing staff to know which files left
behind are left intentionally to share with others, and which are
left by accident. Clearing files when you leave frees up space for
newcomers.

If you are using the shared software area, make sure you keep your
index file up to date so that others can see what software you are
sharing with them.

http://www.maths.cam.ac.uk/computing/software/
user-maint.html

Leave public computers in a good state and report any problems with
them to the helpdesk.

22
Miscellaneous

Please leave your monitor on when you go home. It will


automatically go into a power-saving mode using virtually no
energy, and the computer will be able to keep track of the screen
resolution.

Always use the commands safeshutdown and safereboot to shut


down or reboot your desktop computer. These check that no-one
else is using it before shutting it down.

http://www.maths.cam.ac.uk/computing/powersaving.
html

If your computer is unresponsive and safereboot does not work,


email help@maths and one of the computer officers will
investigate.

If you want your computer or phone moved to a different network


socket, or have an unwanted computer in your office, email help@
maths.cam.ac.uk. Do not move it yourself as most network
sockets are not connected and will not work.

If you get pain in your arms, wrist or hands from typing, STOP and
take a break. Dont make it worse by continuing to type. The internet
has enough stories of people who could not work for months because
they ignored initial work related upper limb disorder pain.

http://www.uis.cam.ac.uk/health-and-safety/
upper-limb-disorders

If you need a different mouse or keyboard, contact the helpdesk.

23
Part 2 - Introduction to Unix

Our computer network consists mainly of Ubuntu 14.04 Linux


computers. The type of computer on your desktop depends largely
on what your group has purchased.

Many day to day tasks like reading email (webmail or thunderbird),


browsing the Web (firefox), running mathematical software like
Mathematica or Matlab, changing the appearance of your desktop
and moving files between folders can be managed with little
knowledge of the underlying system.

However, once you start to program, install software or analyse data


you will need to learn more.

A note on terminology: technically Linux is a Unix-like operating


system, however the terms Linux and Unix are often used
interchangeably, as in this booklet.

24
Education and Learning (basic and advanced)

If you have not used Unix before (or only used it for web-browsing
and email) please attend the UCS Introduction to Unix Course as
soon as possible. We strongly recommend this course.

The course runs over two half day sessions and is repeated several
times throughout the year.

http://www.training.cam.ac.uk/ucs/event/721643

For more advanced use of the shell and command line, please attend
the Simple Shell Scripting For Scientists course.

http://www.training.cam.ac.uk/ucs/event/722116

There are also courses offered in scientific computing.

To sign up for a course, start from

http://www.training.cam.ac.uk/ucs/theme

and choose the topic from the left-hand menu e.g. Unix (including
Linux) Systems & Use or Scientific Computing.

You will need your Raven password to sign up.

We have a Quick Reference List of Unix Commands online:

http://www.maths.cam.ac.uk/computing/linux/unixref.html

For detailed information about a command, use man. For example


man rm and man rmdir to see the manuals on removing files
and directories.

25
Starting

The default department desktop is Xubuntu. We have others installed


which you can use, but Xubuntu is the desktop we know most about.

Other desktops may not be customised for the Maths system as much
as Xubuntu is. In particular they do not all have the quota icon or a
customised menu to the Maths applications (Applications Maths
Programs).

For writing scientific programs and analysing data you need


some knowledge of the Command Line Interface (CLI) to the
UNIX operating system. This booklet contains many examples
of commands to type into the CLI. To obtain a Terminal window
(equivalent to a Command Prompt under Windows) click on the
black monitor icon at the top of your screen, or find it in the menus
(Applications Accessories Terminal Emulator).

When you have finished working on your computer, please log out
by selecting Log Out from the System menu. This will allow it to
shut itself down to save energy.

To reset your desktop to the default state, type xreset.sh, log out
and select the Xubuntu desktop (from an icon at the top right of the
login screen) before logging back in.

26
Shortcuts

The cursor keys (left and right, up and down) allow editing of the
current command and recalling of previous commands in an intuitive
manner.

Note also that pressing {TAB} when part-way through typing a file
name will cause the rest of the file name to be filled in automatically
if it is unique. This trick also works for command completion (type
his then press {TAB}).

The wild cards ? and * can be used to stand for any one character,
and any string of characters respectively:

# ls lists files, rm removes (deletes) files


$ ls
a.dat b.dat results.dat write-up.txt
$ ls ?.dat
a.dat b.dat
$ ls *.dat
a.dat b.dat results.dat
$ ls *
a.dat b.dat results.dat write-up.txt
$ rm *
$ ls
$

In this way the CLI is much more powerful than using the mouse
and the file-manager.

rm * should be used with considerable caution.


rm -r * should be used with EVEN more caution as the -r means
a recursive removal of all files and directories.

27
Filenames

As you may surmise from the previous page, having a ? or * in


a filename can cause confusion. So can spaces in filenames. While
using these characters in filenames is not absolutely forbidden, until
you are much more confident with Unix it is best to stick to the
following characters.

Letters and numbers.


Underscore ( ).
Hyphen (-) and full stop (.), but not at the beginning of a
filename.

Unix filenames are case-sensitive i.e. it is possible to have three


different files in the same directory called MYFILE, MyFile and
myfile.

The only character which is absolutely forbidden in a Unix filename is /, because this
separates the components of a path like /home/eva/test files.

28
Programs and Applications

This booklet uses the terms application and program interchangeably.

People tend to use the term program when they use the Command
Line Interface (CLI) to type in the name of the program, and
application when they click a menu item or double click an
application icon.

We use the Terminal application to access the CLI. Click on the


black Terminal icon, or select from the menus (Applications
Accessories Terminal Emulator).

Terminal allows a shell or command interpreter to run. This


obeys our commands and produces a prompt consisting of the
machine name followed by the current directory. (A directory is
what Windows, MacOSX and some mobile phones call a folder.)
Assuming you are in your home directory your prompt will look like
this

crsid@machine: $

Owing to space restrictions, in this booklet the prompt will be shown


as a simple $.


means your home directory, user1 means user1s home directory.

29
Starting Programs and Applications

From the CLI programs which are on your PATH are started by
typing their name:

$ firefox &

(the & sign causes a background process. This means you get
your prompt back immediately so that you can start other programs
without waiting for the firefox program to exit.)

The PATH and where a program is found on the PATH can be seen
with

$ echo $PATH
$ type firefox

Not all the locations you will put programs are on your PATH. To
start a program you have downloaded (e.g. with firefox):

$ cd Downloads
$ ./prog-01

(Without the & this is a foreground process. This will run the
program from the CLI and only return you to the shell prompt when
the program finishes/exits.)

You will learn more about this on the recommended CLI course.

30
Home Directory

Under the Places menu (which is beside Applications) is your Home


Folder marked with a house icon and your CRSid. This is your initial
working space. By default all your files are stored here.

The Home Folder is known as your Home Directory in UNIX


terminology. In a similar manner the Folders in your Home
Directory are known as Directories in UNIX terminology.

An alternative way of viewing the files and directories in your Home


Directory is to use the CLI. You can see what files are present by
typing cd to move to your home directory and then ls to list the
contents.

$ cd
$ ls
private/ public_html/ shared/
public/ results.dat thesis.tex

Regardless of which Unix computer you log into, you will always
start in your home directory. This means that you can use any of the
computers in your office or on the benches.

Your home directory is called /home/crsid or for short. ls


will list the contents of your home directory without changing your
current directory, and cd is an alternative way to return to your
home directory.

This can be likened to My Documents under Windows or Home on a Mac.

31
Quota

As explained in Part One your Home Directory has a quota. The icon
at the top right hand side of your screen shows your quota usage.
Alternatively you can check your quota with the CLI:

$ quota
Disk quotas for user evatest3 (uid 1016):
Filesystem blocks quota limit grace files quo
rpc-serv1.maths.cam.ac.uk:/local/home/stats
83972 2097152 2097152 1337

This person is using about 82MB (83972 / 1024) of a 2GB quota.


We do not have a limit on how many files people can have.

Be careful not to run out of quota because then odd things


happen. For example your web browser may end up with corrupted
bookmarks, you may be unable to save a file in your home directory,
or the system may not allow you to log in.

To get more quota email help@maths and specify how much more
quota you need.

32
Hidden Files

Your home directory contains some hidden files and directories


whose names start with a full stop. To list these files use View
Show Hidden Files in the file manager. Or on the command line

$ ls -a
.bashrc .emacs .gconfd/ .gnome2/ .login .vimrc

Only edit these dot files if you know what youre doing. An error
in these can prevent the associated application from working or lock
you out of your account. If you do run into difficulties from trying
to modify these files email help@maths.cam.ac.uk.

You can learn about the commands in your .bashrc file with

man bash

Press / to search for the command you are interested in.

33
Who can read your filespage 1

There are three sets of peopleyou, your Unix group and


everyone else on the system. Use the Properties function in the File
Manager (Places CRSid, or double-click the Home icon on your
desktop) to view or amend who can read or execute a file. Select the
file or directory with the right mouse button, then select properties
and then the permissions tab.

Our Unix groups are loosely based on research/department groups,


but sometimes two or more smaller research groups are combined. If
you want to have some files which are readable (or writable) by your
research group but not by everyone on the system, its best to email
help@maths and ask them to create a small group for you. Tell them
exactly who needs access to these files.

You can also change who has access to your files with the CLI. This,
while initially harder to learn, is useful when you have many files
you would like to update at once.

For this you use the chmod command.

For more information see: http://www.maths.cam.ac.uk/


computing/linux/unixinfo/perms.html

Technically even if someone can read a file it doesnt mean they


should read the file unless they have the owners explicit permission
to do so.

34
Who can read your filespage 2

By default no-one else can read any of your files. To make all
your new files readable by everyone else on the system, replace the
umask line at the end of your .bashrc with

umask 0022

To make an existing directory and everything in it readable by


everyone else, type

chmod -R go+rX my_directory

CAUTION: Dont do this for your home directory. Some computer-


generated hidden files may contain passwords or other confidential
information.

35
Who can read your filespage 3

$ ls -l thesis.tex
-rw-r--r-- 1 crsid group 3410 Oct 12 15:13 thesis.tex

rwrr 1 mjr19 tcm 3410 Oct 2 15:13 thesis.tex

Access permissions File owner Length (bytes) File name

Files group Time last modified


File type
normal file Link count
d directory (1 for files, 2 or more for directories)

l link

Access permissions:
File Directory
r Readable ls works
w Writable File deletion and creation work
x eXecutable Can access files within directory.

The first three characters refer to the files owner.


The next three to people in the files group.
The final three to everyone else.

ls -ld * will list actual directories in long format, whereas


ls -l * will list the contents of each directory in long format.

36
Creating Documents

A text editor is not a word processor, and vice versa.

Word processors like Microsoft Word break up lines spontaneously


and concern themselves with the minuti of typography. This can be
useful when trying to format a document nicely for publication (see
next page on LATEX for an alternative which is better at formatting
maths) but not when programming.

LibreOffice is the Unix systems equivalent of Microsoft Office. It


is under Applications Office. LibreOffice can read and write
Microsoft Office documents.

Text editors are used to edit plain text files. This includes source code
e.g. shell, C or Fortran programs, LATEX, and HTMLbasically,
anything you can type in. Windows has a very basic text editor
called Notepad. Linux has more advanced text editors which can
automatically highlight parts of your source code in different colours
to make it easier to read.

Text editors are usually started from the command line, or can be
found in the menus under Applications Accessories. Of the many
text editors available, we know most about emacs, gedit and vim.

37
LATEX

LATEX is a text processing system which is particularly suited for


producing technical documents. It encourages users to focus on
the structure and content of their documents rather than the precise
details of the layout.

LATEX is used in a slightly different manner from WYSIWYG (What


You See Is What You Get) word processors. First you create a .tex
file using a text editor, then you convert it into a form which you can
view on screen.

Windows users can create LATEX documents with the TeXnicCenter


program. Linux users can type the following commands:

latex file.tex # Create file.dvi


xdvi file.dvi & # View file.dvi
dvips -Pps2 file.dvi # Print file.dvi to printer ps2

pdflatex file.tex # Create file.pdf


evince file.pdf # View and optionally print file.pdf

The UCS run a LATEX training course.

http://www.training.cam.ac.uk/ucs/event/721788

The # sign indicates that the rest of the line is a comment which the computer will ignore.
You do not need to type these, but if you are cutting and pasting from an electronic form of this
booklet it is harmless to leave them in.

38
Viewing files

For text files there is no need to open an editor just to view their
content. To view a file using the mouse, double click on that file. If
this fails, right-click and choose a program to view the file with.

To view a text file with the CLI use the command cat or less.
less will show you the file page by page while cat will display
the whole file at once and you may need to use the terminal scroll
bar to see the beginning of the file.

For non-text files like PDF files, use the appropriate installed
software readers, for example evince for PDF files:

$ evince thing.pdf &

If you do not know what to use to open the file try using:

$ xdg-open thing.jpg

cat is also useful for merging the content of two or more text files.

$ ls
paper1.txt paper2.txt
$ cat paper1.txt paper2.txt > papers-combined.txt
$ ls
paper1.txt paper2.txt papers-combined.txt

Use > to send output to a file, and >> to append output to a file.
Use | to send the output to the input of another command.
For example to display all processes, one page at a time:

$ ps -A | less

39
Simple File Operations

Files can be copied, moved (renamed) and removed (deleted).

The CLI commands are cp, mv and rm.


Be Careful!: deletion is irreversible!

$ ls
result.dat thesis.dvi thesis.tex
$ cp thesis.tex new_book.tex
$ rm thesis.dvi
$ mv result.dat results.dat
$ ls
new_book.tex results.dat thesis.tex

The best way to learn all file operations using the graphical file
manager is to experiment and read through the help pages (from the
File Manager window, Help Contents Read Online).

Files in the Rubbish Bin are not actually deleted and still count
towards your quota though they are not backed up. To empty
your Rubbish Bin, double click on the Rubbish Bin icon on your
desktop, then File Empty Wastebasket.

Or type rm -rf .Trash from the command line.

40
Tidiness

It is best to place files in tidy groups in sub-directories, rather than


having everything in one directory. The CLI offers mkdir which
creates a directory, and rmdir will remove one provided it is
empty. The cd command changes the current directory.

$ mkdir test
$ ls
thesis.dvi results.dat thesis.tex
private/ test/
$ rmdir test
$ ls
thesis.dvi results.dat thesis.tex
private/
$

For the adventurous you can remove directories with contents (and
all sub-directories) using the rm command with the -rf options:

$ rm -rf stuff

Be careful!

To create a new sub-directory using the graphical interface open your


Home Folder then File Create Folder.

41
Where Is It?

If you created a file but you cant remember where you put it, there
are various search mechanisms.

find is a standard Unix command, hlocate is a local command which


searches your home directory. You can use either of the following
two commands to search for a file with thesis in its name:

find -name "*thesis*" -print

hlocate thesis

You can also search by content, although this is slower than


searching by name as the shell needs to look inside every file. To
search for a file within the current directory which contains the word
Internet:

find . -type f -print | xargs grep Internet

More on searching for files:

http://www.maths.cam.ac.uk/computing/files/finding.html

If it turns out that the file was deleted rather than simply mislaid, see
the earlier page on backups.

http://www.maths.cam.ac.uk/computing/files/
backups/deletedfile.html

42
Trees

Directories form a tree: each directory has one parent directory, and
may have multiple sub directories. A file name is assumed to refer
to the current directory. Other locations can be specified by forming
a path using / to separate the components of the path, .. to refer
to a directorys parent, . to start a relative path and / to start an
absolute path.
$ ls -F
a/ results.dat
$ cp results.dat a/results.dat
$ ls -RF
.:
a/ results.dat

./a:
results.dat

$ ls ./a
results.dat
$ mkdir b
$ cd b
$ cp ../a/results.dat .
$ cd ..

ls -F distinguishes directories by placing a / after their names.


ls -R lists all sub directories in a recursive fashion.
cd typed on its own returns one to ones home directory.

A similar tree effect can be seen with the File Manager by using
View View as List and expanding and collapsing the directories.

Recursion

It is a very useful thing to have Unix commands recurse through a


directory tree. man ls, man grep etc. will help. Remember
that using a recursive command on a BIG directory tree can take a
LONG time, so think before hitting the Enter key.
43
Stopping Runaway Programs

It is usual to run several processes (programs) simultaneously.


A web-browser runs as an individual process, as does an email
program, an editor and a compiler.

Occasionally it is necessary to exercise some direct influence over


processes.

For example you may want to stop a program running, maybe you
opened xv to see what it did and now cant get out of it. From
another terminal or xterm use the killall command.

$ killall xv

The command ps -A will show all the processes running on a


machine. This may be overwhelming, so
$ ps -u crsid
or
$ ps -A | grep crsid
may be more helpful. Also pgrep and pkill on Linux.

Each process has a unique identifier, its Process-ID (PID). To request


that a process with a PID of 1234 exits, type
$ kill 1234

If that fails, try to force the process to shut down, although this gives
the application no opportunity to shut itself down neatly.
$ kill -KILL 1234

If that fails, email help@maths.cam.ac.uk.

Note that you cannot stop processes you do not own!


xv is a useful application for cropping and changing the size of images. When you start it
you need to know to click with the right mouse button to get the menu

44
Sharing Resources

When you run programs on different machines it is important to


share the available resources with other people. Running code on
every computer will leave nothing for anyone else.

The Maths online documentation has a list of rules for running code
and advice on how to make your program nice to both the system
and other users. Following these rules allows others to use the
computer while your code is running. This is essential on our shared
network.

http://www.maths.cam.ac.uk/computing/policy/longjobs.html

The command top will produce a continuously-updated list of


running processes. Dont leave it running for ever: press q after
a while.

To see how much memory a computer has

$ cat /etc/motd

or see the computer list:


http://www.maths.cam.ac.uk/computing/comptable/

45
Large Files

Data files tend to be large. Often too large for storing in your home
directory. Programs that write data to your home directory may quit
unexpectedly when your quota fills up. store areas, described in
Part 1, are dedicated storage typically used for long term storage of
data.

To see which store areas you have access to, type store-space.
Everyone has access to their departments store area and some
research groups have paid for store areas of their own.

To create your store space in one of the areas listed, type e.g.

store-space create DPMMS

This will create a directory /store/DPMMS/crsid which can then be


accessed with the cd command like any other directory.

Owing to the automounter only having the store areas actually in use
mounted at any given time, you cannot access /store/DPMMS via
the GUI without first going via the command line. To get around
this you can create what is called a symbolic link

$ cd
$ mkdir mydata
$ cd mydata
$ ln -s /store/DPMMS/crsid/ mystorespace

Now when you double click on your folder mydata, you will see
mystorespace. Double clicking on it will bring you direct to the
store space you created.

46
Where to Store FilesScratch Spaces

In addition to your home directory and the store areas, each


computer has its own scratch space for storing files. This
was described briefly in part 1 of this booklet. Note that you can
only access a computers scratch space on that computer.

Use a computers scratch space to store data from running


code on that computer. It is much quicker to write data locally
than write data over the network (e.g. to a store area or home-
directory).

When your code has finished move the datafile to a more reliable
storage place, for example /store space, if you want to keep it.

$ cd /local/scratch/public/
$ mkdir /local/scratch/public/crsid

Or use the GUI interface. Start by double-clicking on File System


then go through local, scratch and public.

The scratch areas can be used to store Internet downloads or


images as these are recoverable if the disk dies and not so valuable
that you should use your home directory quota on them.

An unsafe area for saving files is /tmp.

47
Accessing Maths Computers Remotely

A list of Maths Linux computers:

http://www.maths.cam.ac.uk/computing/comptable/

You can wake up computers from here if they are powered down.

To log into any Maths Unix machine from another:

$ ssh computer1

From a Unix computer outside Maths use an ssh client to connect


to the full name e.g. ssh.maths.cam.ac.uk (which is always
switched on).

$ ssh -C -Y crsid@ssh.maths.cam.ac.uk

Sometimes options need to be passed to ssh. For example -Y when


running remote graphical applications like matlab or firefox and -C
to compress data if your home broadband is slow.

For Windows computers putty is the recommended ssh client.


Note: this will only give you a text-based session. If you want a
graphical session use Winex instead.
http://www.chiark.greenend.org.uk/sgtatham/putty/
http://www.maths.cam.ac.uk/computing/win7/winex.html

http://www.maths.cam.ac.uk/computing/remoteaccess/general.
html

48
File Transfer

Use rsync to synchronise files between different areas. For


example to copy your Maths home directory to your laptop:

laptop$ mkdir my_maths_files


laptop$ rsync -avz \
CRSid@ssh.maths:/home/CRSid/ my_maths_files

Copy files from your laptop to a Maths data area (this copies the
directory laptop data into /data/septal/crsid):

laptop$ rsync -avz \


laptop_data ssh.maths:/data/septal/crsid/

Note that the EOL \ means the command continues on the next line.

See also

http://www.maths.cam.ac.uk/computing/files/
linux_file_transfer.html

49
Conclusion

The UNIX Command Line Interface (CLI) is fantastically useful and


learning it sooner rather than later is advised.

http://www.training.cam.ac.uk/ucs/event/721643

Should you really, really not have time to attend this half day course,
you can download, print and read the course notes instead.
http://www.ucs.cam.ac.uk/docs/course-notes/unix-courses/
UnixCLI

Leaving learning these skills until the last minute when you have
a thousand data files to manipulate and no time to learn, means
repeating the same action over and over and over and over. . . . The
shell and CLI provide tools to greatly simplify this sort of activity.

50
Part 3 - Glossary of Terms

This section lists some useful command and summarises their use.
To find out more about any of them run man command-name or use
google.

There are lots of additional programs under the Applications menu


on your desktop.

awk

Manipulates files.

bash

Default shell. Look for Bash unix shell on wikipedia for a brief
history and list of keyboard shortcuts. For more information man
bash.

bunzip2

Uncompress a file.

bzip2

Compress a file to save space.

cal

Shows this months calendar. For the whole year run cal 2016.

cd

cd when run on its own changes to your home directory.

51
cd when given an argument changes to that directory
cd /store/DAMTP/crsid

cat

Display a file.

Or concatenate (merge) two or more files together.


cat file1 file2 > file3

chmod

Change the permissions on a file, usually to grant or deny others read


access or to make a file executable.

cp file1 file2

Copy file one to file two. Be careful. This may overwrite file two if
it exists.

cp file1 file2 file3. . . dir will copy multiple files to a directory.

date

Show date and time.

du dirs. . .

Show disk usage of the directories. Useful when you are running
down on quota and trying to figure out where your space is used up.

To list your files and directories by size, typically from your home-
directory run du -sk * .??* | sort -n

diff filename1 filename2

52
Show differences between two files.

echo text

Repeats its arguments. Useful for displaying the values of system


variables e.g. echo $PATH and in scripts for keeping the user
informed.

emacs

Traditional unix editor. Graphical. Has old fashioned computer


games under its Tools menu.

env

Display environment variable settings.

file filename

Guess the type of file. Useful when a file has no extension (.pdf, .txt
etc). While it is not always accurate, if it says that a file is any sort
of text, you can safely read it without messing up your screen.

find

Find a file. Typically used when you know a file is somewhere


in your home-directory or a certain data space and you cannot
remember which sub-directory it is in.

find . -name test Find all files starting with the string test
under the current directory.

firefox

Web browser.

53
firefox -ProfileManager start firefox by creating or selecting a new
profile. It can be useful to try a new profile when something
goes wrong and you cant tell if its your firefox or happening for
everyone.

gedit

Graphical unix editor.

grep string filename

Find some text in a file.

gvim

Graphical edition of the traditional unix editor vim.

head filename

Displays the top ten lines of a text file.

history

Displays the last commands you ran.

LATEX

LATEX is used for writing mathematical papers; its strength is in


displaying mathematical equations. The programs kile and
texstudio are used for writing LATEX documents. These
programs give you the ability to use all the functionality of LATEX in
a graphical environment, for writing, compiling and viewing LATEX
documents.

These programs contain LATEX reference material and the Internet


contains numerous guides to LATEX.

54
kile

GUI LATEXprogram.

kill

kill pid Ask a process to exit.

kill -KILL pid Tell a process to exit.

killall program-name

Causes all instances of program to be killed.

less filename

View a file, page at a time. Keystrokes include:

q - exit, , up and down one line


b - back one page, {space} - next page
G - end of file, 1G - beginning of file

lpr file

Print a file (text or Postscript) to default printer.

To print to a named printer append the printer name. lpr -Pprinter-


name filename

lpq

List printer queue (can add -P).

ls

55
List contents of directory.
To list contents with sizes etc., and sorted by modification time ls -ltr

man command

On-line manual.

man -k keyword Search on-line manual for a keyword.

mkdir directory

Make directory.

mv file1 file2

Move (rename) file1 to file2, deleting file2 if it exists.

Move multiple files to a directory


mv files. . . directory

pico

Unix editor.

pine

Email program.

ps

Shows running processes.

ps aux list all processes.


ps -elf list all processes.

quota

56
Show filespace quota.

rm filename

Deletes Files.

rmdir directory

Remove directory (if empty).

sed

text replacement.

ssh computer-name

Connect to another computer.

sort

For sorting files.

tail filename

Displays the last ten lines of a text file.

texstudio

Graphical LATEX program.

thunderbird

Email program.

tidy

Validate a webpage. Its important to keep webpages accessible to


all.

57
$ tidy -asxhtml file.html > newfile.html

time command

Time a simple command.

top

View process activity. Press q to quit.

tr

Changing characters.

vim

Traditional unix editor.

w shows who is using a computer, what command they are running


and the load on the computer.

wc filename

Count lines and words in text file.

whereis program-name

Tells you where a program is installed.

who

Who is logged onto a computer.

xdg-open

58
Open a file. This program will take a guess at what file type a file is
and open it with the appropriate piece of software.

xterm

Opens a new command shell in a window.

59
*, 27 xdg-open, 39
/, 43 xterm, 29
?, 27 xv, 44
>, 39
>>, 39
backups, 11
cat, 39
cd, 31, 41
chmod, 34
cp, 40
evince, 39
groups, 34
home directory, 31
kill, 44
killall, 44
less, 39
ls, 31, 36, 43
mkdir, 41
mv, 40
path, 30
permissions, 36
ps, 44
rm, 27, 40, 41
rmdir, 41
terminal, 29
text editors, 37
wild cards, 27

60

You might also like