Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2086635
  • 博文数量: 288
  • 博客积分: 10594
  • 博客等级: 上将
  • 技术积分: 3469
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-27 19:27
文章分类

全部博文(288)

文章存档

2012年(4)

2011年(30)

2010年(40)

2009年(32)

2008年(71)

2007年(79)

2006年(32)

分类: LINUX

2006-11-15 12:22:05

1. Linux操作系统是一个多任务网络操作系统,要求用户按照各自的身份登录上机,而不是把他们一视同仁;分配给某个用户的安全级别是在建立他或她的帐户时就设置好了的。

2. Linux操作系统目录使用正斜杠(/)而不是DOS或者windows中的反斜杠(\)。举例来说,Linux操作系统中的一个合法目录的写法是/usr/bin。另外,Linux操作系统中大写字母和小写字母其含义将是完全不同,输入字母"Vi"与输入字母"vi"是不一样的。Linux操作系统可以接受的文件或者目录名的长度最多为256个字符。除了字母和数字之外,可以用在文件名中又不引起问题的字符还有句号(.)、下划线( _)和连字号(-)

3.文件存取权限和所有权限
文件的存取权限是使用长格式化文件列表命令( ls -l)列文件清单时出现在最左边的第一数据段。这个数据段又可以被分解为10个标志位。
A. 类型标志位
存取权限数据段的第一位,或者第一个字母表示的是这个项目的类型。许多不同的项目会用到这个标志位:
• -—表示该项目是一个普通文件
• d—表示该项目是一个目录
• l—表示该项目是一个符号链接
• s—表示该项目是一个可执行文件,不论谁都可以像它的所有者那样调用它运行
• c—表示该项目是一个字符设备驱动程序
• b—表示该项目是一个块设备驱动程序
B. 存取权限三位组
存取权限的其余部分每三位一组,分为三组。类型位后面的第1个三位组定义了其所有者的存取权限。第2个三位组定义了其所在分组的存取权限;第3个三位组则说明了系统上任何人的存取权限。
每一个三位组是由3个不同的数据位组成的:
• 读标志位( r)
• 写标志位(w)
• 执行标志位(x)
这些标志位永远都按照同一个顺序显示为r w x的形式。区别某个标志位是处于允许还是禁止的状态就要看该标志位是显示为一个字母还是一个连字符(-)。举例来说,在rw-存取权限数据段表示读标志位在允许状态、写标志位在允许状态、但是执行标志位就是禁止状态;所以这个三位组就表示具有读和写的权限,但是没有可执行权限。

4. 使用date命令的“date -d mm/dd/yyyy”格式设置日期
date命令还有许多其他的格式参数,查询详细资料请输入“man date”命令。

5. 使用date命令的“date -s hh:mm:ss ”格式设置时间
time命令还有许多其他的格式参数,查询详细资料请输入“man date”命令。

6. ls命令列出某个目录中的内容。
参数 使用方法
1 每每一行只显示一个文件或者目录
a 每列出全部的文件,包括那些以句号( .)开头而平常隐藏起来的文件
c 每列出文件上次修改使的日期
l 每以长格式列出目录中的内容,其中包括下面的信息:存取权限、文件的链接个数或者目录中文件的个数、所有者、分组、以字节计算的文件长度、建立日期和文件名
有时候一个目录中的文件太多了,这时需要给ls命令加上“|more”选项。按照“ls /usr/bin |more”的格式输入命令。用户将看到屏幕以每次一页的方式显示usr/bin目录中的内容。

7. cd命令切换目录路径
A. 直接切换目录路径, 使用cd /path的格式就可以。举例来说,如果想从目录/var/spool/中直接切换到目录/usr/bin中去,直接输入命令“#cd /usr/bin”即可。
输入“# cd ~”命令将使用户回到他们的用户目录中去。在缺省情况下,用户tom有一个名称为/ home/tom的用户目录。以tom的身份登录进入系统的时候,输入“#cd ~”命令与输入“# cd /home/tom”命令的效果是完全一样的。而以根用户身份登录进入系统的时候,输入同样的内容就会把你带到/root目录中去,也就是根用户的用户目录。
B. 相对切换目录路径
如果只是想移动到目录结构的上一级去,可以输入“cd ..”命令。举例来说,这个命令可以
把你从目录/var/spool带到目录/var 中去。更进一步地说,输入“cd ../..”命令将把你从目录
/var/spool带到根目录“/”中去。因为在根目录上没有更高一级的目录结构了,所以在目录/ var/spool中输入“cd ../../..”命令还是把你从目录/var/spool带到根目录而已。“..”是一个指
向自身的目录索引。
如果你想从一个目录切换到同一个父目录的另外一个目录中去,比如从/etc/rc.d到/etc/skel,你可以使用相对路径格式,输入命令“ cd ../skel”。

8. pwd命令将显示用户所在位置的完整路径。

9. 解读文件和目录清单列表
在任何一个目录中输入“ls -l”命令都会列出一个长格式的文件和目录清单。举例如下:
-r w - r- - r - - 1 linda user 33191 Aug 15 17:35 text
从左到右,这一行数据的意义可以解读如下:
1) 这个项目是一个文件而不是目录,因为第一个字母不是d。
2) 这个项目是一个文件原本而不是符号链接,因为第一个字母不是l。
3) 这个文件的存取权限是“ -r w - r- - r - -”。
4) 这个文件指有一个版本,没有任何链接。
5) 这个文件的所有者是linda。
6) 所有者愿意与之共享存取权限的分组是user组。
7) 这个文件的长度是33191个字节。
8) 这个文件最后一次的修改日期是8月15日的下午5:35 分。
9) 这个文件的名称是text。

10. chmod 改变文件和目录的存取权限
命令格式 “chmod perm file”。
使用通配符,你可以一次对多个项目进行修改。
A. 使用字母修改
使用字母来修改一个文件的存取权限看起来是很直截了当的,但是当需要进行多重修改的时候,情况就会变得有一些复杂。这个方法需要使用加号(+)或者减号(-)从每一个存取权限三位组中一次性地对存取权限进行加减。三位组中的字母“o”代表所有者(owner),“g”代表分组(group),“u”代表用户(user)—也就是其他所有的人。
举例来说,名为“text”的文件在最初的时候其存取权限可能是完全开放的(即存取权限字符串是rwxrwxrwx)。在大多数情况下,这是一个很差的主意。因为它只是一个文本文件,所以应该先输入“chmod -x text”命令把可执行权限去掉。选择这个存取权限字符串应该是“rw-rw-rw-”。也许你并不想让其他人—包括普通用户和同组成员等等—能够对这个文件的内容进行修改。那么输入“chmod u-w g-w text”命令把存取权限字符串修改为“rw-r--r--”。
B. 使用数字修改
使用数字来修改一个文件的存取权限看起来是比较复杂,但是只要了解了如何计算需要的值,就会发现其实这个操作还是很简单的。设置值是针对每一个三位组分别计算的。请按照下面的方法为某个项目的存取权限计算数字值:
1) 先把存取权限分成三组。比如说,一个名称为“files”的目录的完全开放的存取权限是“drwxrwxrwr”。去掉字母d,把其余的部分分断为3个三位组:rwx、rwx和rwx。
2) 每一个字母都有它各自的数值:
• 一个字母r是4
• 一个字母w是2
• 一个字母x是1
根据这个对应关系把每个三位组的值写出来。如果某一标志位上是字符“-”(连字号),把它算做0。
在上面的例子中,所有的三位组的值都是一样的“421”。
3) 把这些数字加在一起就得到每个三位组的存取权限数值。比如:“4+2+1=7”。
4) 全部3个三位组的值都是一样的,因此这个文件的存取权限值就是“777”
如果想把某个项目的存取权限修改为另外的一个数值,先计算出新设置的数值。比如说,如果想把前面例子中的“files”目录的存取权限设置为“664”(rw-r--r--),请输入“chmod 644 files”命令。

11. chown 改变文件和目录的所有者
命令格式“chown owner item”
使用通配符,你可以一次对多个项目进行修改。

12. mkdir 建立目录
“mkdir testbed”命令就可以建立一个名为“testbed”的目录。可以使用的直接或者相对目录路径进行操作。

13. rmdir 和 rm 删除目录
"rmdir"命令只能删除那些空目录。
"rm -r"命令将删除目录和其中全部的内容,包括下一级的目录。举例来说,假设用户建立了一个/testbed目录,并且在其中也已经保存了一些测试脚本。这些脚本经过修修改改之后,用户把那些需要保留的保存到了其他的地方,这里就只剩下那些准备丢弃的了。现在只要输入"rm -r /testbed"命令就可以删除/testbed目录和它的全部内容。
注意根用户在使用“rm -r”命令的时候有很大的危险性,因为他有删除任何东西的权限。

