Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

装完linux后应该知道的事(zt)

[复制链接]
xmfish 发表于 2005-8-25 22:17:16 | 显示全部楼层 |阅读模式
1  装完linux后应该知道的事

一. 启动系统

  通常LILO是安装在MBR上的,计算机启动后,MBR上的程序被执行,将出现一个不是很漂亮的图形:左边是一个小红帽图像,右边列出了可以启动 的操作系统,你可以使用键盘箭头切换。刚安装好后默认值是Linux,也就是你不选择,一会儿将自己启动Linux。如果你想默认的选择是Windows的话,那你可以在启动Linux后,用vi修改/etc目录下的lilo.conf文件,加上default=windows,然后再执行/ sbin/lilo重新生成LILO。

二. 用户登录

  Linux是一个真正意义上的多用户操作系统,用户要使用该系统,首先必须登录,使用完系统后,必须退出。用户登录系统时,为了使系统能够识 别该用户,必须输入用户名和密码,经系统验证无误后才可以登录系统使用。

  Linux下有两种用户:

  1) root用户:超级权限者,系统的拥有者,在Linux系统中有且只有一个root用户,它可以在系统中任何操作。在系统安装时所设定的密码就是 root用户的密码。

  2) 普通用户:Linux系统可以创建许多普通用户,并为其指定相应的权限,使其有限地使用Linux系统。

  关于用户的管理,我们将在后面详细说明。

  用户登录分两步进行:

  1) 输入用户的登录名,系统根据该登录名来识别用户;

  2) 输入用户的口令,该口令是用户自己选择的一个字符串,对其他用户完全保密,是登录系统时识别用户的唯一根据,因此每一个用户都应该 保护好自己的口令!

  系统在建立之初,仅有root用户,其它的用户则是由root用户创建的。由于root用户的权限太大了,所以如果root用户误操作将可能造成很大的 损失。所以建议系统管理员为自已新建一个用户,只有需要做系统维护、管理任务时才以root用户登录。

  下面就是一个登录实例:(其中黑体字为输入)

Red Hat Linux release 7.1 (Seawolf)
Kernerl 2.4.2-2 on an i686
Home login:root
Password:


  在上面的例子中,我们发现在Password后面是空的,其实并不是不输入密码,而是在输入时,Linux系统不会把它显示出来,这样用来保护密码!

  如果登录成功的话,我们将获得Shell(Shell是用来与用户交互的程序,它就象DOS中的COMMAND.COM,不过在Linux下可以有多种 Shell供选择, 如bash、csh、ksh等)提示符,如果以root用户登录的话,那么获得的提示符是“#”,否则将是“$”。

  提示:如果当时在安装时设置为一启动就进入图形界面的话,那系统启动后,用户登录界面将是图形化的,有点象Windows,而且当你输入正确的 用户名与密码,就会直接进入X Window。这个设置是可以修改的:在/etc目录下有一个inittab文件,其中有一行配置:id:3:default
其中,数字3就是代表一启动进入字符终端,如果改为5则代表一启动进入X Window。

三. 修改口令

  为了更好地保护用户帐号的安全,Linux允许用户在登录之后随时使用passwd命令修改自己的口令。修改口令需要经历:

  1) 输入原来的口令,如果口令输错,将中止程序,无法修改口令;

  2) 输入新的口令;

  3) 提示重复一遍新的口令,如果两次输入的口令相吻合,则口令修改成功。

  需要注意的是,为了更好地保护口令,如果你输入的新口令过于简单,它将会拒绝修改。下面就是一个修改口令的实例:(其中黑体字为输入)

$ passwd
Changing password for user1
(current) UNIX password: 输入原来的密码
New UNIX password: 输入新的密码
Retype new UNIX password: 再输入一遍新的密码
Passwd:all authentication tokens updated successfully 修改成功!


  注意,在这里输入的口令同样不会显示出来。而如果是root用户修改口令,则不需要输入老密码!也就是说,它可以修改任何用户的口令。

四. 退出登录

  不论你是root用户还是普通用户,只需简单地执行exit命令就可以退出登录。

五. 关闭机器

  在Linux系统中,普通用户是无权关闭系统的!只有root用户才能够关闭它。当然如果你是按关机按钮则别当别论。我们可以通过以下几种方法实 现:

  1) 按下CTRL+ALT+DEL组合键,这样系统将重新启动!

  2) 执行reboot命令,这样系统也将重新启动!

  3) 执行shutdown -h now命令,这样系统将关闭计算机!

  4) 执行halt命令,可以关闭计算机。

  注意千万不要随意采用硬关机、重启动键等方式关闭系统,那样会导致Linux文件系统遭受破坏!

六. 虚拟控制台

  Linux是真正的多用户操作系统,可以同时接受多个用户的远程和本地登录,也允许同一个用户多次登录。Linux为本地用户(也就是做在计算机 面前的用户)提供了虚拟控制台访问方式,允许用户在同一时间从不同的控制台进行多次登录。

  虚拟控制台的选择可以通过按ALT键加上F1-F6六个功能键来实现。例如,用户登录后,按一下ALT+F2组合键,用户又可以看到“login:”提示 符,这其实就是第二个虚拟控制台,而这时再按下ALT+F1组合键,用户则又可以回到第一个虚拟控制台。

  大家可以通过使用虚拟控制台来感受Linux系统多用户的特性。例如用户可以在某一虚拟控制台上进行的工作尚未结束时,就可以切换到另一个虚拟控制台上开始另一项工作。例如在开发软件时,可以在一个控制台上编辑程序,在另一个控制台上进行编译,在第三个控制台上查阅信息。
 楼主| xmfish 发表于 2005-8-25 22:17:34 | 显示全部楼层
Linux的基本文件说明

来源:ChinaITLab 收集整理
2005-6-11 12:02:00
  


  启动引导程序配置文件
  LILO /etc/lilo.conf
  GRUB /boot/grub/menu.lst
  
  系统启动文件核脚本
  主启动控制文件 /etc/inittab
  SysV启动脚本的位置 /etc/init.d、/etc/rc.d/init.d或/etc/rc.d
  SysV启动脚本链接的位置 /etc/init.d/rc?.d、/etc/rc.d/rc?.d或/etc/rc?.d
  本地启动脚本 /etc/rc.d/rc.local、/etc/init.d/boot.local或/etc/rc.boot里的文件
  
  网络配置文件
  建立网络接口的脚本 /sbin/ifup
  保存网络配置数据文件的目录 /etc/network、/etc/sysconfig/network和/etc/sysconfig/network-scripts
  保存解析DNS服务的文件 /etc/resolv.conf
  DHCP客户端的配置文件 /etc/dhclient.conf
  
  超级服务程序配置文件和目录
  inetd配置文件 /etc/inetd.conf
  TCP Wrappers配置文件 /etc/hosts.allow和/etc/hosts.deny
  xinetd配置文件 /etc/xinetd.conf和/etc/xinetd.d目录里的文件
  
  硬件配置
  内核模块配置文件 /etc/modules.conf
  
  硬件访问文件
  Linux设备文件 /dev目录里
  保存硬件和驱动程序数据的文件 /proc目录里
  
  扫描仪配置文件
  SANE主配置 /etc/sane.d/dll.conf
  特定扫描仪的配置文件 /etc/sane.d目录里以扫描仪型号命名的文件
  
  打印机配置文件
  BSD LPD核LPRng的本地打印机主配置文件 /etc/printcap
  CUPS本地打印机主配置和远程访问受权文件 /etc/cups/cupsd.conf
  BSD LPD远程访问受权文件 /etc/hosts.lpd
  LPRng远程访问受权文件 /etc/lpd.perms
  
  文件系统
  文件系统表 /etc/fstab
  软驱装配点 /floppy、/mnt/floppy或/media/floppy
  光驱装配点 /cdrom、/mnt/cdrom或/media/cdrom
  
  shell配置文件
  bash系统非登录配置文件 /etc/bashrc、/etc/bash.bashrc或/etc/bash.bashrc.local
  bash系统登录文件 /etc/profile和/etc/profile.d里的文件
  bash用户非登录配置文件 ~/.bashrc
  bash用户登录配置文件 ~/.profile
  
  XFree86配置文件核目录
  XFree86主配置文件 /etc/XF86config、/etc/X11/XF86Config或/etc/X11/XF86Config-4
  字体服务程序配置文件 /etc/X11/fs/config
  Xft 1.x配置文件 /etcX11/XftConfig
  Xft 2.0配置文件 /etc/fonts/fonts.conf
  字体目录 /usr/X11R6/lib/X11/fonts和/usr/share/fonts
  
  Web服务程序配置文件
  Apache主配置文件 /etc/apache、/etc/httpd或/httpd/conf里的httpd.conf或httpd2.conf文件
  MIME类型文件 与Apache主配置文件在同一目录里的mime.types或apache-mime.types
  
  文件服务程序配置文件
  ProFTPd配置文件 /etc/proftpd.conf
  vsftpd配置文件 /etc/vsftpd.conf
  NFS服务程序的输出定义文件 /etc/exports
  NFS客户端装配的NFS输出 /etc/fstab
  Samba配置文件 /etc/samba/smb.conf
  Samba用户配置文件 /etc/samba/smbpasswd
  
  邮件服务程序配置文件
  sendmail主配置文件 /etc/mail/sendmail.cf
  sendmail源配置文件 /etc/mail/sendmail.mc或/usr/share/sendmail/cf/cf/linux.smtp.mc或其他文件
  Postfix主配置文件 /etc/postfix/main.cf
  Exim主配置文件 /etc/exim/exim.cf
  Procmail配置文件 /etc/procmailrc或~/.procmailrc
  Fetchmail配置文件 ~/.fetchmailrc
  
  远程登录配置文件
  SSH服务程序配置文件 /etc/ssh/sshd_config
  SSH客户端配置文件 /etc/ssh/ssh_config
  XDM配置文件 /etc/X11/xdm目录下
  GDM配置文件 /etc/X11/gdm目录下
  VNC服务程序配置文件 /usr/X11R6/bin/vncserver启动脚本和~/.vnc目录里的文件
  
  其他服务程序配置文件
  DHCP服务程序配置文件 /etc/dhcpd.conf
  BIND服务程序配置文件 /etc/named.conf和/var/named/
  NTP服务程序配置文件 /etc/ntp.conf
回复

使用道具 举报

 楼主| xmfish 发表于 2005-8-25 22:18:09 | 显示全部楼层
合格的LINUX系统管理员

在很多国内的自由LINUX论坛上,我们都可以发现有很多LINUX爱好者提出的各种各样的问题。其中包括LINUX安装、故障解决、用户管理等等问题。在这些问题当中,最突出的就有如何成为一名合格的LINUX系统管理员,还有就是成为一名LINUX系统管理员都需要具备什么样的基本条件。尽管目前使用LINUX的朋友很多,可是真正能有条件用LINUX来构造网络并提供网络服务的人并不多,大多数LINUX爱好者是在校大学生和一些从WINDOWS投入LINUX怀抱的初学者。成为一名合格的LINUX系统管理员我想是很多LINUX爱好者的梦想。下面笔者就来简要的谈谈如何成为一名合格的LINUX管理员。

要成为一名合格的LINUX管理员,一般来说都要懂得如下几点规则:

规则1:了解LINUX的一切。首先,在了解以下规则之前,笔者必须向大家说明的是,即使最基本的LINUX系统管理员都是要经过不断的学习和长时间实践才能真正了解整个LINUX操作系统和网络的。如果您还是一名刚刚入门的LINUX新手或者对LINUX了解不多,在这样的情况下如果要成为一名合格的LINUX系统管理员,那么笔者建议您先花点时间和耐心学习和了解清楚LINUX,如果您对LINUX有足够的了解,能够像操作WINDOWS那样熟悉LINUX了,那您就可以进一步学习,去实现一个合格的LINUX系统管理员的梦想了。
规则2:如果您不能真正的了解LINUX的一切,那最少要知道如何才能找到,在哪里才能找到您所需要的LINUX信息和知识。一般来说,作为LINUX系统管理员,您至少有几本比较全面的LINUX工具书,其中最好包括LINUX安装,LINUX网络配置,LINUX系统分析,LINUX使用大全之类的原版工具书。国内大多数的LINUX工具书为翻译外国的。在这里也向大家推荐基本比较好的工具书,尽供您参考选购:
《RED HAT 6 大全》--机械工业出版社(LINUX与自由软件资源丛书)ISBN 7-111-07946-9
此书内容翔实,涉及领域广泛,并且提供了详细的例子和大量的参考资料,包括书籍,光盘和电子文档和INTERNET站点,是一本学习,使用和管理LINUX的较好工具书。适合LINUX中级用户。

《LINUX常用技术大全》--电子工业出版社出版 ISBN 7-5053-5460-2
此书摘录了LINUX文档项目中的上千页资料,提供了LINUX操作系统的综合信息。本书符合各种计算机用户使用。中级用户可以通过此书更加深入的了解和利用LINUX。高级用户可以将此书作为使用LINUX操作系统的高级参考手册。

《红旗,RED HAT LINUX开发及网络应用》--人民邮电出版社出版 ISBN 7-115-08978-7
此书适合广大LINUX爱好者阅读,对使用LINUX的组网用户和提供管理员有很大的帮助。

有了以上这些工具书也许并不能完全满足一个系统管理员的需要,毕竟没有一本书是完全能概括LINUX的全部的。您这时需要学会如何从一大堆的书籍和资料中查找到您需要的知识和信息。另外需要指出的是,由于世界上有很多种LINUX发行版本,每一种LINUX发行版本的操作和使用甚至参数配置文件都不尽相同,所以建议大家在购买,下载LINUX发行版本的时候注意购买该版本的官方版的资料和参考书籍,以方便今后管理系统之用。

规则3:如果您无法从各种渠道获取您所需要的信息,请试着用自己的方法来解决问题。不是所有的LINUX故障书籍上都有解答,也许这些您遇到的希奇古怪的问题别人也无法回答您,这时候您就需要自己动手动脑来研究解决了。最后建议您在LINUX自由论坛上公布您遇到的问题和解决方案,以方便别人在遇到同类问题的时候无需花费太多的精力来解决。
规则4:随时准备一本便于携带的LINUX系统用户参考手册,您在旅途中,在等公共汽车的时候,在任何空闲的时间来阅读。这可是国外一名资深的LINUX系统管理员的成功经验。他说他在学习LINUX的时候每天都要花上2-3个小时的空闲时间来仔细阅读各种LINUX命令,来研究LINUX的安全问题。毕竟LINUX是一个正在发展的操作系统,如果没有足够的时间对它的方方面面进行研究的话,您很难成为一名优秀的LINUX系统管理员。
除了以上这些学习LINUX的门道之外,成为一名合格的LINUX系统管理员更重要的是要掌握很多技巧和专业知识。

