Beginning SSDL users

From Ssdlpedia
Jump to: navigation, search

This page summarizes tips and tricks for students and other users of the SSDL computing facilities.

Contents

General

SSDL features 17 workstations, all running Ubuntu 8.04, a free GNU/Linux distribution. Our workstations have a minimum of 2 Gigabytes of RAM and 80 Gigabytes of storage. See here the detailed hardware list.

The three main reasons that drove the change are:

  1. Linux is believed to be a better software engineering environment, and in using Linux, students will have stronger and more diverse education. We believe that diverse, multi-platform education is essential to the software engineering education.
  2. By using Linux, which utilizes the hardware better, we are able to offer better performance to the students; conversely, in using Linux, we are able to make very good use of older machines which would have needed to be trashed otherwise.
  3. System administration is infinitely simpler with Linux. The fact that Linux is more stable than Windows does not hurt either.

Although some students and users prefer to install UBuntu on their own machines so as to make the transition of files smoother, there are good tools for making interoperability possible.

Questions and problems using SSDL should be directed to Shahar Dag and the course teaching assistants.

Login

Your Initial login

  • Use the same user name & password you use in the faculty Linux farm.
  • Your Initial password is your ID number. You must change the password at your first login
  • To change your password use:

Login & Quota

If you have exceeded your quota (and some times even if you near your quota limit) you will not be able to login using the GUI. See also Quota / Additional disk space

  1. Login using α-numeric terminal.
  2. Check your quota.
  3. If needed, erase some file.
  4. Logout from the α-numeric terminal
  5. Login using GUI

α-numeric login

Use α-numeric login if:

  1. You can't login using GUI.
  2. Your X environment stop responding.

How:

  1. switch to α-numeric environment by pressing Alt+Ctrl+F1.
  2. Login with your regular user name & password.
    • Enter your user name & press Enter.
    • Enter your password & press Enter.
  3. Fix the problem you have.
  4. Logout with the "logout" command.
  5. Switch back to GUI login by pressing Alt+Ctrl+F7.

Tips for New Commers to Linux

Fast Copy & Paste

You can copy paste in Linux the same way that you did it on windows:

  • mark a section
  • use CTRL+C to copy it
  • go to the destination
  • use CTRL+V to paste it

In Linux you can do it in a mach faster way

  • mark a section
  • go to the destination
  • click the middle mouse button

This is because Linux has 2 active desktops

  • the first (as in Windows) contain the copied data
  • the second contain the current mark section

Caution: If you are using a mouse with a scroll wheel that also serves as the middle mouse button, be carful not pressing the wheel while scrolling (this will perfume a paste operation)

Desktop & Workspaces

The Desktop

If your desktop become loaded, you cam minimize all the open windows at once by using the "show desktop" button. pressing on the button for the first time will hide all the windows, pressing again will restore them. The button is located (by default) at the lower left corner an it looks like this ShowDesktop.jpg

Another solution for crowded desktop is the usage of workspaces.

Workspace

Your desktop contains several workspaces. Every workspace contains its own windows (applications).

  • you can give every workspace a name
  • use a workspace per task. Workspace for mail, workspace for development, …
  • if you will wisely use workspaces, you will not need to minimize or move your windows
  • switch workspace by mouse click on the desired workspace (they are at the lower right corner) or by ALT+CTR+LEFT (move left) / ALT+CTRL+RIGHT (move right)
  • you can define up to 12 different workspaces
  • To define the number of workspaces use
    System | preferences | appearance |  visual effects
    then select
    custom | preferences | desktop
    and set the number.

N workspace.jpg

Aplets

To add applets, right click on the top panel and select the desired ones. Here are several useful applets:

  • Lock Screen - protect you computer from unauthorized use. Please note that according to SSDL's regulation if you leave the computer for short time you should lock it.
  • System Monitor – shows open applications, cpu usage, memory usage, etc …
  • Force quite – enable to terminate stacked applications
  • Clock – shows; date, time and even the weather in Haifa
  • Clipboard Manager – access the clipboard history
  • Keyboard Indicator – to get indication about the active language.