14. cp 拷贝文件和目录
命令格式“cp original destination” 或者“ cp original1 original2 original3 destination”。
(后面一个命令拷贝多个文件到同一个目的地)
注意如果对成组的文件进行拷贝操作的话,那么文件的目的地必须是一个目录。
cp命令还接受下表中的通配符。比如上面的例子就可以简化为“cp original* destination”。
通配符 含义
* 任意个数的未知字符
[ ] 任何包括在括号中字符范围内的字符
? 任何一个未知的字符

15. mv 移动文件和目录
格式“ mv original destination”。mv命令与cp命令很相似,也可以接受通配符,也允许一次性把多个文件移动到某个目录中去。
mv命令不能在不同的硬盘分区之间传递文件和目录。这时候只能先把文件和目录拷贝到目的地,然后再删除那些原始文件。

16. rm 删除文件
命令“rm file”。这个命令接受cp和mv命令使用的同样的通配符,还有“- r”参数。使用这个命令的时候,前面对根用户的警告信息依然有效。

17. ln 建立链接
链接文件是在不制作另外一个拷贝的情况下建立文件之间联系的方法,这样它们就可以同时出现在两个不同的地方。有两种类型的链接:硬链接和软链接(符号链接)
A. 硬链接
建立一个硬连接就是在节点(inode)级别建立一个指向某些文件的指针。节点是把文件系统的内容与它们的描述符对应起来的映射表的一部分。
使用“ln source link”的格式建立硬链接。因为硬链接在文件系统中指向完全一样的同一个位置,所以删除原始文件并不能使该链接失效。原始文件只有在全部相关硬链接都被删除之后才能被清除。
B. 符号链接
建立一个符号链接在被链接的位置生成一个该文件的拷贝,它的存取权限与原始文件的完全相同。
使用“ln -s source link”的格式建立符号链接。因为符号链接不指向同一个节点,因此删除了原始文件就会使全部的符号链接失效。有一个RPM包叫做“symlinks”可以帮助用户跟踪查出所有的失效链接—即那些仍然保留在系统中但是指向的是那些已经不存在的程序的符号链接。

18. 识别二进制文件
Linux操作系统中的二进制文件通常在他们的文件名上都没有扩展名。
快速分辨某个文件是否是一个二进制文件(程序)的方法是在它的长格式文件清单列表的存取权限中是否有字母x。字母“x”表示该文件是可执行的,也就是一个程序。另外一个方法需要按照“file filename”的格式使用file命令。

19. 使用vi文本编辑器程序
vi编辑器是一个小巧但功能强大的程序, vi编辑器有三种基本的模式:
在命令模式按下“ i”键进入插入模式, 按下ESC键就可以进入到命令模式,从命令模式输入一个冒号(:)就可以进入冒号模式模式
常见的能够进入编辑模式的vi命令
命令 结果
a 在当前光标位置后面处直接进入插入模式
A 在当前文本行之后进入插入模式
i 在当前光标位置前面处直接进入插入模式
I 在当前文本行之前进入插入模式
o 在光标下面插入一个新行并移动到其上,进入插入模式
O 在光标上面插入一个新行并移动到其上,进入插入模式
常见冒号模式的vi命令
命令 结果
wq 保存并退出文件
w 保存文件但不退出
q 退出并且不保存文件
q! 退出并不保存所做的修改
常见执行删除操作的v i命令。
命令 结果
dd 删除整个行
#dd 按照输入的数字删除几行,从当前行开始
D 删除光标位置后面全部内容
dw 删除光标所在位置的单词

20. 查看文本文件,不使用文本编辑器程序
A. more和less命令
命令:“more filename”或者“less filename”命令。
好处: 如果文件的长度超过了一个屏幕,文本会停下来等待用户按下相应的键,然后再滚动显示一屏幕内容。使用这两个程序的好处之一是它们不需要把整个文件都读入内存后才开始显示其内容,因此它们对任何大小的文件运行得都一样快。
使用more命令阅读文本文件时的常用命令
按键 结果
b 在文本中后退一行
回车键或者f键 在文本中前进一行
h 显示帮助信息
空格键 前进到文本的下一页
q 退出more阅读程序
使用less命令阅读文本文件时的常用命令
按键 结果
b 在文本中后退一行
回车键 在文本中前进一行
f 屏幕内容更新一屏
h 显示帮助信息
空格键 前进到文本的下一页
q 退出less阅读程序
y 屏幕回退一行
B. cat命令
命令格式“cat filename”,命令会把文件的内容全部显示在屏幕上。虽然在阅读短文件内容时很有用,但是对长文件还是使用more或者less命令更好一些。

21.重定向(redirection)把命令结果输出到文本文件中
使用大于号(>)的“command > file”格式把某个命令的输出重定向到某个文件中去。
比如:“ls > listing”。

22.建立别名(alias)
使用一个比较简短的命令来代替原来很长的命令内容。
要想建立别名,需要编辑他们自己用户目录中的.bash_profile文件。不管用户是使用哪个帐户登录进入系统的,都可以使用“vi ~/.bash_profile”命令开始操作。
注意这里介绍的操作只适用于bash shell,它是Linux操作系统缺省使用的shell。
在这个文件的末尾开始建立用户自己的别名语句。别名的定义格式是“alias name=‘command'”。
举例来说,如果想把原来的“ls -la”命令定义为别名命令ls,需要加上的别名定义语句是:alias ls = 'ls -la'
如果想使用新的别名,请先退出登录再重新登录进入原先的帐户。
注意如果用户想在一台彩色显示器上获得一些花哨的效果,请使用下面的语句:"alias 'ls -laF -colorize=yes'"

23 使用find命令确定文件存放位置
基本语法是:“find startingpoint flags filename”。
最常见的使用方法是“find / -name file”,它从根目录开始查找文件名为file的文件或者包含file文件的目录。
下面列出了一些经常使用的命令行参数和它们的使用方法。
参数 说明 格式
1). 参数atime,根根据此参数说明的修改时间查找文件。加号(+)表示“在其后”,减号(-)表示“在其先”,没有加减号表示“准确时间”
格式:find start -atime +days file_name、find start -atime -days file_name 、
或者find start -atime days file_name
示例: find /etc/rc.d -atime -5
2). 参数 ctime 根查找在此参数指定的时间段内其目录清单列表中的数据发生改变的文件。加号(+)表示“在其后”,减号(-)表示“在其先”,没有加减号表示“准确时间”
格式:find start -ctime +days file_name、
find start -ctime -days file_name 、
或者find start -ctime days file_name
示例: find / -ctime 2
3). 参数exec, 查找符合c r i t e r i a条件的文件,然后使用c o m m a n d命令来对它们进行处理。{ }(注意括号之间有空格)表示把这些找到的文件放在什么位置;“ \”符号用来结束这条命令
格式:或find start criteria -exec command { } \;
示例: 查find /var/log -ctime -4 -exec grep ‘http’ { }\;
4). 参数group, 查查找属于此参数说明的分组的那些文件
格式:find start -group groupname
示例: find / -group staff
5). 参数iname, 查找文件名是此参数说明的名称的那些文件
格式:find start -iname file_name
示例: find /home -iname data
6). 参数mtime, 查找在此参数指定的时间段内其内容发生改变的文件。加号(+)表示“在其后”,减号( -)表示“在其先”,没有加减号表示“准确时间”
格式:find start -mtime +days file_name、
find start -mtime -days file_name、
或者find start -mtime days file_name
示例: find /var/log -mtime -10
7). 参数name, 查找文件名中包含此参数说明的字符串的那些文件
格式:find start -name file name
示例: find /mnt/cdrom -name '*.rpm'
8). 参数print, 输出满足查找条件的那些文件和目录的内容
格式:find start criteria -print
示例: find /home/bob -name 'Notes' -print |more
9). 参数user, 查找属于此参数说明的用户的那些文件
格式:find start -user username
示例: find / -user joy
find命令一个特别有用的使用方法是把它与xargs命令结合在一起使用。xargs命令允许用户把f i n d命令找到的文件名们作为另外一个程序的输入。一个使用了这种组合方法的例子是:“find /home/bob -name 'Notes' | vi”,这个命令组合将在vi文本编辑器中把文件名中包含了'Notes'字样的全部文件都打开。

