Contrib (Submitted Documentation) FAQ (Frequently Asked Questions) Links
(Links page) IRC Information
(IRC Page) ISPs
(Linux Friendly ISPs) Book Store
(Books through Amazon.com) RFC Index
(Request For Comments) Man Pages
(Linux Manual Pages) LUGs
(Linux User Group Listing)
Files and directories have permissions (`protections') and ownership, just
like under VMS. If you can't run a program, or can't modify a file, or can't
access a directory, it's because you don't have the permission to do so,
and/or because the file doesn't belong to you. Let's have a look at the
following example:
$ ls -l /bin/ls
-rwxr-xr-x 1 root bin 27281 Aug 15 1995 /bin/ls*
The first field shows the permissions of the file ls (owner root,
group bin). There are three types of ownership: owner, group, and others
(similar to VMS owner, group, world), and three types of permissions:
read, write (and delete), and execute.
From left to right, - is the file type (- = ordinary file, d
= directory, l = link, etc); rwx are the permissions for the file
owner (read, write, execute); r-x are the permissions for the group of
the file owner (read, execute); r-x are the permissions for all other
users (read, execute).
To change a file's permissions:
$ chmod <whoXperm> <file>
where who is u (user, that is owner), g (group), o (other),
X is either + or -, perm is r (read), w (write), or
x (execute). Examples:
$ chmod u+x file
this sets the execute permission for the file owner. Shortcut:
chmod +x file.
$ chmod go-wx file
this removes write and execute permission for everyone except the owner.
$ chmod ugo+rwx file
this gives everyone read, write, and execute permission.
A shorter way to refer to permissions is with numbers: rwxr-xr-x can be
expressed as 755 (every letter corresponds to a bit: --- is 0,
--x is 1, -w- is 2...).
For a directory, rx means that you can cd to that directory, and
w means that you can delete a file in the directory (according to the
file's permissions, of course), or the directory itself. All this is only
part of the matter---RMP.
To change a file's owner:
$ chown username file
To sum up, a table:
VMS Linux Notes
------------------------------------------------------------------------------
SET PROT=(O:RW) file.txt $ chmod u+rw file.txt
$ chmod 600 file.txt
SET PROT=(O:RWED,W) file $ chmod u+rwx file
$ chmod 700 file
SET PROT=(O:RWED,W:RE) file $ chmod 755 file
SET PROT=(O:RW,G:RW,W) file $ chmod 660 file
SET FILE/OWNER_UIC=JOE file $ chown joe file
SET DIR/OWNER_UIC=JOE [.dir] $ chown joe dir/
More about running programs. There are no `batch queues' under Linux as
you're used to; multitasking is handled very differently. Again, this is
what the typical command line looks like:
the shell tells you what the `job number' (the first digit; see below) and
PID (Process IDentifier) of the process are. Each process is identified
by its PID.
To see how many processes there are:
$ ps -ax
This will output a list of currently running processes.
To kill a process:
$ kill <PID>
You may need to kill a process when you don't know how to quit it
the right way... ;-). Sometimes, a process will only be killed by
one of the following:
$ kill -15 <PID>
$ kill -9 <PID>
In addition to this, the shell allows you to stop or temporarily suspend a
process, send a process to background, and bring a process from background
to foreground. In this context, processes are called `jobs'.
To see how many jobs there are:
$ jobs
jobs are identified by the numbers the shell gives them, not by their PID.
To stop a process running in foreground:
$ CTRL-C
(it doesn't always work)
To suspend a process running in foreground:
$ CTRL-Z
(ditto)
To send a suspended process into background (it becomes a job):
stdin, stdout, stderr: under UNIX, every system component is
treated as if it were a file. Commands and programs get their input from a
`file' called stdin (standard input; usually, the keyboard), put their
output on a `file' called stdout (usually, the screen), and error
messages go to a `file' called stderr (usually, the screen).
Using < and > you redirect input and output to a different
file. Moreover, >> appends the output to a file instead of
overwriting it; 2> redirects error messages (stderr); 2>&1
redirects stderr to stdout, while 1>&2 redirects stdout to stderr.
There's a `black hole' called /dev/null: everything redirected to
it disappears;
wildcards: '*' is almost the same. Usage: * matches all
files except the hidden ones; .* matches all hidden files; *.* matches
only those that have a '.' in the middle, followed by other characters;
p*r matches both `peter' and `piper'; *c* matches both `picked' and `peck'.
'%' becomes '?'. There is another wildcard: the
[]. Usage: [abc]* matches files starting with a, b, c;
*[I-N,1,2,3] matches files ending with I, J, K, L, M, N, 1, 2, 3;
mv (RENAME) doesn't work for multiple files; that is,
mv *.xxx *.yyy won't work;
use cp -i and mv -i to be warned when a file is going to
be overwritten.
_________________________________ Last Edited: Thursday, January 21, 1999 03:11 PM
Maintainer: Rob Kennedy (rob@linuxberg.com) Site Design - Graphicjam Digital
Arts Inc. 1999.
® 1999 TUCOWS Interactive Ltd. All rights
reserved