Right click on the applets to set it options (the recycle bin, workspace manager, main menu, etc are applets) You can move the applets around or create new panels for them. Have fun.

Look & Feal

Special Effects

To find the (short list of the) effects you can add, go to:
Systems | Preferences | Simple CompizConfig Settings Manager
or (for the complete set of effects) go to
Systems | Preferences | Advanced Desktop Effects Settings

We warns you, that if you like "cool" option, you may spend all of your time investigating the options in this menu.

  • use windows button + mouse scroll wheal - to zoom in / out the current window
  • use ALT + mouse scroll wheal - to change the opacity of the display

Appearance

To find out what you can customize, go to:
Systems | Preferences | Appearance

You can bring more Themes from the internet, for example:

Health

Working / typing for long periods may harm your wrist. To keep your health, it is recomanded to take a break once in a while. Go to
System | Preferences | Keyboard Preferences | Typing Break
to see how Ubuntu can help you in this task.

The Shell

Using the command line from a terminal window (called shell) give you a lot of power & options. It is very important to your education to learn how to use the shell. You can save a lot of work by piping elementary shell commands to execute a complex task.

Open a shell window from
Applications | Accessories | Terminal
  • You can create a short cut for shell activation on the desktop or in any panel
  • You can use the up / down arrows (or CTRL+P, CTRL+N) to scroll among the commands you run in the terminal
  • CTRL+R will let you search in the history of the commands you used in the terminal.
  • left / right arrow will move the cursor one character at a time.
  • CTRL+a / CTRL+e – will move the cursor to start / end of line.
  • TAB will complete a command or file name. If TAB can't complete, pressing Tab twice will display all the available options. For example
la<tab><tab>
will display all commands that starts with la
cat ~/My<tab><tab>
will display all files in your home directory that strats with My.

Learn the shell commands

You have several ways to get info about a command

  • use man (see below)
  • use info (use info cmd_name)
  • a guide about bash scripting (see /usr/share/doc/abs-guide)
  • use [www.google.com/linux Google for Linux]


Use the
man
command to get information about any shell command.


To learn about the
mkdir
command, type
man mkdir
To learn more about
man
type
man man


If you are looking for a command, but you don’t know it's name use
apropos
or
man -k
For example
apropos directory
will return all the commands that related to directory.


  • To move in the man text use up / down arrows or page up / down buttons
  • To exit from man use 'q' (or if you are a vi man use :q)
  • To search inside a man page use '/' followed by the search string.
    • use 'n' to go to the next occurrence of the search string.

Some useful shell commands

  • whoami - return you login name
  • grep - search regular expression inside files
  • ps -a - will list all running process. Filter the list with grep to find the process id of specific application. For example
    ps -a | grep eclipse
  • kill process_id - will terminate a miss behaving job. Replace process_id with the actual number you found using ps.

Run an application in the background

When you run a long program and you want to continue working with your terminal, run it in the background. For example:

gedit &
To learn more about moving a job from the background to the foreground, listing the running jobs, and many more look for the section about job control in the man pages of your shell. For example
man bash
To find your shell use
env | grep -i shell

Use the Shell to save Programming

Instead of writing code, you can use the shell to achive complicated tasks

  • | - pipeline - connect the output of one command to the input of the next command.
  • > - re-direct the output, usually to file, overriding it's content.
  • >> - re-direct the output, usually to file, appends at the files end.

Look here to see a beautiful example that implements set operations using only shell commands. Please note that some of the set operation can be better implemented using the combine shell command.

Command Histoy

  • use up q down arrows to go over the command you used.
  • use the history command to list the command in the history
    • use history -c to clear the history
    • use !5 to re-call the fifth command from the history (of course you can use any number from the history list)