24. 通过搜索locate数据库来查找文件
locate是在一个包含了文件系统某个时刻全部内容的文件名数据库中去检索数据,而不是真的在文件系统中进行搜索。但是它要比find命令快得多,如果用户需要查找的文件是在该数据库更新之前建立的,这个命令就可以大显身手了。
命令格式“locate file”。
输入“updatedb”命令更新数据库。这个数据库通常是作为一个标准的cron工作被自动更新的。

25. whereis在path语句说明的路径中查找文件
命令格式:“whereis file”。局限性是它只在用户现有的path语句说明的路径中进行查找。如果某个文件没有存在于这些路径中,它就没有办法找到。请输入“echo $PAT H”命令查看现有路径。

26. 在path语句中添加新路径
在bash shell(Linux操作系统的缺省shell)中添加路径语句:
1)使用“vi ~/.bash_profile”之类的命令编辑~/.bash_profile文件。
2)找到以PATH开头的语句。
3)在该语句后加上一个冒号(:),再添上新的路径内容。
4)退出再重新登录进入系统使新设置生效,也可以重新运行这个帐户的profile文件。举例来说,如果用户使用的是bash shell,请输入“source ~/.bash_profile”命令。

27. grep 在文件内容中查找文本
命令格式:“grep flags expression files”。
flags是可使用的命令行参数,expression是你想查找的文本,files就是准备在其中进行查找的那些文件。
比如说,我们准备在~ /test文件中查找文字“red”,不考虑大小写。这个命令就是:“grep -i red ~/test”。
参数 说明
- i 忽略大小写
- n 给出文字匹配处那一行的行号
- v 显示不匹配e x p r e s s i o n的那些行
- C 显示匹配处前后两行的内容

28. 寻求帮助
获得帮助最快的方法是使用man(英文manual的缩写)命令。它将显示该命令的使用手册页—如果这个命令有使用手册页的话。“man command”打开一个使用手册页;按下q键从中退出。
如果在某个使用手册页的开始部分说明这个文档将不再继续有效,需要另外使用texinfo程序阅读,请使用“info command”的格式阅读这个文件。

29. 在后台运行命令程序
格式“command &”。

30. 确定当前运行的命令
A). 确定有哪些命令正在运行
使用jobs功能。输入这个命令后将列出正在后台运行的全部命令的清单—如果有的话。在这个清单中,最重要的信息通常是工作号,就是那个最左边的数字。
B). 确定有哪些进程正在运行
使用ps命令。它列出的清单中只包括那些在输入这个命令的虚拟控制台上运行的进程。其中最重要的信息是最左边的数字,即PID(英文进程号Process ID的缩写)。

31. 把命令程序调到后台去
使用bg(英文后台background的缩写)命令可以把当前正在屏幕上运行的命令调入到后台去,这样该终端就可以另做他用。请按照下面的方法把某个程序调入后台:
1) 输入“jobs”命令获取这个命令的工作号job。
2) 按下键组合“Alt+FX”,其中X是代表某个空闲终端的功能键的编号。
3) 登录进入刚才窗口中使用的同一个帐户。
4) 输入“bg job”把这个工作调入到后台。
这个操作通常有一个简单的完成方法,就是在显示该进程运行结果的终端上按下组合键“Ctrl+Z”。

32. 把后台命令调回前台来
如果想把一个正在后台运行的命令调回前台以便对它进行操作,首先要获取工作号,然后使用fg(英文前台foreground的缩写)命令的“fg job”格式即可。

33. 取消正在执行的命令
在Linux操作系统中可以使用好几种方法终止命令的执行。终止当前正在执行的某个命令最快的方法是按下组合键“Ctrl+C”。这个方法只有在用户能够从某个虚拟控制台上控制这个程序的时候才奏效。
终止某个出错程序的另外一个办法是kill(杀)掉它的进程。请按照下面的方法进行操作:
1) 输入“ps”命令获取进程的PID,这个命令要求你是运行这个程序的那个人或者是根用户。如果是根用户,请输入“ps -aux”命令查看所有的进程,不管是谁拥有它们的。
2) 在清单中找到这个出错进程。因为程序的名称列在清单的最右边,通常一眼就可以找到它。
3) 请记下ps命令输出清单中进程状态行最左边的ID数字。
4) 输入“kill ID”,终止该进程。
5) 使用ps命令查看该进程是否仍在运行中。
6) 如果它没有出现在清单中,你就已经完成了操作。如果它还在运行中,请输入“ kill 9 ID”。这个命令就可以达到目的。这个命令强制性地终止了那个进程,并不进行善后工作,因此不到必要的时候最好别使用它。

34. clear 清除屏幕

35. 一次执行多个命令
用户可以使用分号(;)分隔多个命令,把它们输入在一行上。举例来说,我们想把命令“ls -la /etc/rc.d/init.d”命令的输出送到文件systeminits中去,然后再使用more命令检查这个文件,需要输入下面的内容:
ls -la /etc/rc.d/init.d > systeminits ; more systeminits
另外一个一次运行多个命令的方法是使用命令脚本。

36. 添加一个新用户
“adduser username”或者"“useradd username”"开始添加一个新用户。

37. 添加或者修改一个口令字
命令“passwd username”
即使你当前登录进入的是一个非root帐户,也可以通过passwd命令改变这个帐户的口令字。但是这个时候不再需要包括用户名了,而只要输入“passwd”即可。
命令"useradd -D"查看关于新用户的缺省设置
用户设置值 参数 数据格式
GROUP -g 来自/etc/group文件的分组编码
HOME -d 该帐户上一级用户目录的完整路径(比如:/home)
INACTIVE -f 天数
EXPIRE -e 天数
SHELL -s 到shell的完整路径
SKEL -k 到框架文件的完整路径
• 如果把那些普通的新用户分配到缺省设置值以外的另一个分组(GROUP)。
• 如果把新用户的用户目录设置在/home目录树以外的位置,就需要修改HOME(用户目录)项目的设置值。
• 当出现用户不修改他们过期失效口令字情况的时候,你可能会想要把这类用户的帐户冻结(inactive)起来。这就需要修改INACTIVE(冻结)项目的设置值。办法是输入一个以按天数计算的数字。这个数字表示在用户口令字失效之后、彻底关闭该帐户之前系统将要等待的时间。如果使用了缺省的数值0天,就表示你并不希望自动冻结那些帐户。
• 如果你的系统比较容易受到攻击,定期使原来的口令字失效是一个好办法。请把EXPIRE(失效)项目修改为一个数字,这样就可以通知系统每循环经过多少天,原来的口令字就将失效;而在此之前,系统必须强迫用户修改他们的口令字。
• 缺省的S H E L L项目设置值一般都是/bin/bash。如果想改变这一点,就必须输入新的缺省shell的完整路径名。
• 许多聪明的系统管理员通过使用框架(skeleton)目录来定制新用户的目录。这个框架目录中包括着那些准备安排到每一个新建帐户的目录中去的文件。如果你想把框架目录设置为缺省值(通常是/etc/skel目录)以外的某个位置,就需要把SKEL(框架目录)项目的设置值修改为新的框架目录的完整路径名。

38. 修改现有用户的信息
使用usermod命令可以修改现有用户的信息,加上必要的参数指定需要修改的项目。
警告: 如果你使用了G参数,那么任何没有使用它或者g参数列出的分组将从用户分组定义中被删除。
参数名称 说明
c 说明信息为用在finger文件中的说明信息。这个数据域最好是用chfn命令来修改
d 用户目录为为这个用户输入一个新的用户目录位置,新位置将自动被建立。如果在d参数后加上一个m参数,那么用户原来的用户目录中的东西将会被转移到新的目录中去
e 失效日期为如果想把用户帐户的失效日期设置为某个特定的日子,请按照MM/DD/YY的格式输入该日期
f 冻结期为口令字失效之后冻结该帐户之前需要等待的天数。只有在该用户没有修改其口令字的时候这个选项才被激活。如果不想使用这个选项,请输入数值- 1(缺省值)
g 原始分组为分配给用户的分组名称或者编号。这个分组必须是当前存在的G分组为使用这个参数可以给该用户分配额外的分组。如果需要分配不止一个的话,请使用逗号而不是空格来分隔它们。比如说,如果想把wheel、root和admin 等几个分组分配给该用户, 需要输入“whell,root,admin”
l 登录名为使用这个参数可以修改用户的登录名。这么做的时候用户的用户目录不会自动改变。如果用户已经登录进入了系统,就不能修改用户的登录名
s shell为如果用户要求使用另外一个登录shell,使用这个参数修改它。需要使用新shell的名称
u UID为改变用户ID的数值。除非了解这样做的后果和系统上当前可用的ID数值范围,否则不要这样做

