home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2000 May
/
Chip_2000-05_cd2.bin
/
docu
/
ascii
/
suselxen
/
slxen-19.txt
< prev
next >
Wrap
Text File
|
2000-03-11
|
60KB
|
1,292 lines
Chapter 19
First Steps with Linux
Since UNIX is such a complex system, we can only cover the most important
aspects here. This book is not aimed at replacing the existing literature on
Linux (or UNIX)-this would be an impossible task.
We recommend that former DOS users consider buying a few good books
You can find examples in the literature recommendations in the appendix. If
you already have some non-Linux, Unix literature, this may be sufficient, as
a large proportion of information is relevant beyond system borders.
Some books, or extracts from them, which are part of the GPL, can be found
as .dvi or PostScript files in package doc, series books. They can be
viewed in X11 with xdvi or gv (Ghostview) and printed out in full, or by
page, with lpr.
Until you have obtained these books, this chapter should give you a short
overview and, as well, help you while "experimenting" with Linux for the
first time.
Being a UNIX novice, once you have successfully installed the system, you
should log in with your `user name' ¡ the one you specified during the
installation ¡ (not as root!), firstly, because there are a lot of settings that
have already been dealt with for you and secondly, you will then only be
responsible for your private home directory. This is also for security reasons
¡ to avoid deleting or changing system-relevant data.
There is no undelete in Linux (yet) as there is in DOS. So, if you delete
system files by accident, you will probably have to reinstall the entire
system.
The first steps in Linux are somewhat complicated, since you are the system
administrator as well, not an easy task for a novice user.
19.1 Logging in, the User "root", Adding Users
The multi-user capabilities of Linux mean that whenever you want to use
the system, you have to log in on the console (see Section 19.4 page 430)
each time you want to use the system. 1 This procedure, an essential part
of the security system of a modern multi-user system, is called logging in;
1 If you have configured a graphical login (cf. Section 3.6.6 page 98), then this is also valid for
the procedure described below!
427
19. First Steps with Linux
this ensures that each user is allocated his own working environment and
can only access his own files. You enter your user name (e. g., `newbie')
and your password (e. g. xxxxxx); you must of course replace the characters
xxxxxx with the password you chose yourself! The characters xxxxxx are not
displayed on the monitor; just type in the characters and then press 2:
login: newbie
If you have successfully "logged in", you will find yourself in the home direc-
tory of the corresponding user (e. g., /home/newbie for the user `new-
bie').
If you want to leave the console, you can log out using the command
logout.
The user `root' is the system administrator and is allowed to do every-
thing. All critical system information files can only be changed by `root'.
Therefore you should only log in as `root' if you plan to configure some-
thing or execute system specific tasks. Never log in as `root' if it is not
necessary (most beginners forget this!) Then you will protect your system
against inadvertent changes, which in certain cases might mean having to
re-install the whole system.
Some things that only `root' can do:
* mounting filesystems (such as CD's, floppies, installing software). This
right can be given to selected users by adding the option user to the
corresponding device in /etc/fstab(cf. Section 19.11.2 page 444).
* adding and deleting users (cf. Section 3.6.7 page 99)
* installing a new kernel (cf. Chapter 13 page 317).
* configuring the system
* shutting down the system (cf. Section 19.2).
* starting yast (cf. Chapter 3 page 71).
19.2 Shutting Down and Booting the System
IMPORTANT! You should never turn off the machine while it is running,
nor press the reset button (reset)! If you switch it off without shutting it
down properly, you risk loss of data and damage to your filesystem.
The commands for shutting down your system properly are shown in Ta-
ble 19.1 on the facing page.
The shutdown command can only be invoked by `root'.
To shut down your system, log in as `root' and enter the commands
shutdown -h now or shutdown -r now.
Alternatively, you can use Ctrl + Alt + Del ,which you might already
know from booting DOS. This combination does not work if you are currently
running X11. Nevertheless, this method can be used by any user on any
virtual console.
2 In case you haven't yet set a password, just press
428
19.3. Commands ¡ Entries on the Command Line
shutdown -h now halts the system; when you see the out-
put: "the system is halted" you can
switch off your machine
shutdown -r now reboots the system immediately
Table 19.1: Commands for shutting down your Linux system
19.3 Commands ¡ Entries on the Command Line
Even though the Linux world is becoming more and more colorful and user-
friendly ¡ menu-driven programs, for example ¡ there will still be situations
¡ in an emergency, or when a menu-driven program for a specific task is not
available ¡ where you need to enter a UNIX-"command".
What is a UNIX Command?
The following are all UNIX commands:
* executable programs
* Shell scripts
* Scripts using scripting languages (Perl, Tcl, etc).
* Shell aliases (such as shell macros).
They have one thing in common: they are all files. If you launch such a
command in Linux, you tell the shell to find the file with that name (you need
the search path, which is set in PATH, to find the file, and when it has been
found, to run it, if it has the correct user permissions (executable).
But what happens if the program (for example, the copy command) needs
additional parameters or file names?
This is fairly straightforward. Parameters are additional arguments for a
command. They might tell the command optional items, such as file names,
etc. The parameters directly follow the command, separated by at least one
blank3.
In addition it can be useful to control the behavior of the command, (if you
want a long list of file names instead of a short one, for example). This is
achieved by means of "options". Options always follow the actual command,
before any parameters. There are a few rare exceptions where commands
have been "messily" programmed. In general, options are preceded by a dash
(e. g. -la) and follow one of two patterns (see Table 19.2 on the next page):
If you want to set multiple options you can "cumulate", or add them all
together behind one dash (lots of Linux programs understand this rule, but
not all of them). For example:
3 This also implies that a blank can never be part of the command itself, as it serves as a separator
between parameters; you may add blanks for a command if you enclose them in quotation marks
("" or '')
429
19. First Steps with Linux
-a short version, UNIX typical
--all long version, the so-called GNU notation
Table 19.2: Command options
-a -f -r -u or
-afru or
-frua
This example also shows that the order is irrelevant. Well, even here there are
exceptions to the rule.
To slightly complicate the issue, some options themselves understand op-
tional parameters. For example:
-f <myfile> or
-f<myfile>
In some (very) rare cases, there has to be a blank between the option and its
parameter. Normally you should use a blank.
Examples
To summarize, this is what commands look like in Linux:
(Examples)4
earth: # fdisk
earth: # lsmod
earth: # ls
With options, they look like this:
earth: # fdisk -l
earth: # ls -l -a
earth: # ls -la
With parameters:
earth: # fdisk /dev/hda
earth: # ls /tmp
And using both options and parameters:
earth: # ls -la /tmp
earth: # rpm -qpl <meinpaket>.rpm
earth: # gcc -o <optionenparameter> <parameter>
It is essential that the blank separates the different parts of the command from
each other, which is why it is a special character for Linux commands.
19.4 Virtual Consoles
Linux is a multi-user and multi-tasking system. You will learn to appreciate
the advantages of these features, even on a standalone PC system.
4 Remember: "earth: # " shows the prompt, you don't have to enter earth: and `#'
yourself.
430
19.5. Directories and Filenames
In text mode, there are six virtual consoles available. You can switch be-
tween them by using Alt + F1 to Alt + F6
. The seventh console is re-
served for X11.5
If you want to switch to a console from X11 without leaving X11, you should
use Ctrl + Alt + F1 to Ctrl + Alt + F6
. Alt + F7 brings you back
to X11.
19.5 Directories and Filenames
All information ¡ whether it is text, images, database files or information on
system configuration ¡ is stored in "files", which in turn are stored in pre-
determined "directories" (cf. Appendix D page 469). With various tools and
programs you can access these files in different directories, in order to look
at the contents of these files or change them where necessary.
The character for separating directories (`\' in DOS) is a `/' on UNIX.
Thus, a path is a string in which all directories are separated by `/'. A
single `/' represents the topmost directory, the "root directory".
UNIX distinguishes between upper- and lower case names, i.e. Emil refers
to a different filename than emil. Separating a filename into its name and
extension is usually not necessary, but there are some programs that require a
specific extension (such as .dvi in LATEX).
A nice little feature when entering file or directory names is the function
of the Tab (tabulator key). Just enter the first few letters of the desired
file name and press Tab .The Shell will now complete the file name for
you (insofar as it is clearly distinguishable by these letters). Pressing the
tab key twice will display all available possibilities. This feature is called
"globbing" in Unix.
19.6 Working with Directories
After logging in (cf. Section 19.1 page 427), you will be in your home direc-
tory. The name of the current directory can be checked by typing pwd (print
working directory):
newbie@earth:/home/newbie > pwd
/home/newbie
To change to another directory, use the cd command (the same as in DOS).
Typing:
newbie@earth:/home/newbie > cd /usr/bin
newbie@earth:/usr/bin >
changes to the directory /usr/bin.
newbie@earth:/home/newbie > cd latex
newbie@earth:/home/newbie/latex >
changes to latex, provided the directory /home/newbie/latex exists.
If you invoke cd without any argument, you will be brought back to your
home directory. This can be reached by typing a tilde (` ') as well.
5 You can assign more consoles via /etc/inittab.
431
19. First Steps with Linux
So typing:
newbie@earth:/home/newbie > cd /latex
changes to the directory latex in your home directory. As with DOS, `.'
signifies the current directory, whereas `..' stands for the parent directory.
You can create new directories with mkdir (make directory). The command:
newbie@earth:/home/newbie > mkdir texts
creates the directory text directly underneath the current directory. Empty
directories can be removed using the command rmdir (remove directory).
19.7 Working with Files
Until they are (perhaps) one day replaced by objects or symbols, files will
continue to play a central role while working with the computer. Therefore a
huge variety of file-related commands exist in Linux.
19.7.1 Information on Files
The command ls (list) outputs the contents of your current directory. A
list of all filenames and directories is shown. Directory names in the list
are marked with a `/'. By adding a parameter, the contents of a different
directory can be displayed:
newbie@earth: > ls /usr/bin
Extensions are not required in order to run programs, as is the case in DOS
(.exe or .com). Instead, execution of programs is controlled by one of three
permissions which may be set for each file by its owner. See Section 19.8
page 437 for more information on file permissions.
A useful option to ls is -l. This gives you a more detailed list of filenames,
including the permissions, owner, group and size of the file:
newbie@earth: > ls -l
This will create an output such as screen output 19.7.1.
drwxr-xr-x 6 newbie users 1024 Mar 21 12:39 ./
drwxr-xr-x 4 newbie users 1024 Mar 21 17:13 ../
drwxr-xr-x 2 newbie users 1024 Nov 6 16:19 bin/
-rwxr-xr-x 1 newbie users 4160 Mar 21 12:38 check*
drwxr-xr-x 2 newbie users 1024 Nov 6 16:23 etc/
drwxr-xr-x 2 newbie users 1024 Nov 6 16:19 sbin/
drwxr-xr-x 12 newbie users 1024 Nov 6 18:20 usr/
-rw-r--r-- 1 newbie users 185050 Mar 15 12:33 xvi.tgz
-rw-r--r-- 1 newbie users 98444 Mar 14 12:30 xvnews.tgz
Screen output 19.7.1: Output of ls -l
The meaning of the entries in screen output 19.7.1 is explained in Table 19.3
on the next page.
432
19.7. Working with Files
Permissions The first character indicates the file type. `d' stands
for directory, `l' for link and `-' for a normal file.
The next nine characters indicate permissions for the
user, the group and all other users (in groups of three).
`r' stands for read, `w' for write, and `x' for ex-
ecutable. For example, `-rw-r--r--' refers to a
file which can be read by the owner, the group and all
others, but it can only be changed by the owner. See
the manpage for chmod (man chmod).
Owner The owner of the file. See the manpage for chown
(man chown).
Group The group the file belongs to. See the manpage for
chgrp (man chgrp).
Size The file's size in bytes.
Last change Date when the file was last changed. Files that were
changed more than a year ago are marked with the
year instead of hours:minutes.
Name The file or directory name.
Table 19.3: Explanation of UNIX file attributes
19.7.2 Wildcards
Compared to DOS, the wildcard interpreting options of the shell (e. g.,
bash) are much more powerful.
For example:
ls *a???.?
returns all files in the current directory which have an `a' as the sixth letter
from the end and a `.' as the last but one character. Instead of a single
character, you can give a whole range of different characters. For example,
the letters `a', `b', `c', `d', `e', `f'. This would be written like this:
ls *[a-f]???.?
You can even search in non-alphabetical order:
ls *[1,3-5,M-P,a,k]???.?
433
19. First Steps with Linux
19.7.3 Contents of Files
You can view the contents of a file with less and more, a page at a time.
With more, you can scroll forwards with (space) and backwards
with b (see Table 19.4). However, less is considerably more comfortable,
which is why it is generally preferred.
With
newbie@earth: > less /etc/login.defs
the file /etc/login.defs is loaded into the "viewer" less; the first page
of the file is displayed, together with an inverse status line on the bottom edge
of the screen. With space bar you can scroll forwards a page at a time, with
b backwards; see also the list in Table 19.4.
h Help
q Quit
e One line forwards
y One line backwards
f One page forwards
b One page backwards
d Half a page forwards
u Half a page backwards
g Go to beginning of file
G Go to end of file
/ Start search
n Jump to next marker
v Load file into the editor
F View a "growing" (log )file
c Switch from F mode to "normal"
Table 19.4: Keys used for the "viewer" less (Selection)
With the / key you can enter a search item (e. g. yes). starts your
search. n jumps to the next occurrence of the item.
Of special interest is the key F
. It allows you to view a log file, for example,
as entries are added to it. With Ctrl + c you can leave this mode.
With the h key, all the features of less are displayed. q leaves the help
mode. Press q again to quit the program.
To modify files you should start an editor; The standard UNIX editor is vi,
and it is well worth spending some time becoming familiar with some of its
basic commands.
19.7.4 Hidden Files
Hidden files are a special kind of file. The filenames for these files begin
with a dot and are only seen if you use ls with the option -a. In your home
434
19.7. Working with Files
directory, just enter ls -a. Now, you should see all files, even the hidden
ones (like .profile or .xinitrc). Hidden files are protected from any
unintentional deletion using rm * (see Section 19.7.5). These files have to
be deleted separately, using rm <.filename>.
If you enter rm .*, all hidden files from the current directory will be
deleted! If the option -r is added (recursive; rm -r .*), all files of the
parent directory are deleted as well (they are named `../bla', which is
covered by `.*' as well)!
So be extremely careful with -r!
19.7.5 Copying, Renaming and Deleting Files
The command for copying files in Linux is cp:
newbie@earth: > cp source target
To copy the file /etc/XF86Config into your home directory, you would
use:
newbie@earth: > cp /etc/XF86Config
Files can be removed using the rm command. A very handy option is -r
which deletes recursively (removing all subdirectories and their files as well;
this is comparable to deltree in DOS). Entering:
newbie@earth: > rm -r bin
deletes the directory bin and all files and subdirectories within it. Please
use this option with extreme caution, since there is absolutely no means of
recovering (restoring) deleted files!
You can move files by typing mv. The syntax is identical to cp:
newbie@earth: > mv xvnews.tgz XVNEWS.tgz
This moves the file xvnews.tgz to XVNEWS.tgz, which is just the same
as renaming it. It gets more interesting when you move whole directory trees:
newbie@earth: > mv bin /latex
This moves the directory bin (if there is one) to /latex. All the files that
were in bin will now be found in /latex. Even this command should be
used with care, since it is very easy to move whole directory trees to places
that you do not remember afterwards.
Moving a complete directory tree is only possible within the same filesystem
(or partition).
19.7.6 Searching for Files and for Strings Within Files
This leads to another useful command: find. To search all subdirectories of
the current directory for the file emil, you should enter:
newbie@earth: > find . -name "emil"
The first argument gives the directory where the search should commence.
The option name expects a search string (wildcards are allowed). Thus, to
search for all files containing the string `emil' in their names, you would
have to change the line to:
435
19. First Steps with Linux
newbie@earth: > find . -name "*emil*"
As with all commands, we suggest you look at the manpages for more infor-
mation.
A very fast way to find files is with the locate command. Look at the
corresponding manpage as well.
If you do not want to search for a file but for a string inside a file instead,
you should use the grep command (= get regular expression pattern). This
command line searches for the string `detective' in the file emil:
newbie@earth: > grep "detective" emil
With grep, you can search vast amounts of data for certain strings very
quickly. Any number of filenames can be entered. Even searching using
wildcards and regular expressions can be used. grep outputs every location
where the string was found. grep has a large number of options. Please
consult the manpage for grep (man grep).
19.7.7 Symbolic Links
By the use of symbolic links, you can give a file an additional name. This
name then points to the corresponding file. Imagine that you want to keep
different versions of a file, but the version actually used should always be
obtainable by the same name. The solution is to use symbolic linking, which
points to the version currently in use. Symbolic links behave just like the file
they link, thus being executable if the "source" file is executable. The entry:
newbie@earth: > ln -s check.2.4 check
creates a symbolic link check which points to check.2.4. In your direc-
tory, this looks like Figure 19.7.2:
lrwxrwxrwx 1 newbie users 1024 Mar 21 17:13 check -> check.2.4*
Screen output 19.7.2: A symbolic link using ls -l
Links can be removed with the command rm.
Here only the link is removed, not the file it points to!
19.7.8 Archiving and Saving Data
To create and unpack archives, the command tar (tape archive) is used. Nor-
mally compressed archives have the extension .tgz or tar.gz. Uncom-
pressed archives have the extension .tar. The most important uses of tar
are:
1. Unpacking archives (e. g., from CD's)
newbie@earth: > tar xvfz archive-file.tgz
tar unpacks (x) the compressed (z) archive archiv-file.tgz (f)
and creates subdirectories as well, if necessary. Each file that is extracted
is sent to the standard output (v).
436
19.8. Permissions
2. Creating archives
newbie@earth: > tar cvfz archive-
file.tgz file1 dir1
tar creates (c) the compressed (z) archive archive-file.tgz (f),
where file1 and all files in dir1 are included as well. Each file that is
packed is sent to the standard output (v).
3. Viewing the archive contents
newbie@earth: > tar tfz archive-file.tgz
tar shows a table of contents (t) of the compressed (z) archive archiv-
file.tgz (f).
The z flag tells tar to create/unpack compressed archives using GNU zip
(gzip).
newbie@earth: > tar xvf archive-file.tar
unpacks the uncompressed archive-file.tar. More information can
be found by typing
newbie@earth: > info tar
19.8 Permissions
Only the user `root', as the system administrator, has unrestricted access
to all files. Permissions are structured into three categories:
* Owner permissions
* Group permissions
* "All others" permissions
Each of these categories is represented by three characters. Together with the
first character (file type: d, l, or -), this results in a total length of ten for the
permission flags field. Each flag is represented by a certain character. The
possible flags for all three categories are the same: `r' for reading, `w' for
writing and `x' for executing. If a flag is not set, this is represented by a
`-' character instead of the flag. As an example, let"s look at the directory
entry for the imaginary file linux.info:
-rw-r-xr-- 1 newbie users 29524 Jun 29 13:11 linux.info
- r w - r - x r - -
Type Owner Group Others
Figure 19.1: How file permissions are displayed
This means that the file linux.info can be read and written by the owner
(newbie). All members of the group users are allowed to read and execute
it. All other users are allowed only to read it. A `-' character in the first
position indicates that this is a "normal" file.
The same applies to directories. If the file in question is a directory, there is a
`d' in front of the nine characters (`d' stands for directory). It might look
like this:
437
19. First Steps with Linux
drwxr-xr-- 3 newbie users 1024 Jun 29 13:11 info/
If the flag `x' is set for a directory, then you can change to (cd) this directory.
This means that users who do not belong to the group users cannot change
to this directory.
Changing Permissions
You can change permissions with the chmod command (change mode). Gen-
erally, chmod needs two arguments:
* the permissions to be changed, and
* a file name.
The categories of the three possible groups are represented here by `u', for
the owner or user, `g', for the group, and `o', for others, followed by the
corresponding permissions to be changed. A `+' or a `-' sign will add
or remove the corresponding permissions flag. The following command, for
example, sets permissions of the file linux.info to readable, writeable
(changeable) and executable for group members:
newbie@earth: > chmod g+rwx linux.info
If permissions for all categories are to be set, it is sufficient just to specify
the permissions to be changed. The following command sets permissions to
linux.info so that nobody has write permissions:
newbie@earth: > chmod -w linux.info
The permissions concerning reading and executing are not affected.
You can give permissions and remove them within a single command line.
The following command sets the permissions of linux.info to executable,
not readable, and not writeable:
newbie@earth: > chmod u+x-rw linux.info
If you the look at the result of this, you will see:
newbie@earth: > ls -l linux.info
---xr-xr-- 1 newbie users 29524 Jun 29 13:11 linux.info
Two interesting commands related to chmod are chgrp (change group) and
chown (change owner). See the respective manpages for more information
on these commands.
19.9 Man Pages
Information about commands, configuration files, and C-libraries can always
be found by using the corresponding manual pages (more often referred to as
"manpages"). See Table 19.5 on the facing page. Here, "keyword" is usually
the command name or filename about which you need information.
438
19.9. Man Pages
man <keyword> Invokes the manpage for
<keyword>.
man -f <keyword> Searches for <keyword> and
lists the manpage found.
man -k <keyword> Searches for <keyword> in all
manpage sections and lists the
manpages found (including other
manpages where it is relevant).
man <section> <keyword> Invokes the manpage for
<keyword> from <section>
(e. g., man from section 1).
Table 19.5: Using the man command
If you are using the X Window System, you may find the program xman of
some use, but man is much faster. The man command uses the tool less;
see also Section 19.7.3 page 434 on how to use this. If you have SuSE help
installed, all manpages are available here as well, and can be comfortably
read using a web browser.
In Table 19.6, you can see the how the manpages are divided into different
sections.
1 Describes user commands. Some of these are built-in commands.
2 System calls of libraries.
3 C library functions.
4 Description of configuration files.
5 Syntax of important files.
6 Description of games.
7 Anything that covers text, text formats, etc.
8 System administration commands.
9 Description of Linux kernel routines.
n n is supposed to represent "new" programs. Here, other manpages
are listed that really belong to another section, but have been placed
here for reasons of convention, or because they don't quite belong in
one of the other sections.
Table 19.6: Manpage sections
Please note that there is not a manpage for every command. If you do not
find the information you are looking for in the manpages, look in the sub-
439
19. First Steps with Linux
directories of /usr/doc (for example, /usr/doc/howto, /usr/doc/
howto/mini, or /usr/doc/packages).
19.10 System Information
Sometimes it is necessary to gather information about the state of the system.
The commands df, free, top, ps are useful for this purpose.
19.10.1 The df Command
df outputs information on the hard disk space currently used. An example of
the output is shown in Output 19.10.1.
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/sda4 699392 659258 5165 99% /home
/dev/sda1 102384 23955 73310 25% /
/dev/sdb1 2097136 2070485 26651 99% /usr
/dev/sda3 126976 106908 20068 84% /opt
Screen output 19.10.1: Output of the df command
19.10.2 The free Command
free gives information on RAM and swap usage.
total used free shared buffers cached
Mem: 30900 29272 1628 25608 1012 6412
-/+ buffers: 28260 2640
Swap: 66524 176 66348
Screen output 19.10.2: Output of the free command
19.10.3 The Command ulimit
With the ulimit (user limits) command it is possible to set limits for the
use of system resources, and to have these displayed. ulimit is especially
useful for limiting the memory available for applications. Through this an
application can be prevented from using up too much (all) memory on its
own; this could bring the system to a standstill.
ulimit can be used with various options. To limit memory usage, you can
use the options listed in Table 19.7 on the facing page.
-m max. size of physical memory
Table 19.7: continued overleaf. . . ...
440
19.10. System Information
-v max. size of vitual memory (swap)
-s max. size of the stack
-c max. size of the core files
-a display of limits set
Table 19.7: ulimit: Setting resources for the user
System-wide settings can be made in /etc/profile; there, creating core
files must be enabled, which is needed by programmers for "debugging".
A normal user cannot increase the values specified in /etc/profile by
the system administrator, but he can make special entries in his own /
.bashrc; see also File 19.10.1.
# Limits of physical memory:
ulimit -m 98304
# Limits of virtual memory:
ulimit -v 98304
File contents 19.10.1: ulimit: Settings in /.bashrc
Details of memory must be specified in KB.
For more detailed information take a look at manpage for bash (man bash).
19.10.4 The w Command
The command w shows all currently active users on your system. This com-
mand outputs an informative list showing you all users, how long the system
has been running, its load and what applications each user is currently using
(cf. Output 19.10.3 on the following page).
19.10.5 The du Command
The command du (disk usage) provides information on the space used by
subdirectories and individual files. Further information can be found in the
manpage for du (man du).
19.10.6 The kill Command
sends signals to currently active processes (process). It requires a process
number (process ID, or PID) as an argument. This PID can be seen by using
the command ps (see Section 19.10.7 on the next page). The kill command
is invoked in the following way:
earth: # kill <pid>
441
19. First Steps with Linux
11:19pm up 9 days, 11:13, 13 users, load average: 3.26, 2.80, 2.67
User tty from login@ idle JCPU PCPU what
root tty2 2:09pm 9:10 -bash
root ttyp1 :0.0 2:11pm 2 4 2 xdvi -s 3 Li
root ttypa :0.0 11:19pm w
root tty1 2:07pm 9:08 50 (startx)
newbie ttyp0 earth.cosmos.com 11:37am 11 2 2 -bash
root ttyp3 :0.0 3:24pm 4 rlogin helios
newbie ttyp2 earth.cosmos.com 3:22pm 1 46 2 -bash
root ttyp4 :0.0 3:27pm 1:48 8 bash
root ttyp5 :0.0 5:40pm 5 1 1 telnet earth
newbie ttyp6 venus.cosmos.com 3:53pm 3 5 5 -bash
root ttyp7 :0.0 4:25pm 6:05 bash
newbie ttyp8 helios.cosmos.com 9:37pm 1:30 1 telnet earth
newbie ttyp9 helios.cosmos.com 9:50pm 1:27 -bash
Screen output 19.10.3: Output of the w command
If the corresponding process fails to catch the signal, it can be killed by giving
the optional parameter -9. Entering:
earth: # kill -9 <pid>
will definitely kill the PID <pid>.
19.10.7 The ps Command
ps (process status) shows the processes started by the user. More information
on this command can be obtained in the manpage for ps (man ps). ps
shows information on processes run by other users as well. Using the process
ID (displayed by ps in the first column), it is possible to kill specific processes
that are running (see Section 19.10.6 on the preceding page).
19.10.8 The pstree Command
pstree illustrates the whole process tree graphically. This is shown in
Output 19.10.4 on the next page.
19.10.9 The top Command
This outputs all running processes and their loads, and much more besides.
This list is updated periodically. You can stop it using q
.
19.11 Filesystem Types in Linux ¡ mount and umount
19.11.1 Overview
There are a a number of filesystems available in Linux. These are shown in
Table 19.8 page 444.
442
19.11. Filesystem Types in Linux ¡ mount and umount
init-+-bash---startx---xinit-+-X
| `-sh---fvwm-+-FvwmPager
| |-FvwmWinList
| |-GoodStuff
| |-xclock
| `-xeyes
|-color_xterm---bash---xdvi.bin---gs
|-2*[color_xterm---bash---vi]
|-color_xterm---bash---pstree
|-coolmail---coolmail---xterm---pine
|-cron
|-gpm
|-inetd
|-kflushd
|-klogd
|-kswapd
|-5*[mingetty]
|-4*[nfsiod]
|-sh---master---slipto
|-syslogd
|-update
|-xload
`-xosview
Screen output 19.10.4: Output of pstree
affs Fast Filesystem: a filesystem used on Amiga computers.
ext Extended Filesystem: ancestor of the ext2 filesystem and
without any significant meaning nowadays.
ext2 Second extended Filesystem: standard Linux filesystem.
hpfs High Performance Filesystem: the IBM OS/2 standard
filesystem ¡ only supported in read-only mode.
iso9660 Standard filesystem on CD-ROMs.
minix This filesystem originates from academic projects on oper-
ating systems and was the first filesystem used for Linux.
Nowadays it is used as a filesystem for floppy disks.
msdos The filesystem originally used DOS, used today by various
operating systems.
ncpfs Filesystem for mounting Novell volumes.
nfs Network Filesystem: Here, data can be stored on any ma-
chine in a network and access may be granted via a network.
proc Process filesystem (virtual).
smb Server Message Block: used by products such as WfW,
Windows NT and Lan Manager to enable files to be ac-
cessed over a network.
Table 19.8: continued overleaf. . . ...
443
19. First Steps with Linux
sysv Used on SCO UNIX, Xenix and Coherent (commercial
UNIX systems for PC's).
ufs Used by BSD, SunOS and NeXTstep. Only supported in
read-only mode.
umsdos UNIX on MSDOS: applied on top of a normal fat filesys-
tem. Achieves UNIX functionality (permissions, links, long
filenames) by creating special files. It is very slow, however.
vfat Virtual FAT: extension of the fat filesystem (supports long
filenames).
xiafs An old filesystem that is hardly used any more.
Table 19.8: Filesystem types in Linux
19.11.2 Mounting and Unmounting Filesystems
By means of the command mount (which can only be invoked by `root'),
a storage medium can be linked into the Linux filesystem tree. Two arguments
are required by mount:
* name of the storage medium (corresponds to the device's name, for ex-
ample, /dev/hda3)
* a location (directory) where it should be attached (mounted); the directory
must already exist.
Option -t <filesystem type> specifies the type of filesystem to be
mounted (see Table 19.8).
For example, entering:
earth:/ # mount -t msdos /dev/hda2 /dosa
makes the DOS partition /dev/hda2 available on /dosa; the directory
/dosa must first be created (cf. Section 19.6 page 431). If specific devices
often need to be attached to the filesystem at the same location, (e. g. the
floppy disk drive or additional CD-ROM drives), we suggest you write an
entry in /etc/fstab; see the manpage for mount (man 8 mount).
Adding the -r option mounts it as read-only. Now, writing on this filesystem
is not permitted. Further options are documented in the manpage for mount
(man 8 mount).
Invoking mount gives a list of the mounted partitions. This same list can
also be seen in /etc/mtab. If mount is invoked without any argument,
the contents of this list are displayed on the screen, showing all filesystems
which are currently mounted.
umount
umount removes a partition from the available filesystems.6
6 This command used to be called unmount, but the `n' got lost somewhere in UNIX history.
444
19.12. DOS Commands in Unix with mtools
As an argument to umount, you can specify either the name of the device or
the name of the directory where it is mounted. So to remove /dev/hda2,
which is mounted in /dosa, you can enter either:
earth: # umount /dosa
or:
earth: # umount /dev/hda2
If you have mounted a (floppy) disk, it is important to execute the com-
mand umount before you remove the disk, since not all files may have
been written to disk, thus resulting in a loss of data.
If there are files still open on this device, umount will try to write them
back to the disk first, if this is not possible there will be a corresponding
error message.
If you want to "unmount" a filesystem, there should be no users working
(e. g., in a shell) in directories which lie beneath the mountpoint to be
unmounted; otherwise the filesystem cannot be unmounted.
19.12 DOS Commands in Unix with mtools
To use MS-DOS filesystems either on floppy disk or hard disk, mtools (in
package mtools, series ap ) are available. Each one of these small programs
tries to emulate the corresponding DOS command as well as the original.
All mtools commands are named after their DOS equivalents, prefixed with
an `m', for example, mcopy.
You can only use mtools commands if the disk (or hard drive) is not
mounted!
DOS filenames are normally formed by a device letter followed by a colon,
a subdirectory, and the respective filename. To separate directories and files
on DOS, only the `\' is used. With mtools, you can use either the `/' or
the `\'. If you use `\' or wildcards, they have to be put into quotation
marks, because otherwise they will be misinterpreted by the command line
interpreter (e. g., bash).
A single asterisk `*' in mtools corresponds to `*.*' in DOS. Instead of
using a `/' to specify parameters, you must use the `-' sign.
The standard device for mtools is `A:'. If a different one needs to be used,
you must change to it by typing mcd. Don't forget to go back to the "root"
directory of the device before you insert another floppy disk, otherwise no
new directory tree can be read.
The following (DOS) commands are currently supported by mtools:
mattrib Change DOS file attributes (hidden, system, etc.).
Table 19.9: continued overleaf. . . ...
445
19. First Steps with Linux
mcd Change to another directory.
mcopy Copy from DOS to UNIX. Always remember to specify the
target.
mdel Delete a DOS file.
mdir List a DOS directory.
mformat Assign a DOS filesystem to a low-level formatted disk.
(Low-level formatting is done via the command fdformat).
mlabel Rename a DOS device.
mmd Create a DOS subdirectory.
mrd Delete a DOS subdirectory.
mread Read (low-level) a DOS file into UNIX.
mren Rename an existing DOS file.
mtype Show contents of a DOS file.
mwrite Low-level copy a UNIX file to a DOS filesystem.
Table 19.9: commands in the package mtools
Disk formats that are supported are: 720 KB, 1.44 MB, or 360 KB, and
1.2 MB. Device A: is set to a 3.5" device, and device B: to 5.25".
These default settings can be changed in /etc/mtools. Each entry is
written in one line, as follows:
* name of the drive (in DOS), e. g., a:
* device file (Linux), e. g., /dev/fd0
* fat bits (12 for floppy disk drives)
* number of tracks, heads and sectors
By changing these parameters, you can use two 5.25" disk devices, for exam-
ple. You should not enter the same DOS device letter or device name twice,
however. See the manpage for mtools (man mtools) for more informa-
tion.
19.13 Summary of Commands in Unix
A summary of the most important commands (optional commands are given
in `[]' brackets):
cd directory changes to the subdirectory directory
cd .. changes to parent directory
cd /directory changes to the directory /directory
cd changes to user's home directory
cp file from file to
Table 19.10: continued overleaf. . . ...
446
19.13. Summary of Commands in Unix
copies sourcefile to targetfile.
ln [-s] source linkname
creates the [symbolic link] linkname in the
current directory to source. linkname de-
fines the path where the file can be found.
name specifies the path where the file being
sought (a kernel, for example) can be found.
Only symbolic links can be created across dif-
ferent filesystems. Directories can be also be
linked via "symbolic links".
ls [directory] lists contents of directory (brief)
ls -l [directory] lists contents of directory (detailed)
ls -a [directory] also lists hidden files (e. g., .xinitrc in
your home directory)
mkdir new directorycreates a newdirectory
more file pages through a file (page down using
,page up using b
)
mv file from file to
moves or renames a file
rm file deletes file
rm -r directory recursively deletes directory.
rmdir directory deletes directory (but only if it is empty)
Table 19.10: Overview of the most important Linux commands
`find . -name' "file" searches all subdirectories of the cur-
rent directory for file.
`find . -name' searches for all files containing the
"*emil*" string `emil'.
`man command' gives you the manpage for
command.
`grep string files' searches all files for the given
`string' which can contain
"regular expressions" as well
(see Section 19.7.2 page 433 or
man regexp).
Table 19.11: Overview of search commands
447
19. First Steps with Linux
19.14 What Next?
The usual directories where most Linux programs are stored are:
* /bin
* /sbin
* /usr/bin
* /usr/sbin
* /usr/X11R6/bin
The command man <command> gives you detailed information about the
command entered (see Section 19.9 page 438) and programs (provided a man
page exists). Output is directed to standard output (which is normally your
screen).
By means of so-called pipes in the command line of the shell, symbolised by
the sign `|', this output can be re-directed to a printer, or if needed, a file.
For example, you want to print out the manpages for the command ls.
To do this, type:
newbie@earth: > man -t ls | lpr
Introductions to manpages, sorted by subject, can be found in the hypertext
help system of your SuSE Linux system. Just enter help. Here, other
hypertext links to manpages can also be found.
448
19.15. The vi editor
19.15 The vi editor
vi is preferred to other editors by system administrators because it is small
and fast, will run on any kind of terminal, yet is very powerful, efficient
and flexible. Its commands enable you to perform any editing task quickly
without having to leave the main keyboard. It is the one editor you will find
on every UNIX installation. vi comes as a standard in Linux.
For those trained on other editors, vi takes a little getting used to. This chapter
will enable you to do basic editing using vi. See [Lam90].
There are three modes available in vi:
* Command mode. Every pressed key is interpreted as part of a command.
* Input mode. Pressed keys are input as text.
* ex mode. Enables vi to interact with the shell in very powerful and
sophisticated ways. We will discuss only a few elementary commands.
vi starts in Command mode. You can change from Command to Input mode
by pressing one of the editing mode keys shown in Table 19.12 on the next
page. To change from Input mode back to Command mode, just press Esc .
The basic commands of Command mode are:
`j' moves cursor down one line
`k' moves cursor up one line
`h' moves cursor left one column
`l' moves cursor right one column
`CTRL-f' moves cursor down one screen
`CTRL-b' moves cursor up one screen
`G' moves cursor to end of document
`nG' moves cursor to line n
`w' move cursor forward one word
`b' move cursor back one word
`0' move cursor to start of line
`$' move cursor to end of line
`i' changes to input mode (characters are inserted at
the current cursor position)
`a' changes to input mode (characters are inserted after
the current cursor position)
`A' changes to input mode (characters are appended at
the end of the current line)
`R' changes to input mode (replaces and overwrites old
text)
`r' changes to input mode (overwrites the one character
currently under the cursor
`C' changes to input mode (rest of line is replaced by
the new text)
Table 19.12: continued overleaf. . . ...
449
19. First Steps with Linux
`o' changes to input mode (after the current line a new
line is added for text insertion)
`O' changes to input mode (before the current line a new
line is added for text insertion)
`x' deletes the current character (and puts in buffer)
`dd' deletes the current line (and puts in buffer)
`dw' deletes to the end of the current word (and puts in
buffer)
`cw' changes to input mode (rest of the current word is
overwritten by the input)
`yy' copy current line into buffer
`p' paste text in buffer after cursor position
`P' paste text in buffer before cursor position
`u' undoes the last command
`J' appends following line to current line
`.' repeats the last command
`:' changes to ex mode
Table 19.12: Basic commands of vi
All commands can be preceded by a number. This number sets how many
times the given command should be executed. Thus, entering `3dw' deletes
three words at once and `10x' deletes 10 characters. `20dd' deletes 20
lines.
The most important commands in ex mode are:
`:q!' quits vi without saving changes
`:w [file]' saves in [file]
`:x' saves changed file and quits
`:e [file]' edits [file]
Table 19.13: Elementary ex mode commands of vi
450