For more details, and talks in past semesters, consult the full schedule of talks.
Past topics can (and should) be repeated occasionally. In addition, here are some topics people might like to hear about:
To give a talk, please contact swig@math.arizona.edu.
This tutorial assumes that you have logged in to your account and that you have opened a shell terminal from the graphical interface. In what follows the shell prompt will be denoted simply with the $ sign. The actual shell prompt on your computer might look quite different. Usually it is of the form your_username@machine_name:working_directory_name$ . For example, rlakatos@gila:~/tmp$ . The boxes below represent small snapshot sections of your shell prompt terminal window. Lines in these boxes that do not have a $ sign as a leading character represent the shell's response.
This page describes a few basic commands. To learn more about Linux commands, visit the basic commands reference page where you can find lists of commands organized by theme.
While working at a shell prompt it is easy to lose sight of the current working directory. To check which directory you are currently in, use the pwd command. Type the following at the shell prompt and hit <enter> (always hit the <enter> key after issuing a command):
$ pwd /u5/rlakatos $In the above case the shell reports the working directory as rlakatos (which is the home directory of the author of this web page) and /u5/ as the path leading to it from the root directory (the topmost directory in the file system tree denoted by /). You will most likely get a similar message on your screen. Note that the first appearance of the symbol / in directory path names always stands for a real directory / while all the others are simply there as separator symbols.
To see all the files (in Linux directories are files too) in the current working directory use the ls command. Simply type:
$ ls ann my_documents papers research Work mail nsmail pictures Screenshot-1.png Matlab pal-rujan.pdf pub_http_internet temp $Most likely you will get a different listing. Some shells use an additional / character at the end of the directory name (for example my_documents/) to designate that a file is really a directory.
Let's create a new directory named tutorial in the current directory. Use the mkdir command as follows:
$ mkdir tutorial $
To see that you have created this new directory type the ls command again:
$ ls ann nsmail pub_http_internet tutorial mail pal-rujan.pdf research Work Matlab papers Screenshot-1.png my_documents pictures temp $and observe the name tutorial in the above list.
Let's copy a file containing words from a dictionary to this new directory. The dictionary file linux.words can be found in the directory /usr/share/dict (which you could now check with the ls /usr/share/dict command). To copy the file type:
$ cp /usr/share/dict/linux.words tutorial $
To see that the copy command was successful, type:
$ ls -l tutorial -rw-r--r-- 1 rlakatos users 409305 Aug 18 11:03 linux.words $
As you can see the ls command can provide you with additional information about files when you use the - l option. There are many other options that can be supplied to the ls command. The same is true for almost any Linux command. To see all the options for ls and to understand their effects consult the Linux built in manual pages by typing:
$ man ls
LS(1) FSF LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory
by default).
Sort entries alphabetically if none of -cftuSUX nor --sort.
Mandatory arguments to long options are mandatory for short
options too.
-a, --all
do not hide entries starting with .
-A, --almost-all
do not list implied . and ..
--author
print the author of each file
-b, --escape
print octal escapes for nongraphic characters
:
Now you can browse these pages for information, page by page using the
<page up> and <page down> keys, or
line by line using the <↑> and
<↓> keys. Try it! To exit the manual hit the
<q> key.
Alternatively, you can consult the info pages for information about the same command as so:
$ info ls
File: coreutils.info, Node: ls invoke, Next: dir invoke, Up: dir list
`ls': List directory contents
=============================
The `ls' program lists information about files (of any type,
including directories). Options and file arguments can be intermixed
arbitrarily, as usual.
For non-option command-line arguments that are directories, by
default `ls' lists the contents of directories, not recursively, and
omitting files with names beginning with `.'. For other non-option
arguments, by default `ls' lists just the file name. If no non-option
argument is specified, `ls' operates on the current directory, acting
as if it had been invoked with a single argument of `.'.
By default, the output is sorted alphabetically, according to the
locale settings in effect. (1) If standard output is a terminal, the
output is in columns (sorted vertically) and control characters are
output as question marks; otherwise, the output is listed one per line
and control characters are output as-is.
--zz-Info: (coreutils.info.gz)ls invocation, 48 lines --Top----------
Welcome to Info version 4.3. Type C-h for help, m for menu item.
Again you can browse these pages in the same manner and exit with the <q> key.
After quitting the help pages (i.e. the man and info pages) let's switch to our new directory tutorial using the cd command:
$ cd tutorial $
Try now:
$ pwd /u5/rlakatos/tutorial $As you can see, the shell reports the name of the new working directory perpended with the complete path that leads from the root directory.
Our dictionary file has a nontraditional .word extension, although it is really a text file. To check this, type:
$ file linux.word linux.words: ASCII text $
For convenience, let's rename the file into my_dictionary.txt as follows:
$ mv linux.words my_dictionary.txt $Remark: mv stands for move and is used to move files around but it can be also useful for renaming files. (Check the result with the ls command.)
Just above we used mv to rename the linux.words file to my_dictionary.txt, while leaving it in the same directory. Here, by contrast, we can use mv to move the file to another directory:
$ mv linux.words .. $
Last, we can combine these two: moving the to a different directory, and giving it a different name there:
$ mv linux.words ../my_dictionary.txt $
To edit this file using the GNU emacs editor, type:
$ emacs my_dictionary.txt & [1] 22673 $Make sure you add the & symbol at the end. That will allow you to retain the shell prompt for further command typing while it will open the emacs editor in a new window. Note: the symbols, like [1] 2767, are assigned by the computer to various jobs and processes as identification numbers. In the above case the numbers are assigned to our new emacs window. You will see this shell message if you move away your emacs editor from the shell window as follows. Left click with your mouse on the emacs window title bar and while holding down the left mouse button drag the window to a suitable position on the screen. Your screen should look something like this:
Now, if you wish, you can edit the file. On the top line of the file type
the following text (or anything you like):
Hey, this is my new dictionary file. It is quite big! and hit the <enter> key.
To save the file my_dictionary.txt left click with the mouse on
the floppy diskette image
in the emacs window or press
<ctrl+x> and follow it immediately by pressing <ctrl+s>.
To exit the emacs editor using your mouse go to the file menu button in the top left corner of the emacs window, left click on it and choose the Exit Emacs option (the last one in the drop-down menu list), or alternatively press <ctrl+x> followed immediately by <ctrl+c>.

After exiting emacs, if you press <enter> at the shell, you will see a message saying that the emacs job/process is finished.
$ <enter> [1]+ Done emacs my_dictionary.txt $
We can see the dictionary file displayed in the shell prompt terminal window by using the pager command less which allows you to browse a text file, page by page using the <page up> and <page down> keys, or line by line using the <↑> and <↓> keys.
$ less my_dictionary.txt
Hey, this is my new dictionary file. It is quite big!
Aarhus
Aaron
Ababa
aback
abaft
abandon
abandoned
abandoning
abandonment
abandons
abase
abased
abasement
abasements
abases
abash
my_dictionary.txt
Browse the file and exit it with the <q> key.
To end this tutorial we should clean up the file system using the rm command:
$ rm my_dictionary.txt $
The directory tutorial/ should be empty now and we can remove it with the rmdir command. But first we need to get out of it and go back to its parent directory. To achieve all this, type:
$ cd .. $ rmdir tutorial $Note: the two dots, .., tell the cd command to leave the current directory and go back to its parent directory which should be your home directory (try the pwd command to verify this).
Finally, to exit the shell terminal window, type:
$ exit