举例来说,如果用户chris要求把他的登录名修改为c.adams,就需要以root身登录进入系统再输入“usermod -d /home/c.adams -m -l c.adams.chris”命令。

39. 冻结一个用户
警告不要冻结root帐户。
1) 以根用户身份登录进入系统。
2) 编辑password文件:
• 如果没有使用shadow隐藏口令字功能,编辑/etc/passwd文件。
• 如果使用了shadow隐藏口令字功能,编辑/etc/shadow文件。
3) 在文件中找到这个帐户。
4) 把这个帐户的口令字替换为一个星号(*)。口令字在用户数据段的第二个位置。
在/etc/passwd和/etc/shadow文件中每个用户的帐户信息都在单独的一行上。这个信息被冒号(:)分隔成不同的数据域。因此第一个数据域就是这一行上的第一个被分隔的数据部分,第二个数据域就是第一个冒号之后的数据部分,以此类推。
5) 保存并退出文件。

40. 删除一个用户
命令“ userdel -r username”。
如果想完全删除属于paula的帐户,应该输入“userdel -r paula”命令。
如果因为某些原因删除一个帐户但是又需要保留该用户的用户目录的话,可以使用不带-r参数的userdel命令。

41. logout 退出登录

42. 重新引导启动机器
“reboot”命令,或者“shutdown -r now”命令。如果机器发生了锁死现象,不接受键盘的任何输入, 一般按下组合键“ Ctrl+Alt+Del”能够解决问题。但是最好尽可能避免这样操作,因为这个强制性的关机操作一般不进行善后工作。最好是检查一下/etc/inittab文件,看看组合键“Ctrl+Alt+Del”是否是“shutdown -h now”命令的别名操作。如果是的话,就可以使用这个组合键安全地关闭机器并切断电源。

43. 系统关机
“halt”命令,或者“shutdown -h now”命令关闭系统并切断电源.

44. 手动调整X图形界面
1) 需要编辑的文件是XF86Config。请输入“locate XF86Config”命令找到这个文件。如
果因为某种原因locate命令使用的数据库没有建立,也可以使用“find /-name ‘XF86Config’”命令。后一个命令可能会花费长一些的时间,因为它将在整个文件系统中进行搜索。
2) 使用“vi path/XF86Config”之类的命令打开这个文件。
3) 这个文件中有大量的注释语句—注释语句是那些在其开头或者结尾带有井字号(#)的语句。因为最有可能出现的情况是用户需要编辑修改图形卡或者显示器的设置值,所以请在文件中查找,直到找到带有下面列出的段落标志的部分:
• Monitor(显示器)—显示器部分。
• Graphics(图形)—图形卡部分。
• Screen(屏幕)—图形模式和颜色深度部分。
A.手动配置显示器
1) 搜索下面的文本内容:
# ****************************************************
# Monitor section
# ****************************************************
如果是在v i编辑器中进行搜索的话,请输入“/Monitor section”,再按下回车键。
2) 包含着显示器有关设置项目的部分是:
Identifier " MAG DX700T"
Vendor Name " Unknown "
Mode1 Name " Unknown"
这三项数据可以使用下面的方法安全地进行修改,记住千万不要删掉引号:
• 如果想赋给显示器本身一个新标签,请修改Identifier项中的文字。
• 如果想设置制造商的名称,请修改Vendor Name项中的文字。
• 如果想为显示器设置一个模式,请修改Mode Name项中的文字。
3) 如果想修改显示器的水平同步频率范围,请修改Horiz Sync项的数值。这个数值可以是带有一位小数的某个数值范围(比如:“40.5 - 85.3”),也可以是带有一位小数的一系列数值(比如:“40.5, 50.5, 60.5, 70”)。在这个情况下,在语句中没有引号,因此它看起来就像下面所示:
HorizSync 40.5 - 85.3
警告请千万要准确输入在显示器使用手册中或者制造商Web站点上列出的数值范围,或者按照低限进行估计。如果用户把这个值设置得高过其处理能力的话,就可能对鼠标造成损坏。
4) 如果想修改显示器的垂直刷新速率,请修改Ver Refresh项的数值。这个数值的格式与Horiz Sync项是完全一样的,也适用于同样的警告。
5) 如果想设置在某个特定的图形模式下显示器的工作方式,需要设置Mode或者Mode Line语句。这两个变量定义的是同一个东西,但格式是不相同的。一个Mode语句看起来是:
Mode "1024 x 768i"
DotClock4 5
HTimings 1024 1048 1208 1264
VTimings 768 776 784 817
Flags "Interlace "
End Mode
语句中的数值含义是:
• Mode本身的数值是这个模式的名称。这个名称通常就是按照格式(水平点阵)×(垂直点阵)表示的显示器的分辨率;如果显示器是隔行扫描的,末尾再加上一个i字母。一个隔行扫描的显示器每画一整屏图像需要扫描两遍;而逐行扫描的显示器因为一遍就能够画出屏幕图像而更受欢迎。
• DotClock项的数值以MHz为单位,表示该显示器上单独一个光点的显示速度有多快。这个数值的大致计算公式是:(水平点阵)×1.28x(水平刷新速率)。
• Htiming项包括四个不同的数值。第一个是水平显示的点阵数量(在上面的例子中就是1024)。第二个是水平图像开始处的光点位置,第三个是结束处的光点位置。最后一个数值是屏幕水平方向上一行的点阵总数。这些数值一般都会记录在显示器的使用手册中。
• Vtiming项和水平定时Htiming项的排列方式是完全一样的,只不过它定义的是垂直方向的数据。
• Flags项中包括了所有用来通知X服务器程序关于显示器特殊问题的必要标志。隔行扫描(Interlace)是其中最常用的一个。
另一方面,ModeLine语句,把全部的信息都包括在一个文本行上。因此我们可以把前面Mode语句例子中的数据编写到下面这样的ModeLine语句中去:
ModeLine "1024 x 768i "45 1024 1048 1208 1264 768 776 784 817 Interlace
一般都会有很长的一系列这样的语句,每一句用来定义某个特定模式类型的行为。
6) 保存并退出这个文件。
7) 输入“s t a r t x”命令测试新的配置情况。

B.手动配置图形卡
1) 搜索下面的文本内容:
# ****************************************************
# Graphics device section
# ****************************************************
如果是在v i编辑器中进行搜索的话,请输入“ /Graphics device section”,再按下回车键。
2) 包含着图形卡有关设置项目的部分是:
Section " Device "
Identifier " Generic VGA "
VendorName" Unknown "
BoardName" Unknown "
Chipset" generic "
VideoRam 1024
EndSection
这五项数据可以使用下面的方法安全地进行修改,记住千万不要删掉引号:
• 如果想赋给图形卡本身一个新标签,请修改I d e n t i f i e r项中的文字。
• 如果想设置制造商的名称,请修改Ve n d o r N a m e项中的文字。
• 如果想为某种特殊的图形卡取一个名字,请修改B o a r d N a m e项中的文字。
• 如果想设置图形卡用的芯片集的类型,请修改C h i p s e t项中的文字。
• 如果想设置图形卡上拥有的显存R A M的大小,请修改Vi d e o R a m项中的文字。
3) 保存并退出这个文件。
4) 输入“startx”命令测试新的配置情况。

C. 手动配置图形显示模式
1) 搜索下面的文本内容:
# ****************************************************
# Screen sections
# ****************************************************
在vi编辑器中进行搜索的话,请输入“/Screen sections”,再按下回车键。
2) 一般在X图形界面的配置文件中都包含不止一个屏幕定义部分。每一部分的基本格式是:
Section " Screen "
settings
EndSection
请选择某个屏幕定义部分开始操作。
3) 包含着屏幕有关设置项目的部分看起来如下所示:
Driver" svga "
Device" My Video Card "
Monitor" MAG DX700T "
这三项数据可以使用下面的方法安全地进行修改,记住千万不要删掉引号:
• Driver项中保存着特殊的数据。其选项有Accel(视频加速)、Mono(单色)、SVGA、VGA2和VGA16。
• 如果想改变设备本身的名称,请修改Device项中的文字。
• 如果想改变显示器的品牌和型号,请修改Monitor项中的文字。
4) 在Screen部分中有专门的Subsection子结构对配置为使用Driver项定义的驱动程序的特殊图形卡定义颜色和分辨率。这些子结构看起来如下所示:
Subsection" Display "
Depth 8
Modes" 1024 x 768 " " 1152 x 864 "
ViewPort 0 0
EndSubsection
找到或者建立一个能够正常工作的Subsection结构。
请注意这里的内容排列方式。每一个Screen部分说明一个特定的驱动程序层次。每一个Subsection结构定义该驱动程序可用的一个颜色深度和该颜色深度可用的模式。
5) 颜色深度是最重要的项目,因为用户的图形卡和显示器在特定的颜色深度下只能支持某些特定的模式。请确定在图形卡上有多少显存RAM(VRAM),并且从它的使用手册中查出有这么多VRAM的卡都支持些什么。然后在从显示器的使用手册中查出在什么样的图像模式下支持什么样的颜色深度。
6) 根据选择设置颜色深度。
7) 在Modes语句上,在引号中列出在选定的颜色深度下用户希望使用的各种模式。
8) ViewPort项确定在虚拟桌面上X任务操作将从什么地方开始显示。一般比较好的方法是就把它保留为缺省设置的00值。
9) 编辑其他的Subsection结构。
10) 编辑其他的Screen部分。
11) 保存并退出这个文件。
12) 输入“start x”命令测试新的配置情况。

