发新话题
打印

linux系统管理

linux系统管理

sit

.sit
 使用 Aladdin systems 所开发的、用于 Mac OS 的 StuffIt 归档程序创建的档案通常带有 .sit 扩展名。这些文件还可以有其它的如 .hqx 或 .bin 这样的扩展名,表明它们曾使用 BinHex 或 MacBinary 实用程序处理过,来创建可以在计算机网络上以电子方式传送的单个文本文件或二进制文件。(Macintosh 文件通常有两部分,称为创建子进程,必须在传送之前将它们联接在一起,以确保它们作为一个整体传送。)可以使用组成 macutil 软件包的一些实用程序来处理这样编码的文件,它是免费的,可用于所有正式的 Linux 发行版)。
 因为 Aladdin systems 控制着 StuffIt 的源代码,在收到 .sit 文件时唯一的选择是使用 Aladdin Expander for Linux,它当前还处于 Beta 阶段(但已相当合用)。Aladdin systems 已将这一 beta 版作为免费软件向公众提供:您不必为它付钱,但也无法获得源代码。当前没有用于 Linux 的、创建 .sit 档案的工具。

 要解压缩 .sit 档案,输入 unstuff archive.sit。如果不使用 -d 选项,抽取出的文件将放在当前工作目录下,该选项可以让您指定目标目录: unstuff -d=/home/james/oldmacfiles archive.sit。如果解包的文件是受密码保护的,使用 -p 选项:unstuff -p=secret archive.sit。文本文件转换 filer 选项用于处理行结束字符的转换,将 LF 转换成 CRLF,然后再转换回来:unstuff-text=auto -eol=unix archive.sit。

 可以在 Expander 的 man page 上找到有关它的详细信息(输入 man unstuff 显示它)。

 Aladdin Expander for Linux 可以从 Aladdin systems 网站上获得。使用或下载它不用付任何费用,但必须向 Aladdin systems 注册。有两个版本的 Expander,一个用于基于 RPM 的系统(Red Hat、Mandrake、SuSE 等),另一个用于基于 .deb 的系统(Debian、Corel 等)。没有特定于 Slackware 的软件包,但要转换 RPM 包以在 Slackware 上使用它应该并不困难。

Aladdin systems:http://www.aladdinsys.com
Linux 发行版页面:http://www.linux.org/dist/index.html
macutil 软件包:http://www.linux.org/dist/index.html
Aladdin Expander for Linux: http://www.aladdinsys.com/expander/expander_linux_login.html


TOP

linux系统管理

zip

.zip
 .zip 扩展名表示文件是使用许多 zip 归档程序和压缩程序之一(但不是 gzip)创建的。因为这是一种非常流行的压缩格式,算法的详细描述也有很多,所以可以找到用于所有操作系统的有用的移植形式。这包括创建和扩展带有 .zip 文件扩展名的档案的压缩和解压缩实用程序。在 Linux 上有两种这样的工具:免费的 Info-ZIP 和以赢利为目的的 PKZIP for Linux。如果您只是偶尔需要创建或打开 zip 文件,使用 Info-ZIP。如果希望使用在 MS-DOS 或其它系统上使用的相同工具,请选择 PKZIP(PKZIP 可用于许多操作系统)。用于微软 Windows 的 WinZIP 和用于 Mac OS 的 Stufflt 这两种实用程序可以创建和打开相互之间兼容的档案。
 Info-ZIP 在无法使用 gzip 或 tar 的情况下可以提供压缩和解压缩的一个不错的选择,这或许是在 Linux、微软 Windows 和 Mac OS 用户之间交换压缩文件的一种最好的形式。有许多不错的 zip 程序(有开放源码的,也有商业的)可用于这些操作系统,它们应该能确保文件的顺利交换(当然,只要是在特定于某个特定工具的特殊功能关闭的情况下)。

 要归档单个文件,输入 zip archive file。要压缩多个文件,使用通配符(例如,zip archive picture*jpg)。还有可能将文件定向输出到 zip;输入 man zip 获得详细信息。要归档整个目录,包括其中所有子目录的内容,使用 -r 选项,然后在档案名后输入目录名(例如,zip -r archive directory)。还可以输入 zip -R archive . 来将当前当前工作目录进行归档。.zip 扩展名自动添加到档案名后。

 当 zip 发现已有档案的名称和您尝试创建的名称相同时,它将您希望压缩的文件添加到现有档案中,而不将已存在的文件除去。这一规则有一个例外:如果存储在现有档案中的一个或多个文件和您希望压缩的一个或多个文件具有相同的名称,旧文件将由新文件替换。文件替换规则可以使用 -u 选项来修改(有关详细信息,请参阅 man zip)。

 以下是其它一些 zip 选项:

-j -- 只存储文件名,不带访问路径(例如,zip -j archive file)
-t -- 测试档案的完整性(例如,zip -t archive.zip)
-x -- 排除文件(例如,zip -r archive ./* -x *.tmp)

请注意,不是所有 zip 选项都以负号 (-) 开头。

 KZIP 选项类似于 Info-ZIP,但您应该阅读 pkzip.htm 手册(它是一个 HTML 文档;使用 lynx pkzip.htm 或 netscape pkzip.htm 阅读)来确保您的操作正确。

 要解压缩 zip 文件,使用 unzip archive.zip 命令。如果想指定将档案扩展到哪个目录中,可以使用 -d 选项(例如,unzip file.zip -d /home/james/zips 将 file.zip 的内容抽取到 /home/james/zips 目录中)。

 注:Aladdin Expander for Linux 也可以解压缩 zip 文件。有关详细信息,请参阅有关 .sit 文件的那一节。

 当 zip 无法抽取档案中的文件时,使用 -F 或 -FF 修复 zip 选项进行挽救(例如 zip -F archive.zip 或 zip -FF archive.zip)。请记住在尝试拯救已破坏的档案之前进行备份。

 可以从官方 Info-ZIP 站点获得二进制或源码形式的 Info-ZIP for Linux。

 可以从 PKZIP 官方站点下载 PKZIP for Linux。它作为自抽取档案分发。要为它解包,输入 ./pklin251.exe,档案的内容将解包到当前工作目录中。您需要将 pkzip25 二进制文件复制到 /sbin 或 /usr/sbin 目录中,这样系统上的所有用户都可以使用它。(但您必须购买相应的许可证,因为它是商业软件包。)

gzip:http://www.gnu.org/software/gzip/gzip.html
tar:http://www.gnu.org/software/tar/tar.html
WinZIP:http://www.winzip.com
StuffIt:http://www.aladdinsys.com
Aladdin Expander: http://www.aladdinsys.com/expander/expander_linux_login.html
下载源码形式的 Info-ZIP:http://www.freesoftware.com/pub/infozip
下载二进制形式的 Info-ZIP:http://www.linux.org/dist/index.html
下载 PKZIP:http://www.pkzip.org/shareware/pkzip_unix.html


TOP

linux系统管理

zoo

.zoo
 .zoo 扩展名在因特网上不经常出现,但请放心,可以使用 Linux 的 zoo 实用程序打开和创建这样的文件。不过要记住,zoo 对于现在用户的期望来说已有些陈旧和简单。
 要归档单个文件,输入 zoo a archive file。同样,要压缩多个文件,可以使用通配符 -- 例如,zoo a archive picture*jpg。.zip 扩展名自动添加到档案名后。

 下面是其它一些 zoo 选项以及它们所添加的功能:

 l -- 列出档案内容(例如,zoo l archive.zoo)
 t -- 测试档案的完整性(例如,zoo -t archive.zoo)

 请注意,不是所有 zoo 选项都以负号 (-) 开头。

 要解压缩 .zoo 文件,输入 zoo e archive.zoo。

 可以获得用于所有 Linux 发行版的二进制形式的 zoo for Linux。

下载二进制形式的 zoo:http://www.linux.org/dist/index.html

TOP

linux系统管理

邮件

1. 将文件当做电子邮件的内容送出
语法:mail -s “主题”用户名@地址< 文件
例如:
mail -s “program” user < file.c 将file.c 当做mail的内容,送至user,主题为program。
2. 传送电子邮件给本系统用户
语法:mail 用户名

3. 传送电子邮件至外地用户
语法: mail 用户名@接受地址
例如:
mail weisongzhou@hotmail.com
Subject : mail test
:
键入信文内容
: :
按下Ctrl+D 键或. 键结束正文。
连按两次Ctrl+C键则中断工作,不送此信件。
Cc( Carbon copy) : 复制一份正文,给其他的收信人。

4. 检查所传送的电子邮件是否送出,或滞留在邮件服务器中
语法:/usr/lib/sendmail -bp
若屏幕显示为“Mail queue is empty” 的信息,表示mail 已送出。
若为其他错误信息,表示电子邮件因故尚未送出。


TOP

linux系统管理

快捷键

 这里列举了一些你可以用来快速执行常见任务的快捷键。
 要了解更多快捷键,请访问:
 http://sunsite.dk/linux-newbie/lnag_commands.html#shortcuts

 [Ctrl] + [Alt] + [Backspace] = 杀死 X。这会杀死你当前的 X 会话,把你返回到登录屏幕。如果正常退出步骤不起作用,你可以使用这种方法。

 [Ctrl] + [Alt] + [Delete] = 关机和重新引导。关闭你当前的对话然后重新引导 OS。只有在正常关机步骤不起作用时才使用这种方法。

 [Ctrl] + [Alt] + [Fn] = 切换屏幕。[Ctrl]+[Alt] + 功能键之一 会显示一个新屏幕。[F1] 到 [F6] 是文本(控制台)屏幕, [F7] 是图形化屏幕。

 [Alt] + [Tab] = 切换任务。如果你同时打开了不止一个应用程序,你可以使用 [Alt] + [Tab] 来在打开的任务和应用程序间切换。

 [Ctrl] + [a] = 把光标移到行首。它在多数文本编辑器和 Mozilla 的 URL 字段内可以使用。

 [Ctrl] + [d] = 从终端或控制台中注销,你不必键入 exit 或 logout.

 [Ctrl] + [e] = 把光标移到行尾。它在多数文本编辑器和 Mozilla 的 URL 字段内都可使用。

 [Ctrl] + [l] = 清除终端。该简化操作与在命令行键入 clear 作用相同。

 [Ctrl] + = 清除当前行。 如果你在终端下工作,使用这一简化操作可以清除从光标处到行尾的字符。

 [鼠标中间键] = 粘贴突出显示的文本。使用鼠标左键来突出显示文本。把光标指向你想粘贴文本的地方。点击鼠标中间键来粘贴它。

 [Tab] = 命令行自动补全。在终端下工作时可使用这一命令。键入命令的前几个字符,然后按 [Tab] 键,它会自动补全命令或显示匹配你键入字符的所有命令。

 [向上]和[向下]箭头 = 显示命令历史。当你在终端下工作时,按[向上]或 [向下]箭头来上下查看你在当前目录下键入的命令历史。 当你看到你想使用的命令时,按 [Enter] 键。

 clear = 清除终端。在命令行下键入它会清除所有终端窗口中显示的数据。

 exit = 注销。在命令行中键入它会注销当前的用户或根用户帐号。

 history = 显示命令历史。在命令行中键入它来显示你所键入的被编号的前 500 个命令。要显示较短的命令历史,键入 history 之后,空一格,在键入一个数字。例如:history 20。

 reset = 刷新终端屏幕。如果字符不清晰的话,在命令行中键入这个命令会刷新终端屏幕。

TOP

linux系统管理

系统安装配置

目 录
系统安装配置
配置文件
主机
引导和登录注销
文件系统
系统管理
网络
系统命令
守护进程
用户程序
rc和点文件
文件系统
inode
安装和拆卸文件系统
恢复被删除文件
undelete简单方法
ncheck命令
X系统
XServer
XF86Config
网卡
多个网卡
网卡驱动
hosts.equiv和.rhosts文件
目录结构
设置系统
多系统安装
分配磁盘空间
安装Linux
进一步:NTloader引导双系统
IDE RAID卡
Gtk+/Win32中文显示方案
汉化
前言
用蓝点rpm包进行汉化
炎黄中文输入和Chinput的安装方法
GNOME和KDE的汉化
打印
Mozilla和glibc
路由功能
ADSL
IPChains

TOP

linux系统管理

配置文件

介绍
 每个 Linux 程序都是一个可执行文件,它含有操作码列表,CPU 将执行这些操作码来完成特定的操作。例如,ls 命令是由 /bin/ls 文件提供的,该文件含有机器指令的列表,在屏幕上显示当前目录中文件的列表时需要使用这些机器指令。几乎每个程序的行为都可以通过修改其配置文件来按照您的偏好或需要去定制。
Linux 中有没有一个标准的配置文件格式?
 一句话,没有。不熟悉 Linux 的用户(一定)会感到沮丧,因为每个配置文件看起来都象是一个要迎接的新挑战。在 Linux 中,每个程序员都可以自由选择他或她喜欢的配置文件格式。可以选择的格式很多,从 /etc/shells 文件(它包含被一个换行符分开的 shell 的列表),到 Apache 的复杂的 /etc/httpd.conf 文件。

什么是系统配置文件?
 内核本身也可以看成是一个“程序”。为什么内核需要配置文件?内核需要了解系统中用户和组的列表,进而管理文件权限(即根据权限判定特定用户(UNIX_USERS)是否可以打开某个文件)。注意,这些文件不是明确地由程序读取的,而是由系统库所提供的一个函数读取,并被内核使用。例如,程序需要某个用户的(加密过的)密码时不应该打开 /etc/passwd 文件。相反,程序应该调用系统库的 getpw() 函数。这种函数也被称为系统调用。打开 /etc/passwd 文件和之后查找那个被请求的用户的密码都是由内核(通过系统库)决定的。

 除非另行指定,Red Hat Linux 系统中大多数配置文件都在 /etc 目录中。

更改配置文件
 在更改配置文件时,如果程序不是由系统管理员或内核控制的,就要确保重新启动过使用该配置的程序。普通用户通常没有启动或停止系统程序和/或守护进程的权限。

内核
 更改内核中的配置文件会立即影响到系统。例如,更改 passwd 文件以增加用户将立即使该用户变为可用。而且任何 Linux 系统的 /proc/sys 目录中都有一些内核可调参数。只有超级用户可以得到对所有这些文件的写访问权力;其它用户只有只读访问权力。此目录中文件的分类的方式和 Linux 内核源代码的分类方式一样。此目录中的每个文件都代表一个内核数据结构,这些数据结构可以被动态地修改,从而改变系统性能。

 注意:在更改其中任何文件的任何值之前,您应该确保自己全面了解该文件,以避免对系统造成不可修复的损害。

/proc/sys/kernel/ 目录中的文件

文件名 描述
threads-max 内核可运行的最大任务数。
ctrl-alt-del 如果值为 1,那么顺序按下这几个键将“彻底地”重新引导系统。
sysrq 如果值为 1,Alt-SysRq 则为激活状态。
osrelease 显示操作系统的发行版版本号
ostype 显示操作系统的类型。
hostname 系统的主机名。
domainname 网络域,系统是该网络域的一部分。
modprobe 指定 modprobe 是否应该在启动时自动运行并加载必需的模块。


守护进程和系统程序
 守护进程是永远运行在后台的程序,它默默地执行自己的任务。常见的守护进程有 in.ftpd(ftp 服务器守护进程)、in.telnetd(telnet 服务器守护进程)和 syslogd(系统日志记录守护进程)。有些守护进程在运行时会严密监视配置文件,在配置文件改变时就会自动重新加载它。但是大多数守护进程并不会自动重新加载配置文件。我们需要以某种方式“告诉”这些守护进程配置文件已经被发生了改变并应该重新加载。可以通过使用服务命令重新启动服务来达到这个目的(在 Red Hat Linux 系统上)。

 例如,如果我们更改了网络配置,就需要发出:
 service network restart。

 注意:这些服务最常见的是 /etc/rc.d/init.d/* 目录中存在的脚本,在系统被引导时由 init 启动。所以,您也可以执行如下操作来重新启动服务:
     /etc/rc.d/init.d/<script-for-the-service> start | stop | status
     start、stop 和 status 是这些脚本接受的输入值,用来执行操作。

TOP

linux系统管理

主机

/etc/host.conf
 告诉网络域名服务器如何查找主机名。(通常是 /etc/hosts,然后就是名称服务器;可通过 netconf 对其进行更改)
/etc/hosts
 包含(本地网络中)已知主机的一个列表。如果系统的 IP 不是动态生成,就可以使用它。对于简单的主机名解析(点分表示法),在请求 DNS 或 NIS 网络名称服务器之前,/etc/hosts.conf 通常会告诉解析程序先查看这里。

/etc/hosts.allow
 请参阅 hosts_access 的联机帮助页。至少由 tcpd 读取。

/etc/hosts.deny
 请参阅 hosts_access 的联机帮助页。至少由 tcpd 读取。


TOP

linux系统管理

引导和登录注销

/etc/issue & /etc/issue.net
 这些文件由 mingetty(和类似的程序)读取,用来向从终端(issue)或通过 telnet 会话(issue.net)连接的用户显示一个“welcome”字符串。它们包括几行声明 Red Hat 版本号、名称和内核 ID 的信息。它们由 rc.local 使用。
/etc/redhat-release
 包括一行声明 Red Hat 版本号和名称的信息。由 rc.local 使用。

/etc/rc.d/rc
 通常在所有运行级别运行,级别作为参数传送。例如,要以图形(Graphics)模式(X-Server)引导机器,请在命令行运行下面的命令:init 5。运行级别 5 表示以图形模式引导系统。

/etc/rc.d/rc.local
 非正式的。可以从 rc、rc.sysinit 或 /etc/inittab 调用。

/etc/rc.d/rc.sysinit
 通常是所有运行级别的第一个脚本。

/etc/rc.d/rc/rcX.d
 从 rc 运行的脚本(X 表示 1 到 5 之间的任意数字)。这些目录是特定“运行级别”的目录。当系统启动时,它会识别要启动的运行级别,然后调用该运行级别的特定目录中存在的所有启动脚本。例如,系统启动时通常会在引导消息之后显示“entering run-level 3”的消息;这意味着 /etc/rc.d/rc3.d/ 目录中的所有初始化脚本都将被调用。

TOP

linux系统管理

文件系统

/proc
 内核提供了一个接口,用来显示一些它的数据结构,这些数据结构对于决定诸如使用的中断、初始化的设备和内存统计信息之类的系统参数可能很有用。这个接口是作为一个独立但虚拟的文件系统提供的,称为 /proc 文件系统。很多系统实用程序都使用这个文件系统中存在的值来显示系统统计信息。
 例如,/proc/modules 文件列举系统中当前加载的模块。lsmod 命令读取此信息,然后将其以人们可以看懂的格式显示出来。下面表格中指定的 mtab 文件以同样的方式读取包含当前安装的文件系统的 /proc/mount 文件。
/etc/mtab
 这将随着 /proc/mount 文件的改变而不断改变。换句话说,文件系统被安装和卸载时,改变会立即反映到此文件中。

/etc/fstab
 列举计算机当前“可以安装”的文件系统。这非常重要,因为计算机引导时将运行 mount -a 命令,该命令负责安装 fstab 的倒数第二列中带有“1”标记的每一个文件系统。

/etc/mtools.conf
 DOS 类型的文件系统上所有操作(创建目录、复制、格式化等等)的配置。

TOP

linux系统管理

系统管理

/etc/group
 包含有效的组名称和指定组中包括的用户。单一用户如果执行多个任务,可以存在于多个组中。例如,如果一个“用户”是“project 1”工程组的成员,同时也是管理员,那么在 group 文件中他的条目看起来就会是这样的:user: * : group-id : project1
/etc/nologin
 如果有 /etc/nologin 文件存在,login(1) 将只允许 root 用户进行访问。它将对其它用户显示此文件的内容并拒绝其登录。

/etc/passwd
 请参阅“man passwd”。它包含一些用户帐号信息,包括密码(如果未被 shadow 程序加密过)。

/etc/rpmrc
 rpm 命令配置。所有的 rpm 命令行选项都可以在这个文件中一起设置,这样,当任何 rpm 命令在该系统中运行时,所有的选项都会全局适用。

/etc/securetty
 包含设备名称,由 tty 行组成(每行一个名称,不包括前面的 /dev/),root 用户在这里被允许登录。

/etc/usertty

/etc/shadow
 包含加密后的用户帐号密码信息,还可以包括密码时效信息。包括的字段有:
     ·登录名
     ·加密后的密码
     ·从 1970 年 1 月 1 日到密码最后一次被更改的天数
     ·距密码可以更改之前的天数
     ·距密码必须更改之前的天数
     ·密码到期前用户被警告的天数
     ·密码到期后帐户被禁用的天数
     ·从 1970 年 1 月 1 日到帐号被禁用的天数

/etc/shells
 包含系统可用的可能的“shell”的列表。

/etc/motd
 每日消息;在管理员希望向 Linux 服务器的所有用户传达某个消息时使用。


TOP

linux系统管理

网络

/etc/gated.conf gated 的配置。
 只能被 gated 守护进程所使用。
/etc/gated.version
 包含 gated 守护进程的版本号。

/etc/gateway
 由 routed 守护进程可选地使用。

/etc/networks
 列举从机器所连接的网络可以访问的网络名和网络地址。通过路由命令使用。允许使用网络名称。

/etc/protocols
 列举当前可用的协议。请参阅 NAG(网络管理员指南,Network Administrators Guide)和联机帮助页。C 接口是 getprotoent。绝不能更改。

/etc/resolv.conf
 在程序请求“解析”一个 IP 地址时告诉内核应该查询哪个名称服务器。

/etc/rpc
 包含 RPC 指令/规则,这些指令/规则可以在 NFS 调用、远程文件系统安装等中使用。

/etc/exports
 要导出的文件系统(NFS)和对它的权限。

/etc/services
 将网络服务名转换为端口号/协议。由 inetd、telnet、tcpdump 和一些其它程序读取。有一些 C 访问例程。

/etc/inetd.conf
 inetd 的配置文件。请参阅 inetd 联机帮助页。包含每个网络服务的条目,inetd 必须为这些网络服务控制守护进程或其它服务。注意,服务将会运行,但在 /etc/services 中将它们注释掉了,这样即使这些服务在运行也将不可用。格式为:<service_name> <sock_type> <proto> <flags> <user> <server_path> <args>

/etc/sendmail.cf
 邮件程序 sendmail 的配置文件。比较隐晦,很难理解。

/etc/sysconfig/network
 指出 NETWORKING=yes 或 no。至少由 rc.sysinit 读取。

/etc/sysconfig/network-scripts/if*
 Red Hat 网络配置脚本。

TOP

linux系统管理

系统命令

 系统命令要独占地控制系统,并让一切正常工作。所有如 login(完成控制台用户身份验证阶段)或 bash(提供用户和计算机之间交互)之类的程序都是系统命令。因此,和它们有关的文件也特别重要。这一类别中有下列令用户和管理员感兴趣的文件。
/etc/lilo.conf
 包含系统的缺省引导命令行参数,还有启动时使用的不同映象。您在 LILO 引导提示的时候按 Tab 键就可以看到这个列表。

/etc/logrotate.conf
 维护 /var/log 目录中的日志文件。

/etc/identd.conf
 identd 是一个服务器,它按照 RFC 1413 文档中指定的方式实现 TCP/IP 提议的标准 IDENT 用户身份识别协议。identd 的操作原理是查找特定 TCP/IP 连接并返回拥有此连接的进程的用户名。作为选择,它也可以返回其它信息,而不是用户名。请参阅 identd 联机帮助页。

/etc/ld.so.conf
 “动态链接程序”(Dynamic Linker)的配置。

/etc/inittab
 按年代来讲,这是 UNIX 中第一个配置文件。在一台 UNIX 机器打开之后启动的第一个程序是 init,它知道该启动什么,这是由于 inittab 的存在。在运行级别改变时,init 读取 inittab,然后控制主进程的启动。

/etc/termcap
 一个数据库,包含所有可能的终端类型以及这些终端的性能。

TOP

linux系统管理

守护进程

 守护进程是一种运行在非交互模式下的程序。一般来说,守护进程任务是和联网区域有关的:它们等待连接,以便通过连接提供服务。Linux 可以使用从 Web 服务器到 ftp 服务器的很多守护进程。
/etc/syslogd.conf
 syslogd 守护进程的配置文件。syslogd 是一种守护进程,它负责记录(写到磁盘)从其它程序发送到系统的消息。这个服务尤其常被某些守护进程所使用,这些守护进程不会有另外的方法来发出可能有问题存在的信号或向用户发送消息。

/etc/httpd.conf
 Web 服务器 Apache 的配置文件。这个文件一般不在 /etc 中。它可能在 /usr/local/httpd/conf/ 或 /etc/httpd/conf/ 中,但是要确定它的位置,您还需要检查特定的 Apache 安装信息。

/etc/conf.modules or /etc/modules.conf
 kerneld 的配置文件。有意思的是,kerneld 并不是“作为守护进程的”内核。它其实是一种在需要时负责“快速”加载附加内核模块的守护进程。

TOP

linux系统管理

用户程序

 在 Linux(和一般的 UNIX)中,有无数的“用户”程序。最常见的一种用户程序配置文件是 /etc/lynx.cfg。这是著名的文本浏览器 lynx 的配置文件。通过这个文件,您可以定义代理服务器、要使用的字符集等等。下面的代码样本展示了 lynx.cfg 文件的一部分,修改这部分代码可以改变 Linux 系统的代理服务器设置。缺省情况下,这些设置适用于在各自的 shell 中运行 lynx 的所有用户,除非某个用户通过指定 --cfg = "mylynx.cfg" 重设了缺省的配置文件。
/etc/lynx.cfg 中的代理服务器设置

.h1 proxy
.h2 HTTP_PROXY
.h2 HTTPS_PROXY
.h2 FTP_PROXY
.h2 GOPHER_PROXY
.h2 NEWS_PROXY
.h2 NNTP_PROXY
# Lynx version 2.2 and beyond supports the use of proxy servers that can act as
# firewall gateways and caching servers. They are preferable to the older
# gateway servers. Each protocol used by Lynx can be mapped separately using
# PROTOCOL_proxy environment variables (see Lynx Users Guide). If you have
# not set them externally, you can set them at run time via this configuration file.
# They will not override external settings. The no_proxy variable can be used
# to inhibit proxying to selected regions of the Web (see below). Note that on
# VMS these proxy variables are set as process logicals rather than symbols, to
# preserve lowercasing, and will outlive the Lynx image.
#
.ex 15
http_proxy:http://proxy3.in.ibm.com:80/
ftp_proxy:http://proxy3.in.ibm.com:80/
#http_proxy:http://penguin.in.ibm.com:8080
#ftp_proxy:http://penguin.in.ibm.com:8080/

.h2 NO_PROXY
# The no_proxy variable can be a comma-separated list of strings defining
# no-proxy zones in the DNS domain name space.  If a tail substring of the
# domain-path for a host matches one of these strings, transactions with that
# node will not be proxied.
.ex
no_proxy:demiurge.in.ibm.com, demiurge

 用户或系统程序在每次启动时都会读取其配置文件。尽管如此,请记住,有些系统程序在计算机打开时情况不一样,它们的行为依赖于在 /etc/ 中的配置文件中读到的内容。所以,用户程序第一次启动时将从 /etc/ 目录中存在的文件读取缺省配置。然后,用户可以通过使用 rc 和 .(点)文件来定制程序,正如下面一节所示。

用户配置文件:.(点)文件和 rc 文件
 我们已经看到怎样容易地配置程序。但是如果有的人不喜欢在 /etc/ 中配置程序的方式该怎么办呢?“普通”用户不能简单地进入 /etc 然后更改配置文件;从文件系统的角度来看,配置文件的所有者是 root 用户!这就是大多数用户程序都定义两个配置文件的原因:第一个是“系统”级别的,位于 /etc/;另一个属于用户“专用”,可以在他或她的主目录中找到。

 例如,我在我的系统中安装了非常有用的 wget 实用程序。/etc/ 中有一个 /etc/wgetrc 文件。在我的主目录中,有一个名为 .wgetrc 的文件,它描述了我定制的配置(只有在我,也就是用户运行 wget 命令时,才会加载这个配置文件)。其它用户在他们自己的主目录(/home/other)中也可以有 .wgetrc 文件;当然,只有这些用户运行 wget 命令时,才会读取这个文件。换句话说,/etc/wgetrc 文件为 wget 提供了“缺省”值,而 /home/xxx/.wgetrc 文件列举了某个用户的“定制项”。重要的是这只是“一般规则”,并非所有情况都如此。例如,一个象 pine 一样的程序,在 /etc/ 中并没有任何文件,它只在用户主目录中有一个定制配置文件,名为 .pinerc。其它程序可能只有 /etc/ 中的缺省配置文件,而且可能不允许用户“定制”这些配置文件(/etc 目录中只有少数 config. 文件是这种情况)。

TOP

linux系统管理

rc和点文件

通常使用的 rc 和 .(点)文件
~/.bash_login
 请参考“man bash”。如果 ~/.bash_profile 不存在,bash 则将 ~/.bash_login 作为 ~/.bash_profile 处理。

~/.bash_logout
 请参考“man bash”。在退出时由 bash 登录 shell 引用。

~/.bash_profile
 由 bash 登录 shell 引用 /etc/profile 之后引用。

~/.bash_history
 先前执行的命令的列表。

~/.bashrc
 请参考“man bash”。由 bash 非登录交互式 shell 引用(没有其它文件)。除非设置了 BASH_ENV 或 ENV,非交互式 shell 不引用任何文件。

~/.emacs
 启动时由 emac 读取。

~/.forward
  如果这里包含一个电子邮件地址,那么所有发往 ~ 的所有者的邮件都会被转发到这个电子邮件地址。

~/.fvwmrc ~/.fvwm2rc
 fvwm 和 fvwm2(基本的 X Window 管理器)的配置文件。

~/.hushlogin
 请参考“man login”。引起“无提示”登录(没有邮件通知、上次登录信息或者 MOD 信息)。

~/.mail.rc
 邮件程序的用户初始化文件。

~/.ncftp/ ncftp
 程序的目录;包含书签、日志、宏、首选项和跟踪信息。请参阅 man ncftp。ncftp 的目的是为因特网标准文件传输协议(Internet standard File Transfer Protocol)提供一个强大而灵活的接口。它旨在替换系统所使用的标准的 ftp 程序。

~/.profile
 请参考“man bash”。如果 ~/.bash_profile 和 ~/.bash_login 文件不存在,bash 则将 ~/.profile 作为 ~/.bash_profile 处理,并被其它继承 Bourn 的 shell 使用。

~/.pinerc Pine 配置

~/.muttrc Mutt 配置

~/.exrc
 这个文件可以控制 vi 的配置。
示例:set ai sm ruler
在此文件中写入上面一行会让 vi 设置自动缩进、匹配括号、显示行号和行-列这几个选项。

~/.vimrc
 缺省的“Vim”配置文件。和 .exrc 一样。

~/.gtkrc GNOME 工具包(GNOME Toolkit)。

~/.kderc KDE 配置。

~/.netrc
 ftp 缺省登录名和密码。

~/.rhosts
 由 r- 工具(如 rsh、rlogin 等等)使用。因为冒充主机很容易,所以安全性非常低。
必须由用户(~/ 的所有者)或超级用户拥有。
列出一些主机,用户可以从这些主机访问该帐号。
如果是符号链接则被忽略。

~/.rpmrc
 请参阅“man rpm”。如果 /etc/rpmrc 不存在则由 rpm 读取。

~/.signature
 消息文本,将自动附加在从此帐号发出的邮件末尾。

~/.twmrc
 twm(The Window Manager)的配置文件。

~/.xinitrc
 启动时由 X 读取(而不是由 xinit 脚本读取)。通常会启动一些程序。
示例:exec /usr/sbin/startkde
如果该文件中存在上面这行内容,那么在从这个帐号发出 startx 命令时,这一行就会启动“KDE 视窗管理器”(KDE Window Manager)。

~/.xmodmaprc
 此文件被传送到 xmodmap 程序,而且可以被命名为任何文件(例如 ~/.Xmodmap 和 ~/.keymap.km)。

~/.xserverrc
 如果 xinit 可以找到要执行的 X,xinit 就会将该文件作为 X 服务器运行。

~/News/Sent-Message-IDs
 gnus 的缺省邮件历史文件。

~/.Xauthority
 由 xdm 程序读和写,以处理权限。请参阅 X、xdm 和 xauth 联机帮助页。

~/.Xdefaults,~/.Xdefaults-hostname
 在主机 hostname 的启动过程中由 X 应用程序读取。如果找不到 -hostname 文件,则查找 .Xdefaults 文件。

~/.Xmodmap
 指向 .xmodmaprc;Red Hat 有使用这个名称的 .xinitrc 文件。

~/.Xresources
 通常是传送到 xrdb 以加载 X 资源数据库的文件的名称,旨在避免应用程序需要读取一个很长的 .Xdefaults 文件这样的情况。(有些情况曾经使用了 ~/.Xres。)

~/mbox 用户的旧邮件。

TOP

linux系统管理

文件系统

 Linux文件系统是Linux系统的心脏部分,提供了层次结构的目录和文件。文件系统将磁盘空间划分为每1024个字节一组,称为块(也有用512字节为一块的,如:SCOXENIX)。编号从0到整个磁盘的最大块数。
 全部块可划分为四个部分,块0称为引导块,文件系统不用该块&#59;块1称为专用块,专用块含有许多信息,其中有磁盘大小和全部块的其他两部分的大小。从块2开始是i节点表,i节点表中含有i节点,表的块数是可变的,后面将做讨论。i节点表之后是空闲存储块(数据存储块),可用于存放文件内容。文件的逻辑结构和物理结构是十分不同的,逻辑结构是用户敲入cat命令后所看到的文件,用户可得到表示文件内容的字符流。物理结构是文件实际上如何存放在磁盘上的存储格式。用户认为自己的文件是边疆的字符流,但实际上文件可能并不是以边疆的方式存放在磁盘上的,长于一块的文件通常将分散地存放在盘上。然而当用户存取文件时,Linux文件系统将以正确的顺序取出各块,给用户提供文件的逻辑结构。

 当然,在Linux系统的某处一定会有一个表,告诉文件系统如何将物理结构转换为逻辑结构。这就涉及到i节点了。i节点是一个64字节长的表,含有有关一个文件的信息,其中有文件大小、文件所有者、文件存取许可方式,以及文件为普通文件、目录文件还是特别文件等。在i节点中最重要的一项是磁盘地址表。

 该表中有13个块号。前10个块号是文件前10块的存放地址。这10个块号能给出一个至多10块长的文件的逻辑结构,文件将以块号在磁盘地址表中出现的顺序依次取得相应的块。当文件长于10块时又怎样呢?磁盘地址表中的第11项给出一个块号,这个块号指出的块中含有256个块号,至此,这种方法满足了至多长于266块的文件(272384字节)。如果文件大于266块,磁盘地址表的第12项给出一个块号,这个块号指出的块中含有256个块号,这256个块号的每一个块号又指出一块,块中含256个块号,这些块号才用于取文件的内容。磁盘地址中和第13项索引寻址方式与第12项类似,只是多一级间接索引。

 这样,在Linux系统中,文件的最大长度是16842762块,即17246988288字节,有幸是Linux系统对文件的最大长度(一般为1到2M字节)加了更实际的限制,使用户不会无意中建立一个用完整个磁盘区所有块的文件。

 文件系统将文件名转换为i节点的方法实际上相当简单。一个目录实际上是一个含有目录表的文件:对于目录中的每个文件,在目录表中有一个入口项,入口项中含有文件名和与文件相应的i节点号。当用户敲入catxxx时,文件系统就在当前目录表中查找名为xxx的入口项,得到与文件xxx相应的i节点号,然后开始取含有文件xxx的内容的块。

TOP

linux系统管理

inode

 一个inode有128 byte。在新建文件系统时, 通常会有一个参数, 用来描述要分配多少比例的空间给inode table。举例来说newfs -i 2048是指文件系统中, 每分配2048 byte给data area, 就分配一个inode。但一个inode并不一定用掉2048 byte, 也不是说 files allocation的最小单位是2048 byte, 它仅仅只是代表文件系统中inode table/data area分配空间的比例是 128/2048 也就是 1/16。如果 inode table 太小, 那么在每个文件都很小的时候, 就会发生inode用光而存储空间多余的情况。file allocation的最小单位和inode多少没有关系

TOP

linux系统管理

安装和拆卸文件系统

 Linux文件系统是可安装的,这意味着每个文件系统可以连接到整个目录树的任意节点上(根目录总是被安装上的)。安装文件系统的目录称为安装点。
 /etc/mount命令用于安装文件系统,用这条命令可将文件系统安装在现有目录结构的任意处。

 安装文件系统时,安装点的文件和目录都是不可存取的,因此未安装文件系统时,不要将文件存入安装点目录。文件系统安装后,安装点的存取许可方式和所有者将改变为所安装的文件根目录的许可方式和所有者。

 安装文件系统时要小心:安装点的属性会改变!还要注意新建的文件,除非新文件系统是由标准文件建立的,系统标准文件会设置适当的存取许可方式,否则新文件系统的存取许可将是777!

 可用-r选项将文件系统安装成只读文件系统。需要写保护的带驱动器和磁盘,应当以这种方式来安装。

 不带任何参数的/etc/mount可获得系统中所安装的文件系统的有关信息。包括:文件系统被安装的安装点目录,对应/dev中的设备,只读或可读写,安装时间和日期等。从安全的观点来讲,可安装系统的危险来自用户可能请求系统管理员为其安装用户自己的文件系统。如果安装了用户的文件系统,则应在允许用户存取文件系统前,先扫描用户的文件系统,搜索SUID/SGID程序和设备文件。在除了系统管理员外任何人不能执行的目录中安装文件系统,用find命令或secure列出可疑文件,删除不属用户所有的文件的SUID/SGID许可。

 用户的文件系统用完后,可用umount命令卸下文件系统。并将安装点目录的所有者改回系统管理员,存取许可改为755。

TOP

linux系统管理

恢复被删除文件

 前些天被我误删掉的 home directory 下的几千个文件,经过本人数天的连续奋战,现绝大部分已恢复,算是奇迹也不是奇迹。
 删掉文件其实只是将指向数据块的索引点 (information nodes) 释放,只要不被覆盖,数据其实还在硬盘上,关键在于找出索引点,然后将其所指数据块内的数据抓出,再保存到另外的分区。

 我先在网上查有关 linux undelete 的信息,找到一个 ext2fs-undeletion 的mini-Howto,后发觉在RH6.2的 /usr/doc/HOWTO 内也有,按它的方法,先将被删掉数据的盘区 umount 掉(防止写盘覆盖被删除的数据,显然这一步在误删数据后做得越快越好,尤其是对多人使用的计算机),然后查文件系统中哪些索引点最近被释放:

#debugfs /dev/hda6 (my 'home' partition)
debugfs: lsdel

即给出相应信息,包括索引点,文件属主,大小,删除日期等。也可将结果输出到一个文件中

debugfs: quit
# echo lsdel | debugfs /dev/hda6 > lsdel.out

还可用 debugfs 中 stat 查看某一索引点的详细信息:

    debugfs: stat <148003>

 尤其注意其数据块是否连续!

 然后将该索引点所指数据块内的数据抓出并存到另一盘区:

    debugfs: dump <148003> /dosd/tmp/recovered.001

按该 mini-Howto 的说法,以上方法只使用于大小不超过 12 个 block 的文件,对于超过 12 个 block 的文件,由于 unix 是将数据分段保存的,需要将各段数据分别取出再拼接,所以比较麻烦。但我用 stat 检查的结果,大文件的数据块也都是紧挨着的,并没有被分段, 于是我试着用同样的方法将文件 dump 出来,发觉结果完全正确,对六百多兆的大文件也适用!不知道 linux 就是连续保存文件的,还是因为我的计算机只有我一个用户而使然,反正我用上述简单方法将我误删的绝大部分文件都恢复了。

 需要说明的一点是,恢复的文件是没有保留文件名的,需要你查看文件内容后,再重新命名。

 靠人不如靠己,当初没有轻易放弃看来是正确的,尽管我有少量备份。不过经过这场"灾难",本人的指法倒是又熟练了不少:几千个文件得一个一个恢复!

TOP

发新话题
搜索网络 站内搜索
如果发现非法信息请及时报警!
鄂ICP备05013984号
卡通警察-察察