[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ 下一页 ]

Debian 参考手册
第 4 章 - Debian指南


本章为那些初涉Linux世界的新手指出了基本方向。如果你接触Linux已有一段时间,可以当成是一次实战测验。


4.1 信息资源

Debian Documentation Project (DDP)看看,那儿有最权威的Debian参考资料。其中的许多文档都安装在/usr/share/doc/下。还可以到/usr/share/doc-base/看看,那儿有这些文档的打印文件。在~/.bash_profile中添加export CDPATH=.:/usr/share/doc:/usr/src/local,这样更容易访问这些文档目录。

Linux Documentation Project (LDP)看看,那儿有最权威的通用Linux参考资料。LDP资料通常安装在/usr/share/doc/HOWTO/目录下。

浏览本地或远程FTP站点的文档,可在Midnight Commander中按下F9(参阅Midnight Commander (MC), 第 4.3 节)。


4.2 Linux控制台


4.2.1 登录

在普通Linux系统中,有6个独立的伪终端(pseudo-terminals)。同时按下Left-Alt键和F1F6键可在这些伪终端间切换。每个伪终端均需单独登录。多用户环境是Unix最鲜明的特征,而且一用就上瘾。

使用普通用户帐号工作是个很好的Unix习惯。不得不承认,我过去常仅仅为图方便而滥用超级用户帐号(root)。

现在,我通常使用一个普通用户帐号,使用sudosupersu -c来获得有限的root访问权限。


4.2.2 添加用户

系统安装完毕,我通常会添加一个普通用户帐号,如果用户名为“penguin”,

     # adduser penguin

就会创建一个这样帐号。

使用vigr命令编辑/etc/group

     adm:x:4:admin
     src:x:40:admin, debian, ...
     ...

在系统默认安装状态下,adm用户组成果对/var/log下的许多日志文件具有读权限,并可使用xconsolestaff用户组拥有/home,适用于进行用户帐号维护工作的用户,而src用户组拥有/usr/src,用来存放那些完成内核编译等工作的用户。有关用户及用户组的规范描述可参阅最新的users-and-groups

我个人使用adm用户组存放那些具有管理员职责和单独su特权的用户(参阅“为什么GNU su命令不支持wheel group”, 第 9.2.2 节),而将CVS用户放在src用户组(参阅CVS, 第 12.1 节)。

adduseraddgroupvipwvipw -svigr,以及vigr -s检查一下用户及用户组是否配置得当。


4.2.3 如何关机

和其它现代操作系统一样,系统的工作文件均缓存于内存,所以在切断电源之前Linux需要完成特别的关机程序。下面就是多用户模式下使用的关机命令:

     # shutdown -h now

这是单用户模式下使用的关机命令:

     # poweroff -i -f

等待屏幕上显示“System halted”字样之后切断电源。如果在BIOS和Linux中开启了apm,系统会自动切断电源。详情参阅多内存和关机自动断电, 第 3.7.4 节


4.2.4 命令行编辑

bash是默认shell,它能记住使用过的命令。只需按up-arrow键就能进入记忆模式,使用上下箭头找你想输入的命令。其它需要牢记的重要击键有:

     Ctrl-U:                  删除行首到光标间的内容
     Ctrl-D:                  中止输入
     Lt-click-and-drag-mouse: 选择并拷贝到剪贴板(gpm)
     Ctrl-click-mouse:        将剪贴板内容粘贴到光标处(gpm)

对于常规Linux系统控制台,上述命令中通常指的是左边的CtrlAlt键。


4.2.5 执行命令

典型的命令执行方法是使用如下shell命令行序列:

     $ LC_ALL=fr ls -la

在此,ls程序在前台执行环境变量LC_ALL设置为fr Here, program ls is executed in the foreground job with the environment variable LC_ALL set to fr for French and the command line argument set to -la for listing everything in detail. If the command line is post-fixed by & sign then the command is executed in the background job. The background job allows user to run multiple programs in a single shell.

The execution of the command can be managed by following key strokes.

     Ctrl-C:                  中止程序
     Ctrl-Z:                  暂停程序
     Ctrl-S:                  停止屏幕输出
     Ctrl-Q:                  恢复屏幕输出
     Ctrl-Alt-Del:            重启/关闭系统(参阅/etc/inittab)

有关如何管理程序运行,可参阅bash(1)中的jobsfgbgkill


4.2.6 需要牢记的基本命令

下列是最基本的Unix命令:

     ls, ls -al, ls -d, pwd, cd, cd ~user, cd -, 
     cat /etc/passwd, less, bg, fg, kill, killall, 
     uname -a, type commandname, sync, netstat,
     ping, traceroute, top, vi, ps aux, tar, zcat, 
     grep, ifconfig, ...