45. 挂装到文件系统上
命令格式“mount -t type /dev/device /mnt/mountpoint”
格式 说明
ext2 Linux操作系统格式。这是缺省值
iso9660 CD-ROM光盘格式
msdos MS-DOS格式
vfat 这个术语意味着不同的事物,分别取决于是从微软的观点还是从Linux观点看待它。Linux的观点同时包括了Windows 3.x和9 x格式。从微软的观点看, Windows 9x实际使用的是vfat32,但是Linux操作系统的vfat文件系统类型包括了这两种
• 如果想安装一个Linux软盘,请输入“mount /dev/fd0 /mnt/floppy”命令。
• 如果想安装一个C D - R O M光盘,两种发行版本都已经建立好了一个从CD-ROM光盘设备驱动程序到一个叫做cdrom的驱动器设备的链接。请输入“mount -t iso9660 /dev/cdrom /mnt/cdrom”命令。
• 如果想安装一个MS-DOS软盘,请输入“mount -t msdos /dev/fd0 /mnt/floppy”命令。
• 如果想安装在第一个SCSI硬盘驱动器上的某个Windows分区—比如第3分区,请输入“mount -t vfat /dev/sda3 /mnt/win”命令。

46. 从文件系统上卸载
• umount /dev/device 或者 • umount /mnt/mountpoint

47. 简化常用挂装命令
通过在/etc/fstab文件中为之添加内容就可以简化常用的挂装命令。请按照下面的方法进行操作:
1) 以根用户身份登录进入系统。
2) 使用“vi /etc/fstab”之类的命令打开/etc/fstab文件。
3) 检查文件中是否已经有了与你想要添加的内容有关的语句。举例来说,因为/mnt/cdrom和/mnt/floppy经常被使用,所以一般都已经在这个文件中了。文件中的第2 列是挂装点的名称。如果你的想法已经都表现在这个文件中了,请输入“:q”命令按回车键退出编辑器程序。
4) 如果使用的是vi 编辑器程序,按下“G”键前进到文件末尾,然后按下“o”键插入一个新的文本行。
5) /etc/fstab文件中的数据项是如下所示的格式:
/dev/device /mnt/mountpoint type rules dumpable order
因为这是一个在开机引导启动的时候不会自动挂装的设备,它的格式应该是如下所示:
/dev/device /mnt/mountpoint type noauto 0 0
6) 确定需要安装的设备。
7) 建立需要把设备安装在其上的挂装点。记住这个挂装点最好起一个简单易记的名字。举例来说,如果是在对挂装MS-DOS软盘的挂装命令进行简化的话,可以考虑使用一个比如说像/mnt/dosfloppy这样的名字。
8) 选择正确的文件系统类型。对/mnt/dosfloppy例子而言,它的类型是msdos。
9) 完成这个语句。对MS-DOS软盘的例子而言,它将会是:
/dev/fd0 /mnt/dosfloppy msdos noauto 0 0
10) 按下ESC键,然后输入“:wq”命令,再按下回车键。保存文件并退出。

48. 在开机引导启动时自动挂装一个设备
1) 以根用户身份登录进入系统。
2) 使用“vi /etc/fstab”之类的命令打开/etc/fstab文件。
3) 如果使用的是vi 编辑器程序,按下“G”键前进到文件结尾,然后按下“o”键插入一个新的文本行。
4) /etc/fstab文件中的数据项是如下所示的格式:/dev /device mountpoint type rules 0 order
5) 确定需要挂装的设备。举例来说,用户可能添置了第二块IDE硬盘驱动器并把其上第二个分区分配给Linux操作系统使用。这个设备就是/dev/hdb2。
6) 建立需要把设备安装在其上的挂装点。重要的是认真考虑这一环节,因为这个设备将作为文件系统永久性的一个部分。通常/mnt树状结构是用于临时挂装的设备的,因此现在这个新分区应该被添加到别的地方。做出这个决定需要综合考虑个人爱好、文件系统标准(File System Standard,简称FSSTND)以及新分区将起到什么样的作用。举例来说,如果想把这个新分区作为一个共享的空间,用户们可以在其上共同完成项目工作,那么也许一个比较好的挂装点名称可以是/home/projrcts。
7) 选择正确的文件系统类型。对例子中的Linux分区而言,它的类型应该是ext2。
8) 选择这个挂装上的设备应该遵守的规则。如果想看到完整的清单,请输入“man mount”命令。
通过/etc/fstab文件自动挂装设备常用规则
规则 说明
auto 按开机引导启动时自动挂装定义的设备
default 按按照大多数永久性文件系统添加设备使用的缺省设置值挂装定义的设备,缺省设置包括自动挂装和可读写权限等等
noauto 按开机引导启动时不自动挂装定义的设备
nouser 按不允许没有超级用户权限的任何人挂装这个设备
ro 按按照只读权限挂装定义的设备
rw 按按照可读可写权限挂装定义的设备
user 按任何用户都可以挂装这个设备
9) 最后一个数据域说明这个设备的挂装顺序。如果这个设备不是唯一自动挂装的设备,就把它的值还是置为零(0)。root根分区(/)的这个值永远是1。从这里开始,但这些设备需要被挂装的时候,就会按顺序从2往上以整数开始进行编号。
10) 在/etc/fstab文件的末尾输入所有这些数值。根据整个例子,最后的结果应该是:
/dev/hdb2 /home/projects ext2 defaults 0 2
按下ESC键,然后输入“: w q”命令,再按下回车键。保存文件并退出。在系统重新引导启动之前,这个分区还不能自动被挂装。但是现在可以使用下面的命令把它手动地挂装上:
mount /dev/hdb2 /home/projects.

49. 把一个现存的目录转移到一个新分区
1) 把新硬盘驱动器安装到计算机中去。
2) 使用你最喜欢的分区工具程序对它按需要进行分区操作。
3) 把现有的目录名改为一个临时名称以便于进一步的操作。比如说,如果要把/home目录移到它自己的分区上去,使用“mv /home /hometmp”命令改变它。
窍门:因为对于数据丢失tar命令可以提供更好的保护,所以也可以使用tar命令来完成这个工作,其格式为:mkdir /newdir、cd /dir、tar cf-./(cd /newdirtar xf-)。
4) 把新分区加到/etc/fstab文件中去。比如说,如果要把/home移到第2个SCSI驱动器的第1个分区,那些数据项将是:/dev/sdb1 /home ext2 defaults 0 2
5) 重新引导启动计算机,自动挂装这个分区;或者使用“ mount /dev/sdb1 /home”命令手动挂装它。
6) 把需要移动的东西,包括全部的目录,整个都拷贝到新分区上去。举例来说,对于/home目录,要输入“cp -R /hometmp /home”命令。
7) 等待一段时间,以便确定用户们的一切工作都在顺利地进行着,然后使用rm命令的“rm -dr /hometmp”格式删除旧目录中的所有内容和这个目录本身。d参数告诉r m命令需要删除的是一个目录,r参数表示在这个目录中的全部文件和下一级目录都要被删除掉。
警告使用rm命令的-dr参数时千万要谨慎。因为你必须以根用户身份登录进入系统,粗心大意地使用“rm -dr”可能会弄文件系统的一大部分。

