Return to top of page
Linux is an operating system that evolved from a kernel created by Linux Torvalds. A kernel is the nucleus of the operating system. It tells the processor what you want it to do. A kernel is pretty much useless without other programs to interface with parts of your computer and you.
Originally Linux was not for everyone. You accessed it from a command line interface (CLI) like MS DOS but to get Linux working you had to spend a lot of time learning how to install all the programs.
Return to top of page
| Shell Name | Developed by | Where | Remark |
|---|---|---|---|
| BSH (Bourne-Again SHell) | Brian Fox and Chet Ramey | Free Software Foundation | Most common shell in Linux |
| CSH (C SHell) | Bill Joy | University of California (For BSD) | The C shell'ssyntax and usage are very similar to the C programming language. |
| KSH (Korn SHell) | David Korn | AT & T Bell Labs | |
| TCHS | See the man page. Type $ Man tcsh | |
TCSH is an enhanced but completely compatible version of the Berkeley UNIX C shell (CSH).
|
To find available shells in your system type:
cat /etc/shells
Cat types out the contents of a file as you saw above. The file "shells" in the "/ etc" directory holds all available shells in the system.
To find your current shell type:
echo $SHELL
The command "echo" echos or types what follows it. The "$" sign says echo the cont ents of the following system variable. The "SHELL" is a system variable set up in your init file or by using the "export" command.
To find out where your shell and other basic information is stored:
To get back to your home directory type:
cd
Now, to list all files including the hidden ones type:
ls -al
Here is what it will look like on "Tezpur":
Return to top of page
Why should I know about them
Being able to know which environment variables affect which aspect of your environment means that you are able to customize your environment. In many shell scripts and using many applications or programming languages you will need to know the values of these variables.
Your global environment consists of environment varibles such as:
echo $PATH
echo $PWD
echo $HOME
echo $USER
env | more
printenv GLOBUS_PATH