在命令提示符后输入maninfo加相关命令名,可查看该命令的意思。许多Linux命令可使用下列调用获得简要帮助信息:

     $ commandname --help
     $ commandname -h

whatis commandname可以显示任何命令的单行概述,这些内容来自于相关帮助文件的开头。


4.2.7 X Window系统

从控制台启动X Window系统:

     # exec startx

右键点击root窗口可以唤出选择菜单。


4.2.8 重要键盘命令

可在Linux控制台中使用的重要击键(plusminus指数字键盘上的按键):

     Alt-F1 thru F6:       切换到其它伪终端
     Ctrl-Alt-F1 thru F6:  切换到其它伪终端
                           (在X-window、DOSEMU等运行环境中)
     Alt-F7:               切换回X-window
     Ctrl-Alt-minus:       降低X-window的显示分辩率
     Ctrl-Alt-plus:        提高X-window的显示分辩率
     Ctrl-Alt-Backspace:   中止X-windows
     Alt-X, Alt-C, Alt-V:  通用的Windows/Mac剪切、拷贝、粘贴键  
             在某些程序如Netscape Composer中,组合键中的Ctrl键换成了Alt键

4.3 Midnight Commander (MC)

Midnight Commander (MC)是Linux控制台和其它终端环境中的GNU“瑞士军刀”。


4.3.1 安装MC

     # apt-get install mc

接着按照其手册页面mc(1)中描述的方法修改~/.bashrc(或/etc/bash.bashrc, .bashrc会调用它),打开-P选项,这使得MC不必退出就能更改其工作目录。

如果处于konKterm for Japanese等使用某些图形特性的终端,MC运行会出一些问题,可在MC命令行中加上-a加以预防。


4.3.2 启动MC

     $ mc

在MC中用户可轻而易举使用菜单完成所有的文件操作。


4.3.3 文件管理器

默认状态下,所有文件列于两个目录面板。一种实用的方式是将右边窗口设定为“information”,用来查看文件访问权限等信息。下面是一些基本的击键。如果gpm daemon在运行,你还可以使用鼠标。(在MC中进行剪切和粘贴操作时另忘了按下shift键。)


4.3.4 命令行技巧


4.3.5 编辑器

内置编辑器的剪切-粘贴方式很有意思。按F3在起始处做标记,再次按F3在终止处做标记,这时中间的选中部分会高亮显示。然后你可以移动光标到某处按下F6,被选中部分就会移到该处。如果你按下的是F5,选中部分就会拷贝到该处。F2用来存盘,F10退出,所有方向键的作为和它们的名字一样直观。

该编辑器可直接打开某个文件:

     $ mc -e filename_to_edit
     $ mcedit filename_to_edit

虽然它不是多窗口编辑器,但你可利用Linux多控制台的特性达到相同的效果。要在窗口间进行拷贝操作,可使用Alt-Fn切换虚拟控制台,然后使用“File->Insert file”或“File->Copy to file”将一个文件中的内容拷贝到另一个文件。

可指定任何外部编辑器作为内置编辑器。

许多程序使用环境变量EDITORVISUAL来决定使用哪个编辑器。如果你用不惯vim,可在~/.bashrc中加上几行来指定新的mcedit

     ...
     export EDITOR=mcedit
     export VISUAL=mcedit
     ...

我强烈推荐将它们设定为vim。在Linux/Unix世界里就该使用vi(m)命令。


4.3.6 阅读器

非常精巧的阅读器。它是在文档中搜索单词的利器。在/usr/share/doc目录下我总是用它,面对大量的Linux资料用它浏览是最快的方法。阅读器可以直接找开文件:

     $ mc -v filename_to_view

(注意,有些不规范的软件包仍将它们的文档放在/usr/doc目录下。)


4.3.7 自动启动特性

在文件上按Enter,会激活相关的程序操作该文件。这是MC的一个极方便的特点。

     executable:        执行命令
     man, html file:    将文件内容传入阅读器程序
     tar, gz, rpm file: 象浏览子目录一要浏览它的内容

为了使这些文件特性生效,不要将可阅读文件设成可执行文件。可在MC文件菜单中改变文件属性或使用chmod命令。


4.3.8 FTP虚拟文件系统

MC可通过FTP访问文件。按F9转到菜单栏,输入p激活FTP虚拟文件系统。按username:[email protected]格式输入URL,远程文件目录就会以本地目录的方式显示出来。


4.4 GNU/Linux文件系统基础知识

在GNU/Linux系统中每个文件和目录都与其拥有者(主人)和拥有组相关联。所有的文件信息都保存在一个称为inode的数据结构中。


4.4.1 文件和目录的访问权限