50. 确定用户正在使用的是哪个版本的内核
命令“ uname -r”
1) 忽略句号(.)前的第一个数字。
2) 查看紧跟在句号(.)后面的第二个数字。
• 在实验性版本中,紧跟在第一个句号(.)后面的第一个数字是一个奇数。
• 在成熟版本中,紧跟在第一个句号(.)后面的第一个数字是一个偶数。
举例来说,内核版本2.6.5~1 5是成熟版本之一,而版本2.5.4~1 2是实验性版本之一。

51. 检查网络当前的设置情况
命令“netstat -nr”。
参数n告诉netstat命令把地址显示为纯IP数字形式,而不必去查找完整的域名信息;
参数r告诉netstat命令只显示那些使用了TCP/I P协议项目的信息。
快速检查DNS服务是否已经运行的方法之一是先试试“netstat -nr”命令,再使用“netstat”命令;
或者可以使用ping命令先根据某计算机的IP地址、再根据它的主机名分别“碰”(ping在英文中就有碰的意思)它一下。

52. 设置IP地址
1) 以根用户身份登录进入系统。
2) 编辑/etc/hosts文件。
3) 在文件中为你的当前主机加上一行文本。保持回馈(loopback)语句(127.0.0.1)不要修改。这一行应该是下面的样子:
127.0.0.1 localhost localhost.localdomain
新语句最少由两个部分组成: IP地址和该计算机的全名(要包括域名)。如果愿意,还可以再给自己的机器起几个别名。举例来说,如果用户正在域名“colors.org”上配置IP地址为“185.36.20.3”的计算机“blue”,那么在回馈语句下面加上的那一行应该如下所示:
185.36.20.3 blue.colors.org blue
4) 保存文件并退出。任何使用了这个域名的登录活动和程序都必须重新启动运行。有的时候最简单的办法就是把计算机重新引导启动一次。

52. 给网络中的计算机命名
1) 以根用户身份登录进入系统。
2) 编辑/etc/sysconfig/network文件。
3) 找到下面的语句:HOSTNAME = localhost.localdomain
如果用户已经分配过主机名或者域名,这一行可能会有所不同。HOSTNAME字段是查找的关键字。
4) 把单词“localhost”修改为机器的名字。比如说,如果想给机器分配“blue”做名字,用户需要把这一行修改为如下所示:
HOSTNAME = blue.localdomain
5) 保存文件并退出。退出一切登录,再重新登录进入系统;然后终止并重新运行任何需要主机名信息的程序,这样新的主机名就生效了。许多时候处理这些问题最简单的方法就是快速重启动一次计算机。
你可以使用这个方法随时修改机器的名字。但是,如果其他用户把原来的名字列在其书签中的话,就会找不到原来的服务,除非其他用户知道了机器的新名字。必须强制性地修改你的DNS服务表中的主机名清单。

53. 分配域名
1) 以根用户身份登录进入系统。
2) 编辑/etc/sysconfig/network文件。
3) 找到下面的语句: HOSTNAME = localhost.localdomain
如果用户已经分配过主机名或者域名,这一行可能会有所不同。HOSTNAME字段是查找的关键字。
4) 把单词“localdomain”修改为机器所在局域网的名字。比如说,如果分配域名“colors.org”,就需要把这一行修改为如下所示:
HOSTNAME = localhost.colors.org
如果机器已经有了一个主机名,请用它的主机名取代单词“localhost”。
5) 保存文件并退出。退出一切登录,再重新登录进入系统;然后终止并重新运行任何需要主机名信息的程序,这样新的主机名就生效了。许多时候处理这些问题最简单的方法就是快速重启动一次计算机。
你可以使用这个方法随时修改分配给某个机器的域名。需要注意的是,如果域名是在因特网上,其他人就能够对之进行访问,因为域名是列在因特网全局性的DNS服务表中的。但是修改了域名之后(其前提是你必须拥有并注册了该域名),那么在找到你机器的新名字之前,别人就没有办法通过因特网找到它。千万要记住必须强制性地修改你的DNS服务表以反映新的变化。

54. 设置动态路由分配
配置动态路由分配需要设置IP转发(IP forwarding )和IP伪装(IP masquerading )两种服务。
需要内核支持,否则要编译内核。
1) 以根用户身份登录进入系统。
2) 如果路由器后面的计算机都还没有分配地址号码,现在为它们每一个分配一个。如果你正在通过路由器把它们连接到因特网上的话,它们的地址号码不应该使用正式的因特网地址(即IP地址)。反之,你应该使用为内部网络保留的地址区。这些地址区如下所示:
• A类10.0.0.0~10.255.255.255
• B类172.16.0.0~172.31.255.255
• C类192.168.0.0~192.168.255.255
但是,上面这几行有一些误导。第一个地址是为网络地址(Network address)保留的(比如说,B类网络的网络地址是172.16.0.0),而广播地址(Broadcast address)也已经保留为其中一块地址区的最后一个地址(比如说, A类网络的广播地址是10.0.0.255;B类的是172.16.0.255;C类的是192.168.0.255)。典型情况下,第二个地址(以. 1结尾的地址)是由路由器本身使用的。
3) 建立/ e t c / r c . d / r c . m a s q文件,它将包含着为你设置路由的命令脚本程序(第1 8章中有关于编写s h e l l命令脚本程序的更多内容)。
4) 在命令脚本程序的开始加上下面的内容:
# ! /bin/sh
# Tell the kernel to load necessary modules automatically , as
# described in man depmod .
/sbin/depmod -a
5) 加上下面的语句激活IP转发:
echo " 1 > /proc/sys/net/ipv4/ip_forward
“The Linux Maspuerade mini HOW- TO”建议Red Hat发行版本的用户编辑/etc/sysconfig/network文件,把语句“FORWARD_IPV4 = false”修改为“ FORWARD_IPV4 = true”。
6) 使用下面的格式为IP伪装激活超时设置:/sbin/ipchains -M -S TCPtimeout FINtimeout UDPtimeout
超时时间的计量单位是秒,每一种对应于下面几种TCP/IP数据传输状况:
• TCPtimeout选项的含义是:如果在某个TCP/IP协议下的客户/服务器连接之间没有数据堵塞,在为此连接提供服务之前路由器可以等待的时间。举例来说,如果某个用户连接到某个FTP服务器,但是又没有进一步操作,让这个连接空闲了达几个小时,甚至因为忘记了而使之空闲了一整夜,这无疑是对资源的一种浪费。这个选项通常被设置为几个小时,以避免轻率地断开操作。记住,这个几小时的时间是以秒为单位列出的。
• FINtimeout选项的含义是:在完成初始化TCP/IP连接之后(收到“FIN”数据包),为此连接提供服务之前,路由器可以等待的时间,这个选项通常被设置为几秒,从大概10秒钟到30秒钟,因为一般初始化连接之后数据就应该开始传输了,不应该马上就没有了音讯。
• UDPtimeout选项的含义是:如果在某个UDP协议下的客户/服务器之间的数据流没有堵塞,在为此连接提供服务之前路由器可以等待的时间。由于UDP并不像TCP/IP那样一直保持住一个稳定的连接,因此其等待时间相对来说要短得多,典型情况下是几分钟。
7) 加上下面这两行代码,允许实际的转发功能生效:
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s network/subnetmask -j MASQ
其中的“network”是你的系统分配到的网络号码,而“subnetmask”是子网掩码最后一部分,即最后一个小数点后面的数字。
8) 现在,你必须为每一项服务加载有关的模块,这些服务都需要使用IP伪装功能以便从路由器后面访问因特网。
9) 保存文件并退出。
10) 把这个文件的权限修改为700。
11) 打开/etc/rc.d/rc.local文件。
12) 在其中加上下面的语句以调用你的命令脚本程序:
/etc/rc.d/rc.masq
13) 保存文件并退出。
注意千万记住要把同一LAN中的其他机器都设置为使用路由器作为它们的网关。
服务模块 加载程序代码
CuSeeme呼叫 /sbin/modprobe ip_masq_cuseeme
FTP文件传输 /sbin/modprobe ip_masq_ftp
IRC DCCtransfer网上聊天 /sbin/modprobe ip_masq_irc
Quake I/II/III/World游戏 /sbin/modprobe ip_masq_quake
UDP RealAudio实时音频传输 /sbin/modprobe ip_masq_raudio
VDO Live实时视频传输 /sbin/modprobe ip_masq_vdolive

