Find Your Way
Articles and Tips: article
01 Apr 2005
As Novell has come to embrace Linux in its product line, marketing and strategy, it has also come to support--if not flat-out endorse--the certifications from the Linux Professional Institute (LPI). Various Novell certifications now require Level 1 and/or Level 2 certifications from LPI to show you know and understand the basics of Linux administration. Let's look at what the LPI certifications are and then focus on one of the key exams you must pass to become certified. (For more information on LPI, visit www.lpi.org.)
What Are LPI Certifications?
The Linux Professional Institute currently has two levels of Linux certification with plans for more in the future. To become certified at any level, you must pass two exams and you must certify at the first level before you can certify at the second level. To certify at Level 1 (Junior-level Administrator), you must pass exams 101 and 102. You must pass exams 201 and 202 to certify at Level 2 (Intermediate-level Administrator).
The exams consist of both multiple-choice and fill-in-the-blank questions and are focused on generic, vendor-neutral Linux. In other words, the topics covered by the certification test apply to any flavor of Linux whether you are using SUSE LINUX, Red Hat or any other Linux implementation. To achieve this vendor-neutrality, the questions typically focus on the lowest common denominator in all implementations, for example, the chown utility, and not focus on tools that exist only in one distribution, such as YaST in SUSE LINUX.
Most of the fill-in-the-blank questions relate to commands and syntax so experience giving those commands on a live system becomes essential to answering correctly. You must be very familiar with Linux administration before considering taking these exams.
Not all of the topics on the exams are evenly weighted. You should study every topic and be comfortable with it, but if you find yourself in a pinch, take weighting into account and focus your study time accordingly. While not exact, think of the weighting as percentages.
The LPI certifications are highly regarded, not only by Novell, but also by the Linux community as a whole. Unfortunately, there is not a lot of current, up-to-date, study material available for the exams. When the LPI certification first went live in XXXX, several publishers had books covering the 101 and 102 exams, while none (to my knowledge) did on exams 201 and 202. After the Level 1 exams were updated, few publishers updated their existing books to reflect the new material.
This article focuses on exam 101 and what you must know to pass it. In the future, we'll try to cover exam 102 to round out what you must know to pass both exams and become certified at Level 1.
The Topics
As mentioned, when studying for the exam, take weighting into account. Weighting the topics breaks them down in differing significances:
GNU & Unix Commands: 31 (See Tables 2-10.)
Linux Installation & Package Management: 30 (See Table 11.)
Devices, Linux Filesystems and Filesystem Hierarchy Standard: 24 (See Devices, Linux Filesystems and Filesystem Hierarchy Standard below and Table 12.)
The X Window System: 13 (See Table 13.)
Hardware & Architecture: 8 (See Table 14.)
NOTE The numbers add to 106 rather than to 100 because there is not an exact correlation between the weighting and percentages.
If you want to break down the areas to study even further, look at the weighting of each objective and organize them by the most important. (See Table 1.) Knowing what to study--what the creator of the exam considers the most important--and then being comfortable with those topics is invaluable to acing an exam.
Table 1: Weighting Each Exam Objective
Objective
|
Topic Area
|
Weight
|
Use Debian package management |
Linux Installation & Package Management |
8 |
Use Red Hat Package Manager(RPM) |
Linux Installation & Package Management |
8 |
Process text streams using filters |
GNU & Unix Commands |
6 |
Find system files and place files in the correct location |
Devices, Linux Filesystems and Filesystem Hierarchy Standard |
5 |
Install and configure Xfree86 |
The X Window System |
5 |
Design hard disk layout |
Linux Installation & Package Management |
5 |
Make and install programs from source |
Linux Installation & Package Management |
5 |
Work on the command line |
GNU & Unix Commands |
5 |
Use streams, pipes and redirects |
GNU & Unix Commands |
5 |
Create, monitor and kill processes |
GNU & Unix Commands |
5 |
Use file permissions to control access to files |
Devices, Linux Filesystems and Filesystem Hierarchy Standard |
5 |
Install and customize a Window Manager Environment |
The X Window System |
5 |
Perform basic file management |
GNU & Unix Commands |
3 |
Modify process execution priorities |
GNU & Unix Commands |
3 |
Search text files using regular expressions |
GNU & Unix Commands |
3 |
Set up different PC expansion cards |
Hardware & Architecture |
3 |
Manage shared libraries |
Linux Installation & Package Management |
3 |
Create partitions and filesystems |
Devices, Linux Filesystems and Filesystem Hierarchy Standard |
3 |
Maintain the integrity of filesystems |
Devices, Linux Filesystems and Filesystem Hierarchy Standard |
3 |
Control mounting and unmounting filesystems |
Devices, Linux Filesystems and Filesystem Hierarchy Standard |
3 |
Managing disk quota |
Devices, Linux Filesystems and Filesystem Hierarchy Standard |
3 |
Set up a display manager |
The X Window System |
3 |
Configure Fundamental BIOS Settings |
Hardware & Architecture |
1 |
Configure Modem and Sound cards |
Hardware & Architecture |
1 |
Set up SCSI devices |
Hardware & Architecture |
1 |
Configure Communication Devices |
Hardware & Architecture |
1 |
Configure USB devices |
Hardware & Architecture |
1 |
Install a boot manager |
Linux Installation & Package Management |
1 |
Perform basic file editing operations using vi |
GNU & Unix Commands |
1 |
Manage file ownership |
Devices, Linux Filesystems and Filesystem Hierarchy Standard |
1 |
Create and change hard and symbolic links |
Devices, Linux Filesystems and Filesystem Hierarchy Standard |
1 |
Not all of the topics on the exams are evenly weighted.
Table 2: GNU & UNIX Commands
Utility
|
Default Purpose
|
& |
Start a process in the background |
bg |
Move a job to the background |
cat |
Display the contents of a file |
cd |
Change from the current directory to another |
cp |
Copy a file or directory |
cut |
Extract a field from each line of a file |
dd |
Copy files between media |
egrep |
Originally combined features of grep and fgrep with new possibilities; can now be emulated with grep -E |
fg |
Move a job to the foreground |
fgrep |
Originally offered features not found in grep, but can now be emulated with grep -F |
find |
Locate a file based on given criteria |
fmt |
Format the output to fit the desired display |
grep |
Displays lines that contain the given string |
head |
Display the beginning lines of a file |
jobs |
Display a list of jobs running in the background |
join |
Combine columns from two files into a single display |
kill |
End a process |
killall |
End several processes |
ls |
List files and directories on the system |
man |
Display the manual pages for a command, utility or file |
mkdir |
Make directories |
mv |
Rename/move a file or directory |
nice |
Start a process at a priority other than the default |
nl |
Number the lines of a file |
paste |
Put the contents of two files in a single display |
ps |
Show the running processes |
pstree |
Graphically depict the relationship between processes |
pwd |
Display the current directory (always in absolute format) |
renice |
Change the priority of a running process |
rm |
Remove files and directories |
rmdir |
Remove empty directories |
sed |
Allows text to be changed before being displayed |
sort |
Sort the lines of the file |
stty |
Show the settings for the terminal |
tac |
Display the contents of a file in reverse order |
tail |
Display the last lines of a file |
tee |
Send output to default and to a file |
top |
Show and monitor system information and processes |
touch |
Change the times associated with a file |
tr |
Translate one set of characters into another |
wait |
Suspend further processing until another process completes |
wc |
Count the number of words, lines and characters/bytes within a file |
xargs |
Pass the output of one command into another |
Table 3: Metacharacters and Their Purposes
Metacharacter
|
Purpose
|
' ' |
Cancel the special meaning of anything but the backquote (everything except the backquote?) |
" " |
Cancel the special meaning of most characters |
$ |
Treat the next string as a variable |
$() |
Allow a command to be treated as a variable |
* |
The wildcard for any number of characters |
; |
Separate dissimilar commands |
? |
Any single character |
[ ] |
Any of the enclosed characters |
\ |
Treat the next character literally |
` ` |
Execute the enclosed command |
| |
Allow one command's output to be the next command's input |
< |
Input redirection |
<< |
"Here" |
> |
Output redirection |
>> |
Output append |
Table 4: Navigation Keys for the vi Editor
Key
|
Result
|
- |
Move to the first character of the previous line |
$ |
Move to the last position of the current line |
( |
Move backward one sentence |
) |
Move forward one sentence |
{ |
Move to the beginning of the previous paragraph |
} |
Move to the beginning of the next paragraph |
^ |
Move to the first character of the current line (ignoring spaces) |
+ |
Move to the first character of the next line |
0 |
Move to the beginning of the current line |
b |
Move backward to the beginning of the previous word |
B |
Move backward to the beginning of the previous word, ignoring symbols and punctuation |
E |
Move to the end of the next word |
E |
Move to the end of the next word, ignoring symbols and punctuation |
Enter\Return |
Move to the beginning of the next line |
H |
Move left one space |
J |
Move down one line |
K |
Move up one line |
L |
Move right one space |
W |
Move to the beginning of the next word |
W |
Move to the beginning of the next word, ignoring symbols and punctuation |
G |
Move to the last line of the file |
xG |
"Goto" line number x |
Table 5: Available vi "Change Text" Combinations
Keystroke
|
Result
|
C$ |
Change from here to the end of the line |
c) |
Change from here to the end of the sentence |
c^ |
Change from here to the beginning of the line |
c} |
Change the remainder of the paragraph |
3cw |
Change the next three words |
r |
Replace an individual character |
R |
Go to "Replace" mode and overwrite existing text with new text |
Table 6: Ways to Save a File in the vi Editor
Keystroke
|
Result
|
:.,12w newfile |
Saves lines from where the cursor currently is to line 12 in a file named newfile |
:2, 5w newfile |
Saves lines 2 thru 5 in a file named newfile |
:12, $w newfile |
Saves lines from 12 to the end of the file in a file named newfile |
Table 7: Keys Associated with Input Mode in the vi Editor
Keystroke
|
Result
|
a |
Inserts text after cursor (append) |
A |
Inserts text at the end of the current line |
i |
Inserts text before cursor |
o |
Opens a new line below the cursor |
O |
Opens a new line above the cursor |
s |
Removes the current letter and places you in insert mode. This is known as the "substitute" command |
S |
Substitute mode for the whole line |
Table 8: Deletion Keystrokes in the vi Editor
Keystroke
|
Result
|
d$ |
Deletes from the cursor position to the end of the line |
d) |
Deletes the remainder of the sentence |
d} |
Deletes the remainder of the paragraph |
d0 |
Deletes from the cursor position to the beginning of the line |
db |
Deletes the previous word |
dl |
Deletes a letter |
7dl |
Deletes seven letters |
dw |
Deletes a word |
7dw |
Deletes four words (dw not only deletes the word, but also deletes the space after the word. To delete only to the end of a word, use de instead.) |
Table 9: Screen Navigation Keystrokes in the vi Editor
Keystroke
|
Result
|
Ctrl+F |
Move forward one screen |
Ctrl+B |
Move backward one screen |
Ctrl+D |
Move forward one-half screen |
Ctrl+U |
Move backward one-half screen |
Ctrl+E |
Scroll the screen up one line |
Ctrl+Y |
Scroll the screen down one line |
H |
Move to the top line of the screen |
L |
Move to the last line of the screen |
M |
Move to the middle line of the screen |
Table 10: Keystroke to Copy Text in the vi Editor
Keystroke
|
Result
|
Y$ |
Yanks from here to the end of the line |
y) |
Yanks the remainder of the sentence |
Y} |
Yanks the remainder of the paragraph |
Y0 |
Yanks from here to the beginning of the line |
yb |
Yanks the previous word or part of a word |
yl |
Yanks a single letter |
7yl |
Yanks the next seven letters |
yw |
Yanks a single word |
7yw |
Yanks the next seven words |
yy |
Yanks an entire line |
7yy |
Yanks seven lines |
Y |
The same as y$ |
Table 11: Managing Packages and Configuring Linux Installation Parameters
Utility
|
Default Purpose
|
bzip2/bunzip2 |
Compress/uncompress files |
depmod |
Determine module dependencies |
dmesg |
Print out the boot-up messages |
dpkg |
Debian package manager |
grub |
Linux boot loader |
gzip |
Compress files |
gunzip |
Uncompress files |
halt, shutdown, reboot |
Interfaces to shutdown |
init |
Change the runlevel |
insmod |
Install a module |
last |
View the most recent entries in the wtmp file |
ldconfig |
Updates and maintains the cache of shared library data and symbols for the dynamic linker. |
ldd |
List which shared libraries a program depends on |
lilo |
Configure the Linux Loader |
lsmod |
List the loaded modules |
modinfo |
Print information about a module |
modprobe |
Probe and install a module and its dependents |
rmmod |
Remove a module |
rpm |
Red Hat Package manager |
runlevel |
Show the current runlevel of the system |
tar |
Create and extract files known as tarballs |
telinit |
Same as init |
Table 12: Commands and Concepts for Managing Filesystems
Utility
|
Default Purpose
|
chgrp |
Change an entity's group association |
chmod |
Change an entity's permissions |
df |
See the amount of free disk space |
du |
See disk usage statistics |
edquota |
Create quotas for users or groups |
fdisk |
Partition the disk and work with the partition table |
fsck |
Check the file system status |
locate |
Find a file from the locatedb database |
lspci |
Shows information about the PCI buses |
mke2fs |
Create a Linux Extended-2 filesystem (ext2) |
mkfs |
Create a filesystem |
mkreiserfs |
Create a Reiser filesystem |
mount |
Mount a filesystem |
quotaoff |
Turn off user/group quotas |
quotaon |
Turn on user/group quotas |
repquota, quota, quotacheck, and quotastats |
View quota usage |
SGID |
Set the group ID when running a file |
Sticky bit SUID |
Change the operation of files and directories Set the user ID when running a file |
umask |
A numerical variable subtracted from the default permissions when creating new files and directories |
umount |
Unmount a filesystem |
updatedb |
Update the locatedb database |
whereis |
List all information about locations associated with a file |
which |
Find a file from the path statement |
Table 13: X Window System Utilities and Concepts
Utility
|
Purpose
|
fvwm |
Popular virtual desktop window manager |
kdm |
KDE display manager |
mwm |
Motif Window Manager |
startx |
shell script to start the X environment |
X |
X server |
Xconfigurator |
X configuration tool |
Xdm |
X display Manager |
XF65Setup |
X configuration tool |
Xf86config |
X configuration tool |
xinit |
Configure and start the X server |
xinstall.sh |
X installation program |
xload |
X client |
xsetroot |
Manage the root window |
xterm |
Terminal emulator |
Table 14: Hardware and Architecture Utilities
Utility
|
Purpose
|
chat |
program used to perform the chat script negotiation during a ppp session |
date |
check and set the system date |
lspci |
Lists all devices connected through the PCI bus |
minicom |
terminal emulation program |
pppd |
program to establish a PPP connection to a remote system |
setserial |
check and set the serial port parameters |
sndconfig |
configure a sound card |
timeconfig |
configure the system timezones |
Devices, Linux Filesystems and Filesystem Hierarchy Standard
During installation, Linux creates a number of directories which hold system files. Under any normal installation, regardless of the vendor, the folder structure includes the directories as they adhere to the Filesystem Hierarchy Standard (FHS).
/ (root) Everything begins at the root directory (/). This is the beginning directory of which everything else becomes a subdirectory, or subcomponent beneath the root directory. When specifying locations and using absolute addressing, always start with the root directory; it is impossible to go back any further.
bin The /bin directory holds the binaries (executables) that are essential to using the Linux operating system. Many of the utilities discussed thus far are located in the bin directory, including:
cat
cp
date
dd
gzip
ls
mkdir
mv
ps
rm
sed
vi
boot The /boot directory houses the files needed to boot the system, minus configuration files, as well as the kernel. In some implementations, the kernel is stored in the / directory (a holdover from the days of Unix), but in most newer versions, /boot is used. This directory contains all the files needed to boot (including the kernel) except the configuration files.
dev The /dev directory holds the device definitions. You can drag a file to a graphical icon of the floppy drive on the desktop because a definition for the floppy drive is held in the /dev directory. A definition file is associated with every device, whether it is a terminal, drive, driver and so on. You should know that the following types of files exist in Linux:
Normal Files: files that contain data used by users or applications
Directories: containers that hold files or other directories
Device Files: one device file exists for each physical device
Links: pointers to other files
Sockets: files used to exchange data between two running processes
Pipes (also known as FIFOs for First In, First Out): Like sockets, they are used to exchange data, but the data is queued and can only flow one way
etc In everyday language, "etc." is used to mean "and so on." In the Linux world, however, the /etc directory holds configuration files and samples that are specific to the machine. For example, ABC Corporation and DEF Corporation can both install the same version of Linux on Intel-based machines at their sites. When they do, both will have root directories, both will have /bin directories with matching sets of utilities in them, and so on. One major difference between the two machines will be the values that can be found in the /etc directory. The users who log on at ABC are not the same as those who can log on at DEF; thus, user accounts are stored in /etc. The groups are not the same at the two organizations; again, those related files are stored here.
home The /home directory holds subdirectories that are the home directories for users. For example, user edulaney, when entering the cd command, will be placed in /home/edulaney providing that variable (the default) is used when setting up the account. Each user's home directory provides him a location where he can store files, as well as where individual configuration files are found and accessed. Some services, such as ftp and http, also create directories beneath /home. Files that are used to configure the environment for the user, such as .profile, .bashrc, and .bash_history are stored in the home directories.
lib Shared library files needed by binaries, such as those in the /bin directory, are located in the /lib directory and subdirectories beneath it. Generally, the libraries comprise executables written in the C language.
media The /media directory is used for mounting removable media. Two subdirectories are created here by default: cdrom and floppy. Folders for other devices, such as dvd, dvdrecorder or cdrecorder, may also appear if they are installed.
mnt The /mnt directory holds external filesystems that are mounted. The entities that appear in this directory are never on this filesystem, but rather external resources that can be linked to and accessed from here. The external resources can be other filesystems or devices. The devices appear as directories with common names. The /mnt/tmp subdirectory here is intended to hold temporary files, but it's preferable to use the /tmp. External filesystems are loaded, and thus appear, beneath this directory with the mount command. They are removed with the umount command.
opt The /opt directory holds optional (add-in) application software. Not all applications are installed here, but when they are, they create a subdirectory for their variables using the application name.
proc The /proc directory is the virtual filesystem. It is dynamically generated and updated and holds information about processes, the kernel and related system information. Processes are depicted as folders, each having permissions and variables associated with it. Other system information is most commonly depicted as files.
root The /root directory is the home directory for the root user. For security purposes, it is beneath the / directory rather than being a subdirectory of /home. For true security, it is further recommended that you move this directory to another location and rename it to a less obvious (and inviting) name.
sbin Just as the /bin directory holds standard executables that most users utilize, the /sbin directory holds binary executables for system administration. Many of these utilities are used for booting the system and once resided beneath the /etc directory. The following are some of the files located beneath this directory:
dump
fdisk
fsck
halt
ifconfig
init
mkfs
poweroff
reboot
shutdown
srv The /srv directory holds the files for the services that are available on the server--each in a separate subdirectory.
tmp As the name implies, the /tmp directory holds temporary files. Only short-term files should be placed here because many systems clean (delete) all entries in this directory on either startup or shutdown. Examples of files that exist beneath /tmp are shadow copies of files opened for editing, any application's temporary files (stored between operations) and so on.
usr Originally an acronym for "user-specific resources," /usr is now an enormous directory with a large number of subdirectories. Subdirectories beginning with X are used to define the X Windows environment. The /bin subdirectory, as has been the case each time the same name has been encountered, contains user binary (executable) files. The files placed here include:
cut
diff
file
grep
killall
nl
passwd
wc
var Short for variable, the data contained beneath this directory fluctuates in nature. Typically, many subdirectories here hold dynamic files, such as spools and logs. The main directories to know among these variables are:
lock: holds locked files
log: used for log files such as those created by login and logout (wtmp), who is currently using the system (utmp), and those for mail, the spooler, etc.
run: files needed for the runlevel
spool: spooled data waiting for processing (such as printing)
Other directories Other directories can be created and exist beneath the / directory. Those listed in the preceding sections are always present and the following two directories might also be present:
install: holds information about the installation, such as scripts, errors, etc.
lost+found: On a perfect system, this directory should be empty. When corruption occurs, however, the results are placed in this directory.
(For more information about the Filesystem Hierarchy Standard, visit www.pathname.com.)
Summary
This article introduced the LPI certifications and looked at the topics on the first exam you must pass in order to become certified as a Junior-level Administrator. Look for another article covering the topics you must pass on exam 102--the second test you must pass to become certified at Level 1.
For more information on lpi certifications, visit www.lpi.org
* Originally published in Novell Connection Magazine
Disclaimer
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.