文件和目录的访问权限对如下3类用户进行了分别定义:

每个文件均拥有下列三种权限:

每个目录均拥有下列三种权限:

在此,对目录的execute权限,不仅意味着允许查看目录下文件的内容,还允许获文件的其它信息如文件大小、修改时间。

ls可用来获取目录和文件的这些信息。参阅ls(1)。使用ls-l选项,就会按如下顺序显示下列信息:

在root账号下可使用chown改变文件的拥有者,参阅chown(1)。要改变文件的所属组,可以文件拥有者或root的身份运行chgrp,参阅chgrp(1)。要改变目录的访问权限,可以文件拥有者或root的身份运行chmod,参阅chmod(1)

例如,可以root帐号下创建一个目录树,并使其拥有者为foo,所属组为bar

     # cd /some/location/
     # chown -R foo:bar .
     # chmod -R ug+rwX,o=rX .

下面是3个更特殊的权限:

在此,如果未设置输出时屏蔽执行权限标识位,则ls -l的输出中这些标识位将使用大写字母。

为可执行文件设置set user ID位将允许用户以该文件拥有者的ID来执行该文件(例如以root身份)。同样,为可执行文件设置set group ID将允许用户以该文件所属组的ID来执行该文件(例如以root身份)。这将引起安全风险所以使用这些特性时要格外小心。

为目录设置set group ID,则该目录会使用BSD-like文件创建方案,即目录中所有新创建的文件均属于该目录所属的group

为目录设置sticky bit可防止非文件拥有者移动目录中的文件。为确保全局可写目录如/tmp或组可写目录中的文件内容不被修改,不仅要关闭文件的权限,还应设置目录的sticky bit,否则,任何对该目录有写权限的用户均可以将该文件移动到别处,然后在原地创建一个同名文件。

这儿有一些有关文件权限的有趣例子。

     $ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/pppd
     crw-rw----    1 root     dip      108,   0 Jan 18 13:32 /dev/ppp
     -rw-r--r--    1 root     root         1051 Jan 26 08:29 /etc/passwd
     -rw-r-----    1 root     shadow        746 Jan 26 08:29 /etc/shadow
     -rwsr-xr--    1 root     dip        234504 Nov 24 03:58 /usr/sbin/pppd
     $ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src
     drwxrwxrwt    4 root     root         4096 Feb  9 16:35 /tmp
     drwxrwsr-x   10 root     staff        4096 Jan 18 13:31 /usr/local
     drwxrwsr-x    3 root     src          4096 Jan 19 08:36 /usr/src
     drwxrwsr-x    2 root     mail         4096 Feb  2 22:19 /var/mail
     drwxrwxrwt    3 root     root         4096 Jan 25 02:48 /var/tmp

4.4.2 时间戳

GNU/Linux的文件有3种类型的时间戳:

注意ctime并非文件创建时间。

注意,在GNU/Linux系统中,即便是简单的读文件通常会引起文件的写操作,从而更新inode上的atime信息。使用noatime选项来挂载文件系统,可使用系统忽略该操作,从而加速文件的访问和读取。参阅mount(8)


4.4.3 链接

在2种方法将文件foo关联到不同的文件名bar

下面的例子显示了链接数的改变和使用rm命令时产生的微妙差异。

     $ echo "Original Content" > foo
     $ ls -l foo
     -rw-r--r--    1 osamu    osamu           4 Feb  9 22:26 foo
     $ ln foo bar     # hardlink
     $ ln -s foo baz  # symlink
     $ ls -l foo bar baz
     -rw-r--r--    2 osamu    osamu           4 Feb  9 22:26 bar
     lrwxrwxrwx    1 osamu    osamu           3 Feb  9 22:28 baz -> foo
     -rw-r--r--    2 osamu    osamu           4 Feb  9 22:26 foo
     $ rm foo
     $ echo "New Content" > foo
     $ cat bar
     Original Content
     $ cat baz
     New Content

上例中所有的符号链接均拥有访问权限“rwxrwxrwx”,它们的访问权限均由它们所指向的文件来定义。

.链接到它所属的目录,因此任何新目录的链接数都从2开始计算。..链接到父目录,因些目录链接数会随新的子目录数的增长而增长。


4.5 进一步学习

许多Unix入门级参考书出自在O'Reilly,在计算机的各个领域,想买到优秀的指导书,O'Reilly不会让你失望。LDP的文档Tips-HOWTO是另一个极好的资源。更多资源参阅Debian技术支持, 第 15 章


[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ 下一页 ]

Debian 参考手册

CVS, 星期二 八月 17 00:35:13 UTC 2004

Osamu Aoki [email protected]
Translator: Hao "Lyoo" Liu [email protected]
作者, 第 A.1 节