技巧1:熟悉TCP/IP和LINUX提供的各种网络服务,如DNS,SMTP,UDP,HTTP,FTP,POP3等等。以及要知道LINUX程序, LINUX平台下软件的安装,调试和维护。总之,和LINUX有关的知识懂得越多越好。
技巧2:如果可以的话,最好能熟悉尽可能多的操作系统。这一点很重要,很多朋友也许认为作为一名LINUX系统管理员只有精通LINUX就可以了。事实上LINUX提供了网络服务,很多其他的操作系统都有可能作为客户端,所以作为LINUX系统管理员,有时候您不得不需要解决LINUX和其他的操作系统之间的通讯,安全等问题。一般,熟悉微软的WINDOWS系列操作系统不难,重要的是我们应该对Solaris,Linux,IRIX,HPUX,PPC等系统及其硬件平台都要有所了解。
技巧3:熟悉网络,网络理念和硬件。操作系统是管理整个计算机硬件的最大的程序,LINUX也不例外。无论是台式PC还是笔记本电脑,甚至是大型的网络服务器,LINUX都能对其进行很好的管理。这就要求LINUX系统管理员要熟悉LINUX所控制的硬件平台,因为只有这样才能很好的发挥计算机硬件的最大优势。其实,如果LINUX不是用来提供网络服务,那就是极大的浪费了,大家都知道LINUX要比微软的操作系统稳定、安全。要记住,LINUX能提供一整套很完整的网络服务,如果您在商业公司作一名LINUX系统管理员,那么您必须要对网络及其网络理念有清楚的认识,能够独立完成整个网络和网络服务的配置工作。
技巧4:备份系统和文件恢复。这是LINUX系统管理员最重要的工作之一。每天对LINUX系统和重要文件进行备份是一名有责任心的LINUX系统管理员必须做的工作。事实上,对LINUX系统和文件进行备份无论从硬件还是软件技术上目前都没有什么太大的问题,问题往往出现在系统管理员忘记备份文件或者抱着侥幸的心理,一旦您的LINUX服务器受到攻击,文件损失殆尽,那么您就无法恢复原有文件,一切损失的责任也只能由您负责了。选用LINUX中的定期备份软件和好的备份磁盘磁带都能为您节省不少备份的时间。只要您做到经常,定期备份数据,那么即使LINUX服务器出了再大的问题,一切都能恢复原样的。
技巧5:掌握好一门脚本语言。大家都知道很多LINUX软件的安装都是通过脚本语言来进行的。BASH和PERL是不错的选择。掌握脚本语言另外一个很大的优势就在于能读懂其他LINUX程序员的程序和开发构想,也能方便您在需要的时候修改别人的程序。PERL语言功能强大,学习起来也比较容易。
技巧6:注意LINUX的安全问题。这也是LINUX当中最复杂,最富有挑战性的话题了。同时,LINUX的安全问题也给LINUX系统管理员很大的压力。我认为,安全性实际上取决于用户遵循某种策略的自觉性,安全性措施在很多操作系统上和许多公司中造成了冲突。用户需要完成他们的工作,系统管理员需要把不合理的请求拒之于系统之外;公司管理部门需要保守公司的机密,在许多方面,安全性是最难取得用户配合的领域,但是实际上这是最重要的领域。
对于LINUX系统管理员来说,我可以提供的一个忠告就是:“最好的用户也只是根据您所遵循的策略去做,如果您有忽视安全性的坏习惯,他们就只能更糟糕。”从另外一个方面来说,人们通常提出要求显示或者查看最底层的消息,这超出了系统管理员的职责范围,应友好的指出并做改进。与此同时,要极力阻止那些企图通过LINUX后门进入系统的黑客。由于LINUX的安全问题覆盖的范围很广泛,限于篇幅,在这里也就无法进行谈论了。


有人曾经说过,点滴知识就能获得长久的应用。这句话对于那些想成为或者已经成为了一名LINUX系统管理员是再合适不过的了。
回复

使用道具 举报

 楼主| xmfish 发表于 2005-8-25 22:18:28 | 显示全部楼层
Linux常用词汇及术语大全

对于初涉Linux世界的Microsoft Windows用户而言,有许多新的术语需要学习。本词汇表简明地解释了 Linux 产品常用的许多术语、首字母缩写词和缩写的意思和意义。(其中有些术语并不是Linux所特有的,但许多Windows用户可能仍然对它们感到很陌生。)本文档将有助于澄清对 Linux的一些混淆;但是,这里并没有包含最常用的硬件、软件和通信方面的术语,这是因为在别处很容易找到它们。
     
     注:为使定义简短,所以其中有些可能过于简化。这些定义并不用来作为详细的教程,而只是用来为新用户做一个大体的解释。
     
     如果不能在这里找到您要找的单词,那么另有许多其它来源可供选择,这些来源同样是关于首字母缩写词、缩写和通用计算术语的(这些术语并不全都特定于Linux)。由于一些术语可能会在某一本字典中出现但没有在另一本字典中出现,也由于某个来源中的一些定义可能比其它来源中的定义更清晰或者更全面,因此下面按照字母顺序给出了供您选择的来源:
     
     PC硬件与数据通信术语字典(Dictionary of PC Hardware and Data Communications Termswww.oreilly.com/reference/dictionary)
     
     免费在线计算字典(Free Online Dictionary of Computing,wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?Free+On-line+Dictionary)
     
     PC 与因特网术语词汇表(homepages.enterprise.net/jenko/Glossary/G.htm)
     
     IBM 计算字典(www.networking.ibm.com/nsg/nsgmain.htm
     
     Kadow 因特网与 UNIX(R) 字典www.msg.net/kadow/answers
     
     Linux 指南(Linux Guidewww.firstlinux.com/guide)
     
     Lucent Technologies 词汇表www.lucent.com/search/glossary
     
     TechWeb TechEncyclopediawww.techweb.com/encyclopedia)
     
     Ugeek 技术词汇表(Ugeek Technical Glossarywww.geek.com/glossary/glossary.htm)
     
     Webopediawww.pcwebopedia.com)
     
     Whatis.comwww.whatis.com)
     
     常用Linux术语
     
     (A)
     
     帐户名称(Account Name) — 等同于登录标识、用户标识或用户名。是指派给 UNIX/Linux 系统上用户的名称。可以在系统上对多个用户设置唯一的帐户名称,每个用户具有不同的访问(权限)级别。在安装完 Linux 之后,帐户名称由超级用户(Superuser)或 root 操作员指派。
     
     AfterStep — 用户界面(窗口管理器)之一,AfterStep 使得 Linux 的外观很象 NeXTSTEP,而且还有些增强功能。要获取更多关于 AfterStep 的信息,请访问 www.afterstep.org。(另请参阅“Enlightenment”、“GNOME”、“KDE”和“X Window 系统”。)
     
     Awk(Aho、Weinberger 和 Kernighan) — 一种编程语言,因其模式匹配语法而特别有用,通常用于数据检索和数据转换。一个 GNU 版本称为 Gawk。
     
     APM(高级电源管理,Advanced Power Management) — 一种工业标准,它允许系统处理器和各个组件进入省电模式,包括挂起、睡眠和关机。APM 软件对于移动设备尤为重要,因为它节省了电池电量。
     
     附加符号(Append Symbol) — 两个键盘字符 >(也就是 >>)。通常用它将命令的输出发送到文本文件,将数据附加到文件的尾部,而不是替换现有的内容。例如,ls -a >> output.txt 将当前目录列表发送到名为 output.txt 的文件,并将其添加到该文件的尾部。重复执行该命令会不断地将新数据添加到文件尾部。(另请参阅“管道符号”和“重定向符号”。)
     
     归档文件(Archive)—含有多个文件的单个大型文件,通常对其进行压缩以节省存储空间。经常创建归档文件以方便计算机之间的传送。流行的归档格式包括 ARJ、TAR、ZIP 和 ZOO。它们都可以用来创建这样的归档文件。
ARJ — 流行的文件压缩/归档工具,可以用于 UNIX/Linux、DOS/Windows 和其它操作系统。用这种方式压缩的文件的扩展名通常是 .arj 或 .ar。
     
     后台进程(Background Process) — 运行时无须用户输入的程序。可以在诸如 UNIX/Linux 之类的多任务操作系统上运行多个后台进程,而用户则与前台进程交互(例如,数据输入)。有些后台进程(例如守护程序)从来都不需要用户输入。其它一些进程只是在用户忙于目前运行于前台的程序时才临时处于后台。
     
     Bash(Bourne Again SHell) — Bourne Shell 的增强版。(另请参阅“Korn Shell”。)
     
     BDF 字体 — 用于 X Window 系统的各种位图字体。(另请参阅“PostScript 字体”和“TrueType 字体”。)
     
     Bean — JavaBeans 体系结构的组件。
     
     Beowulf — 由相对廉价的计算机(包括 PC)组成的网络,这些计算机可能使用不同的处理器和硬件体系结构,由 Linux 和特殊的系统级软件将它们联合成一个海量并行计算系统。最终结果是一个能够以较低成本获得超级计算机计算能力的系统。这类系统对于诸如气象建模之类的计算密集型任务而言是非常理想的,因为可以将计算分配到几十、几百甚至几千个同时运行的独立处理器上。有时也称为“Beowulf 级超级计算机”或者超级群集计算机。更多关于 Beowulf 技术的信息,请阅读以下文章www.linuxworld.com/linuxworld/lw-2000-04/lw-04-parallel.htmlwww.ibm.com/press/prnews.nsf/Sea ... aa5852568460067a52a。
     
     Bin — 一个含有可执行程序的目录,这些程序主要是二进制文件。
     
     二进制文件(Binary) — 已被编译成可执行程序的源代码。在 UNIX/Linux 世界里,有些软件仅作为源代码分发;有些软件包既包含源代码又包含二进制文件;还有一些软件包则只以二进制文件格式分发。
     
     引导盘(Boot Disk) — 一张软盘,其中含有操作系统(如 Linux)引导(启动)计算机并从命令行运行一些基本程序所需的足够内容。如果因某种原因导致系统表现为无法引导,那么引导盘是必需的。引导盘还用于对硬盘进行分区和格式化、恢复主引导记录(Master Boot Record)或者复制特定文件等。
     
     Bot — 机器人(Robot)的简称。它是一个程序,旨在在几乎没有人工干预下在因特网上搜索信息。
     
     Bourne Shell — 一种流行的命令行 shell,它具有的优点比 DOS 命令提示符多很多。(另请参阅“Bash”和“Korn Shell”。)
     
     BSD(Berkeley 软件分发版,Berkeley Software Distribution)UNIX — 加州大学伯克利分校开发的 UNIX。(另请参阅“FreeBSD”。)
     
     Bzip2 — 一种较新的 UNIX/Linux 文件压缩程序,它比 Gzip 提供更大的压缩比。
     
     (C)
     
     CGI(公共网关接口,Common Gateway Interface) — 在 Web 服务器上,用来在脚本和/或应用程序之间传输数据,然后将该数据返回给 Web 页面或浏览器。CGI 脚本经常是使用 Perl 语言创建的,它能够生成动态 Web 内容(包括电子商业购物篮、讨论组、调查表单以及实时新闻等)。
     
     CHS(柱面/磁头/扇区,Cylinder/Head/Sector) — FDISK 在分区期间所需的磁盘信息。
     
     客户机(Client) — 向服务器请求服务(例如,电子邮件)的机器。
     
     CLU(命令行实用程序,Command Line Utility) — 从命令行会话或 shell 运行的程序,如 Tar 或 Mkdir。

群集(Cluster) — 由运行 Linux 的工作站(PC 或其它机器)组成的网络。(另请参阅“Beowulf”。)
     
     COLA — 因特网新闻组 comp.os.linux.announce 的简称,该新闻组宣布一些与 Linux 相关的参考资料。
     
     命令行界面(Command Line Interface)(CLI) — 全屏或窗口化的文本方式会话,在该会话中用户通过输入命令来执行程序,这些命令可以带参数,也可以不带参数。CLI 显示来自操作系统或程序的输出文本,并为用户输入提供命令提示符。
     
     命令提示符(Command Prompt) — DOS/Windows 和 OS/2 术语,是命令行界面的一部分,用户在该界面中输入命令。(另请参阅“Shell 提示符”。)
     
     编译(Compile) — 将编程源代码转换成可执行程序。
     
     编译型语言(Compiled Language)— 一种语言,它需要编译器程序将编程源代码转换成可执行的机器语言二进制程序。一经编译,就可从程序的二进制形式多次运行程序,而无需再次编译。编译型语言/程序运行往往比解释型语言或伪代码语言快,但却需要编译器(可能很昂贵),而且用编译型语言编程常常会比用解释型语言和伪代码语言编程难。编译型语言的例子有 C 和 C++、COBOL 以及 FORTRAN。
     
     编译器(Compiler) — 用于将编程源代码转换成可执行程序的程序。
     
     控制台应用程序(Console Application) — 不需要(即便是提供了)图形用户界面就能运行的命令行程序。
     
     Cron — Linux 守护程序,它在指定时间或按指定间隔执行规定的任务。
     
     (D)
     
     守护程序(Daemon)—操作系统的后台进程,通常具有root安全级别许可权。守护程序通常隐藏在后台,直至被某个事件(例如特定的时间或日期、时间间隔、收到电子邮件等)触发后它才会进入活动状态。
     
     桌面(Desktop)—操作系统用户界面,旨在表示一个在上面放东西的办公桌。操作系统的桌面并不使用有形的电话、电灯、收/发箱等,而是使用程序及数据图标、窗口、任务栏和类似的东西。Linux 可以使用许多不同的桌面环境,包括 KDE、GNOME 和 X11,它们可以由用户安装。(另请参阅“GUI”、“窗口管理器”和“X Window 系统”。)
     
     设备驱动程序(DeviceDriver)—一种程序,它充当操作系统与设备(端口、驱动器、监视器、打印机等)之间的媒介,它向操作系统说明该设备具备哪些能力,同时将操作系统命令转换成该设备可以理解的指令。
     
     分发版(Distribution)—将Linux内核(核心)连同各种用户界面、实用程序、驱动程序及其它软件打包成可交付给用户的软件包。分发版通常是以免费下载或廉价 CD-ROM 软件包的形式提供给用户的。流行的分发版包括 Caldera OpenLinux、CoreLinux、Debian、Red Hat、Slackware、SuSE、TurboLinux 及其它软件。
     
     Dpkg(Debian 软件包管理器,Debian PackageManager)—可从因特网下载的打包及安装工具,它包含在 Debian Linux 中,但与其它分发版兼容。它生成具有 .DEB 扩展名的文件。与 RPM 类似。
     
     (E)
     
     Emacs(用 MACroS 进行编辑,Editing with MACroS) — 一个流行的文本编辑器。
     
     Enlightenment — 用户界面(窗口管理器)之一。更多关于 AfterStep 的信息,请访问 www.afterstep.org。(另请参阅“AfterStep”、“GNOME”、“KDE”和“X Window 系统”。)

(F)
     
     文件系统(FileSystem)—一组程序,它们告诉操作系统如何访问及解释存储在磁盘或磁带驱动器或者其它存储媒介上的内容。常见的文件系统包括:FAT 和 FAT-32(DOS/Windows)、HPFS(OS/2)、NFS、NTFS(Windows NT/2000)以及其它文件系统。
     
     过滤器(Filter)—一种程序,它(从文件、程序输出或命令行输入)读取数据作为输入,根据一组预定义条件处理输入(如按字母顺序排序),然后输出处理过的数据。一些常见的过滤器包括 Awk、Grep、Sed 和 Sort。
     
     Finger — UNIX/Linux 命令,它提供登录用户的有关信息。
     
     前台进程(ForegroundProcess)—在多任务操作系统(诸如UNIX/Linux)中,前台进程是用户当前与之交互的程序(例如,数据输入)。随着用户在程序之间切换,会导致这些程序在不同的时刻处于前台。在层叠的窗口环境中,前台进程是最前面的窗口。
     
     FreeBSD(免费伯克利软件分发版,Free Berkeley Software Distribution) — 类似于 Linux,因为它包含许多 GNU 程序,并且它运行的许多软件包与 Linux 所运行的相同。但一些内核功能的实现却不尽相同。(另请参阅“BSD UNIX”。)
     
     FTP(文件传送协议,File Transfer Protocol) — 与其它计算机(常常是软件资源库)来回传送文件的方法。
     
     
     (G)
     
     
     GCC(GNU C 编译器,GNU C Compiler) — 由 GPL 管理的一个高质量 C 编译器。
     
     GIMP(GNU 图像操作程序,GNU Image Manipulation Program) — 一种用于 Linux 的、流行的图像编辑器/绘图程序。
     
     GNOME(GNU 网络对象模型环境,GNU Network Object Model Environment) — 一种用于 Linux 的用户界面(窗口管理器),它是用 Gtk 构建的。更多关于 GNOME 的信息,请访问 www.gnome.org。(另请参阅“AfterStep”、“Enlightenment”、“KDE”和“X Window 系统”。)
     
     GNU(GNU 不是 Unix,GNU is Not Unix)项目 — 麻省理工学院(MIT)自由软件基金会(Free Software Foundation,FSF)为开发和促进替代专有 UNIX 实现的产品所进行的项目。GNU 软件使用 GPL 许可证。
     
     GNU/Linux — 等同于 Linux。之所以这么称呼,是因为 Linux 分发版中包含的许多组件都是 GNU 工具。
     
     GPL(GNU 通用公共许可证,GNU General Public License) — 一种公用及再分发许可证。请访问 www.linuxdoc.org/LDP/gs/app-gpl/node1.html 来查阅 GPL 协议的副本。
     
     Grep(全局正则表达式及打印,Global Regular Expression and Print)— 一个工具,它在文件中搜索文本字符串,然后输出任何含该模式的行。
     
     Gtk/Gtk+(GIMP 工具箱,GIMP ToolKit) — 一个功能强大而且快捷的开放源码图形库,用于 UNIX/Linux上的 XWindow系统,程序员可以用来创建按钮、菜单及其它图形对象。(另请参阅“GNOME”、“Motif”和“Qt”。)
     
     GUI(图形用户界面,Graphical User Interface) — 图标、窗口及屏幕上其它图形图像的集合,它们提供了用户与操作系统交互的方法。(另请参阅“桌面”和“窗口管理器”。)
     
     Gzip(GNU zip) — UNIX/Linux 最初的文件压缩程序。最新的版本生成扩展名为 .gz 的文件。(扩展名 .z 或 .Z 表明是较老版本的 Gzip。)压缩是为了使文件紧凑以节省存储空间并缩短传送时间。(当与 Tar 结合使用时,生成文件的扩展名可能为 .tgz、.tar.gz 或 .tar.Z。)