The File System

Special Directories

  • / - root, the entry point of the entire file system
  • . - the current directory
  • .. - the parent directory

File handling command

Now that you know about the "man" command, use it to learn more about:

  • pwd - display the full path of the current directory
  • ls - display the content of a directory
    • -a display hidden entries
    • -l display as a list
  • cd - move to another directory
  • cp - copy
  • mv - move / rename
  • rm - delete (usually a file)
  • touch - the original usage is to change the time stamp of a file. You can use it to create a new file.
  • mkdir - create a new directory
  • rmdir - delete a directory
  • chmod - change the security setting

Create a nested directory

If you like to create a nested directory, you do not need to do it in steps (create one directory at a time). The command
mkdir -p /tmp/$USERNAME/backup
will create (if necessary) all the directories in the path

Hidden files

Files (and directories) that starts with `.` (period) are not displayed by default buy the "ls" command. This is why we call them hidden files.

  • Usually hidden files are configuration files. Almost every program that you run, keeps it's setting in a hidden file under your home director. Occasionally you will be able to fix misbehaved program by editing or removing it's configuration file.
  • To display hidden files use
    ls –a
  • To change the attribute of a file use
    chmod

The file browser

you can create shortcuts to any place by dragging it to the Bookmark area. See the attached image File Browser.jpg

To go directly to your home folder, use (double click) the icon on the top left corner that looks like this Home.jpg

Remote File system

FTP

To copy files from a remote ftp server (taht is from any computer that supports the ftp protocol)

  • Use ftp/sftp from a terminal window
  • Use scp from a terminal winwod
  • Use gFtp (Applications | Internet | gFTP) to get an ftp program with graphical user interface
  • Use Places | connect to server & select ftp protocol
Windows Shares
  • Use Places | connect to server
  • Select Windows share
  • Do not forget the domain name (td-csf for cs students)

Aliases

Alias is the way to give short names to complicated tasks. Put your aliases in your initial alias file (which for bash is ~/.bash_aliases). The disadvantage of aliases reviles when you come to help a friend and do not understand why things don't behave as they should

Here is a list of DOS like aliases:

alias dir=ls -lsF 
alias erase=rm -i
alias del=rm -i
alias type=cat 
alias md=mkdir 
alias rd=rmdir 
alias cls=clear 
alias path="echo $path"

Where to find additional tips

There are a lot of Linux tips in the internet (most of it as usual in computers is in English)

Where to find tips in Hebrew

A word to Instructors and Teaching Assistants

If you teach a course in SSDL, or if you are a teaching assistant in such a course, please be sure to:

Introduce Students to Linux

As an instructor, you should make sure that your students have basic Linux education. This is usually not a concern, since our "Introduction to Systems Programming" (MATAM) course revolves around Linux, but there might be special cases regarding students coming from other departments or other universities. Make sure you tell the students that they need to have basic Linux skills.

Communicate Tips and Tricks

Please communicate to your students all the little tips and tricks which would make their working in the lab even easier. You could do that by directing them to the page you are reading now...

Updates Your Course Specific Information

