Next Previous Contents

8. 进阶

到这个阶段﹐游戏就比较复杂了。学完这些东西﹐您就可以说﹐我懂一些 Linux 的东西 ;-)

8.1 允许权(Permissions) 及 所有权(Ownership)

文档和目录都有允许权(Permission) (即 VMS 上的 `protections') 和所有权(ownership), 这个观念不难理解﹐因为 VMS 上也有。如果您不能执行一只程序﹐或是您不能修改某一文档﹐ 或是不能进入某目录﹐这是因为您没有被赋予使用这些资源的权力的关系(没有允许权)﹐ 或者是这个文档的根本就不属于您的(没有所有权)﹐ 让我们看看下面的例子吧:

$ ls -l /bin/ls
-rwxr-xr-x   1 root     bin         27281 Aug 15  1995 /bin/ls*

第一个栏位显示出这个文档的使用权限 ls (拥有者(owner) 是 root, 群组(group) 是 bin). 拥有权可以分成三种模式: 拥有者(owner), 群组(group), 和 其他使用者(others)。 (和 VMS 的 owner, group, world 相似);有三种不同的允许权(permissions): 读(read), 写(write) (包含移除(delete)), 和执行(execute).

从左到右﹐- 是文档模式 (- = 一般文档(ordinary file), d = 目录(directory), l = 连结(link), 等); rwx 是允许文档拥有者可以对该文档作读﹐写﹐和执行的动作; r-x 是允许群组使用者可以对该文档作读和执行的动作﹐但是不可以作写的动作。; r-x 是限制其他的使用者对该文档只有读和执行的权限﹐却没有写的权限。

如何改变文档的使用权限:

$ chmod <whoXperm> <file>

其中 who 是 u (user(使用者), 即文档的拥有者), g (群组 group), o (其他 other), X 表示可以为 +-, perm 可以为 r (读 read), w (写 write), 或是 x (可执行 execute). 举例说明:

$ chmod u+x file

这是针对该文档﹐开放可执行的权限给该文档的拥有者。可缩写成: chmod +x file.

$ chmod go-wx file

这是对该文档﹐移除群组使用者和其他使用者对该文档的“写”的权限和“执行”的权限。

$ chmod ugo+rwx file

这是开放该文档的读﹐写﹐和执行的权限给所有的使用者。

另一个快速表示法为使用一组数字:rwxr-xr-x 可以用 755 来表示 (每一位数字对应一个控制位元: --- 表是 0, --x 表示 1, -w- 表示 2...).

所以﹐rwx = 4+2+1 = 7﹐r-x = 4+0+1 = 5﹐所以﹐rwxr-xr-x 可以用 755 来表示。

对目录而言﹐rx 表示您可以切换到该目录: cd , 而 w 表示您可以删除该目录的文档(当然需要视该文档的使用权限而定), 或是目录本身. 这些还只是冰山的一角而已﹐想要知道更多---RMP.

如何改变文档的拥有权:

$ chown username file

我整理成下表:

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/

8.2 多工(Multitasking): 程序(Processes) 和 工作(Jobs)

欲执行很多程序﹐在 Linux 上没有所谓的 `batch queues' ; 多工其实以非常不一样的手法处理。 以下是一般常见的命令列:

$ command -s1 -s2 ... -sn par1 par2 ... parn < input > output &

其中 -s1, ..., -sn 是该程序的参数(switch), par1, ..., parn 是程序的输入变数(parameters).

现在让我们来看看在 Linux 上如何多工。程序(processes)是一只不论在前景或是背景被执行的程序。

附带一提﹐Sell 允许您停止或是暂时停止一个程序﹐将程序送到背景工作﹐或是将程序从背景带到前景。 在这里﹐程序(processes)我们称之为工作(`jobs').

8.3 在访文档(files)

更多有关文档的信息。

8.4 列印伫列

就像 VMS ﹐列印工作会先被放到伫列当中(queues)﹐当您下列印指令的时候﹐您或许会指定列表机的名称。 例如:

$ lpr file.txt          # 这将指用到预设的列表机
$ lpr -Plaser file.ps   # 这将使用名为 'laser' 的列表机

处理列印伫列(print queues), 您可能需要下列指令:


VMS                                     Linux
------------------------------------------------------------------------------

$ PRINT file.ps                         $ lpr file.ps
$ PRINT/QUEUE=laser file.ps             $ lpr -Plaser file.ps
$ SHOW QUEUE                            $ lpq
$ SHOW QUEUE/QUEUE=laser                $ lpq -Plaser
$ STOP/QUEUE                            $ lprm <item>


Next Previous Contents