(H)
     
     Home 目录 — 用户登录之后所在的目录。
     
     HTML(超文本标记语言,Hyper Text Markup Language) — 用于设计 Web 页面的标准标记语言。标记“tag”或格式化命令允许 Web 页面设计人员确定突出显示、定位图形及创建超链接等等。
     
     HTTP(超文本传输协议,Hyper Text Transport Protocol) — 一组创建的准则,用于请求和发送基于 HTML 的 Web 页面。
     
     (I)
     
     Init — 操作系统装入后立即运行的第一个进程。它以单用户方式启动系统或生成 shell 来读取启动文件,并打开指定用于登录的端口。
     
     解释型语言(Interpreted Language) — 与编译型程序不同,每次运行解释型程序时都要由解释器程序实时地将源代码转换成二进制形式,而编译型程序由编译器一次性将源代码转换成可执行代码,随后从其二进制形式运行。解释型语言(以及用它们编写的程序)往往要比编译型语言及伪代码语言/程序慢,并且通常只有有限的底层操作系统功能访问权限或直接访问硬件的权限。但从另一角度来说,它们无需编译器(可能非常昂贵),并且经常包含在操作系统中,通常比编译型语言更容易编程。解释型语言的例子有 BASIC、Perl、Python 和 REXX/Object REXX。
     
     (J)
     
     Java — Sun Microsystems开发的、独立于操作系统的面向对象编程语言。Java 通常用于 Web 服务器。Java 应用程序和 applet 有时以下载的形式提供给用户,以便在他们的系统上运行。Java 编程语言可以编制应用程序或较小的 Java“applet”。Java 是 C++ 语言稍加简化的版本,通常是进行解释而不是编译。(另请参阅“JIT 编译器”。)
     
     Java Applet — 嵌入在 Web 页面内的小型 Java 程序,它在浏览器内运行,而不是作为独立的应用程序运行。Applet 不能够访问本地计算机上的一些资源,如文件和串行设备(调制解调器、打印机等),通常也不能通过网络与其它计算机通信。
     
     JavaBeans — Java 语言的组件体系结构。JavaBeans 组件称为 Bean。
     
     javascript — 跨平台万维网脚本编制语言,似乎与 Java 有关。它可以用作服务器端脚本编制语言、由服务器解析的 HTML 中的嵌入语言以及浏览器中的嵌入语言。
     
     JDK(Java 开发工具箱,Java Development Kit) — 由 Sun、IBM 或其它公司开发的 Java 编程工具箱,可以用于 UNIX/Linux 及其它操作系统。
     
     JFS(日志文件系统,Journaled/Journaling File System) — 包含内置备份/恢复能力的文件系统。对索引的更改在生效之前先写入日志文件,这样如果索引遭到破坏(例如,在写索引期间断电),那么就可以从日志重建索引,包括对索引的更改。
     
     Jini — 读作“Genie”。Sun 开发的软件,工作起来有些象“即插即用”,因为它允许硬件设备在被连接时向操作系统通报自己(并提供关于该设备的详细信息),而无须系统重新引导。它也向系统所连接的网络通报它自己,从而方便地向网络提供设备共享。
     
     JIT(Just-In-Time)编译器 — Java 语言编译器,它允许实时地将 Java 解释型程序自动编译成本机机器语言,以使程序执行的速度更快。有些 JVM 包含 JIT 编译器。
     
     日志记录(Journaling) — 也就是“日志记录(logging)”。将信息写入日志文件,可以作为一种跟踪更改的方法。
     
     JVM(Java 虚拟机,Java Virtual Machine) — Java 运行时环境,是运行 Java 程序所必需的,包含 Java 解释器。不同的操作系统(Linux、OS/2、Windows 98 等等)需要不同的 JVM,但任一 JVM 都可以运行某个 Java 程序的同一版本。

(O)
     
     面向对象(Object-Oriented) — 一种软件开发方法,它为程序员提供标准可重用的软件模块(组件),而无需开发人员每次都编写定制编程代码。使用标准组件缩短了开发时间(因为其他程序员已经编写并测试了这些组件),并且通过使用相同的组件确保了程序具有标准的外观。
     
     OO — 参阅“面向对象”。
     
     开放源码(Open Source) — 一个稍显模糊的术语,是指同源代码一起发布的软件。提供源代码这一事实并不一定意味着用户可以修改和重新分发源代码。这个术语有时可以和“免费软件”互换使用,尽管它们的意思并不总是相同。(另请参阅“公共域”和“共享软件”。)
     
     OSS(开放声音系统,Open Sound System) — 用于在 UNIX/Linux 下访问声卡及其它音频设备的设备驱动程序。它是从 Linux 声音驱动程序(Linux Sound Driver)发展而来的,支持大多数流行的音频芯片及适配器。
     
     OSS(开放源码软件,Open Source Software) — 参阅“开放源码”。
     
     所有者(Owner) — 对文件具有访问特权的用户;通常是创建该文件的用户。
     
     
     (P)
     
     伪代码(P-code,Pseudo-code)语言 — 一种解释型语言。伪代码语言有点象个“混血儿”,执行方式介于编译型语言和解释型语言之间。和解释型语言一样,伪代码编程语言无需编译,在执行时自动转换成二进制形式。然而,和编译型语言不同的是,这种可执行的二进制文件是以伪代码的形式而不是机器语言的形式存储的。此外,不同于解释型语言的是,不必在每次运行该程序的时候,都必须将其转换成二进制。在第一次转换成伪代码后,以后每次执行都可使用该伪代码版本。伪代码语言(以及用它编写的程序)往往比编译型语言及程序慢,但比解释型语言快,它们通常具有访问一些低层操作系统功能的权限,但却不能直接访问硬件。它们不需要有时很昂贵的编译器,通常与操作系统包含在一起,有些伪代码语言比编译型语言更容易编程。伪代码语言的例子有 Java、Python 和 REXX/Object REXX。
     
     PAM(可插入的认证模块,Pluggable Authentication Modules) — 用于系统安全性的可替换的用户认证模块,它允许在不知道将使用何种认证方案的情况下进行编程。这允许将来用其它模块来替换某个模块,却无需重写软件。
     
     面板(Panel) — Linux 中对应于 Windows 任务栏的名称。
     
     分区(Partition) — 磁盘驱动器的一个连续部分,它被操作系统当作物理驱动器。这样,可以为一个磁盘驱动器赋予几个驱动器符号。
     
     PCF 字体 — X Window 系统使用的各种位图字体。
     
     PD — 参阅“公共域”。
     
     PDF(可移植文档格式,Portable Document Format)文件 — 用 Adobe Acrobat 或其它能够生成该格式输出的程序创建的二进制文件。用于生成独立于操作系统的文档,这种文档可以使用 Acrobat Reader 或其它程序(包括配备有 Acrobat Reader 插件的 Web 浏览器)来查看。
     
     Perl(实用摘录与报告语言,Practical Extraction and Report Language) — 一种常用的脚本编制/编程语言。经常用在 UNIX/Linux Web 服务器上生成 CGI 脚本。
     
     权限(Permission) — 读写文件和目录及执行程序的权限。超级用户或 root 操作员可以逐个文件、逐个目录地,或者按照帐户名称(用户标识)赋予各种权限级别。
     
     PGP(高质量保密程序,Pretty Good Privacy) — 用于 UNIX/Linux 及其它操作系统的高安全性公钥数据加密程序。
     
     管道符号(Piping Symbol) — 键盘字符 |(典型 101 键键盘的 Enter 键上面反斜杠的上档字符)。经常用来将某个命令或程序的输出提供给另一个命令或程序。例如,history | grep mcopy (用 history 命令)将 .bash_history 文件的内容发送到 grep 程序,以搜索字符串“mcopy”。(另请参阅“附加符号”和“重定向符号”。)
移植(Port/Ported/Porting) — 一个过程,即获取为某个操作系统平台编写的程序,并对其进行修改使之能在另一 OS 上运行,并且具有类似的功能。通常很少或者干脆就不尝试定制程序以利用新操作系统的特有能力,这与为某个特定操作系统优化应用程序不同。
     
     可移植(Portable) — 描述一类软件的术语,这类软件旨在只需少量修改和重新编译就可在多个操作系统上使用。
     
     POSIX(UNIX 可移植操作系统接口,Portable Operating System Interface for uniX) — 一组编程接口标准,它们规定如何编写应用程序源代码以便应用程序可在操作系统之间移植。POSIX 基于 UNIX,它是 The Open Group 的 X/Open 规范的基础。
     
     PostScript — Adobe Systems 开发的页描述语言,它告诉打印机如何在打印页上显示文本或图形。
     
     PostScript 字体 — 可以用于 OS/2、MS Windows 和 X Window 系统的大量字体。这类字体文件的扩展名包括 .afm、.pfa 和 .pfb。有时称为 Adobe Type 1 字体或 ATM(Adobe Type Manager)字体。PostScript 字体通常需要与 PostScript 兼容的打印机。(另请参阅“BDF 字体”和“TrueType 字体”。)
     
     进程(Process) — 正在执行的程序。(另请参阅“多任务”和“多线程”。)
     
     公共域(Public Domain) — 可供任何人以任何目的使用和修改的软件,甚至可以将其并入商业软件的分发。公共域软件不保留版权,作者也不保留任何权利。(另请参阅“开放源码”和“共享软件”。)
     
     公钥加密(Public Key Encryption) — 一种包括两个单独密钥(公钥和私钥)的数据加密方法。使用公钥加密的数据只能用私钥解密,反之亦然。一般而言,公钥是公开的,可以用来加密发送给私钥持有者的数据,私钥用来对数据进行签名。
     
     Python — 一种面向对象伪代码编程语言。
     
     (Q)
     
     Qt — 一种功能强大且快捷的开放源码图形库,用于 UNIX/Linux 上的 X Window 系统。它被程序员用来创建按钮、菜单和其它图形对象。(另请参阅“Gtk/Gtk+”和“KDE”。)
     
     队列(Queue) — (也时被错误地拼成 Que。)一列等待执行的任务,如“打印队列”。
     
     (R)
     
     RAID(独立/廉价磁盘/设备冗余阵列,Redundant Array of Independent/Inexpensive Disks/Devices)— 一种提供数据冗余、改善性能和/或从磁盘崩溃中迅速恢复数据的方法,它是通过在多个磁盘驱动器上分布或复制数据来实现这一点的。常用的 RAID 类型包括 RAID 0(数据条带化),RAID 1(磁盘镜像)和 RAID 5(具有分布式奇偶校验的条带化)。RAID 配置通常需要 SCSI 磁盘驱动器(而不是 IDE/EIDE),可能要求磁盘相同(相同的容量、品牌等等)。操作系统将 RAID 阵列看作单个设备。
     
     RC 文件 — 含有程序(应用程序甚至操作系统)启动指令的脚本文件。这一文件在操作系统启动时会自动执行,它含有要运行的指令(命令或其它脚本)列表。
     
     RCS(修订控制系统,Revision Control System) — 一组程序,它们控制组环境下文件的共享访问并跟踪文本文件的变化。常用于维护源代码模块的编码工作。
     
     Rdev — 用于获取关于某个 Linux 系统信息的实用程序。用来查询和设置图像 root 设备、视频方式以及交换设备和 RAM 磁盘。
     
     重定向符号(Redirection Symbol) — 键盘字符 >。经常用于将命令的输出发送到文本文件。例如,ls -a > output.txt 将当前目录列表发送到名为 output.txt 的文件。重复该命令将会用新数据替换该文件的内容。(另请参阅“附加符号”和“管道符号”。)

RFS(远程文件共享,Remote File Sharing) — 一个程序,它让用户访问其它计算机上的文件,就好象文件在用户的系统上一样。
     
     Root 操作员 — 具有执行所有系统级任务权限的用户标识。(也称作超级用户。)
     
     Root 窗口 — 运行 Linux 桌面的底层会话。
     
     RPM(RPM 软件包管理器,RPM Package Manager) — 一种用于因特网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有 .RPM 扩展名的文件。与 Dpkg 类似。
     
     (S)
     
     脚本(Script) — 一组存储在文件中的命令。用于进行自动重复的执行。(另请参阅“RC 文件”。)
     
     会话(Session) — 用户在登录到注销期间与操作系统之间的完整交互过程。
     
     共享软件(Shareware) — 一类商业软件,它以“先试用再买”的形式提供。如果客户在经过较短的试用期后继续使用该产品,那么他们就被要求支付规定数额(通常微乎其微)的费用。(另请参阅“开放源码”和“公共域”。)
     
     Shell — 含有操作系统命令行界面的文本方式窗口。
     
     Shell 提示符 — shell 的用户输入区域。尽管在 DOS shell 中命令提示符指定为大于号(>),但在 Linux 中,命令提示符通常是百分号(%)、美元符号($)或其它特殊符号,这取决于所使用的 shell。(另请参阅“命令提示符”。)
     
     Shell 脚本 — 设计成在 shell 启动时自动运行的脚本。
     
     SHTTP(安全超文本传输协议,Secure Hyper Text Transport Protocol) — HTTP 的一种安全的加密版本,用于金融交易以及其它借助因特网发送的保密信息。斜杠(/)— 文件路径名中使用的符号,而不是 DOS/Windows 和 OS/2 操作系统中使用的反斜杠(\)。
     
     源代码(Source Code) — 程序员输入的、原始状态的编程命令。有些编程语言允许命令实时地由程序解释器执行。其它语言则要求必须先将命令编译成可执行程序(二进制)后才能使用这些命令。在 UNIX/Linux 世界中,有些软件仅以源代码形式分发;另一些软件包则同时包含源代码和二进制代码;还有一些则仅以二进制格式分发。
     
     假脱机(Spool)(外围设备联机并发操作,Simultaneous Peripheral Operation On-Line) — 将数据发送给一个程序,该程序将该数据信息放入队列以备将来使用(例如,打印假脱机程序)。
     
     SQL(结构化查询语言(Structured Query Language)) — 用于操作关系数据库中的记录和字段(行和列)的语言。有时被错误地读成“sequel”。
     
     隐写术(Steganography) — 将一段信息隐藏在另一段信息中的做法。一个示例是在数字化照片中放置不可见的数字水印。
     字符串(String) — 字符序列,如“搜索字符串”。
     
     超级用户(Superuser) — 通常与 root 操作员同义。
     
     交换(Swap) — 暂时将数据(程序和/或数据文件)从随机存取存储器移到磁盘存储器(换出),或反方向移动(换入),以允许处理比物理内存所能容纳的更多的程序和数据。也称为虚拟内存。
     
     交换空间(Swap Space) — 被交换数据在磁盘上暂时存放的地方。Linux 用专用磁盘分区而不是特定交换文件来作为交换空间。
     
     符号链接(Symbolic link) — 程序或文件的别名或快捷方式。