55. 为计算机配置域名解析
如果想在你的LAN中配置域名解析服务(Domain Name Service,简称DNS),需要编辑好几个文件。首先你必须告诉系统使用什么样的DNS服务。还需要了解必须以什么样的顺序来使用这些服务,以及你想设置什么参数。初始化安装过程中的缺省设置对大多数人的使用要求一般来说就足够了。
通常并不需要修改/etc/host.conf文件中的内容。如果你需要修改这个缺省文件的话,请按照下面给出的步骤进行操作。
1) 以根用户身份登录进入系统。
2) 编辑/etc/host.conf文件。
3) 根据你的网络的具体情况设置有关选项。
4) 保存文件并退出。
如果有必要进行编辑,就必须在LAN中的每一个计算机上分别编辑其etc/ host.conf文件,即使你不打算在自己的局域网上运行一个D N S服务器计算机也需要这么做。只有在完全独立的机器上才不需要这么做。
当用户完成对/etc/host.conf文件的编辑修改之后(如果确实有必要这样做),还需要再配置DNS本身。请按照下面的方法进行操作:
1) 以根用户身份登录进入系统。
2) 编辑/etc/resolv.conf文件。
3) 根据用户的DNS具体情况设置有关的选项。
4) 保存文件并退出。
/etc/host.conf文件中的选项
选项 数据格式 用途
选项: alert
数据格式:On或者Off
用途:监监察是否有尝试进行IP地址欺诈的操作。如果该选项被设置为“on”,则任何类似的尝试都就被记录在各种系统日志文件中
选项: multi 数据格式:On或者Off
用途:监决定主机是否允许因为主机查询的目的而在/etc/hosts文件中有不止一个IP地址
选项: nospoof 数据格式:On或者Off
用途:监通过使用反向DNS域名解析方法匹配连接的主机名及其IP地址,防止IP地址欺诈。使用这个选项的负载将增加在你的域名服务器上
选项: order 数据格式:hosts,bind,nis
用途:监指定各种DNS域名解析服务的使用顺序。其中host选项告诉系统检查/etc/hosts文件; bind选项告诉系统去咨询某个DNS服务器;NIS选项指向网络信息服务(Network Information Service)来解析主机名。用户可以使用1、2或者全部3个选项。如果用户使用了不止一个选项,请使用一个空格字符分开它们.
选项: trim 数据格式:域名
用途:监告诉系统删除某个域名,并只查看/etc/hosts文件来解析IP地址。这样做对加速本地网络的域名解析很有用处,特别是在用户还遇到其他DNS问题的时候

resolv.conf文件中的选项
选项: domain 数据格式: 域名
用途: 告诉DNS域名解析用户LAN的域名是什么
选项: nameserver 数据格式: 域名
用途: 服务器的一个或者多个IP地址监告诉系统到什么地方把域名解析为IP地址。用户可以列出最多3个域名服务器的IP地址。如果其中的某个没有解析成功,解析器程序会转向下一个
选项: search 数据格式: 域名
用途: 一个或者多个域名监设置人们在LAN上经常使用的缺省域名。如果某个域名没有被包括一个查询中,解析器程序将尝试使用search选项列出的域名。没有必要把该LAN的域名放在search选项上.

56. 配置一个NFS文件服务器计算机
配置网络文件系统(Network File System,简称NFS)实现文件共享。它的基本功能就是允许用户可以跨操作系统挂装硬盘分区。
如果用户选择使用NFS,那么网络协议就必须使用TCP/IP。
1) 以根用户身份登录进入系统。
2) 编辑/etc/rc.d/init.d/inet文件。
3) 在那个长“if”语句部分的紧下面,加上如下所示的语句:
/sbin/portmap
4) 保存文件并退出。这样portmap命令将在开机引导启动的时候自动运行。
5) 输入“/sbin/portmap”命令立刻运行portmap命令。
6) 编辑/etc/exports文件。
用户必须对每一台允许挂装其分区的机器中的exports文件都进行修改。
7) 为准备允许外部系统共享的那些机器中的每一个文件系统建立一个数据项。举例来说,
如果想把地址blue.colors.org处的目录/home及其内容设置为允许colors.org中所有机器都能够以只读权限进行访问,用户应该加上如下所示的语句:
/home*.colors.org(r)
NFS挂装参数
参数 用途
secure\*d 只接受来自小于1024号的因特网端口的导出请求。缺省值是on
insecure 接受来自任何因特网端口的导出请求
ro 不允许NFS用户对导出共享卷(硬盘分区)执行写操作
rw 允允许NFS用户对导出共享卷(硬盘分区)执行写操作。缺省值是on。使用这个参数的时候要谨慎,不要再让任何人都可以访问这个卷
noaccess 允阻止NFS客户看到或者访问当前位置以下的目录
link_relative 允把所有以斜杠字符( /)打头的符号链接转换为相对链接,方法是在它们的前面加上适当数量的斜杠字符和点作为引导(比如: . . / . . / . . /),使之指向正确的目录
link_absolute 允保持符号链接不变。缺省值是on
8) 保存文件并退出。
9) 编辑/etc/exportfs文件。
10) 输入如下所示的内容:
# ! /bin/sh
killall -HUP /usr/sbin/rpc.mountd
killall -HUP /usr/sbin/rpc.nfsd
11) 把这个文件的存取权限修改为555。
12) 输入“exportfs”命令。
每次修改过exportfs文件之后,用户都必须运行exportfs命令。
13) 把路径切换到目录/usr/sbin。
14) 输入“rpc.mountd”命令运行mountd守护进程。
15) 输入“rpc.nfsd”命令运行nfsd守护进程。

57. 配置一个NFS客户计算机
下面的方法自动挂装用户机器可以使用的NFS分区:
1) 以根用户身份登录进入系统。
2) 编辑/etc/fstab文件。
3) 在这个文件中,为用户想挂装的每一个分区加上一个数据项。比如说用户准备把地址yellow.colors.org处的计算机配置为开机自动挂装地址blue.colors.org处的/home分区。那么需要加上如下所示的一行内容:
blue:/home /mnt/blue nfs rsize = 1024 , wsize = 1024 , hard , intr 0 0
如果只是想临时性地挂装NFS文件系统,请使用格式“ mount host:/directory /mountpoint”。举例来说,要想把计算机purple.colors.org里的/home/bruce目录通过NFS服务挂装到同一个域名中的挂装点/mnt/bruce上的话,请输入“mount /purple:/home/bruce /mnt/bruce”命令。

58. Samba(SMB,即Session Message Block协议,任务消息块协议)
Samba是通用Internet文件系统(Common Internet File System,简称CIFS)的一个具体实现,而CIFS则是以微软公司Windows操作系统内所使用的文件和打印机访问协议为基础的。适用于其他类型操作系统的CIFS工具也已经开发出来,使不同网络之间能够更容易地共享数据。
如果有许多人需要通过网络服务访问文件,并且还极有可能会在同一时间对文件进行存取的话,请使用Samba服务代替NFS服务。因为NFS服务不锁定文件,所以多个用户可以在同一时间里访问同一个文件并试图对之进行修改,而最终的结果是只能够有一个用户的修改被保存下来。另一方面,CIFS客户程序和服务器程序却能够跟踪对文件的存取访问,在某个文件被打开的时候,对它进行“锁定”。这样在这个文件存盘并退出操作之前,其他人是不能再打开它的。
另外一个选择Samba代替NFS的基本理由是:采用微软公司的Windows作为操作系统的计算机不支持NFS,因此用户无法通过NFS服务跨Linux/Windows网络访问数据。
Samba的组成部分
整个Samba包括两个服务器组件(守护进程)、两个客户程序和一个管理工具程序。这些不同的组件在Samba套装软件中各有其特定的作用。
A. 硬盘驱动器和打印机共享
服务器组件smbd负责硬盘驱动器和打印机的共享。对smbd服务器程序进行访问的客户端组件是smbclient程序。
B. 域名解析和浏览
服务器组件nmbd将激活NetBIOS信息的管理和传递。它还可以跨整个网络提供一系列文件和打印服务。这些服务能够被网络中的其他机器浏览。用来访问nmbd服务器程序的客户程序是nmblookup。
注意如果用户选择安装的是服务器级别的Linux操作系统,那么smbd和nmbd服务器程序就将已经安装并运行在用户的系统中了。而且,在系统的开机引导文件中,它也已经被配置为直接运行。
查看Samba守护进程是否正在运行
以根用户身份登录进入系统并输入命令组合“ps -aux | grep *bd”。如果在进程清单中看到smbd和nmbd,说明这两个进程正常运行着。
具体安装及配置详细见网络相关专题教程。

59. Linux软件常用发行方式:源代码(source),二进制代码(binaries), RPM包, DEB包等
tar档案文件 .tar扩展名 使用tar命令压缩 .tgz或者.tar.gz后缀的文件往往把tar命令和gzip命令结合起来压缩
GZip压缩 .gz或者 .z 扩展名
Z压缩 .Z扩展名 使用compress文件压缩程序
zip 压缩 .zip 采用zip程序压缩过的文件