The X-Window system grew out of the Athena project at MIT.
Most commercial UNIXes provide proprietary X-Window servers for their version of UNIX. The free UNIX world has concentrated on XFree86 as the primary X-Window server, though the "86" refers to the Intel x86 architecture, XFree86 has been ported to numerous architectures.Besides the X-Window server, the X-Window protocol requires a window manager to display the windows. The window manager controls the overall look and feel of the windowing environment (minimize, maximize, close, scrooll-bars, borders, colors, title bars, etc.). The two currently dominant window managers in the free UNIX world are KDE and GNOME (but there are dozens of others to choose from like fluxbox, fvwm, etc.). KDE was developed by an independent group of programmers and was inspired by the commercial CDE environment. GNOME development was started under a free license by Red Hat. Red Hat, as of their v8.0 release, has taken a giant step forward, according to some people. They have developed a common, consistant, interface called Blue Curve. Regardless of whether the user picks GNOME or KDE, the GUI looks 95% identical.
Running an X-Window server and window manager on a machine provides a familiar graphical interface. As is typical, in the free UNIX world the user has a choice.
The computer mouse was invented in 1968 by Douglas Englebart while at Stanford University.
The Macintosh comes set up with the graphical user interface as the opening screen. Most people running a Mac do not deal with the command line interface or if they use it they use it to update their machine.
The initial login screen is a text screen, however, since these systems are configured to automatically start X-Windows, they quickly switch to a graphical login. The login screen allows users to chose which style of desktop they want, provides for the ability to restart or shutdown the computer, and allows users to change their default language.
In order to interact with the machine users must have a valid ID and password. As you will learn, this ID and password may or may not be stored on the local machine. The name space (users and groups) can be maintained on another server somewhere on the network.
Click on the "Terminal" window (the black screen) in the "Dock".
At the prompt type:
For example I would type:
My results:
* “UNIX is a registered trademark of The Open Group in the United States and other countries.”
Return to top of page
In 1987 Andrew S. Tanenbaum -- a professor in Amsterdam, the Netherlands -- created MINIX as a teaching aid for his Operating Systems class.
Linus soon realized that the project was a huge undertaking so he decided to start by writing a kernel, utilizing the tools being developed by the GNU project (shells, compilers, editors, etc.).In 1984 and 1985, Richard M. Stallman started GNU and founded the Free Software Foundation.
As Linus made early progess, he made copies of Linux available to other people via the Internet. Suggestions for improvement and fixes for bugs started flooding in and full Internet collaboration on the kernel project started.Today, Linux is composed of a kernel and other supporting applications layered around it. The development of Linux would not have been possible without the software provided by the GNU project and developers from all over the world and the use of the Internet.
Return to top of page
Because of its modularity and open source nature, anybody can add functionality to the kernel. However, with Linux systems, Linus has final authority over what is officially added to a kernel release. With the Macintosh, Apple has the final authority over what is officially added to their kernel release. The "official" kernel can be found at http://www.kernel.org/.
Kernels are released in "stable" and "development" versions. Kernel versions are numbered so that the second part (between the first and second decimal point) determines if the kernel is stable or development. Stable versions are always even numbered: 2.0.7-3, 2.2.12, and 2.4.9-13 are all stable kernels. Development versions are always odd numbered: 2.1.4, 2.3.5-2, and 2.5.1 are all development kernels. After freezing enhancements and bug fixes to a stable kernel, a new development kernel tree starts. When a development tree becomes stable enough, it gets renumbered as a new stable release.
A final benefit of Linus' open source, modular kernel is the user's ability to remove or include only the parts of the kernel they want or need. This has resulted in full blown router engines and firewalls that fit on a floppy disk. Also, as a system administrator for a server, you can fully optimize the kernel code for what your server does.
This is not something we do a lot of in the Macintosh world of UNIX like systems. The Mac OS X system is not open source but is a proprietary system.
Return to top of page
Open the Terminal window and navigate to the /dev directory by typing
The mount command is used to perform the grafting or to show existing grafts.
In the Terminal window, type mount to see a list of currently mounted (grafted) filesystems. Even if several hard disks are in a system, all access to the disks will be through /. This is unlike the Windows world where separate disks/partitions are accessed via different drive letters (C:, D:, etc.).
A "mount" command on "tezpur.hpc.lsu.edu":
| Path | Windows Equivalent | Description |
|---|---|---|
| / | C: | The start of the filesystem (or main drive in Windows) |
| /home | My Documents or Profiles or D: | User's private files |
| /usr or /usr/local | Program Files | Installed software |
| /dev | Windows or Windows\System | Device drivers |
| /etc | The Registry or .ini files | Application and operating system configuration information |
| /tmp | Windows\Temp | Temporary system files |
| /bin or /sbin | Windows | System executable files |
In the Terminal window, type cd / and press enter/return to "change directory" to the "root" directory.
In the Terminal window, type pwd and press enter/return to "print the working directory".
In the Terminal window, type cd (don't forget to press enter/return) to change back to your account's home directory.
In the Terminal window, type pwd and press return to "print the working directory".
In the Terminal window, type cd /home and press return to change to the directory that contains all user accounts (directories).
In the Terminald window, type ls and enter/return to "list" the files and directories in the "/home" directory.
In the Terminal window, type cd (don't forget to press enter/return) to change back to your account's home directory.
In the Terminal window, "cd" to each directory try to list the files and then print the working directory. After finishing this type "cd" to return home.
It is important to note that of the many filesystems Linux supports, the Microsoft NTFS system is among them. Currently Linux has the ability to read NTFS filesystems. While there is a project to enable Linux systems to write to NTFS, it is currently unreliable and can cause corruption of the filesystem. Like other modern operating systems, Linux can access remote filesystems across the network. Windows calls this "Sharing". UNIX calls it NFS (Network File System). Similar to Windows, which can both serve and access Shares, Linux using NFS can export and mount filesystems. Samba is a software project to allow Linux (and other UNIX-like OSes) to mount and export filesystems the same way a Windows system "shares" directories.
| Command | Description | DOS/Windows Equivalent |
|---|---|---|
| awk | File processing and report generating | N/A |
| cat | Show contents of a file | type or double-clicking a file |
| cd | Change directory | cd or double-clicking a folder |
| cp | Copy a file | copy or dragging a file |
| file | Determine file type | file extension or right-click properties |
| find | Find a file | Windows Explorer Find |
| grep | Find lines in a file | N/A |
| ln | Link a file to another file | Create Shortcut |
| ls | Display files in a directory | dir or Windows Explorer |
| mkdir | Create a directory | mkdir or creating a folder |
| more | Display a file one page at a time | more |
| mv | Move or rename a file | rename or dragging a file |
| rm | Remove a file | delete or deleting a file |
| rmdir | Remove a (empty) directory | rmdir or deleting a folder |
| sed | Stream editor | N/A |
| vi | Edit a file | edit or notepad |
| wc | Count words, lines and characters in a file | N/A |
Click on the link below to download files to your computer:
Download
Next open a new terminal window and type:
scp labs.tar your-account@your-machine.lsu.edu:.
Now type in the terminal window you used to log in to your hpc account:
tar -xvf labs.tar
Now type:
ls -l this gives you a list of files
cd 20070125
ls -l
cd labs
p
ls -l
tar -zxvf mpilab.tar.gz
cd mpilab
Now you have files to work with!
In the Terminal window, type
ls
(don't forget to press enter/return) to list the files in the directory. Then type
cat readme
In the Terminal window type
cp readme myfile1
to copy the "readme"file you just looked at, making a second identical file with a new name, "myfile1".
In the Terminal window type
file myfile1
to determine the file type.
To list the files in one column type:
ls -l
To create a new directory called "mydir" type:
mkdir mydir
To copy the readme file into mydir keeping the name "readme" type:
cp readme mydir/.
To copy the readme file into mydir with another name "myreadme" type:
cp readme mydir/myreadme
To list all the files in the new directory "mydir" type:
ls -l mydir
To copy the directory "c.linux" to the directory "mydir" with the same name type:
cp -r c.linux mydir/.
To find the number of newlines, words and bytes in a file type:
wc readme
To rename a file type:
mv readme myreadme
Copy again so you can remove:
cp myreadme readme
To remove a file type:
rm readme
Return to top of page
In Linux a user is identified by their username. Linux usernames are similar to Windows logon IDs. Linux maintains a list of users, called a name space, either locally on each individual machine or across the network via NIS for a group of machines.
Each user on a Linux machine has a unique username that corresponds to a unique uid. The uid is a numeric value used to determine if the user is authorized to perform a particular task. It is important to note that the Linux operating system is concerned only with the numeric value of the uid and not the text that describes the user's name.
Groups are also associated with unique numbers called gids. Users may belong to more than one group, although they can be associated with only one group at a time. Groups may have zero, one, or more members. Like uids, the Linux operating system is concerned only with the numeric value of the gid and not the textual name of the group.
Each time a user tries to login, Linux attempts to authenticate that user against a name space. The login process prompts for a username and, usually, a password. Linux then encrypts the entered password and checks to see if the encrypted text matches the stored version of the user's encrypted password. If there is a match, the user is authenticated; if not, the user is denied access.
Linux keeps a table of information about each user in the file /etc/password. Each line of this file represents a different user and has seven different fields:
In the Terminal window, type cat /etc/passwd
Since Linux treats everything as a file, learning about file permisions is very important. Linux allows access to a file based upon affiliation as defined by user, group, and other. The possible permissions for each affiliation are read (r), write (w), and execute (x). Linux actually uses one bit to indicate these three permissions for each of the three affiliations.
In the Terminal window, type ls -l /etc/passwd
Your output should look similar to this:-rw-r--r-- 1 root root 1755 Mar 10 13:48 /etc/passwd
The first dash is a flag specifying the type of file. The next three characters are the permissions for the user who owns the file. The next three characters are the permissions for the group associated with the file. The final three characters are the permissions for any user who is not the owner of the file nor belongs to the group associated with the file.
Each of the permissions has a different meaning depending on whether it is set for a file or a directory:
| Type | r | w | x |
|---|---|---|---|
| File | Can read the file | Can change the contents or delete the file | Can execute the file |
| Directory | Can see a listing of files in the directory | Can create new files in the directory or delete files from the directory | Can change into that directory |
Return to top of page
Here is a place for a warning: Do NOT change environment variables unless you understand completely what you are doing.
Suppose I setup my machine and didn't install JAVA because I'm a C and Fortran person. Now I need to install JAVA. Once it is done I need to make sure I can get to it.
Before we start changing things we have to know which shell "family" we are in. There are two major families of shell:
To create or modify a global environment you must use either "export" in the bash shells or "setenv" in the csh environment.
Bourne shell: To add a new place to look in your PATH variable:
export PATH=/admin/bin:PATH
C-shell:setenv PATH "/admin/bin:PATH
The difference here is only the syntax of the command due to the differing shells.When you login the system default environment is set using system default files. For the Bourne shell family this would be: /etc/profile . For the C-shell family it is the /etc/csh.cshrc . These files automatically set up the default path and vital user system variables.
Bash users may create the following files in their home directory:
~/.bash_logout
Return to top of page
chmod u+x myscript
. You will then need to execute your script: ./myscript
> The "hello world" program in bash shell script:
vi kathy1
#
#
#This is my first shell script!
#
clear
echo "Hello World - this is my first shell script!"
#
./kathy1
This script doesn't execute because we didn't change the permissions. So change those.Lets create another script:
vi ginfo
#
#
# Script to print user information who currently login , current date & time
#
clear
echo "Hello $USER"
echo "Today is \c ";date
echo "Number of user login : \c" ; who | wc -l
echo "Calendar"
cal
exit 0
vi ginfo
#
#
# Script to print user information who currently login , current date & time
#
clear
echo "Hello $USER"
echo "Today is \c ";date
echo "Number of user login : \c" ; who | wc -l
echo "Calendar"
cal
exit 0
Now, set the permissions as before, then execute the script just like before.
A good starting guide is: Vivek G. Gite's Shell Scripting Tutorial
Return to top of page
cat test.txt
more test.txt
head text.txt
head -3 test.txt
tail test.txt
tail -3 test.txt
Return to top of page
ls t?st.txt
ls ?
ls p*
ls t*t
ls t[aeo]st.txt
ls t[a-z]st.txt
Return to top of page
Conventions:
There are several ways to create files in UNIX like OSes. We will look at:
ls -l
touch file-1 file-2 file-3 glossary
ls -l
cp file-1 file-1a
vi filename
ls -l > list-files
a.out > prog1.output
Return to top of page
wget http://krt3.lsu.edu/ktraxler/training/linux/waldn10.zip
In your Terminal type: unzip waldn10.zip
Return to top of page
Vi stands for visual editor.
Command mode:
This is the mode that vi comes up in. If the file doesn't exist then you will see a screen with tilde's "~". If the file does exist you will see the first page of text in the file. Lets create a new file - use your name followed by .txt. So my file would be named "kathy.txt".
vi kathy.txt
Vi basic movement commands. You must be in command mode to move around to get into command mode press the escape key
Because this is a new file there is nowhere inside of the file to go. So the cursor can't move around. We have to go to text mode and create text so that we have something to move around in.
Now that we know the basic commands lets finish adding text to this file:
Copy the text off the web page
Go into the file, and insert a word on the first line after the third word Save the file Get into text mode and go to the third line. Insert a new line after the third line and type "All good boys do fine." Get into command mode, to to the 8th character on the first line and replace it with a "+". To replace it put the cursor on the 8th character, type a lower case "r" then type the plus sign. Save and exit the file Open the file "waldn10.txt" Add five lines to the file change all of the a's to o's in lines 10 through 30 save and exit the file view at least one page of the file. Return to top of page Type:
Type: Typed: Return to top of page
Examples of permissions:
ls -l
Return to top of page
First type: ls -l chmod a-w your-name.txt; ls -l
Now, lets change the permissions so that the group has no access and other has all access modes. First type:
ls -l chmod g-rwx kathy.txt; ls -l chmod o+rwx kathy.txt
So to change a file or directory's permissions so that it looked like the first one:
ange a file so ther permission looks like the second one:
However, if you do this you can't serve any web pages that you have created because the web server doesn't have access to move through the directories to get to "public_html". The recommanded setting for your home directory, from many tutorials and textbooks, is: Return to top of page
grep bash$ /etc/passwd
ps uax | grep $USER M
find . -name "*.xml" find . -name "*.xml" | grep $USER Return to top of page
now try:
ps uax | awk '/ktraxler/'
ps aux | awk '/ktraxler/' {print $1, $2, $4}'
awk can do math also:
ps uax | awk '/ktraxler/ {x += $4} END {print "total memory: " x } ' Return to top of page Return to top of page
The kernel is the basis of a Linux system.
Fairly early in the evolution of Linux, people other than Linus started putting the kernel together with various software packages.
The different combinations of kernel and software packages became known as a distribution.
All of the distributions start with one of the Linux kernels and then combine various other software to produce a usable system.
This early development resulted in a large number of Linux distributions being created.
Suddenly, one version of Linux was not required to be everything to everyone, unlike with Windows.
This flexibility allowed Linux to grow and prosper.
Early distributions included (but weren't limited to) Slackware, Yggdrasil, and Debian.
The primary distribution in the U.S. today is Red Hat.
The primary distribution in Europe today is SuSE.
Other major distributions include (but again aren't limited to) Mandrake (which is based on Red Hat), Gentoo, YellowDog (for PPCs), Debian, and Slackware.
Visit Distro Watch for a nearly complete list of Linux distributions.
Another current trend is putting a Linux system on a CD.
This approach has the benefit of not destroying data on the systems hard drive and allows users to experiment with Linux without modifying their current installations.
One implication is that you can boot a machine and have a working system (from the CD) that can help you recover or analyze data on the local hard drive.
The primary Linux-on-CD distribution today is Knoppix.
It is important to note that the kernel is completely seperate from any distribution.
Kernel development and releases continue on their own schedule.
When a new kernel is released, distributions take time to get their configuration and tools working with the new kernel (by adding and removing code to and from the kernel).
Even though most (usually all) of the software in a distribution of software is free (money-wise), distributors still sell Linux.
Purchasing Linux usually provides you with printed manuals (books), installtion support, and sometimes commercial software.
However, almost every distribution allows you to download a CD ISO image.
It should be noted that there are three major Windows "clones," namely Lycoris, Lindows, and Xandros.
Their goal is to create a Linux system that looks and acts just like a Windows system.
Return to top of page
The combination of the Linux kernel, GNU (and other) tools, and a modern X-Window server with GNOME or KDE provides an experience similar to today's Windows systems.
Many Windows-like capabilities have been replicated in the modern Linux/X-Window environment like desktop icons, file browsing, drag-and-drop, GUI configuration tools, etc.
Modern Windows systems usually install software to a common place: "Program Files".
Linux systems put most software under /usr, either in /usr/bin or /usr/local/bin.
Windows applications typically use a consistant install program like "Wise" or "InstallShield" so that most software installations look and feel the same.
Red Hat Linux uses RPM, the Red Hat Package Manager.
Software on Red Hat systems is bundled in a "package."
A package includes all of the binary data for the software, rules detailing prerequisite software, and possibly scripts to be executed before, during, and after installation.
Packages come in either source or binary form.
Binary packages are architecture-specific (i.e. Intel uses i386, i486, i586, and i686; PowerPC uses ppc, SPARC uses sparc, etc.) and can only be installed on the appropriate hardware.
The package manger command is rpm, and it sports a wide array of features.
Here is a table of commonly used rpm commands and what they do:
I also use the open source package fink to keep my other open source packages up todate.
While Windows maintains a binary "Registry" to hold system and installed software settings, Linux puts everything in files, most of which are text.
As shown in our table above, the /etc directory tree in Linux contains most of the files to configure your system and installed software.
As an example, to change the DNS servers on a Windows machine you have to get to the Network Control Panel applet and navigate through several panels, make the change, and (depending on your Windows version) reboot the machine.
In Red Hat, all you have to do is edit the /etc/resolv.conf file.
Older Windows v9x use the System Tray to emulate "services" running on the system.
Windows NT and above actually implement true services which can be controlled using Server Manager.
Red Hat controls services via scripts found in /etc/rc.d/init.d/ and automatically starts or stops these services based on entries in the /etc/rc.d/rcx.d/ directories.
The Free Open Source Software (FOSS) community has produced software to match almost every application.
Following is a very limited comparison of FOSS and commercial software.
Items on the same line are not meant to be a direct comparison.
It should be noted that many of the packages above can also run on non-Linux operating systems.
Additionally, some of the FOSS applications listed above do not have a commercial equivalent.
Open various applications
Use the following commands to add text to a file:
Vi Text mode:
Vi basic insert text commands:
hit the 'i' key for insert mode
Paste the text into the file
hit the escape key
Type :wq
the "w" tells vi to write the file to disk (save the file)
the "q" tells vi to quit
If you don't type the "q" vi saves the file and lets you continue
Getting Help from the System
The basic way to get help on the system:
man cp
whatis cp
apropos copy
File System Access/Security
When you execute the command "ls -l" (list the contents of the directory in long form) you will see something that looks like this:
[ktraxler@is linux_II]$ ls -l
total 80
-rwxr-xr-x 1 ktraxler internalusers 48928 Jan 28 2005 linux.html
-rwxr-xr-x 1 ktraxler internalusers 15650 Aug 2 10:58 linuxII.html
-rwxr-xr-x 1 ktraxler internalusers 15795 Aug 2 09:54 linuxII.html.bak
The group of characters to the left are the access rights or permissions of each file, directory or link. The first character tells whether this is a file, directory or link. The values would be:
The remaining symbols have context in groups of three giving the permissions of access for different groups. These permissions allow the reading, writing and execution (or pass through) for a person or group.
In each group of three you will have the following permissions:
To read a file you must have read access on the file itself and you must have executable access to the directory it is in (so you can get into it) and to any directories that are ancestors of this directory (come before).
To see this on your account type:
-rwx------ a file that only the owner can access. The owner can read, write or execute the file. -rwxr--r-- a file that everyone can read using vi, more, cat, etc. But only the owner can change the contents or delete it. drwxr-x--- a file that the owner and the owner's group can access. The owner can read, write or execute but the group can only read and execute.
Changing File Access
You have to be very careful with this type of action, if you change permissions on the wrong files you can change the operation of your computer! Only the owner of a file or directory can use the command to change the file access. The command to change this is "chmod", changing mode. The syntax of the command is:
chmod ugoa+[-]rwx file-name.
The plus adds a permission for an either the owner, group, or other. The minus removes that permission.
Now, look at the permissions on the file your-name.txt. Then type:
(The semi-colon allows you to type multiple commands on one line. The commands are then executed in the order typed.)
You have just changed the access on file your-name.txt so that the owner, the group and others may write to that file, if they have permission to get into the directory that contains it.
Then type:
This changes the permissions for the file, "your-name.txt" so that the group has no permissions. Now you need to change the permissions so that all other users has every access permission:
ls -l
There is another way to set permissions and that is by adding the numeric values assigned to the permissions for each group. I am told this is the way a REAL UNIX/Linux user changes permissions! The permissions have the values of:
So, for example the file permissions used in the examples above become:
-rwx------ 700 -rwxr--r-- 744 drwxr-x--- 750
To change a file so ther permission looks like the second one:
Your home directy is the place on the Unix/Linux server that you log into and your information is stored. This is represented by a tilde, "~". You can run the chmod command on your home directoy. The safest setting is: chmod 700 ~.
Your home directy is the place on the Unix/Linux server that you log into and your information is stored. This is represented by a tilde, "~". You can run the chmod command on your home directoy. The safest setting is: chmod 700 ~.
chmod 711 ~.
This will allow the user full access and all others can pass through the home directory.
Grep
The grep command is usefule for finding strings of characters in text files. It is short for "Get Regular Expression and Print". To find all users using the bash shell on this machine:
"ps" gives information about a selection of the active processes. By default it selects all process with the same effective user ID as the current user. Adding the options "uax" is a BSD syntax for viewing every process on the system with the resources you are using. Then you pipe it through grep "| grep" with for strings that match the regular expression defined by $USER (me in this case).
Awk
Awk is another text processing tool that will make your hunt for data a lot easier. It is actually a programming language designed for text manipulation but is widely used as an on the spot fool for administration.
Take the example on process from grep:ps uax | grep $USER
Other Useful Commands
Some of the other commands that you might find useful are:
quota shows you your quotas on the machine in column format with headers usage: quota -v dr reports the space left on the file system usage: dr du usage: du gzip Compresses a file usage: gzip filename gunzip Uncompress a file usage: gunzip filename file classifies the named files according to the type of data they contain usage: file * date gives you the system date usage: date
Distributions
Comparison to Windows
New Software Installation / Maintenance
After a Windows installation, the first thing you need to do is update the system.
Similarly, after a Linux OS installation you need to apply critical updates.
Windows provides a website to obtain updated software.
Red Hat also provides a website to do the same.
LSU mirrors updates locally for several versions of Red Hat at http://redhat.lsu.edu/.
The Mac OS X system has an updater that you can use to get the updates. I have mine set to daily. This gets all Apple updates.
Command Description rpm -qa List all installed packages rpm -qi package Show information about an installed package rpm -qil package Show information about an installed package including all files in the package rpm -qip package Show information about an uninstalled package rpm -qilp package Show information about an uninstalled package including all files in the package rpm -qf file Determine which installed package a file belongs to rpm -Uvh package Install or upgrade a package rpm -Fvh package Update an installed package (freshen) rpm -e package Uninstall a package rpm --verify package Verify the integrity of an installed package rpm --help Get help on rpm (there are many more options available) Registry
Services
User Applications
Category Commercial Example(s) FOSS Example(s) Productivity Microsoft Office
WordPerfect
SmartSuite
StarOfficeOpenOffice
AbiWord
GnumericGraphics Photoshop Gimp Document Layout Acrobat
PageMaker
Quarkxpdf
ScribusWeb Browsing Internet Explorer Mozilla
Firebird
Lynx
LinksInstant Messaging MSN
ICQ
AIM
Yahoo!
TrillianGAIM
SilcMusic and Video
PlayersWindows Media Player
QuickTime
WinAmpXine
XMMS
MPlayer
NoatunVideo Authoring Premiere
AVIDCinelerra
kinoCAD AutoCAD qcad Programming Microsoft Visual C/C++/Basic
Intel Compilers
Portland GroupGCC
EclipseWeb Server IIS Apache Web Applications ASP PHP
PerlDatabase DB2
Oracle
SQLMySQL
PostgreSQLMath Matlab Octave
Return to top of page
| quota | shows you your quotas on the machine in column format with headers |
| usage: | quota -v |
| dr | reports the space left on the file system |
| usage: | dr |
| du | outputs the number of kilobyes used by each subdirectory, use in home directory |
| usage: | du |
| gzip | Compresses a file |
| usage: | gzip filename |
| gunzip | Uncompress a file |
| usage: | gunzip filename |
| file | classifies the named files according to the type of data they contain |
| usage: | file * |
| date | gives you the system date |
| usage: | date |
Return to top of page
"...the number of UNIX installations has grown to 10, with more expected..." - Dennis Ritchie and Ken Thompson, June 1972
While on sabbatical in 1978, Ken Thompson helped student Bill Joy write the Berkeley Software Distribution (BSD). AT&T's UNIX became a stable commercial product while BSD's became a research project and teaching tool. This split between AT&T UNIX and BSD UNIX remains today. However, most commercial and free UNIXes are a blend of both.
It should be pointed out that the first operating system that Microsoft sold in August of 1980 was Xenix their UNIX-like OS that ran on both Intel and Motorola processors. Microsoft did not sell their first version of DOS until 1981.
In 1987 Andrew S. Tanenbaum, a professor in Amsterdam, the Netherlands, created MINIX as a teaching aid for his Operating Systems class. This was one of the first complete implementations of a "free" UNIX-like OS, although you had to buy Dr. Tanenbaum's book to get it.
Starting in the early 1990's there were several projects that branched from BSD. The NetBSD and FreeBSD projects both started in 1993. In 1995 a disgruntled NetBSD contributor left and founded the OpenBSD project.
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (torvalds@kruuna.helsinki.fi) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.In 1994 he released a v1.0 kernel and the associated GNU tools as the first widespread public GNU/Linux distribution. Unlike MACH, the Linux kernel is a monolithic or macrokernel where most of the functionality is implemented in the core of the operating system.
Return to top of page
Many resources exist at LSU and across the Internet to make using GNU/Linux easier. Here are just a few.
OCS's High Performance Computing group maintains the system redhat.lsu.edu to support on-campus users. This system sports a number of features:
The Linux Documentation Project has been around a long time and is one of the most valuable resources around. This project includes many different documents that will ease the use of GNU/Linux. Here are a few examples:
Return to top of page
Mail to: Kathryn R. Traxler