Any special tips and tricks that your particular course may need should be added to this page. (All instructors and teaching assistants should have an SSDLPEDIA account. Go to the login page, type in your CS login name, and then ask that a password is mailed to you.

Environment Neutral Working Atmosphere

Most importantly, you are asked to maintain an environment neutral working atmosphere, and avoid applying pressure on students to use Microsoft Office, or any other Windows specific software. MS-Office is an excellent piece of software, but it is not available on Linux yet. Therefore, do not send MS Word files to your students. Even though such documents can in principle be opened on Linux, the layout is not optimal. Similarly, it not a good idea to require that MS Office files are submitted.

Quota

Although SSDL does its best to supply the student with extra disk space, the department's policy is that student home directories are served by the department file servers. Be sure to contact Ilana Edut before the course starts, and make sure she allocates sufficient storage for the course needs.

Course Specific Software

If you need special software for the course, please edit our new software page, adding your requests there. After you have done that, please send a note to the SSDL staff, so that your edits would not be missed.

Hebrew

The Ubuntu system in SSDL includes full support in Hebrew. You can read (display) and write (edit) Hebrew documents.

  • To switch from English to Hebrew (and from Hebrew to English) use Alt+ Shift.
  • When creating Hebrew document please remember to change the text direction to RTL (right to left)
  • In Open Office, the cursor will show English direction even when writing in Hebrew

Linux/Windows Text File Conversion

There is a little secret about transferring text files from Windows to Linux and back---a secret that everyone using both systems should know. Linux, just as all UNIX systems, adheres to the convention by which each line of text ends with a special character known as line-feed or LF for short. (C, C++ and Java programmers will recognize this character as "\n").

In DOS, and consequently in Windows, the convention is different, and honours the days of typewriters and teleprinters. To start a new line while typing on a typewriter, you had to to do two things:

  1. Move the typing head (the carriage) back to the beginning of the line. This operation was known as "Carriage Return".
  2. Scroll the paper up one line.

Thus, in DOS and in Windows, each line of text ends with two characters, a "Carriage Return" (or CR for short), followed by "Line Feed". These two characters are written as "\r\n" in C, C++ and Java.

If you move a text file from Windows to Linux you have to remove the carriage return character. If you move the file back, you have to put the it back in.

If you forget to do that, usually nothing will happen, since many modern text editors (including vim and notepad++) and development environments (including Eclipse) apply simple hacks to ignore the anachronistic carriage return characters. But if you see Linux files on Windows in which there are line breaks, or, if you see Windows files on Linux with funny "^M" or other strange looking characters, you will need to convert the files to the right format.

Two commands come to your rescue here,

dos2unix

and

unix2dox

the semantics of which should be obvious. (Use a terminal window, available in "Applications/Accessories/Terminal" menu path, to run command line arguments).

An alternative is the handy flip utility. Type flip -h to learn how to use it.

Office Applications

Word processing, presentation making and spreadsheet based computation could be a challenge for users who are used to the use of Microsoft office. Microsoft did not migrate its office applications to LINUX yet---and the attempt to insist on using Microsoft Office while working in Linux could be frustrating. Gladly, there are many alternatives.

LaTeX

As a rule, scientific papers, text books and much of the professional material in computer science is written with LaTeX. LaTeX is a system for preparing documents which despises the WYSIWYG principle standing behind many desktop publication systems. To make a LaTeX document, you just write your text, throwing in commands that describe the logical structure of your document. In this respect LaTeX is similar to HTML, except that LaTeX is geared towards the making of professional documents. Also, LaTeX is much more expressive than HTML (and hence may take more investment in learning).

LaTeX is available in almost all computing environments, including Windows and the Macintosh. There are interactive environments which help users produce correct LaTeX documents and provide easy access to the specialized LaTeX commands, much in the same way as IDEs helping programmers write programs.

Kile

Kile is an interactive environment for preparing LaTeX documents in Linux. Find it in the "Applications/Office/Kile" menu path.

Lyx

Kile gives LaTeX a touch of WYSIWYG. A stronger WYSIWYG appearance is provided by LyX, a word processor which uses LaTeX as its rendering system. You don't need to know LaTeX to use LyX, but it may help. LyX offers excellent documentation and can mimic almost all LaTeX functionality. LyX, just as all LaTeX systems, makes documents with amazingly professional look. Ronen Abravanel of the Haifa Linux club preapred an excellent introduction to LyX.

LyX can be found in the "Applications/Office/LyX" menu path.

Open Office

Open office is a free WYSIWYG office suite, which includes a word processor, a spreadsheet application, a program for making presentations. It is available for Windows, just as for other systems.

In principle, open office can read and write Microsoft Office documents. But the attempt to use open office as if it was Microsoft office compatible is futile. The specification of Microsoft office documents is very complicated, spanning almost seven thousands pages of technical information. There are small differences in layout which could make a big difference in appearance.

If you use open office, do not make it a habit of continously editing the same document with Microsoft office. If you use a Windows machine, then download and install open office there.

Look for Open Office applications in the "Applications/Office/OpenOffice.org" menu path.

Writer

  • Writer is a word processor.
  • It is similar to MS office word.
  • Writers generate *.odt files.

Calc

  • Writer is a spreadsheet.
  • It is similar to MS office excel.
  • Writers generate *.ods files.

Impress

  • Writer is a presentation tool (create & display).
  • It is similar to MS office powerpoint.
  • Writers generate *.odp files.

Database

  • Writer is a database tool.
  • It is similar to MS office access.
  • Writers generate *.odb files.

Mathematical formulas

  • Insert formulas in any Open Office application using “Insert | Object | Formula”.
  • You can create a shortcut for formula insertion by using “Tools | Customize...

AbiWord

AbiWord [1] is a free word processor similar to Microsoft word. Just like OpenOffice it runs on multiple platforms, including Windows. It can read and write both Open- and Microsoft- office files. In fact, it can sometimes open Microsoft Office files on which OpenOffice fails.

KOffice

There are two major desktop environments in the Linux world. Gnome and KDE. The differences between the two are mostly cosmetic, with many swearing that KDE is more "sexy". Read more about the differences here. For reasons of compatibility with other laboratories in the department of computer science, Gnome is our default. Also, it is said that the current KDE release for Ubuntu was not designed for the general public, and as such is not as good.

Many applications are written specifically for one of these, but - it important to remember that you can run almost any KDE application on Gnome and vice versa.

An important case in point is KOffice----an office suite designed for KDE. All its components are released under free software/open source licenses and it use OpenDocument (the same format as that of OpenOffice) as their native file format when possible. The suite includes the following components:

  1. KWord A word processor.
  2. KSpread A spreadsheet application.
  3. KPresenter A program for making presentation.
  4. Kivio A programmable flowchart drawing program.
  5. Karbon14 A vector drawing application.
  6. Krita A bitmap graphic and painting program.
  7. Kugar and KChart Integrated report and chart generators.
  8. KFormula An integrated mathematical formula editor.
  9. Kexi An integrated data based management application.
  10. KPlato A project management application that can create Gantt-style charts.

Google Documents

Google Docs is a free, Web-based office suite, including a word processor-, a spreadsheet-, a presentation-, and a form- application offered by Google. It allows users to create and edit documents online using their web browser, while collaborating in real-time with other users: you can share your documents with others, by mailing a link to them. The fact that multiple users can edit the file simultaneously makes it ideal to software engineering teams.

To gain access to Google docs, all you need is a Gmail account. It is even possible to edit your documents offline, so you do not need an internet connection if you are using Google docs at home.

What if Someone Sends you an MS-Word File

It is possible to open MS-Word file in OpenOffice. OpenOffice 3.0 can even open DOCX file. But, the results are often unsatisfactory. If such a problem happens to you may want to ask that the document is resent as PDF. (SSDL asks that instructors and teaching assistants of courses taught in the lab refrain from sending course related material in DOC or DOCX format; ODT or PDF format is recommended instead.)

You may want to mention to your party some of the reasons for preferring PDF:

  1. Portability. PDF documents they look the same on all platforms, software versions, screen resolutions, screen DPI, fonts installed, mathtype or not installed, printer drivers or not installed. In contrast MS-Word files may look different even on the same version of the software.
  2. Readability. MS-Word, OpenOffice and other tools are designed for editing the underlying text. The user manipulate the cursor, whereas a PDF reader, which is a document viewer, the user manipulates pages.
  3. Safety. The receiver cannot accidentally modify the file before printing it, and obtain the wrong information.

There are plenty of tools for converting DOC and DOCX files to PDF. You can apply them yourself, or ask the sender to do that for you. This tool by Microsoft does the conversion, and MS-Office 2007 has a simple menu options that allow either saving a file as PDF, or mailing it directly as PDF.

You can also point your party at a PDF printer on Windows machines. There are quality free PDF print drivers available for Windows, take e.g., a look at this one.

Another alternative you can mention to someone sending you DOC or DOCX file is that they use the ODT plugin that allows Microsoft software to produce ODT files.

Postscript (ps) & PDF files

  • Linux supports display of *.pdf & *.ps files.
  • The file manager will display minimized image of the document.
  • Double click on the document will open it (display it)

Text Editors

Gedit

You can add to Gedit:

  • Symbol Browser- to easily see a tree like display of classes, variables, ...
  • auto text coplishion
  • speller
  • and many more

go to live.gnome.org/Gedit/Plugins to see how

Web Browsing

Firefox

You can add many plug-ins, add blockers, gui enhancements, download accelerators, ...

Go to the add-ons site.

Opera

Internet Explorer with Wine

Konqueror

Instant Messaging with

Pidgin

Pidgin supports many services like:

  • MSN Messenger
  • ICQ
  • Yahoo
  • Google Talk

Skype

Programming Environment

Eclipse

What to do if Eclipse is Stuck

Installing Plugins

KDevelop

C and C++ Compilers

ML

To strat ML, run 'sml' in console.

g++

The compiler

ddd

The debugger

make

ant

Sun java

Junit

NetBeans

aspectJ

Utilities

valgrind

Use valgrind to debug memory problems (leaks, usage of un-initialized memory & overflows)

xev

A tool to test X events. Open a terminal and run xev. Create events in the xev window (mouse moves, mouse clicks, keyboard events, …) an see in the terminal what you are getting. Read the man pages for more information.

Storage and Backup

Using disk on remote computer

  • To use a remote disk use:>
    Places | Connect to server ...
  • Select remember the password until I logout to avoid the need to re-enter your password every time you access the remote disk.
  • If you are connectin to a Windows share, don't forget to enter the domain (for Computer Science shares use TD-CSF)
  • Use the "Add Bookmark", to give a distinct name to the connection.
  • Sometimes you will have to connect a second time to realy get the connection.

Using the Local Disk

see Quota / Additional disk space - Working on the local disk

Using the SSDL Raid

see Quota / Additional disk space - Working with SSDL's raid

Disk on Key

Working with DOK shoulb be easy as in Windows. Before disconnecting, right click and select umount.

CD Buring

We do not have CD / DVD burnner installed on the public workstations.

Media

You can find the media tools under "Applications | Sound & Video"

Watching Videos

  • Movie Player - is a simple movie display program. You can add a plugin to enable dircet access to YouTube video. Activate the program and select
    Edit | Plugins ... | YouTube browser
  • VLC - advanced movie player
  • MPlayer - advanced movie player
  • Amarok - advanced movie player

Watch Technion video lectures

  • connect to the video server
  • FireFox is configured to display the lecture correctly
  • You can use VLC to manually watch the video. Replace the http prefix with rtsp
  • Currently, you can control the speed of the movie.

Listening to Music

  • Audacious - is Winamp like media player

Image processing

  • gimp - similar to PhotShop

Printing

Students Printer

  • The printer name is stud_printer.
  • It is located in SSDL.
  • A payed printer (like in the public farm at the entry floor).
  • You can use your student printing card or any credit card. Printing with credit card is more expensive then using a dedicated student card.
  • This is a duplex printer (prints on both sides)

Print to the printer in the public farm

If you need a double sided printer, print to the printer in the public farm (first floor).

  • Working on SSDL's workstation, select the printer "public_printer"
  • Go to the Linux farm & release your job from the queue.

PDF printer

This pseudo printer will create a PDF file.

Personal tools