A. RPM常见用法:
1).安装一个RPM软件包
• rpm -i—用来安装一个新的软件包。
• rpm -U—用来升级一个新的软件包,如果它不存在就进行安装。
• rpm -F—用来升级一个新软件包,即使它不存在也不进行安装。
• -v—用来查看安装过程的各种信息。
• -h—用来在安装过程中显示进度条。
一个常用的组合形式如下所示:
rpm -Uvh package-name.rpm
这个命令升级或者安装新的软件包,同时显示安装信息和进度条。你可以用参数i或者F换掉参数U。
2). 删除一个R P M软件包 rpm -e package-name
3). “rpm -qa”命令列出用户已经安装的R P M包清单
如果用户想查看是否已经安装了某个软件包,请输入“rpm -q package-name”命令。
4) 查看一个R P M软件包中都有哪些文件
• 如果还没有安装这个软件包,使用命令: rpm -qlp package-name.rpm
• 如果已经安装了这个软件包,使用命令: rpm -ql package-name
5). 确定某个文件在哪个RPM软件包里 “rpm -qf file-with-full-path”。
举例来说,如果用户想看看目录/etc/rc.d/init.d /中的httpd属于哪个软件包,输入“rpm-qf /etc/rc.d/init.d/httpd”命令。
6). 确定某个RPM软件包的用途 “rpm -qip package-name.rpm”
B. 使用tar档案文件
1). 列出一个t a r档案文件的内容清单 tar -tf filename.tar 或者 tar -tvf filename.tar
2). 对文件进行解tar归档操作 tar -xvf filename.tar
参数x表示解包,参数v表示显示信息,参数f告诉tar命令后面跟着一个文件名
3). 从tar 档案文件中只解包README文件 tar xf achive.tar dir/README > README
举例来说,有一个名为program.tar的档案文件,并且在它的目录结构中看到列出了home/bruce/Read.me的内容,那么就应该输入命令:tar xf program.tar home/bruce/Read.me > README
注意在进行上面的操作时也可以不使用重定向,但是这样就会按照档案文件中包含的目录结构建立这个文件。因此,如果上面的例子中在命令的结尾处没有使用重定向的话,这个Read.me文件就会被解包到home/bruce目录中。
4) 建立一个tar档案文件
找到你想对它们进行归档操作的目录或文件,决定是否允许档案文件被恢复到一个相对路径或者决对路径,把路径切换到你想对之进行归档操作的目录或者文件的上一级父目录中。比如说,如果想对/var/spool/mail目录进行归档操作,就切换到/var/spool目录中。输入“tar cvf archiev.tar directory”命令,建立档案文件,命令中的archive.tar是新档案文件的名字,directory是对之进行归档操作的目录的名称。还是用上面的例子,如果打算把/var/spool/mail目录归档到mail-arc hive.tar文件中去,需要从/var/spool目录中输入“ tar cvf mail-archive.tar mail”命令。
5). 向现有tar档案文件中添加文件 tar rf mail-archive.tar mail-to-add

C. 使用GZip压缩
"gzip file"命令生成file.gz文件,“gunzip file”命令,解压缩Gzip压缩的文件
.tar档案还可以用gzip压缩得到.tar.gz

60. Linux目录结构
/ 文件系统的根目录
/bin 正确完成命令功能所必须的二进制代码
/boot 开机引导加载程序(LILO)需要的文件
/dev 用来告诉Linux操作系统如何对硬件设备进行各种操作的设备文件
/etc 用于某个特定机器的配置文件
/home 用户目录开始的位置
/lib 根文件系统中各种程序共享的函数库
/mnt 挂装临时文件系统的位置,通常它自身会明确构成一个目录结构。
/opt 某些套装软件二进制程序安装的位置
/root 根用户的用户目录
/sbin 正确完成系统功能所必须的二进制代码
/tmp 用户们和各种程序使用的临时文件
/usr 供大多数或全部用户使用的公共应用程序,文件系统的这个部分通常保存在作为服务器的某个特定的计算机上,然后由LAN中的所有机器进行挂装,这样做可以保证只有一个中央/usr管理入口
/var 程序日志之类的可变化数据

61. 编译安装源代码
阅读源代码中的README文件或者INSTALL文件。一般步骤:
1) make config—检查系统设置并建立专用的配置文件,这个专用配置文件将用来建立安装用的程序。
2) make clean—把以前不成功的编译过程中留下的任何文件都删除。
3) make—针对缺省的目标开始制作,在这一步实际完成对程序的编译操作。
4) make install—把程序的各个组成部分放到适当的位置,给它们分配各自的所有者权限和存取权限。
make all >out 可以把制作编译过程中全部的输出信息都放到这个名为out的文件中去,以记录并方便查阅编译问题。

62. 安装二进制代码
1) 如果它是经过压缩或归档操作的,先把它解压缩到一个临时目录中。
2) 仔细阅读随软件包而来的任何README或者INSTALL文档。查看一下制作文件也不会有什么问题。如果你愿意,就可以在其中进行一些诸如改变安装缺省路径之类的修改。
3) 输入“make install”命令。

63. 把软件包添加到用户的PATH语句中
如果使用的是bash或者korn shell,就可以使用下面的方法把一个新的目录添加到PATH语句中:
1) 登录进入你想改变其PATH语句的帐户。
注意如果想一次性为全部用户改变PATH路径,请以根用户身份编辑/etc/profile文件。
2) 输入“PATH = $PATH: additional-path”命令,把一个新路径添加到这个帐户当前的path语句中。
举例来说,如果你想把“/usr/local/bin”添加到path语句中,应当输入“PATH=$PATH:/usr/local/bin”命令。
注意要想查看完整的path语句,请输入“echo $PATH”命令。

64. 建立系统备份:
A. 进行一次完全备份
1) 在文件系统中选择希望进行备份的部分。
2) 确定这些选定的部分什么时候使用得比较少。这样做是为了在备份进行的时候,力求文件不会发生太大的变化。
3) 在文件系统中挂装备份介质, 输入"mke2fs /dev/driver”命令格式化备份目的磁盘(软盘,闪存盘或者移动硬盘)
4) 使用tar软件包把有关的文件打包. tar cfzM /dev/driver /
5) 如果存储空间是一个值得考虑的因素,可以使用gzip命令压缩第4步生成的文件。
给打包好的档案文件取一个有意义的名称,尽量包括那些一看就能明白其意思的信息:比如版本号、城市名称或者其他可以帮助回忆的关键词(术语)。
6) 如果没有直接把档案文件打包存放到备份介质上的话,现在把它拷贝上去。
7) 给备份介质贴上标签,标签中应包括诸如档案文件建立日期以及档案文件内容等信息。
8) 把备份介质保存到一个安全并容易找到的位置。
B. 向一个现有的tar备份文件中添加文件
tar rfz /dev/device /item_to_add
C. 从磁带或软盘中恢复完全备份
1) 对那些在准备恢复的档案文件建立之后又经过修改的文件进行备份。
2) 把第一个磁带或软盘放入驱动器。
3) 输入下面的命令把系统恢复到进行完全备份时的状态:
tar xfsM /dev/driver
4) 从刚才第1步建立的备份中恢复新修改过的文件。

D. 如果想让备份工作能够自动地执行,可以编写一个运行必要程序的命令脚本,然后把这个命令脚本添加到定期的cron工作中去。

65. 管理系统
使用last命令列出成功登录的记录清单。如果想列出比缺省数目更多的记录,使用格式“last -n number”告诉last命令需要显示多少登录记录.以根用户身份执行“touch /sar/log/wtmp”命令来建立日志记录文件
lastb命令列出不成功登录的记录清单,也有last的-n参数. 以根用户身份执行"touch /var/log/btmp"命令来建立日志记录文件.


11.最后是Linux学习的路线图:

1.        掌握至少50个以上的常用命令。  
2.        熟悉Gnome/KDE等X-windows桌面环境操作 。
3.        掌握.tgz、.rpm等软件包的常用安装方法
4.        学习添加外设,安装设备驱动程序(比如网卡)
5.        熟悉Grub/Lilo引导器及简单的修复操作 。
6.        熟悉Linux文件系统 和目录结构。
7.        掌握vi,gcc,gdb等常用编辑器,编译器,调试器 。
8.        理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。
9.        学习Linux环境下的组网。

以上是笔者学习Linux一些经验,希望对你有些帮助
阅读(2513) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~