同步(Sync) — 将所有暂挂的输入/输出强制写回磁盘驱动器。
     
     系统日志(Syslog) — UNIX/Linux 系统日志记录程序,其中存储了所有系统消息或错误。
     
     (T)
     
     标记(Tag) — 诸如 HTML 之类的标记语言中的命令,它以某种方式(如粗体、居中或使用某种字体)显示信息。
     
     Tar(磁带归档,Tape ARchive) — 包含在 UNIX/Linux 中的一个文件打包工具,用于将一组文件组装成一个组合的文件以便归档起来更容易。它最初设计用于磁带备份,但现在它也可用于其它存储介质。独自运行时,生成具有 .tar 扩展名的文件。当与 Gzip 结合用于数据压缩时,生成的文件扩展名可能是 .tgz、.tar.gz 或 .tar.Z。
     
     Tar 包(Tarball) — 用 Tar 实用程序创建的文件,含有一个或多个归档的,同时也有可能进行了压缩的文件。
     
     TeX — 基于宏的流行的文本格式化程序。它是包括 LaTeX 和 teTeX 在内的其它此类格式化程序的基础。
     
     文本编辑器(Text Editor) — 用于编辑文本文件的程序。类似于字处理程序,但没有大多数/全部格式化功能(例如设置页边距、斜体和字体等等。)。经常用于书写或编辑脚本、程序和 ASCII 文本文件(如 README.1ST)。
     
     文本格式化程序(Text Formatter) — 准备文本文档以供打印的程序,允许用户执行许多布局功能,如页边距、页眉、页脚、缩排、分页和对齐。
     
     TFTP(小型文件传送协议,Trivial File Transfer Protocol) — FTP 的简化版本,它没有 FTP 的认证以及其它许多基本特性。
     线程(Thread) — 一小段程序,其行为就象是较大程序的一个独立子集,也称为“进程”。多线程程序能够比单个程序或单线程程序运行得快得多,因为它可以并行(而不是串行(顺序))地执行几个甚至多个不同的任务。而且,单个应用程序内的多个线程可以共享资源,并且相互之间可以来回传递数据。
     
     分时(Time-sharing) — 一种允许多个用户分享处理器的方法,它以时间为基础给每个用户分配一部分处理器资源,按照这些时间段轮流运行每个用户的进程。(另请参阅“多任务”。)
     
     Torvalds, Linus — 1991 年 Linux 内核的最初创建者,是 Linux 版权的拥有者,目前仍然是 Linux 开发项目的协调人。
     
     Touch — 一个命令,更改文件的日期/时间戳记,但不影响其内容。
     
     TrueType 字体 — 与 PostScript 字体不一样,它们旨在成为与打印机无关的各种字体。可用于 Apple Macintosh 和 Windows。不常用于 UNIX/Linux。(另请参阅“BDF 字体”和“PostScript 字体”。)
     
     Tux — 虚构的 Linux 企鹅吉祥物的名字。《转》
回复

使用道具 举报

 楼主| xmfish 发表于 2005-8-25 22:19:18 | 显示全部楼层
Linux和DOS常用命令对照表

功能 Linux MS-DOS
复制文件 cp copy
移动文件 mv move
列举文件 ls dir
清除屏幕 clear cls
删除文件 rm del
创建目录 mkdir mkdir
查看文件 less more
文件重命名 mv ren
比较文件内容 diff fc
查看当前路径 pwd chdir
把输出回显到屏幕 echo echo
在文件中寻找字串 grep find
显示命令帮助 man 命令 /?
关闭和退出 exit exit
显示或设置日期 date date
显示时间 date time
显示已被使用的内存 free mem
格式化软盘 mke2fs 或 mformat format
回复

使用道具 举报

 楼主| xmfish 发表于 2005-8-25 22:19:51 | 显示全部楼层
Linux简明系统维护手册《推荐》

转贴: Linux简明系统维护手册
前言

  有同事已经通过艰苦的工作完成了长达好几百页的关于Linux的文档。事实上,在网上还有超过好几万页的各种关于Linux的技术精华,还不包括英文的。有数万程序员和网络专家在为这个软件努力工作。这就是自由的魅力。

  我使用Linux有不少时间了,期间也经历过无数的挫折,同时也得到过很多高手的帮助。我一向喜欢言简意赅的文字。通过下面的简单句子和代码,我希望能够表达出我使用Linux的体会。也许本文的结构比较凌乱,但我希望它的每一句话都是对你有用的。当然,你要知道一些更详细的东西,请参阅我同事写的文档。

  当然,能够通过查阅这个文档,使你的工作顺利是我最大的心愿。

一、关于Linux的误区

  1、Linux干什么用?

  首先,很少有人用Linux做桌面系统,因为Windows桌面系统已经足够好了。我们主要把Linux用作网络服务器的操作系统。如果你和你的应用符合下面的几条,那么你合适使用Linux:

  *不愿意花钱在操作系统和网络应用上。

  *用D版系统受良心谴责或害怕承担责任。

  *想得到和花钱的系统差不多的性能。

  *在用户面前显得水平较高。

  *认识几个弄Linux的高手,或者知道在哪里能够找到问题答案。

  2、每种Linux发行包差别很多吗?

  如果你在上世纪80年代末到95年之前这段时间大量使用PC机的话,那对于Linux你应该很好理解:它就象一个有着32位抢先多任务核心的DOS,其区别在于外表看起来像是一种UNIX。Linux是好多人用智慧堆砌起来的,初学者经常问:“RedHat好还是Slackware好?”。这个人同时还面临上百种选择,这的确让人头痛。大部分Linux发行包实际上很简单,几乎所有的发行包都有相同的内核(也许是不同版本),外部命令和数据文件的差别也仅仅局限于在文件系统中的存放位置不同(这导致了某些兼容性问题,因为在某些地方找不到特定的文件嘛)。另外就是有些发行包为了显示自己的卓而不群,在发行包中增加了一些自己的实用程序。实际上动手修改内核的厂商不算太多,因为这样会内核官方版本的不断更新而手忙脚乱。当然有一些嵌入式系统开发商在Linux基础上做了自己的系统另说。

  拥有众多的发行包是Linux的一个很讨厌的问题,在这一点上,我更喜欢FreeBSD,因为它只有一个官方发行版本,也运行得比较稳定。可给Linux做软件的程序员太多了,Linux上面的资料也更多。记住:当一个家伙跟你说用哪个发行版本无所谓的时候,那他就是专家。

  3、Linux业余爱好者的东西吗?

  这样的宣传给了很多人这样的印象。其实,Linux是一个严肃的操作系统,拥有一切操作系统共有的特性。它可以用在很多严肃的场合。

  4、Linux性能比Windows更好吗?

  这里的答案会让你失望,据我以往的实际测试,2.2版本的Linux核心的性能比windows2000要低。值得欣慰的是2.4版本的核心性能有大幅度提高基本上接近了Windows2000。但Windows2000复杂的图形界面占用了相当的系统资源。

  5、Linux比Windows更复杂更专业吗?

  从复杂度上说,Windows2000要比Linux复杂很多。在核心技术上,Windows也更先进。

  6、Linux更可靠吗?

  应该从两个角度评价系统的可靠性。(1)系统自身的可靠性,两者象差不多。人们普遍认为的Windwos不如Linux可靠的印象来源于Windows众多的良莠不齐的软件。当然,Linux比Windows结构简单,在一定程度上也可以提高可靠性。(2)从安全性角度来说,Linux远远高于Windows系统,道理很简单:树大招风嘛。另外,Linux的源代码开放机制使得漏洞发现和消灭得很快。而Windows相对就显得比较官僚了。这里补充一点,我用过的最可靠的系统是BSD类的OS,可靠性和安全性都可圈可点。

  7、Linux真的不用花一分钱吗?

  大部分的发行包需要花少量的钱购买。当然你也可以从网络上DOWN。其实这些发行包未必符合你的应用,一般都需要经过一些改动和定制才能运行好。当然,花的钱跟Windows没法比。

二、Linux安装注意事项

  现在的大部分发行包都很容易安装,基本上都是图形向导式的,每个发行包都不太相同,也无法一一描述,如果你连安装都不明白,那就别用Linux了。这里仅仅说明几个注意的问题。

  1、如果要和Windows混装,一定要先装Windows,后装Linux。

  2、分区的时候,根据计划安装的软件灵活决定分区。一般分区有:/,/root,/usr,/var和swap分区,其中swap分区类型和其他不同需要专门选择一下,它的空间一般是物理内存的两倍即可。/root分区是紧急情况root用的,有64兆就行了。

  3、当然,为了方便,你可以安装发行包给你做好的软件。但我安装Linux的习惯做法是开始就安装一个最小系统,然后安装所有的编译工具。安装编译工具的方法一般都通过你用的发行包的包管理工具实现,这样最方便。比如在TurboLinux中,运行/usr/sbin/Turbopkg就可以了。在管理工具中选择所有关于Developoment相关的选项或gcc相关选项,一般就可以了。

  4、lilo一定要装。否则一旦出现分区问题都不好办。

  5、如果和Windows混装的时候,装完了系统起不来了。可以用98启动盘启动,然后用FDISK /MBR回复主引导分区来保住Windows分区。

  在安装了最小系统和全套的编译器后,我们应该得到一个比较干净的系统。在这个系统上,可以下载和安装各种应用软件了。

三、基本使用

  1、文件系统

  无论有多少个分区,整个文件系统都是一棵完整的树结构。经常用到的目录有:

  (1)/usr:存放各种应用程序文件用。其中的/usr/local用来存放后安装的软件

  (2)/var:用来存放所有的数据文件

  (3)/proc:里面的文件用来表示系统内核的各种配置和状态。这一块不是真正的文件系统,而是内存里面的各种数据。可以从这里得到一些常用的系统信息。比如CPU内存什么的。

  (4)/etc:这里是放置所有的系统配置文件。一般情况下,后安装的软件的配置文件不会放到这里。除非你是用RPM安装的随发行包配的软件或者故意这样做。我不喜欢把不同软件的文件混在一起,因此通常让不同的软件的配置文件放在各自的目录中。

  2、常用的命令

  这里我列出一些经常用的命令,具体的用法可以参见相关手册页(希望你的英文不象我这么差)。

  vi(一定要会用这个你非常讨厌的东西,如果你屈服了,可以选择另一个叫做pico的编辑器,它有点象DOS的edit)

  head(用来看很长的文件用)

  tail(同上)

  netstat(看网络状态)

  tar(解开.tar.gz的压缩包)

  ps(察看进程)

  kill(干掉进程)

  top(看系统状况)

  shutdown(关闭系统)

  cat(看文件内容)

  ping (看网络连通状况)

  ftp(传输文件)

  man(手册)

  上面这些命令都是最最常用的,一定要把基本用法记牢。事实上,每人能记住全部命令或一个命令的全部参数,记住几个常用的就行了。其他的查书。

  3、内核升级

  如果你不愿意冒险,可以跳过这个部分。不过根据我实际使用的经验,2.4.x版本的内核性能比2.2.x的性能至少提高40%,还是很值得一试的。现在最新的发行包几乎都带有新的2.4内核,但是版本号想对保守。这里,我的建议是在决定升级任何部分的时候,一定要首先看一下所谓的“currect version release note”信息,里面告诉你本次版本升级都有些什么改动。如果改动的内容不涉及你当前的环境或需求,只是增加了一些邪门设备的驱动,你大可不必急着升级。补充一句话:Linux的内核版本号的中间一位是奇数的是非稳定版本,比如2.3,是偶数的才是稳定版本。

  升级内核的步骤如下:

  (1)首先在网上找到你打算升级的内核文件,一般名字是:linux-2.x.xx.tar.gz,把这个文件复制到/usr/src。(不知道在哪里找?看看:http://www.kernel.org ,最好找到.tar.gz格式的,比如这里:http://www.kernel.org/pub/linux/kernel/v2.x/)。下面的升级举例是从2.2.18升级到2.5.7(这是最新的内核了,你使用其它的版本别忘了改变版本号)

  (2)解压缩:tar zxvf linux-2.5.7.tar.gz后生成一个目录:linux-2.5.7。

  (3)进入/usr/src,用ls –l 命令可以看到src里面有一个连接,类似于:linux -> linux-2.2.18/ (连接指向你当前用的内核版本)。首先删除这个连接(rm linux),用ln -s linux-2.5.7 linux 命令重建连接。我想你一定不会连这里的版本号都照抄吧?

  (4)进入linux-2.5.7 目录,如果不是第一次编译这个内核,最好用命令:make mrproper 删掉上次编译产生的.o文件等,当然以前保存的配置也丢了。

  (5)用命令:make menuconfig命令调整内核配置以适应你目前的环境,记住,不懂的配置不要乱动。首要任务是调整各种硬件的环境,比如SCSI卡:SCSI support/SCSI low-level drivers,不知道现在的SCSI卡型号?在/proc/scsi中可以找到。还有网卡,在Network Device Support 里面。不知道现在的网卡型号?在这个文件里面写着呢:/proc/net/PRO_LAN_Adapters/eth0.info或/proc/pci文件中也可以找到 。在menuconfig中用空格键改变选项状态,前面的<*>表示该功能编译在内核中,主要是运行速度快。< >表示不需要该功能。表示把该功能编译成模块,通常为了减小尺寸,和更换方便而把某些驱动编译成模块。

  (6)下面的事情比较程序化,照着做:make dep (检查文件的完整性,过程很复杂)

  (7)make bzImage 注意大小写(真正开始编译了耶!我觉着这个最过瘾了,屏幕“哗啦哗啦”的,这时候你会感觉到,多少不知名的程序员在这个复杂的系统中贡献了自己的一份力量)

  (8)make modules (编译那些被标记为的功能模块或驱动程序)

  (9)make modules_install(把编译好的模块复制到指定地点,一般是:/lib/modules/ 。注意:不同版本号的模块是完全分开在不同目录中的,因为modules跟内核是紧密相关的,混用容易导致系统崩溃)

  (10)cd /usr/src/linux-2.5.7/arch/i386/boot ,用命令:cp /usr/src/linux2.5.7/arch/i386/boot/bzImage /boot/vmlinuz-2.5.7 把文件bzImage文件改名成vmlinuz-2.5.7复制到/boot/

  (11)cp /usr/src/linux-2.5.7/System.map /boot/System.map-2.5.7

  (12)进入/boot目录,rm System.map

  (13)在/boot目录中运行ln System.map-2.5.7 System.map 10-13两个步骤每次重新编译都要做。

  (14)我开始提醒过的,但愿你安装了lilo (否则你就高唱:“神啊,救救我吧!”),编辑文件:/etc/lilo.conf ,做下面的编辑:


  boot=/dev/sda
  map=/boot/map
  install=/boot/boot.b
  prompt
  timeout=50
  lba32
  default=linux-2.5.7

  image=/boot/vmlinuz
label=linux
initrd=/boot/initrd
read-only
root=/dev/sda5
  image=/boot/vmlinuz-2.5.7
label=linux-2.5.7
initrd=/boot/initrd
read-only
root=/dev/sda5


  黑体字部分是后加的和修改的。万一你没有安装lilo,你只能修改/boot下面的连接指向你新的System.map和vmlinuz , 而不用修改lilo了。这样也能启动,但是一旦出现问题,你的机器就启动不了了。

  (15)执行命令:lilo (用来更新lilo数据),注意输出的结果:带星号的是缺省的。

  (16)祈祷,然后reboot 系统重新启动后,用uname –a 可看到新的内核起作用了。如果出现任何问题不能引导了,你需要在lilo的引导界面选择原来的内核启动,进入系统后重新改变内核参数,调整硬件或其他配置。然后重复前面所有过程。
--------------------------------------------------------------------------------

四、主要的软件安装
  前面说过,我的习惯是,装系统的时候就安装一个内核和编译系统,得到了一个干净的系统后,再安装其他的软件就比较清晰。另一点,除非搞不到源代码版本,一般情况下我都会下载官方版本的源代码文件,来重新编译之。同样的,选择软件版本要根据该软件的Release Note来决定,并非越新越好。这就是为什么很多软件都是几个版本齐头并进的发展之原因。这些软件不同版本之间的安装方法会有少许不同,安装前一定要仔细阅读目录中的README文件和INSTALL文件,否则这些少许不同会造成不少得麻烦。下面描述的安装过程都核版本号紧密相关。另外,所有的软件都把程序文件的包拷贝到/usr/local/src目录中再解压缩,这是习惯。因为在Linux中习惯于把后来的软件装在/usr/local中。

  (1)安装DNS服务器

  1、从www.isc.org下载bind 域名服务器软件。我们这里用的是bind8.3.0,bind8分支和bind9分支是并行发展的。根据自己的实际情况选择合适的bind版本。

  2、mkdir /usr/src/bind83

  3、下载的文件叫bind-src.tar.gz,复制到/usr/local/src/bind83目录下。

  4、cd /usr/local/src/bind83

  5、tar zxvf bind-src.tar.gz

  6、cd src

  7、make stdlinks

  8、make clean

  9、make depend

  10、make all

  11、make install

  12、编辑配置文件:/etc/named.conf内容如下,需要更改的部分用黑体标出:


  /*
   * This is a worthless, nonrunnable example of a named.conf file that has
   * every conceivable syntax element in use. We use it to test the parser.
   * It could also be used as a conceptual template for users of new features.
   */

  /*
   * C-style comments are OK
   */

  // So are C++-style comments

  # So are shell-style comments

  // watch out for ";" -- it's important!

  options {
directory "/var/named";
      // use current directory
named-xfer "/usr/libexec/named-xfer";
      // _PATH_XFER
dump-file "named_dump.db";
      // _PATH_DUMPFILE
pid-file "/var/run/named.pid";
      // _PATH_PIDFILE
statistics-file "named.stats";
      // _PATH_STATS
memstatistics-file "named.memstats";
      // _PATH_MEMSTATS
check-names master fail;
check-names slave warn;
check-names response ignore;
host-statistics no;
deallocate-on-exit no;
      // Painstakingly deallocate all
      // objects when exiting instead of
      // letting the OS clean up for us.
      // Useful a memory leak is suspected.
// Final statistics are written to the
// memstatistics-file.
datasize default;
stacksize default;
coresize default;
files unlimited;
recursion yes;
fetch-glue yes;
fake-iquery no;
notify yes;
     // send NOTIFY messages. You can set
// notify on a zone-by-zone
// basis in the "zone" statement
// see (below)
serial-queries 4;
     // number of parallel SOA queries
// we can have outstanding for master
// zone change testing purposes
auth-nxdomain yes;
// always set AA on NXDOMAIN.
// don't set this to 'no' unless
// you know what you're doing -- older
// servers won't like it.
multiple-cnames no;
   // if yes, then a name my have more
// than one CNAME RR. This use
// is non-standard and is not
// recommended, but it is available
// because previous releases supported
// it and it was used by large sites
// for load balancing.
allow-query { any; };
allow-transfer { any; };
transfers-in 10;
     // DEFAULT_XFERS_RUNNING, cannot be
   // set > than MAX_XFERS_RUNNING (20)
transfers-per-ns 2;
// DEFAULT_XFERS_PER_NS
transfers-out 0;
// not implemented
max-transfer-time-in 120;
// MAX_XFER_TIME; the default number
// of minutes an inbound zone transfer
// may run. May be set on a per-zone
// basis.
transfer-format one-answer;
query-source address * port *;
  /*
* The "forward" option is only meaningful if you've defined
* forwarders. "first" gives the normal BIND
* forwarding behavior, i.e. ask the forwarders first, and if that
* doesn't work then do the full lookup. You can also say
* "forward only;" which is what used to be specified with
* "slave" or "options forward-only". "only" will never attempt
   * a full lookup; only the forwarders will be used.
   */
forward first;
forwarders { };
    // default is no forwarders
topology { localhost; localnets; };
    // prefer local nameservers
listen-on port 53 { any; };
    // listen for queries on port 53 on
   // any interface on the system
   // (i.e. all interfaces). The
   // "port 53" is optional; if you
   // don't specify a port, port 53
   // is assumed.
/*
* Interval Timers
*/
cleaning-interval 60;
    // clean the cache of expired RRs
   // every 'cleaning-interval' minutes
interface-interval 60;
    // scan for new or deleted interfaces
   // every 'interface-interval' minutes
statistics-interval 60;
    // log statistics every
   // 'statistics-interval' minutes
maintain-ixfr-base no;
    // If yes, keep transaction log file for IXFR
max-ixfr-log-size 20;
    // Not implemented, maximum size the
   // IXFR transaction log file to grow
  };

  /*
   * Control listeners, for "ndc". Every nameserver needs at least one.
   */
  controls {
inet * port 52 allow { any; };
// a bad idea
unix "/var/run/ndc" perm 0600 owner 0 group 0;
       // the default
  };

  zone "rd.21vianet.com" in {
type master;
      // what used to be called "primary"
file "rd.21vianet.com.db";
check-names fail;
allow-update { none; };
allow-transfer { any; };
allow-query { any; };
// notify yes;
      // send NOTIFY messages for this
// zone? The global option is used
// if "notify" is not specified
// here.
also-notify { };
      // don't notify any nameservers other
// than those on the NS list for this
// zone
  };

  zone "223.99.211.in-addr.arpa" in {
type master;
// what used to be called "secondary"
file "211.99.223.db";
};

  zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0.db";
  };

  zone "." in {
type hint;
       // used to be specified w/ "cache"
file "named.root";
  };

  logging {
/*
* All log output goes to one or more "channels"; you can make as
* many of them as you want.
*/

channel syslog_errors {
      // this channel will send errors or
syslog user;
      // or worse to syslog (user facility)
severity error;
};

category parser {
syslog_errors;
// you can log to as many channels
default_syslog;
     // as you want
};

category lame-servers { null; };
     // don't log these at all

channel moderate_debug {
severity debug 3;
     // level 3 debugging to file
file "foo";
     // foo
print-time yes;
    // timestamp log entries
print-category yes;
     // print category name
print-severity yes;
     // print severity level
/*
* Note that debugging must have been turned on either
* on the command line or with a signal to get debugging
* output (non-debugging output will still be written to
* this channel).
*/
};

/*
* If you don't want to see "zone XXXX loaded" messages but do
* want to see any problems, you could do the following.
*/

channel no_info_messages {
syslog;
severity notice;
};

category load { no_info_messages; };

/*
* You can also define category "default"; it gets used when no
* "category" statement has been given for a category.
*/

category default {
default_syslog;
moderate_debug;
};

};


  13、在/var/named/中生成/etc/named.conf中标记的文件:rd.21vianet.com.db,内容如下,需要修改和调整相应部分:
  ;Authoriative data for rd.21vianet.com
  ;
  $TTL 3600
  @ IN SOA compaq.rd.21vianet.com. tandongyu.rd.21vianet.com. (
    20020101 ;Serial
    3600 ;Refresh 1 hour
    900 ;Retry 15 mins
    604800 ;Expire 7 days
    86400) ;Mini 24 hours
  ;Name server NS records
  @ IN NS compaq.rd.21vianet.com.
  ;Mail Exchange (MX) records
  rd.21vianet.com. IN MX 0 compaq
  ;Address (A) records.
  localhost IN A 127.0.0.1
  compaq IN A 211.99.223.9
  tls65 IN A 211.99.223.8
  fbsd IN A 211.99.223.7



  14、在/var/named/中生成/etc/named.conf中标记的文件:211.99.223.db,内容如下,你需要修改相应部分:


  ;
  ;
  $TTL 3600
  @ IN SOA compaq.rd.21vianet.com. tandongyu.rd.21vianet.com. (
    20020101 ;Serial
    3600 ;Refresh
    900 ;Retry 15 mins
    604800 ;Expire 7 days
    86400) ;Mini 24 hours
  ;NameServer (NS) records
  @ IN NS compaq.rd.21vianet.com.
  ;Address Point to Name (PTR) records
  9 IN PTR compaq.rd.21vianet.com.
  8 IN PTR tls65.rd.21vianet.com.
  7 IN PTR fbsd.rd.21vianet.com.


  15、在/var/named/中生成/etc/named.conf中标记的文件:127.0.0.db,内容如下,你需要修改相应部分:


  ; 0.0.127.in-addr.arpa
  $TTL 3600
  @ IN SOA compaq.rd.21vianet.com. tandongyu.rd.21vianet.com. (
     20020101;serial
3600 ;refresh
1800 ;retry
604800 ;expiration
3600 ) ;minimum
IN NS compaq.rd.21vianet.com.
  1 IN PTR localhost.


  16、在/var/named/中生成/etc/named.conf中标记的文件:named.root,内容大致如下。该文件标记了14个域名服务器。可以从ftp.rs.internic.net获得该文件的最新样本:named.hosts,然后改名成你需要的名字,比如:named.root


  ; This file holds the information on root name servers needed to
  ; initialize cache of Internet domain name servers
  ; (e.g. reference this file in the "cache . "
  ; configuration file of BIND domain name servers).
  ;
  ; This file is made available by InterNIC registration services
  ; under anonymous FTP as
  ; file /domain/named.root
  ; on server FTP.RS.INTERNIC.NET
  ; -OR- under Gopher at RS.INTERNIC.NET
  ; under menu InterNIC Registration Services (NSI)
  ; submenu InterNIC Registration Archives
  ; file named.root
  ;
  ; last update: Aug 22, 1997
  ; related version of root zone: 1997082200
  ;
  ;
  ; formerly NS.INTERNIC.NET
  ;
    . 3600000 IN NS A.ROOT-SERVERS.NET.
    A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
  ;
  ; formerly NS1.ISI.EDU
  ;
    . 3600000 NS B.ROOT-SERVERS.NET.
    B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
  ;
  ; formerly C.PSI.NET
  ;
    . 3600000 NS C.ROOT-SERVERS.NET.
    C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
  ;
  ; formerly TERP.UMD.EDU
  ;
    . 3600000 NS D.ROOT-SERVERS.NET.
    D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
  ;
  ; formerly NS.NASA.GOV
  ;
    . 3600000 NS E.ROOT-SERVERS.NET.
    E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
  ;
  ; formerly NS.ISC.ORG
  ;
    . 3600000 NS F.ROOT-SERVERS.NET.
    F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
  ;
  ; formerly NS.NIC.DDN.MIL
  ;
    . 3600000 NS G.ROOT-SERVERS.NET.
    G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
  ;
  ; formerly AOS.ARL.ARMY.MIL
  ;
    . 3600000 NS H.ROOT-SERVERS.NET.
    H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
  ;
  ; formerly NIC.NORDU.NET
  ;
    . 3600000 NS I.ROOT-SERVERS.NET.
    I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
  ;
  ; temporarily housed at NSI (InterNIC)
  ;
    . 3600000 NS J.ROOT-SERVERS.NET.
    J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
  ;
  ; housed in LINX, operated by RIPE NCC
  ;
    . 3600000 NS K.ROOT-SERVERS.NET.
    K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
  ;
  ; temporarily housed at ISI (IANA)
  ;
    . 3600000 NS L.ROOT-SERVERS.NET.
    L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
  ;
  ; housed in Japan, operated by WIDE
  ;
    . 3600000 NS M.ROOT-SERVERS.NET.
    M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
  ; End of File


  17、我们还需要配置/etc/resolv.conf、/etc/hosts、/etc/hosts.conf文件以适应新的状况。

  18、一切都结束后,用/usr/sbin/ndc start命令启动bind,同样的可用stop、restart、reload等命令参数操作。

  19、启动后用nslookup命令(有的系统推荐使用dig命令)检验是否正确。如果出现错误,该命令将不能启动。一般的错误都是数据库文件或配置文件笔误所至。比如少个“.”或者文件明不正确等等。

  (2) 安装sendmail服务器

  1、从www.sendmail.org下载最新的版本(这个snedmail倒是有必要升级为最新的版本,因为它的升级主要是安全漏洞问题)。这里说明的是用的sendmail-8.12.2.tar.gz

  2、cd /usr/local/src/

  3、把文件下载到:/usr/local/src中

  4、tar zxvf sendmail-8.12.2.tar.gz

  5、cd /usr/local/src/sendmail-8.12.2

  6、chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

  7、chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

  8、cd /usr/local/src/sendmail-8.12.2/sendmail

  9、sh Build

  10、cd /usr/local/src/sendmail-8.12.2/cf/cf

  11、建立文件sendmail.mc内容如下,你可根据需要修改相应部分。


  divert(-1)
  dnl This is the macro config file used to generate the /etc/sendmail.cf
  dnl file. If you modify thei file you will have to regenerate the
  dnl /etc/sendmail.cf by running this macro config through the m4
  dnl preprocessor:
  dnl m4 /etc/sendmail.mc > /etc/sendmail.cf
  dnl You will need to have the Sendmail-cf pacage installed for this to work.
  include(`/usr/local/src/sendmail-8.12.2/cf')
define(`confDEF_USER_ID',`8:12')
OSTYPE(`linux')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
define(`confTO_CONNECT', `1m')
define(`confTRY_NULL_MX_LIST',true)
define(`confDONT_PROBE_INTERFACES',true)
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')
define(`SMART_HOST',compaq.rd.21vianet.com)
    <---这条用于(非HUB)缺省使用HUB发送邮件
MASQUERADE_AS(`rd.21vianet.com')
<-------------------------
FEATURE(`masquerade_entire_domain')
     <---这三条用于邮件地址伪装
FEATURE(`masquerade_envelope')
      <-------------------------
FEATURE(`smrsh',`/usr/sbin/smrsh')
FEATURE(`mailertable',`hash -o /etc/mail/mailertable')
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
FEATURE(`access_db')
FEATURE(`blacklist_recipients')
FEATURE(`accept_unresolvable_domains')
MAILER(smtp)
MAILER(procmail)
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not hav 24x7 DNS do need this.
dnl FEATURE(`relay_based_on_MX')


  12、sh Build install-cf

  13、groupadd smmsp

  14、useradd smmsp

  15、cd cd /usr/local/src/sendmail-8.12.2/sendmail

  16、sh Build install

  17、cd /usr/local/src/sendmail-8.12.2/makemap

  18、sh Build clean

  19、sh Build all

  20、sh Build install

  21、cd /usr/local/src/sendmail-8.12.2/

  22、在本域DNS主数据库文件中增加MX纪录:


  rd.21vianet.com. IN MX 0 compaq


  注意修改相应部分。那个0是有几个邮件集中器的时候用于标记先后顺序的。当有好几个MX的时候,建议顺序写为10、20、30…

  23、在/etc/mail目录下创建access文件,内容类似如下:


127.0.0.1 RELAY
211.99.223 RELAY
211.99.221.238 RELAY


  然后:makemap hash access.db < access

  24、创建文件/etc/mail/local-host-names,其内容为本机的拥有的域名信息。


  rd.21vianet.com
  compaq.rd.21vianet.com


  25、创建文件/etc/mail/aliases,内容类似:


  MAILER-DAEMON: postmaster
postmaster: root
bin: root
daemon: root
nobody: root


  运行newaliases创建数据库。

  创建别名文件的意义之一在于当邮件发往域中其他邮件服务器的用户而不是mail HUB用户的时候用。

  比如增加一条:


  atan: atan@fbsd


  则导致邮件发往mail HUB的时候自动转发到atan@fbsd.rd.21vianet.com

  26、启动sendmail: /usr/sbin/sendmail -bd -q30m

  排错:如果有问题导致启动不了,大部分问题和DNS配置有关,可以使用nslookup检查DNS是否正常。挨个检查/etc/mail中的文件内容也是排错的好办法。另外,修改配置,不建议直接编辑sendmail.cf文件,建议使用m4宏编译工具,因为有些带有安全漏洞或过时的宏在编译的时候会有提示,这样以免造成相关安全问题。
  
--------------------------------------------------------------------------------

(3)安装DHCP服务器
  1、源程序下载地址是:ftp://ftp.isc.org/isc/dhcp/dhcp-3.0.tar.gz ,我们的版本是:dhcpd-3.0

  2、复制到:/usr/local/scr后解压:tar zxvf dhcp-3.0.tar.gz

  3、cd /usr/local/src/dhcp-3.0.tar.gz

  4、./configure

  5、make(如果不是第一次编译,先make clean)

  6、make install

  7、cp ./server/dhcpd.conf /etc

  8、编辑这个文件,看起来类似下面这样:(要更改的地方用粗体标出)


  # dhcpd.conf
  #
  # Sample configuration file for ISC dhcpd
  #

  # option definitions common to all supported networks...
  option domain-name "rd.21vianet.com";
  option domain-name-servers compaq.rd.21vianet.com;

  default-lease-time 86400;
  max-lease-time 172800;

  ddns-update-style ad-hoc;

  # If this DHCP server is the official DHCP server for the local
  # network, the authoritative directive should be uncommented.
  #authoritative;

  # Use this to send dhcp log messages to a different log file (you also
  # have to hack syslog.conf to complete the redirection).
  log-facility local7;

  # No service will be given on this subnet, but declaring it helps the
  # DHCP server to understand the network topology.

  # This is a very basic subnet declaration.

  subnet 211.99.223.0 netmask 255.255.255.224 {
    range 211.99.223.2 211.99.223.6;
    option routers 211.99.223.1;
  }

  # This declaration allows BOOTP clients to get dynamic addresses,
  # which we don't really recommend.

  #subnet 10.254.239.32 netmask 255.255.255.224   {
    # range dynamic-bootp 10.254.239.40 10.254.239.60;
    # option broadcast-address 10.254.239.31;
    # option routers rtr-239-32-1.example.org;
  #}

  # A slightly different configuration for an internal subnet.
  #subnet 10.5.5.0 netmask 255.255.255.224 {
  # range 10.5.5.26 10.5.5.30;
  # option domain-name-servers ns1.internal.example.org;
  # option domain-name "internal.example.org";
  # option routers 10.5.5.1;
  # option broadcast-address 10.5.5.31;
  # default-lease-time 600;
  # max-lease-time 7200;
  #}

  # Hosts which require special configuration options can be listed in
  # host statements. If no address is specified, the address will be
  # allocated dynamically (if possible), but the host-specific information
  # will still come from the host declaration.

  #host passacaglia {
  # hardware ethernet 0:0:c0:5d:bd:95;
  # filename "vmunix.passacaglia";
  # server-name "toccata.fugue.com";
  #}

  # Fixed IP addresses can also be specified for hosts. These addresses
  # should not also be listed as being available for dynamic assignment.
  # Hosts for which fixed IP addresses have been specified can boot using
  # BOOTP or DHCP. Hosts for which no fixed address is specified can only
  # be booted with DHCP, unless there is an address range on the subnet
  # to which a BOOTP client is connected which has the dynamic-bootp flag
  # set.
  #host fantasia {
  # hardware ethernet 08:00:07:26:c0:a5;
  # fixed-address fantasia.fugue.com;
  #}

  # You can declare a class of clients and then do address allocation
  # based on that. The example below shows a case where all clients
  # in a certain class get addresses on the 10.17.224/24 subnet, and all
  # other clients get addresses on the 10.0.29/24 subnet.
  
  #class "foo" {
  # match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
  #}

  #shared-network 224-29 {
  # subnet 10.17.224.0 netmask 255.255.255.0 {
  # option routers rtr-224.example.org;
  # }
  # subnet 10.0.29.0 netmask 255.255.255.0 {
  # option routers rtr-29.example.org;
  # }
  # pool {
  # allow members of "foo";
  # range 10.17.224.10 10.17.224.250;
  # }
  # pool {
  # deny members of "foo";
  # range 10.0.29.10 10.0.29.230;
  # }


  上面这个文件中后面都是注释,是原来系统给你的配置做的例子,可以不要。当然除非你用到它们,并且清楚它们的含义。

  9、建立空文件:touch /var/state/dhcp/dhcpd.leases空文件

  10、检查内核编译选项:Networking options-----Packet socket: mmapped IO和Socket Filtering选项是否被选中(不知道怎么看?看看前面的文章,用make menuconfig呀),如果没有就需要重新编译内核了。

  11、route add -host 255.255.255.255 dev eth0

  12、roote add -host localhost dev eth0

  13、在/etc/rc.d/rc.local最后增加一行route add -host 255.255.255.255 dev eth0

  14、reboot系统

  15、用dhcpd命令启动DHCP,用其他的机器试试看能不能自动配置网络了。

(4) 安装apache+mysql+php+gd+png+zlib+jpeg+freetype+sslmod

  这么一大堆东西为什么要一块说呢?因为他们中间是有紧密联系的,尤其是那个PHP,用到其他所有的模块。要想PHP功能全,只能一步步来了。

  1、首先安装MYSQL:从http://www.mysql.com/downloads/index.html下载自己觉得合适的版本。这里用3.23.42版本。

  2、进入目录/usr/local/src(这个以后就不用说了吧?)解压缩:tar zxvf mysql-3.23.42.tar.gz

  3、cd mysql-3.23.42/

  4、configure --prefix=/usr/local/mysql

  5、make

  6、make install

  7、useradd mysql ; groupadd mysql ; su mysql ;(建立命名为mysql的用户和组,并切换为mysql身份)

  8、scripts/mysql_install_db (建立数据库结构)

  9、cd /usr/local/mysql/bin

  10、./safe_mysqld & (启动了)

  11、./mysqladmin -u root password "new-password"(你的新密码,记住MYSQL的密码核系统密码是独立的,缺省是没有密码)

  12、用mysql程序试试看。

  下面的步骤都很程式化,我尽量简洁地写出。

  13、下载相关的软件包:地址表格如下


  软件     版本     地址
jpegsrc.v6b.tar.gz  6b ftp://ftp.uu.net/graphics/jpeg
zlib.tar.gz 1.1.3 ftp://ftp.uu.net/graphics/png/src
freetype-2.0.8.tar.gz 2.0.8 http://www.freetype.org
libpng-1.0.10.tar.gz 1.0.10 ftp://ftp.uu.net/graphics/png/src
gd-1.8.4.tar.gz 1.8.4 http://www.boutell.com/gd
apache_1.3.23.tar.gz 1.3.23 http://www.apache.org
php-4.1.1.tar.gz 4.1.1 http://www.php.net
number4.tar.gz 4 http://www.php.net/extra
rsaref20.tar.Z 2.0 ftp://ftp.ai.mit.edu/pub/deberg
openssl-engine-0.9.6c.tar.gz 0.9.6c http://www.openssl.org/source
mod_ssl-2.8.6-1.3.23.tar.gz 2.8.6 http://www.modssl.org


  下齐了就放在/usr/local/src目录下,除了number4.tar.gz和rsaref20.tar.Z以外,其他一律用tar zxvf XXXX.tar.gz解压缩。(过瘾吧?)

  特殊的,rsaref20.tar.Z 需要先建立一个rsaref-2.0目录,然后把rsaref20.tar.Z复制到改目录下用tar zxvf rsaref30.tar.Z释放压缩。Number4.tar.gz需要复制到php-4.1.1目录内,然后用tar zxvf number4.tar.gz解压缩。

  下面的描述我想简单一点,只写出进入目录后执行的命令。那些目录都是释放的时候自己建立的,如果你这些操作都在/usr/local/src下面执行,所有的目录就都在这里面。最好按照顺序执行。再罗嗦一句:如果不是第一次编译,一般情况请执行一次make clean后再编译。

  14、[jpeg-6b]:生成JPEG图像的函数库。


  ./configure
  make
  make test
  make install


  15、[zlib-1.1.3]:压缩算法库,是PNG和JPEG需要的


  make test
  make install


  16、[freetype-2.0.8]:字体库,在图像上使用字体的时候需要用到,


  ./configure --prefix=/usr/local
  make
  make install


  17、[libpng-1.0.10]:生成PNG图像的函数库


  cp scripts/makefile.linux makefile
  make test
  pngtest pngnow.png
  (如果都通过测试了,请继续。否则,看看错误提示,改正错误)
  make install


  18、[gd-1.8.4]:GD库,用来动态生成图像用,这里主要是配合PHP生成图像。

  编辑Makefile 文件:

  把下列行取消注释符号(#):


  CFLAGS=-O -DHAVE_LIBXPM -DHAVE_LIBPNG -DHAVE_LIBJPEG
  -DHAVE_LIBFREETYPE -DHAVE_LIBTTF
  LIBS=-lgd -lpng -lz -ljpeg -lfreetype -lm -lttf

  注释下列行(增加#):
  CFLAGS=-O -DHAVE_LIBPNG -DHAVE_LIBJPEG
  LIBS=-lgd -lpng -lz -lm

  修改下列行:
  INCLUDEDIRS=-I. -I/usr/local/include/freetype2 -I/usr/include/X11
    -I/usr/X11R6/include/X11 -I/usr/local/include
     -I/usr/include/freetype


  保存后执行:


  make
  make install


  19、[apache_1.3.23]:步骤一 ./configure --prefix=/usr/local/apache

  20、[php-4.1.1]:

  如果不是第一次安装,请删除:config.cache文件,然后执行先执行make clean

  接下来配置环境,输入一个比较长的命令:


  ./configure
    --with-apache=/usr/local/src/apache_1.3.23
    --with-config-file-path=/local/apache/conf
    --with-enable-versioning
    --with-mysql=/usr/local/mysql
    --with-ftp
    --with-gd=/usr/local/src/gd-1.8.4
    --with-enabled-bcmath=yes
    --with-disable-debug
    --enable-memory-limit=yes
    --enable-track-vars
    --with-zlib
    --with-jpeg-dir=/usr/local/src/jpeg-6b
    --with-png-dir=/usr/local/src/libpng-1.0.10
    --with-freetype-dir=/usr//local/src/freetype-2.0.8


  当然你也可以实现准备一个含有上述命令的sh文件,这样改起来方便些。我就是这样做的。


  make
  make install


  21、[rsaref-2.0]:RSA加密模块

  前面说过,这个目录的释放是特殊的,先见目录后释放,希望你是这样做的。


  cp -rp install/unix local
  cd local
  make
  mv rsaref.a librsaref.a


  22、[openssl-engine-0.9.6c]:openssl引擎


  ./config -prefix=/usr/local/ssl -L`pwd`/../rsaref-2.0/local/ rsaref –fPIC
  make
  make test
  make install


  23、[mod_ssl-2.8.6-1.3.23]


  ./configure --with-apache=../apache_1.3.23


  24、[apache_1.3.23]步骤二


  ./configure --prefix=/usr/local/apache --enable-shared=ssl
     --enable-module=ssl --activate-module=src/modules/php4/libphp4.a
  make
  make certificate TYPE=custom(回答一些问题)
  make install


  25、收尾工作:

  编辑/usr/local/apache/conf/httpd.conf文件,增加一行:


  AddType application/x-httpd-php .php


  26、用命令/usr/local/apache/bin/apachectl configtest检查一下配置文件的正确性。

  27、用/usr/lcoal/apache/bin/apachectl start启动apache服务器

  28、在/usr/local/apache/htdocs建立一个test.php文件包含下列内容:


  
    phpinfo();
  ?>


  29、在别的机器上用浏览器看一下这个机器:http://xxx.xxx.xxx.xxx/test.php会出现php的配置总汇,看看前面编译的模块都在不在。

  30、检验ssl很麻烦,需要用apachectl startssl启动apache然后还要生成一大堆证书。这里就不讨论了。

  31、把/usr/local/apache/bin/apachectl文件复制到/etc/rc.d/init.d中,然后在/etc/rc.d/rd3.d中建立个符号连接指向/etc/rc.d/init.d中的上述文件:


  ln -s ../init.d/apachectl S70apachectl


  这样系统启动的时候就可以自动启动apache和她的哪一大堆模块了。

  呼~~~~(喘口气)到这里,就基本上完成了一个功能很全的WEB服务器系统了。

  (5)安装 ftp 服务器

  (6)安装 pop3服务器

  有的邮件服务器自己带pop3功能(比如Qmail、Xmail),如果你用这几种邮件服务器软件,当然就不用安装pop3了。目前,常用的邮件服务器里面不带pop3的好象只有sendmail和postfix等少数几种。这几种邮件服务器软件使用的都是系统用户,而我们安装的pop3也只是对系统用户的邮件进行弹出操作的。这里我们使用的版本和下载地址是:


  qpopper4.0.3.tar.gz   
  http://www.eudora.com/qpopper_general/


  同样的,把文件下载到/usr/local/src中,按照下列步骤安装:


  tar zxvf qpopper4.0.3.tar.gz
  cd qpopper4.0.3
  ./configure
  make
  make install


  完成后,qpopper安装在/usr/local/sbin中(如果你愿意把它放在其他地方,可以在前面用./configure –prefix=/your_path指定),文件名叫作popper。通常情况下,popper是作为一个inetd(超级网络服务进程)的子进程加载的。这样需要编辑文件/etc/inetd.conf并做下面改动: ...


  # POP3 mail server

  #pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
  pop-3 stream tcp nowait root /usr/local/sbin/popper qpopper –s
  ...


  增加黑体的这一行,注释掉原来的(上面这一行),注意,如果你的安装路经不同,记着改过来呀。然后,用下面的命令得到inetd的进程号:


  ps –ax | grep inetd


  得到结果类似:


  248 ? S 0:00 inetd


  什么?哪个是进程号?就是最前面那个数字。然后用下面的命令重新启动inetd:


  kill –HUP 248


  用下面的命令看看pop3是不是启动了。


  netstat -ln|grep 110


  如果结果是这样,就恭喜了。


  tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN


  这里还要补充一点,少数情况下,pop3进程需要独立的监听端口,也就是不作为inetd的子进程装载,上面过程需要做如下改动:

  ./configure的时候加上--enable-standalone参数。

  编辑/etc/inetd.conf不增加黑体一行,但需要注释掉原来的pop-3一行(如果有的话)。

  启动的时候,直接运行/usr/local/sbin/popper xxx.xxx.xxx.xxx:110即可。后面的参数是本地需要几监听的IP地址和端口。注意,没有特殊需要,端口必须是110。最后要说的是:其实最简单的办法就是用你使用的Linux发行包带的pop3软件,安装的时候直接选上即可。

(7)安装imap服务器
  几乎所有的发行包都带有imap服务器软件(一般是华盛顿大学版本),最好的办法是用你的发行包安装IMAP服务器。事实上,我个人觉得IMAP服务器很少被使用。下载最常规的IMAP服务器源码地址是:ftp://ftp.cac.washington.edu/imap/imap.tar.Z


  tar zxvf imap.tar.Z
  cd imap-2001a
  make slx


  (如果不行依次试验一下其他你觉得可能的系统类型,用vi看一下Makefile中列的名称)

  然后配置/etc/inetd.conf,让inetd允许imap服务。[本节内容没有试验成功,编译总是过不去]

  (安装squid服务器

  SQUID是一个优秀的代理服务器软件,它可以很灵活的被配置为各种应用形式,其中包括正向代理,反向加速模式和透明代理等。但是SQUID目前只能代理HTTP协议,代理FTP协议需要配置浏览器仿真主动FTP协议。下面的步骤是安装SQUID的过程。

  1、下载反向代理服务器软件采用squid,下载地址:http://www.squid-cache.org/

  下载后存放在/usr/local/src目录里,文件名是squid-2.4.STABLE2-src.tar.gz

  2、tar zxvf squid-2.4.STABLE2-src.tar.gz 解压缩

  3、cd /usr/local/src/squid-2.4.STABLE2 进入目录

  4、./configure --prefix=/usr/local/squid --enable-heap-replacement --disable-internal-dns建立环境,把squid安装/usr/local/squid中。第二个参数是指定使用更先进的缓冲算法。第三个参数是取消内部DNS解析(如果使用在远程高速缓存模式,比如GSLB,需要增加选项:--disable-internal-dns,目的是关闭内部DNS.否则内部DNS不理睬你在etc/hosts中的设定,直接寻找域名服务器,这样就会造成转发循环。就是cache发送给物理服务器的更新请求(因为用域名)也会被用户的GSLN设备解析回来而形成循环。)

  5、make 开始编译

  6、make install 安装到刚才--prefix=指定的路径当中

  7、安装完成后,会在您指定的安装路径里产生一个squid目录,squid目录下有四个目录:bin/ etc/ libexec/ logs/。其中etc里面是配置文件,bin里面是执行文件,logs里面是日志文件。

  8、安装结束后就是调试服务器,使其按照您的要求工作。Squid的配置文件只有一个,在etc目录里,名字是squid.conf,所有的配置选项都在这个文件里面。而且每个配置项目都有注释说明。首先,在squid文件里面找到下列配置项:

  cache_mem ---这里可以添上您准备给squid作为高速缓存使用的内存大小。注意,如果您的机器有N兆内存,那么,推荐您在这里添的数字是N/3。

  cache_dir /usr/local/squid/cache 100 16 256 这里的第一个数字100是您准备给squid作为cache使用的硬盘空间大小,单位是兆。如果您想划100M空间当作cache,那么这里就写100。

  cache_mgr
回复

使用道具 举报

 楼主| xmfish 发表于 2005-8-25 22:20:41 | 显示全部楼层
Linux必学60个命令文件处理

Linux系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。 Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。

file

1.作用

file通过探测文件内容判断文件类型,使用权限是所有用户。

2.格式

file [options] 文件名

3.[options]主?问?

-v:在标准输出后显示版本信息,并且退出。

-z:探测压缩过的文件类型。

-L:允许符合连接。

-f name:从文件namefile中读取要分析的文件名列表。

4.简单说明

使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。

5.应用实例

如果我们看到一个没有后缀的文件grap,可以使用下面命令:

$ file grap

grap: English text

此时系统显示这是一个英文文本文件。需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。

mkdir

1.作用

mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。

2.格式

mkdir [options] 目录名

3.[options]主要参数

-m, --mode=模式:设定权限<模式>,与chmod类似。

-p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。

-v, --verbose:每次创建新目录都显示信息。

--version:显示版本信息后离开。

4.应用实例

在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令:

$ mkdir -m 777 tsk

grep

1.作用

grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

2.格式

grep [options]

3.主要参数

[options]主要参数:

-c:只输出匹配行的计数。

-I:不区分大小写(只适用于单字符)。

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

pattern正则表达式主要参数:

\:忽略正则表达式中特殊字符的原有含义。

^:匹配正则表达式的开始行。

$: 匹配正则表达式的结束行。

\<:从匹配正则表达式的行开始。

\>:到匹配正则表达式的行结束。

[ ]:单个字符,如[A]即A符合要求 。

[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。

。:所有的单个字符。

* :有字符,长度可以为0。

正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。

4.应用实例

查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]\{3 \}\.[0-0\\。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。

$grep &acute;[0-9 ]\{3 \}\.[0-0\\&acute; ipfile

补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持\q模式范围的应用及与之相对应的一些更加规范的模式。

dd

1.作用

dd命令用来复制文件,并根据参数将数据转换和格式化。

2.格式

dd [options]

3.[opitions]主要参数

bs=字节:强迫 ibs=<字节>及obs=<字节>。

cbs=字节:每次转换指定的<字节>。

conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。

count=块数目:只复制指定<块数目>的输入数据。

ibs=字节:每次读取指定的<字节>。

if=文件:读取<文件>内容,而非标准输入的数据。

obs=字节:每次写入指定的<字节>。

of=文件:将数据写入<文件>,而不在标准输出显示。

seek=块数目:先略过以obs为单位的指定<块数目>的输出数据。

skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据。

4.应用实例

dd命令常常用来制作Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘:

$ rdev vmlinuz /dev/hda

$dd if=vmlinuz of=/dev/fd0

上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成自己的根分区,接下来用dd命令将该内核写入软盘。
find

1.作用

find命令的作用是在目录中搜索文件,它的使用权限是所有用户。

2.格式

find [path][options][expression]

path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。

3.主要参数

[options]参数:

-depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。

-maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。

-mindepth levels:表示至少查找到开始目录的第level层子目录。

-mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。

-version:打印版本。

[expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。

—name:支持统配符*和?。

-atime n:搜索在过去n天读取过的文件。

-ctime n:搜索在过去n天修改过的文件。

-group grpoupname:搜索所有组为grpoupname的文件。

-user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。

-size n:搜索文件大小是n个block的文件。

-print:输出搜索结果,并且打印。
4.应用技巧

find命令查找文件的几种方法:

(1)根据文件名查找

例如,我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令:

find / -name lilo.conf

find命令后的“/”表示搜索整个硬盘。

(2)快速查找文件

根据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面命令:

find /etc -name smb.conf

这样,使用“快速查找文件”方式可以缩短时间。

(3)根据部分文件名查找方法

有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令:

find / -name &acute;*abvd*&acute;

输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。

(4) 使用混合查找方式查找文件

find命令可以使用混合查找的方法,例如,我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。

find /etc -size +500000c -and -mtime +1

mv

1.作用

mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。

2.格式

mv[options] 源文件或目录 目标文件或目录

3.[options]主要参数

-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。

-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。

4.应用实例

(1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)中:

$ mv /usr/cbu/ * .

(2)将文件cjh.txt重命名为wjz.txt:

$ mv cjh.txt wjz.txt 

ls

1.作用

ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。

2.格式

ls [options][filename]

3.options主要参数

-a, --all:不隐藏任何以“.” 字符开始的项目。

-A, --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。

--author:印出每个文件著作者。

-b, --escape:以八进制溢出序列表示不可打印的字符。

--block-size=大小:块以指定<大小>的字节为单位。

-B, --ignore-backups:不列出任何以 ~ 字符结束的项目。

-f:不进行排序,-aU参数生效,-lst参数失效。

-F, --classify:加上文件类型的指示符号 (*/=@| 其中一个)。

-g:like -l, but do not list owner。

-G, --no-group:inhibit display of group information。

-i, --inode:列出每个文件的inode号。

-I, --ignore=样式:不印出任何符合Shell万用字符<样式>的项目。

-k:即--block-size=1K。

-l:使用较长格式列出信息。

-L, --dereference:当显示符号链接的文件信息时,显示符号链接所指示的对象,而并非符号链接本身的信息。

-m:所有项目以逗号分隔,并填满整行行宽。

-n, --numeric-uid-gid:类似-l,但列出UID及GID号。

-N, --literal:列出未经处理的项目名称,例如不特别处理控制字符。

-p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。

-Q, --quote-name:将项目名称括上双引号。

-r, --reverse:依相反次序排列。

-R, --recursive:同时列出所有子目录层。

-s, --size:以块大小为序。

4.应用举例

ls命令是Linux系统使用频率最多的命令,它的参数也是Linux命令中最多的。使用ls命令时会有几种不同的颜色,其中蓝色表示是目录,绿色表示是可执行文件,红色表示是压缩文件,浅蓝色表示是链接文件,加粗的黑色表示符号链接,灰色表示是其它格式文件。ls最常使用的是ls- l,见图1所示。




图1 使用ls-l命令


文件类型开头是由10个字符构成的字符串。其中第一个字符表示文件类型,它可以是下述类型之一:-(普通文件)、d(目录)、l(符号链接)、b(块设备文件)、c(字符设备文件)。后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读(r)、写(w)和执行权限(x)。对于目录,表示进入权限。s表示当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组 ID)。t表示设置标志位(留在内存,不被换出)。如果该文件是目录,那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文件,那么在该文件执行后,指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。接着显示的是文件大小、生成时间、文件或命令名称。
diff

1.作用

diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。

2.格式

diff [options] 源文件 目标文件

3.[options]主要参数

-a:将所有文件当作文本文件来处理。

-b:忽略空格造成的不同。

-B:忽略空行造成的不同。

-c:使用纲要输出格式。

-H:利用试探法加速对大文件的搜索。

-I:忽略大小写的变化。

-n rcs:输出RCS格式。

cmp

1.作用

cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户。

2.格式

cmp[options] 文件名

3.[options]主要参数

-l: 将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式输出。

cat

1.作用

cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户。

2.格式

cat [options] 文件1 文件2……

3.[options]主要参数

-n:由第一行开始对所有输出的行数编号。

-b:和-n相似,只不过对于空白行不编号。

-s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。

4.应用举例

(1)cat命令一个最简单的用处是显示文本文件的内容。例如,我们想在命令行看一下README文件的内容,可以使用命令:

$ cat README 

(2)有时需要将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件,并将它们作为一个单独的文件打印到它的输出。例如,把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附加到一个新文本文件File1 中:

$ cat README INSTALL File1

(3)cat还有一个重要的功能就是可以对行进行编号,见图2所示。这种功能对于程序文档的编制,以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。




图2 使用cat命令/etc/named.conf文件进行编号


对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数:

$ cat -b /etc/named.conf

ln

1.作用

ln命令用来在文件之间创建链接,它的使用权限是所有用户。

2.格式

ln [options] 源文件 [链接名]

3.参数

-f:链结时先将源文件删除。

-d:允许系统管理者硬链结自己的目录。

-s:进行软链结(Symbolic Link)。

-b:将在链结时会被覆盖或删除的文件进行备份。

链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。

与硬连接相对应,Lnux系统中还存在另一种连接,称为符号连接(Symbilc Link),也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

动手联系

上面我们介绍了Linux文件处理命令,下面介绍几个实例,大家可以动手练习一下刚才讲过的命令。

1.利用符号链接快速访问关键目录

符号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用,但由于Linux的文件和目录结构等原因,这个文件或目录在很深的子目录中。比如,Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中,并且不想每次都要从主目录进入这样一个长的路径之中(实际上,这个路径也非常不容易记忆)。

为了解决这个问题,可以在主目录中创建一个符号链接,这样在需要进入该目录时,只需进入这个链接即可。

为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录,在主目录下可以使用以下命令:

$ ln -s /usr/local/httpd/htdocs gg

这样每次进入gg目录就可访问Web服务器的文档,以后如果不再访问Web服务器的文档时,删除gg即可,而真正的Web服务器的文档并没有删除。

2.使用dd命令将init.rd格式的root.ram内容导入内存

dd if=/dev/fd0 of=floppy.fd

dd if=root.ram of=/dev/ram0 #

3.grep命令系统调用

grep是Linux/Unix中使用最广泛的命令之一,许多Linux系统内部都可以调用它。

(1)如果要查询目录列表中的目录,方法如下:

$ ls -l | grep &acute;∧d&acute;

(2)如果在一个目录中查询不包含目录的所有文件,方法如下:

$ ls -l | grep &acute;∧[∧d]&acute;

(3)用find命令调用grep,如所有C源代码中的“Chinput”,方法如下:

$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print
回复

使用道具 举报

 楼主| xmfish 发表于 2005-8-25 22:22:50 | 显示全部楼层
以上转自http://www.linuxdiyf.com
集中起来,便于自己学习~~
回复

使用道具 举报

 楼主| xmfish 发表于 2005-8-25 23:26:44 | 显示全部楼层
继续摘抄

Linux学习之网络FAQ

问:如何变更Sendmail邮件的默认存储位置?
答:如果Sendmail使用Procmail作为MDA(邮件投递代理)的话,可以使用Procmail来指定接收邮件的默认存储位置。方法如下:
1.建立/etc/procmailrc文件;
2.编辑/etc/procmailrc文件,指定环境变量“MAIL”的路径,比如设为“$HOME/mbox”等。
问:如何修改网卡MAC地址?
答:在/etc/sysconfig/nework-scripts/ifcfg-ethx文件中加入如下代码:
MACADDR=00:11:33:44:55#(your modified macaddress)
然后键入以下命令:
Service network restart
问:如何关闭Sendmail的Relay功能?
答:Relay就是指别人能用这台SMTP邮件服务器给任何人发信,这样别有用心的垃圾邮件发送者可以使用他人的邮件服务器大量发送垃圾邮件,而最后别人投诉的不是垃圾邮件发送者,而是他人的服务器,所以必须关闭Open Relay。办法是到Linux服务器的/etc/mail目录,编辑access文件,去掉“*relay”之类的设置,一般只留“localhost relay”和“127.0.0.1 relay”两条即可。注意,修改access文件后还要执行命令“makemap hash access.db<access”使修改生效。
问:Postfix如何设置发送邮件延迟通知?
答:因为考虑到信件流量的问题,所以Postfix缺省不发送通知。可以在main.cf中这样设置:
delay-warning-time = 4
此设置表示,如果有信件因故延迟发送,每4个小时就会给发送者发信提示信件延迟发送。
问:Linux下如何管理SSH监听端口?
答:从安全角度考虑,SSH应当取代Telnet。目前在Linux上使用广泛的SSH服务器软件sshd-config(默认路径是/etc/ssh/sshd-config)文件中,Port 22是sshd监听的端口,即为连接到主机时需要使用的端口。使用以下代码可以指定sshd监听的接口地址:
ListenAddress 192.168.0.254
这样,就可以避免向未知的用户提供登录服务。
问:Linux下如何高效率使用1000兆网卡?
答:系统加载模块时,可以根据实际情况调节参数,使网卡工作在最佳状态。驱动重新提供的可选择参数有速率、工作模式、自适应和流控等。
在Linux下,可以定义合法速率参数为0、10、100和1000。却省为0,表示网卡工作在自适应状态下,其他值分别为10Mb、100Mb和1000Mb。
工作模式有全、半双工方式。0表示适应;1表示半双工;2表示全双工。
自适应方式的有效期值范围0~3。0表示不设置流控;1表示仅对Rx流控;2表示仅对Tz流控;3表示对Rx/Tx双向流控。缺省为3。
问:如何使Linux系统对ping不良反应?
答:要使Linux对ping没反应,也就是使Linux系统忽略I CMP包。用如下命令可以达到此目的:
#echo 1 > /proc/sys/net/ipv4/icmp-echo-ignore-all
若想恢复,可用如下命令:
# echo 0 > /proc/sys/net/ipv4/icmp-echo-ignore-all
问:基于Apache的HTTPD或Sendmail服务在启动时被挂起了,如何解决此问题?
答:遇到此类问题,请确认/etc/hosts文件中是否包含如下一行:
127.0.0.1 localhost.localdomainlocalhoat
127.0.0.1 是网络的回路地址。
问:已知网络中一个机器的硬件地址,如何知道它所对应的IP地址?
答:在Linux下,假定要查“00:0A:EB:27:17:B9”这样一个硬件地址所对应的IP地址,可以使用以下命令:
# cat /proc/net/arp |grep 00:0A:EB:27:17:B9
192.168.2.54 0x1 0x6 00:0A:EB:27:17:B9 *eth2
另外,还可以用“arp -a”命令查询:
# arp –a|grep 00:0A:EB:27:17:B9
?(192.168.2.54)at 00:0A:EB:27:17:B9[ether] oneth2
问:在Linux下如何绑定IP地址和硬件地址?
答:可以编辑一个地址对应文件,里面记录了IP地址和硬件地址的对应关系,然后执行“arp –f 地址对应文件”。如果没有指定地址对应文件,则通常情况下一默认文件/etc/ethers为准。地址对应文件的格式如下:
192.168.2.11 00:0D:61:27:58:93
192.168.2.13 00:40:F4:2A:2E:5C
192.168.2.18 00:0A:EB:5E:BA:8E
初学Linux上手技巧

初用Linux的用户可能有些处处不方便的感觉,可是等使用一段时间、并掌握了一些技巧后就会感到越来越顺手了。以下就是笔者收集整理的一些Linux的使用者自初学以来积累的一些经验与技巧,相信对大家会有所帮助的。
  1、使用虚拟控制台

  登录后按“Alt+F2”键,这时又可以看到一个login提示符,这个就是第二个虚拟控制台。一般新安装的Linux有六个虚拟控制台,可以用Alt+F1至Alt+F6来访问。如果用户已经启动了XWindow,可以使用Ctrl+Alt+F1至F6来切换到所需的虚拟控制台。虚拟控制台最大的好处是当一个进程出错锁住输入时可以切换到其他虚拟控制台来终止这个进程。

  2、拷贝与粘贴

  对于字符界面,不管是Linux的哪一个版本,在安装后每次启动时都会自动运行一个叫gpm的程序,该程序运行后就可以用鼠标来进行拷贝与粘贴操作了。具体做法是按住鼠标左键拖动,使想要拷贝的地方反白,这时反白的区域已经被拷贝。再按鼠标右键,拷贝的内容就会被粘贴在光标所在位置了。

  而在XWindow下,拷贝的操作与字符界面下一样,如果你使用的是三键鼠标则按中键是粘贴,两键鼠标的话,同时按左右键是粘贴(须在配置XFree86时,在鼠标的设置里选择Emulate 3 Button)。

  3、快速进入某些目录

  我们常键入cd ~来进入用户的主工作目录,例如输入cd ~name则可以进入name用户的主目录。

  4、软驱的使用

  如果是Linux的ext2文件系统,使用如下命令:#mount -t ext2 /dev/fd0 /mnt/floppy后,DOS格式的软盘则用命令:#mount -t msdos /dev/fd0 /mnt/floppy,就可以在/mnt/floppy里访问软盘的内容了。注意在取出软盘之前要先卸掉软盘上的文件系统,使用的命令是:#umount /mnt/floppy或umount /dev/fd0,否则会导致软盘中的信息丢失。

  在软盘上建立ext2文件系统可用如下命令进行:

  格式化软盘操作:# fdformat /dev/fd0H1440、# mkfs -t ext2 /dev/fd0。

  在软盘上建立DOS文件系统可用如下命令:#mkfs -t dos /dev/fd0。

  5、Linux下显示彩色目录列表

  打开“/etc/profile”,加入:alias ls="ls color",那么在下次启动bash时就可以显示颜色的目录列表了,其中各颜色的含义如下:

  蓝色→目录

  绿色→可执行文件

  红色→压缩文件

  浅蓝色→链接文件

  灰色→其他文件

  6、显示文件的类型

  用命令file可以使你知道某个文件究竟是ELF格式的可执行文件,还是shell script格式的文件或是其他的格式,命令使用格式如:# file startx。 

  7、命令文件的路径

  当你键入一些命令如:find、shutdown、mount、startx时,是否想过要知道这些命令文件究竟放在哪个目录里?你可以使用命令which来查看,如# which startx。 

  8、查找文件

  使用find命令要加一些参数才能查到文件,如: #find /usr -name XF86Setup -print,表示在/usr里查找文件XF86Setup。

  9、一次解开?.tar、?.gz格式的文件

  解开?.tar、?.gz文件一般要先用zip软件解压再用tar解包,在Linux下可以一次完成,命令是:# tar zxvf sample.tar.gz。

  10、显示Win 9x分区里的长文件名

  如果你发现Win 9x分区里的长文件名不能显示,可灾匦掠胿fat方式来mount。对于启动时就进行mount的分区可以修改文件/etc/ fstab,将里面的msdos字样改为vfat。如果无法用vfat mount,则要重新编译一下核心,加入对vfat的支持。

  11、Linux里的Norton Commander

  在提示符下键入命令mc后你就会看到一个与Norton Commander很相似的界面,实际上它的功能也和Norton Commander很相似甚至更强大,比如可以直接对?.tar、?.gz压缩包里的文件进行操作(有点像ZipMagic)。 

  12、启动后直接进入X

  编辑/etc/inittab文件,把id:3:initdefautl改为id:5:initdefautl。

  13、后台运行X程序  

  执行一个X程序时别忘了在后面加一个“&&”号,如:#netscape &&,否则的话在你退出执行的程序之前再无法在那个终端窗口里输入命令。

  14、强行退出X

  有时候在X里由于程序出错鼠标键盘都不起作用,这时候不用着急,因为在Linux下几乎不会像在Win 9x里那样恶性死机,你只须按下Ctrl+Alt+BackSpace键就可以回到字符界面下了。

  15、重装Win 9x后“grub”失效无法启动Linux

  只须先用启动软盘启动Linux,然后输入命令:makebooktable /dev/hda。

  16、把DOS/Windows改为缺省启动的OS

  各种Linux一般都是以Linux作为lilo缺省启动的OS,即出现boot提示符后直接回车启动Linux。如果想改为DOS/Windows,就要修改文件/etc/lilo.conf,直接增加一条“default= dos”语句,然后再运行一次lilo即可。

  例如把lilo.conf:

  boot=/dev/hda   

  map=/boot/map      

  install=/boot/boot.b      

  prompt timeout=50

  image=/boot/vmlinuz-2.0.34-1

  label=linux      

  root=/dev/hdc5      

  read-only      

  other=/dev/hda1      

  label=dos      

  table=/dev/hda  

  改为:

  boot=/dev/hda      

  map=/boot/map      

  install=/boot/boot.b      

  prompt      

  timeout=50      

  default=dos      

  image=/boot/vmlinuz-2.0.34-1

  label=linux      

  root=/dev/hdc5      

  read-only      

  other=/dev/hda1      

  label=dos      

  table=/dev/hda 

  17、处理文件名内含有特殊字符的文件

  假设有一个文件名叫-file,如果你想删除它,则键入rm -file就会显示invalid option,原来由于文件名的第一个字符为“-”,Linux会把文件名当作选项了,可以用增加“”解决这个问题,即使用rm  -file。如果是其他特殊字符的话可以在特殊字符前加一个“\”,或者用双引号把整个文件名括起来。

  18、一次处理整个目录

  其实我们知道,Linux/UNIX的很多常用命令如rm、cp等都有一个参数“-r”,是递归的意思,若命令加了参数“-r”就可以对目标目录及其下所有子目录进行操作,如:rm -rf /test (f是force意为强行),该命令完全删除根目录下的子目录“test”,作用类似于DOS下的Deletree,当然使用这个命令时要特别小心。再如:cp -r /test /test1有类似DOS下Xcopy /s的作用。

  19、几个有用的别名

  几个能方便操作和减少误操作的别名,建议把它们放到启动文件里,如:/etc/profile。

  alias rm=&acute;rm -i&acute;  

  alias cp=&acute;cp -i&acute;  

  alias mv=&acute;mv -i&acute;

  这三个别名的作用是在删除、覆盖文件之前先提示确认。

  alias l=&acute;ls -l&acute;  

  alias cd..=&acute;cd ..&acute;  

  alias utar=&acute;tar xvfz&acute; #解压?.tar.gz文件 

  alias inforpm=&acute;rpm -qpi&acute; #显示rpm包的信息

  alias instrpm=&acute;rpm -Uhv&acute; #安装rpm包

  alias listrpm=&acute;rpm -qpl&acute; #列出rpm包内的文件

  alias uistrpm=&acute;rpm -e&acute; #反安装rpm包

  20、使用命令自动补齐功能

  所谓命令自动补齐功能(Command-Line Auto Completion)是指当键入的字符足以确定目录下一个惟一的文件时只须按Tab键就可以自动补齐该文件名的剩下部分,例如要把目录/freesoft下的文件gcc-2.8.1.tar.gz解包,当键入到tar xvfz /freesoft/g时如果该文件是该目录下惟一的并以“g”起头的文件的话就可以按下Tab键,这时命令会被自动补齐为:tar xvfz/freesoft/gcc-2.8.1.tar.gz,非常方便。
回复

使用道具 举报

 楼主| xmfish 发表于 2005-8-25 23:37:10 | 显示全部楼层
Linux经典实用的使用技巧33则

1:HOST的乐趣: Host能够用来查询域名,然而它可以得到更多的信息。host -t mx linux.com可以查询出Linux.com的MX记录,以及处理Mail的Host的名字。Host -l linux.com会返回所有注册在linux.com下的域名。host -a linux.com则会显示这个主机的所有域名信息。

2:找到命令需要的文件,也许你希望搞清楚一个命令它到底使用到了什么其他相关文件和命令?试试ldd就可以了。如ldd traceroute,返回结果会是libc.so.6,lid-linux.so.2

3:定时!定时!你希望定时处理吗?你肯定希望能够让你轻松一些!crontab可以听候您的指示。命令行中输入:crontab -e这进入文本编辑器,再在其中输入0 5 * * * wget -t3 -I/home/tom/URLs -N。这样每天早上5点就会运行这个wget命令。前五个是时间参数:分 时 日 月 星期几。你可以 0 5 * * 6,0 command line here,这样就在每个星期六和星期天5am运行。你需要man 5 crontab来得到更为详细的解释。随便说一下,wget是一个取web页面的小程序。 console顶部显示现在时间:在/etc/bashrc或~/.bashrc中加入环境变量PROMPT_COMMAND。export PROMPT_COMMAND='echo -ne "33733[2;999r33[1;1H33[00;44m33[K"`date`"33[00m338"'  

4:使用多达23个的虚拟终端(VT),假设你现在有6个,仿照/etc/inittab种的文件,加入
8:234:respawn:/sbin/getty 38400 tty8
24:234:respawn:/sbin/getty 38400 tty24
要跳过VT7,因为X使用这个终端。然后telinit q以重新加载配置文件。使用左Alt+Fn在1-6和8-12件切换,使用右Alt+Fn键在13-24之间切换。

5:Console切换:左Alt-方向键,循环切换console。效果和Alt+Fn一样。

6:简单的进行Dos转Unix:如果你的文本文件中每行结尾都有讨厌的Ctrl-M的话,使用这句命令能够快速的解决问题 sed 's/^M//' filename > newfilename

7:快速建立MP3播放列表:find /mnt/cdrom -name *.mp3 -print >> cd1.play.list.这样就会把CDRom中的所有MP3文件建立一个名为cd1.play.list的文件。然后使用xmms 或 x11amp就能进行播放了。

8:/proc中的重要信息
cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts - 中断
cat /proc/ioports - 设备IO端口
cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size)
cat /proc/partitions - 所有设备的所有分区
cat /proc/pci - PCI设备的信息
cat /proc/swaps - 所有Swap分区的信息
cat /proc/version - Linux的版本号

9:真正的Console界面:说实话无论是KDE和GNome我都没什么喜欢的,毕竟受Windows熏陶了这么长时间了。但是在Console下其实才是真正的Cool界面。使用SVGATextMode可以让你的命令行界面达到132x60(标准是80x25)。我的486(Trident9440)上使用的是132x43,那密密麻麻的字符真象Hollywood的几年前的电影(现在连电影里都是Windows了)给人感觉神秘兮兮的。配置文件在/etc/TextConfig中,不过如果你的XWindow都无法正常显示的话,那估计这也用不了了(毕竟是好几年前的东西了)。

10:让你的硬盘飞起来: Linux下也可以使用32Bit I/O和DMA。使用/sbin/hdparm -c1 /dev/hda(hdb,hdc..)打开32Bit传输模式,使用命令 /sbin/hdparm -d1 /dev/hda(hdb,hdc...) 打开DMA。最后使用/sbin/hdparm -k1 /dev/hda 以使硬盘在Reset之后保持上面的设定,这么一来,硬盘读写速度应该可以提高一倍以上。

11:微调你的Ext2: Linux下的命令tune2fs可以设定最大Mount次数(因为Linux即时在mounted clean状况下,达到一定的mount次数后,会强制e2fsck对于我这样的每天开关机的来说很不方便),tune2fs命令的其他用途请参见man。

12:禁止在Netscape中显示闪烁(Blink)Tag: ~/.Xdefaults中修改 Netscape*blinkingEnabled: False 之后运行 xrdb -Load ~/.Xdefaults

13:随时改变XTerm的字体大小:shift加+/-

14:Ext2的文件属性: lsattr列出属性,chattr可以改变属性。如 chattr +A filename 则系统不会修改其last access time属性;chattr +i 则可以避免被rm掉。

15:SIS6326显卡的配置:在Device中加入:DacSpeed 110 Option "no_bitblt" Option "sw_cursor"

16:使用strings可以把字符串从Binary文件中分离出来

17:你大概已经习惯了使用Top来观察系统使用情况,那就使一使使用Vmstat 1来看看cpu的空闲程度(显示结果的最后一项)。

18:使用Watch命令,反复执行特定命令,如"watch ls -l /tmp/blah",将一直观察文件的大小改变。

19:使用pppstats得到ppp连接的数据。

20:显示远程机器的NFS: showmount -e hostname

21:使用autofs免去你每次mount和umount之苦,再RedHat6.0中带了autofs的rpm,只要安装好之后便可以享受自动加载文件系统的方便。 在/misc目录下,创建一个cd目录,如果使用其自带的auto.misc和auto.master的话,马上就可以实现自动加载功能了。

22:在Bash Shell中,可以用!重复上几次输入过的命令,这样就可以省去往上滚动的麻烦了。使用ctl+R可以互动的检索以前使用过的命令行。

23:使用cd -在上两个cd /directory/操作中切换。如先是cd /home/foo接着是 cd /home/maison则接着打cd - 会进入 /home/foo再打cd - 会进入 /home/maison。

24:Bash中的快捷键:ESCAPE-B 会向前条一个单词,Ctrl-K会删除从光标到行末所有字符。

25:在PS命令中使用grep,例:ps auxw | grep gpm 会列出所有含有gpm字符的进程。

26:在同一个命令行上同时执行多条命令:用分号分隔。如编译一个源文件:type ./configure ; make ; make install 。之后你就可以去散步了(不要在电脑前花费了太多时间了,生活中还有很多美好的东西。)

27:把运行结果输出到一个文件中,如 ls -l > foo.file。

28:使用Top命令监视系统状况,内存使用情况,开机时间,进程状况,每个用户的使用情况等等。使用S命令可以改变其刷新的时间:如.5将会使其每半秒钟更新一次。

29:同时Unzip多个文件,unzip *不正确,而是unzip "*"。

30:建立符号连结,这大概是最有用的功能了,ln -s real-file symbolic-file,无论是设备,文档还是脚本程序。

31:改变显示的单位,如du -hm 将以M为单位输出结果,同样的du -hk则以K为单位输出。

32:自动Logoff,在~/.bashrc中加入这么一句话:TMOUT=300则会在5分钟之后logoff,不过如果less这类程序运行则不会启动。

33:在使用less 或 more时,直接启动编辑器:在less中打入v键,会立即启动vi或其他你在环境变量中指明的编辑器,但是more只能使用vi。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-9-29 19:17 , Processed in 0.706123 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表