http://www.regexlab.com/zh/regref.htm
很不错的正则表达式入门的文章
2006年3月30日星期四
安装酷酷的mac tiger风格的主题
http://soft.mumayi.net/Software/Catalog42/1776.html
上面可以下载mac tiger for windows的主题,很酷,用了几天了,觉得非常的好,修改的地方也非常多,包括启动界面,登陆界面,关机界面,以及所有的系统图标,甚至一些常用的软件的图标也修改了,整个系统咋一看就是mac,尤其是启动的时候,一开始还吓我一跳~~~
如果你想在你的x86上真正安装mac的话,可以到下面的网站,去下载一个
http://www.a5d.com/SoftView/SoftView_2653.asp
上面可以下载mac tiger for windows的主题,很酷,用了几天了,觉得非常的好,修改的地方也非常多,包括启动界面,登陆界面,关机界面,以及所有的系统图标,甚至一些常用的软件的图标也修改了,整个系统咋一看就是mac,尤其是启动的时候,一开始还吓我一跳~~~
如果你想在你的x86上真正安装mac的话,可以到下面的网站,去下载一个
http://www.a5d.com/SoftView/SoftView_2653.asp
安装mysql+配置php
本文介绍堪称Web数据库黄金组合的PHP/MySQL如何构筑一个网络数据库应用的方法,PHP是一个类似微软ASP的服务器端的嵌入式超文本处理语言,是建立动态网站的强大工具。而MySQL是一个轻型SQL数据库服务器,可运行在多种平台上,包括Windows NT和Linux,它还有一个GPL版本,MySQL被认为是建立数据库驱动的动态网站的最佳产品。PHP、MySQL和Apache是Linux平台网站的最佳拍档。该教程是一个3日课程,从安装到应用都有详细描述。
一、PHP/MySQL简介
您应该听说过开放源代码软件(OSS),除非最近六到八个月来您一直住在火星上。这场运动有着巨大的冲击力,已引起一些大公司的注意。象Oralce、Informix,还有多家公司都开始把他们的主力数据库产品移植到OSS的产物之一 - Linux操作系统上。
如果您有足够的技术力量,拥有一个复杂庞大的关系数据库系统(RDBMS)则是如虎添翼。但是也许您对数据库还刚刚入门,您刚刚读了Jay的文章,决定自己也来搞一个数据驱动的网站。可是您也许会发现您缺乏必要的资源来运行ASP服务器或昂贵的数据库系统(您也不需要这些东西)。您需要一些免费的、支持Unix的东西。
那么我建议您使用PHP和MySQL。这两样东西加在一起,对于开发数据驱动的网站这项工作而言,真是最佳组合。其实用不着我多费唇舌解释。一项由Netcraft组织的非官方调查显示,应用PHP的主机数目由1998年6月的7,500台跃升至1999年3月的410,000台。不错吧?这两种软件的组合还在Webcon98大会上赢得了年度数据库产品大奖,还得了一座漂亮的奖杯。
MySQL是一个小巧灵珑的数据库服务器软件,对于小型(当然也不一定很小)应用系统是非常理想的。除了支持标准的ANSI SQL语句,它还支持多种平台,而在Unix系统上该软件支持多线程运行方式,从而能获得相当好的性能。对于不使用Unix的用户,它可以在Windows NT系统上以系统服务方式运行,或者在Windows 95/98系统上以普通进程方式运行。
PHP是一种服务器端解释的脚本语言。如果你接触过ASP的话,那么您对于在HTML页面中嵌入代码应该是比较熟悉了。PHP代码在服务器一端被解释转变成普通的HTML页面内容,送给浏览器一端。这种模式使得我们可以用它来完成相当复杂的功能。
除了免费这一点(当然,MySQL也有一些使用许可方面的限制),PHP-MySQL的组合还可以跨平台运行,这意味着您可以在Windows上开发,然后在Unix平台上运行。另外,PHP也能作为标准的CGI进程来运行,此时它是一个独立的脚本解释器,或者是Apache的一个嵌入模块。
如果您有兴趣使用其他数据库服务器的话,PHP也支持Informix、Oracle、Sybase、Solid和PostgreSQL ,以及通用的ODBC。
PHP支持Internet开发的一些前沿技术。这些技术包括身份认证、XML、动态图象生成、WDDX、共享内存,以及动态PDF文档等等,不一而足。如果您还不满意的话,PHP是很容易扩展的,所以只要您有编程能力,您尽可以自己大展身手一番。
最后要说的是,两种软件都是大量程序员协同开发的,因此文档及邮件列表等支持方式很多。程序错误的修正很快,而如果您要求加入新功能的话,总会有人考虑您的要求,并且在可行性足够高的前提下加以实现。
说得够多了!我们来看看这篇教程里都有些什么内容吧。
第一课讲的是在Unix和Windows环境下安装这两个软件。如果您不太关心这个问题(也许您是在ISP的服务器上开发),您可以直接跳到第一个示例程序,从那里开始您的奇妙之旅。
在第二课里,我们要学习一些更加复杂的脚本功能,比如循环、处理用户输入,以及与数据库交换数据等等。
第三课要讲的是确认功能,以及如何使您的脚本程序清晰简练。
我们开始吧
二、安装MySQL
快点行动,拿到这些软件包,仔细研究一下吧。这可不是件容易的事儿。你从获取软件包、编译软件包到安装软件包的过程中都有不少的选择项。我们先从MySQL开始,因为有了它才能运行PHP。
MySQL中央网站是http://www.mysql.com/。为了方便人们下载使用(这软件还是比较大的),全球有许许多多的镜像网站。为更有效地利用因特网,请找一个就近的网站下载。
在这时候你也会有多种选择。如果你是发烧友的话,可以下载源代码;否则,网上也有各种平台上运行的预先编译过的二进制文件可以直接下载。
另外,MySQL还为Windows用户准备了一个共享软件版本,它的版本号稍低一些。如果你想要最新的版本,得花钱买一个软件许可。MySQL还提供了ODBC驱动程序,使前端应用程序可以访问MySQL数据库。有关其他一些详细信息在它的网站上都有得介绍,您可以去看看。
预先编译过的Unix版本和Windows版本都很简单,只须解包即可使用,不需要做太多说明了。因此,我们来介绍一下源代码的编译。Windows用户请记住,您需要运行mysqld程序,该程序是在mysql/bin目录下。
下载压缩过的软件包文件,放在一个目录下。使用gzip和tar来解压缩和解包。比较快的做法是使用下面这样的命令:
gunzip < mysql-xxxx.tar.gz | tar xvf -
其中,xxxx是你自己任取的一个版本标记。上面的命令将创建一个名为mysql-xxxx目录,所有的源程序文件都在这个目录下。通过执行cd mysql-xxxx命令转入该目录,仔细阅读其中的多个README文件INSTALL文件。在遇到某些问题时,这些文件可能会帮上大忙呢。
MySQL带有一些便利的配置脚本程序。只须简单地键入./configure,您就可以让这些程序为您完成很多工作。如果您需要明确指定要做的事情,可以使用./configure -help命令,它会给您列出你可以使用的选项。例如,如果您正在一台内存较少的机器上进行编译,那么可以使用--with-low-memory选项。我喜欢把MySQL安装在一个总目录下,而不是安装在机器上多个目录下,所以我会指定安装目录,并指定-prefix选项。
您还可以指定许多其他选项,象编译过程中要略掉哪些部分、保留哪些部分等。我们不妨假定要全部安装在服务器的/usr/local/mysql目录下。这意味着我们将键入./configure -prefix=/usr/local/mysql命令。
配置脚本程序运行时会检查您的系统,然后生成一些文件来保证编译的顺利进行。如果该脚本程序失败,它也会显示一些有用的错误信息告诉您失败的原因。大家经常会遇到脚本程序在寻找多线程库文件时失败。此时您应当检查一下系统中是否已经安装了MIT-pthreads,如果没有,那么请您安装该软件。Linux用户则必须安装LinuxThreads。这些库文件对于MySQL的多线程运行模式(也就是运行它自己的多个版本〕是非常关键的。
如果一切都顺利进行的话,只须简单键入make命令,然后就可以去泡杯咖啡
了。MySQL是相当复杂的程序,编译起来得用一段时间。如果发现错误,可以检查文档,看看只否您漏掉了某些与您的操作系统有关的准备工作。
接下来,键入make install命令,所有必需的文件都会安装到相应的目录。您差不多就可以开始使用了!如果您是MySQL新手,以前从未安装过MySQL,那您得创建默认的许可权限才能安装,因此请键入...scripts/mysql_install_db来进行相应的设置。
就这样。我们的准备工作完成了。再下面所要做的就是在机器启动时自动启动数据库,并在关机时自动关闭数据库。是的,这项工作也有一个专门的脚本程序。mysql.server start命令可以启动数据库,而mysql.server stop可以关闭数据库。实在是再简单不过了。如果您想手动启动数据库(这样就不用重启机器了),你以进到安装MySQL的最上层目录(/usr/local/mysql)然后键入bin/safe_mysqld &命令。
我们已经完成了一半了。接下来是PHP部分。
三、安装PHP
好,看到这里时,希望您已经把MySQL安装好并运行起来了。那实在是太有意思了!下面是PHP...这个过程要容易一些,不过那些大量的选项还是使人眼花缭乱。当然,您大可不必惊慌。您随时可以重头再来,重新编译PHP,根据需要来加入或去掉某个选项。
PHP的老家在http://www.php.net/。这个网站信息量极大,从开发项目内容到软件错误报告都有。和MySQL一样,您可以选一个离您最近的镜像网站下载。很显然,您得到网站的Downloads部分去下载PHP。
这里您的选择不是很多。有一些预选编译好的二进制文件,但那都是实验性的。如果您不是在Windows平台上,那就下载源代码,自己编译一下吧。
但是我们还是先谈谈Windows。在使用PHP时,一般的作法是在Windows系统上开发,然后在Unix服务器上运行。您最终可能也会选择这种方式,这就需要您对两种平台下的安装都很熟悉才行。
下载Windows二进制文件后,您可以用您喜欢的任何一种ZIP解压缩程序,把软件包中的文件解压到C盘的php3目录下。软件包中的README文件对安装过程中的细节作了部分说明,但是我们在这里再对这个文件中的关键内容做个读者文摘:如果您不想把PHP安装在C:\php3目录,而是别的目录,那么您得编辑解压缩出来的文件中那个.inf文件。
在php3目录中,您会发现很多.dll文件。把所有文件名不是以php_开头的那些.dll文件都移到\windows\system目录下。然后,把php.ini-dist文件改一下名,改成php3.ini,并把它移到\windows目录下。如果您打开这个文件,会发现里面有很多有趣的东西可以改。现在,把含有:
extension=php3_mysql.dll
内容的那一行的注释去掉。
如果您使用的是Win32平台上的Apache服务器,那么请设置Apache,使其能够识别并解释PHP文件。您需要在http.conf文件或是srm.conf文件(具体是哪一个文件取决于您使用的Apache软件的版本)中加入下一行:
Action application/x-httpd-php3 "php3/php.exe"
AddType application/x-httpd-php3 .php3
或者,如果您使用的是IIS,那么请用鼠标右键单击php_iis_reg.inf文件,并选择“安装”。您得重新启动系统,才能使刚才所做的改动生效。
OK,说完了Windows,再来说说Unix。当然,我们要从源代码开始编译。与MySQL相似,把源文件下载、解包。PHP也同样包含一个配置脚本程序,可是您不能完全使用默认设置。运行./configure -help | more命令,可以逐页地观看有哪些新的、有趣的选项。您必须选择是把PHP编译成外部CGI程序还是Apache内嵌模块。如果您正在使用Apache Web服务器,并且您可以对它进行重新编译的话,请选择内嵌模块方式,这种方式运行更快,使用也更简便。否则,您可以选CGI方式。另外,您还得指定将对MySQL的支持部分编译进去。
现在我们假定要以内嵌模块方式编译,并带有MySQL支持部分。如果随后您需要增加其他选项或库文件的话,可以在以后再加进去。键入下面的命令:
./configure -with-apache=/path/to/apache/dir -with-mysql=/usr/local/mysql
如果您打算以外部CGI程序方式来编译的话,请去掉-with-apache选项。配置程序运行起来后,会创建相应的系统文件。接下来简单地执行make命令就行了。
又可以喝一杯咖啡了。如果您在此时感到坐立不安的话,不必担心。每个人在初次安装PHP的时候都有一点近不及待的感觉。再多喝点咖啡就是了。
如果您选择CGI程序方式来编译,那么现在可以就可以使用了。只须把产生的可执行文件复制到CGI程序目录下就行了。如果您使用Apache内嵌模块方式来编译,要再执行一下make install命令,把有关文件复制到Apache目录下。在该目录下,您可以按照Apache的文档说明,向其中加入PHP模块,并重新编译Apache。
现在您得告诉Web服务器如何通过PHP程序来处理页面内容。如果您使用的不是Apache,那您需要查阅Web服务器软件的文档,看看如何让它处理后缀是.php3的文件。Apache1.3.x版本的用户仅须在httpd.conf或srm.conf文件中加入:AddType application/x-httpd-php3.php3。如果您使用的是CGI程序方式,那您在AddType前面还得加入下面内容:
Action application/x-httpd-php3 "php3/php.exe
就是这样。您的运气还不那么差,现在MySQL也运行起来了,PHP也工作正常了。
执行 mysql -uroot -p
然后就可以通过 create database mydatabase;
来创建数据库了
一、PHP/MySQL简介
您应该听说过开放源代码软件(OSS),除非最近六到八个月来您一直住在火星上。这场运动有着巨大的冲击力,已引起一些大公司的注意。象Oralce、Informix,还有多家公司都开始把他们的主力数据库产品移植到OSS的产物之一 - Linux操作系统上。
如果您有足够的技术力量,拥有一个复杂庞大的关系数据库系统(RDBMS)则是如虎添翼。但是也许您对数据库还刚刚入门,您刚刚读了Jay的文章,决定自己也来搞一个数据驱动的网站。可是您也许会发现您缺乏必要的资源来运行ASP服务器或昂贵的数据库系统(您也不需要这些东西)。您需要一些免费的、支持Unix的东西。
那么我建议您使用PHP和MySQL。这两样东西加在一起,对于开发数据驱动的网站这项工作而言,真是最佳组合。其实用不着我多费唇舌解释。一项由Netcraft组织的非官方调查显示,应用PHP的主机数目由1998年6月的7,500台跃升至1999年3月的410,000台。不错吧?这两种软件的组合还在Webcon98大会上赢得了年度数据库产品大奖,还得了一座漂亮的奖杯。
MySQL是一个小巧灵珑的数据库服务器软件,对于小型(当然也不一定很小)应用系统是非常理想的。除了支持标准的ANSI SQL语句,它还支持多种平台,而在Unix系统上该软件支持多线程运行方式,从而能获得相当好的性能。对于不使用Unix的用户,它可以在Windows NT系统上以系统服务方式运行,或者在Windows 95/98系统上以普通进程方式运行。
PHP是一种服务器端解释的脚本语言。如果你接触过ASP的话,那么您对于在HTML页面中嵌入代码应该是比较熟悉了。PHP代码在服务器一端被解释转变成普通的HTML页面内容,送给浏览器一端。这种模式使得我们可以用它来完成相当复杂的功能。
除了免费这一点(当然,MySQL也有一些使用许可方面的限制),PHP-MySQL的组合还可以跨平台运行,这意味着您可以在Windows上开发,然后在Unix平台上运行。另外,PHP也能作为标准的CGI进程来运行,此时它是一个独立的脚本解释器,或者是Apache的一个嵌入模块。
如果您有兴趣使用其他数据库服务器的话,PHP也支持Informix、Oracle、Sybase、Solid和PostgreSQL ,以及通用的ODBC。
PHP支持Internet开发的一些前沿技术。这些技术包括身份认证、XML、动态图象生成、WDDX、共享内存,以及动态PDF文档等等,不一而足。如果您还不满意的话,PHP是很容易扩展的,所以只要您有编程能力,您尽可以自己大展身手一番。
最后要说的是,两种软件都是大量程序员协同开发的,因此文档及邮件列表等支持方式很多。程序错误的修正很快,而如果您要求加入新功能的话,总会有人考虑您的要求,并且在可行性足够高的前提下加以实现。
说得够多了!我们来看看这篇教程里都有些什么内容吧。
第一课讲的是在Unix和Windows环境下安装这两个软件。如果您不太关心这个问题(也许您是在ISP的服务器上开发),您可以直接跳到第一个示例程序,从那里开始您的奇妙之旅。
在第二课里,我们要学习一些更加复杂的脚本功能,比如循环、处理用户输入,以及与数据库交换数据等等。
第三课要讲的是确认功能,以及如何使您的脚本程序清晰简练。
我们开始吧
二、安装MySQL
快点行动,拿到这些软件包,仔细研究一下吧。这可不是件容易的事儿。你从获取软件包、编译软件包到安装软件包的过程中都有不少的选择项。我们先从MySQL开始,因为有了它才能运行PHP。
MySQL中央网站是http://www.mysql.com/。为了方便人们下载使用(这软件还是比较大的),全球有许许多多的镜像网站。为更有效地利用因特网,请找一个就近的网站下载。
在这时候你也会有多种选择。如果你是发烧友的话,可以下载源代码;否则,网上也有各种平台上运行的预先编译过的二进制文件可以直接下载。
另外,MySQL还为Windows用户准备了一个共享软件版本,它的版本号稍低一些。如果你想要最新的版本,得花钱买一个软件许可。MySQL还提供了ODBC驱动程序,使前端应用程序可以访问MySQL数据库。有关其他一些详细信息在它的网站上都有得介绍,您可以去看看。
预先编译过的Unix版本和Windows版本都很简单,只须解包即可使用,不需要做太多说明了。因此,我们来介绍一下源代码的编译。Windows用户请记住,您需要运行mysqld程序,该程序是在mysql/bin目录下。
下载压缩过的软件包文件,放在一个目录下。使用gzip和tar来解压缩和解包。比较快的做法是使用下面这样的命令:
gunzip < mysql-xxxx.tar.gz | tar xvf -
其中,xxxx是你自己任取的一个版本标记。上面的命令将创建一个名为mysql-xxxx目录,所有的源程序文件都在这个目录下。通过执行cd mysql-xxxx命令转入该目录,仔细阅读其中的多个README文件INSTALL文件。在遇到某些问题时,这些文件可能会帮上大忙呢。
MySQL带有一些便利的配置脚本程序。只须简单地键入./configure,您就可以让这些程序为您完成很多工作。如果您需要明确指定要做的事情,可以使用./configure -help命令,它会给您列出你可以使用的选项。例如,如果您正在一台内存较少的机器上进行编译,那么可以使用--with-low-memory选项。我喜欢把MySQL安装在一个总目录下,而不是安装在机器上多个目录下,所以我会指定安装目录,并指定-prefix选项。
您还可以指定许多其他选项,象编译过程中要略掉哪些部分、保留哪些部分等。我们不妨假定要全部安装在服务器的/usr/local/mysql目录下。这意味着我们将键入./configure -prefix=/usr/local/mysql命令。
配置脚本程序运行时会检查您的系统,然后生成一些文件来保证编译的顺利进行。如果该脚本程序失败,它也会显示一些有用的错误信息告诉您失败的原因。大家经常会遇到脚本程序在寻找多线程库文件时失败。此时您应当检查一下系统中是否已经安装了MIT-pthreads,如果没有,那么请您安装该软件。Linux用户则必须安装LinuxThreads。这些库文件对于MySQL的多线程运行模式(也就是运行它自己的多个版本〕是非常关键的。
如果一切都顺利进行的话,只须简单键入make命令,然后就可以去泡杯咖啡
了。MySQL是相当复杂的程序,编译起来得用一段时间。如果发现错误,可以检查文档,看看只否您漏掉了某些与您的操作系统有关的准备工作。
接下来,键入make install命令,所有必需的文件都会安装到相应的目录。您差不多就可以开始使用了!如果您是MySQL新手,以前从未安装过MySQL,那您得创建默认的许可权限才能安装,因此请键入...scripts/mysql_install_db来进行相应的设置。
就这样。我们的准备工作完成了。再下面所要做的就是在机器启动时自动启动数据库,并在关机时自动关闭数据库。是的,这项工作也有一个专门的脚本程序。mysql.server start命令可以启动数据库,而mysql.server stop可以关闭数据库。实在是再简单不过了。如果您想手动启动数据库(这样就不用重启机器了),你以进到安装MySQL的最上层目录(/usr/local/mysql)然后键入bin/safe_mysqld &命令。
我们已经完成了一半了。接下来是PHP部分。
三、安装PHP
好,看到这里时,希望您已经把MySQL安装好并运行起来了。那实在是太有意思了!下面是PHP...这个过程要容易一些,不过那些大量的选项还是使人眼花缭乱。当然,您大可不必惊慌。您随时可以重头再来,重新编译PHP,根据需要来加入或去掉某个选项。
PHP的老家在http://www.php.net/。这个网站信息量极大,从开发项目内容到软件错误报告都有。和MySQL一样,您可以选一个离您最近的镜像网站下载。很显然,您得到网站的Downloads部分去下载PHP。
这里您的选择不是很多。有一些预选编译好的二进制文件,但那都是实验性的。如果您不是在Windows平台上,那就下载源代码,自己编译一下吧。
但是我们还是先谈谈Windows。在使用PHP时,一般的作法是在Windows系统上开发,然后在Unix服务器上运行。您最终可能也会选择这种方式,这就需要您对两种平台下的安装都很熟悉才行。
下载Windows二进制文件后,您可以用您喜欢的任何一种ZIP解压缩程序,把软件包中的文件解压到C盘的php3目录下。软件包中的README文件对安装过程中的细节作了部分说明,但是我们在这里再对这个文件中的关键内容做个读者文摘:如果您不想把PHP安装在C:\php3目录,而是别的目录,那么您得编辑解压缩出来的文件中那个.inf文件。
在php3目录中,您会发现很多.dll文件。把所有文件名不是以php_开头的那些.dll文件都移到\windows\system目录下。然后,把php.ini-dist文件改一下名,改成php3.ini,并把它移到\windows目录下。如果您打开这个文件,会发现里面有很多有趣的东西可以改。现在,把含有:
extension=php3_mysql.dll
内容的那一行的注释去掉。
如果您使用的是Win32平台上的Apache服务器,那么请设置Apache,使其能够识别并解释PHP文件。您需要在http.conf文件或是srm.conf文件(具体是哪一个文件取决于您使用的Apache软件的版本)中加入下一行:
Action application/x-httpd-php3 "php3/php.exe"
AddType application/x-httpd-php3 .php3
或者,如果您使用的是IIS,那么请用鼠标右键单击php_iis_reg.inf文件,并选择“安装”。您得重新启动系统,才能使刚才所做的改动生效。
OK,说完了Windows,再来说说Unix。当然,我们要从源代码开始编译。与MySQL相似,把源文件下载、解包。PHP也同样包含一个配置脚本程序,可是您不能完全使用默认设置。运行./configure -help | more命令,可以逐页地观看有哪些新的、有趣的选项。您必须选择是把PHP编译成外部CGI程序还是Apache内嵌模块。如果您正在使用Apache Web服务器,并且您可以对它进行重新编译的话,请选择内嵌模块方式,这种方式运行更快,使用也更简便。否则,您可以选CGI方式。另外,您还得指定将对MySQL的支持部分编译进去。
现在我们假定要以内嵌模块方式编译,并带有MySQL支持部分。如果随后您需要增加其他选项或库文件的话,可以在以后再加进去。键入下面的命令:
./configure -with-apache=/path/to/apache/dir -with-mysql=/usr/local/mysql
如果您打算以外部CGI程序方式来编译的话,请去掉-with-apache选项。配置程序运行起来后,会创建相应的系统文件。接下来简单地执行make命令就行了。
又可以喝一杯咖啡了。如果您在此时感到坐立不安的话,不必担心。每个人在初次安装PHP的时候都有一点近不及待的感觉。再多喝点咖啡就是了。
如果您选择CGI程序方式来编译,那么现在可以就可以使用了。只须把产生的可执行文件复制到CGI程序目录下就行了。如果您使用Apache内嵌模块方式来编译,要再执行一下make install命令,把有关文件复制到Apache目录下。在该目录下,您可以按照Apache的文档说明,向其中加入PHP模块,并重新编译Apache。
现在您得告诉Web服务器如何通过PHP程序来处理页面内容。如果您使用的不是Apache,那您需要查阅Web服务器软件的文档,看看如何让它处理后缀是.php3的文件。Apache1.3.x版本的用户仅须在httpd.conf或srm.conf文件中加入:AddType application/x-httpd-php3.php3。如果您使用的是CGI程序方式,那您在AddType前面还得加入下面内容:
Action application/x-httpd-php3 "php3/php.exe
就是这样。您的运气还不那么差,现在MySQL也运行起来了,PHP也工作正常了。
执行 mysql -uroot -p
然后就可以通过 create database mydatabase;
来创建数据库了
linux上使用adsl
电信的ADSL使用的是PPPOE拨号方式,因此,要在Linux下使用ADSL,必须安装PPPOE 客户端软件。下面说明如何进行安装:
本文以RedHat Linux7.2为实验平台,其它平台的Linux安装办法可以参照下面从源代码 进行安装的步骤。
一、安装的前提条件
1.确保安装了网卡并工作正常
使用命令
#ifconfig eth0
查看网卡状态
2.在系统中不要设置默认路由(网关),让ADSL拨号后自动获得
如果已经设置了默认路由,使用以下方法删除:
在文件 /etc/sysconfig/network 中删除 GATEWAY= 这一行,然后以root执行:
#/etc/rc.d/init.d/network restart
3.已经安装了pppd软件包
如果存在文件 /usr/sbin/pppd,则说明已经安装了pppd;
如果未安装,从RedHatLinux6.2安装光盘上安装ppp-2.3.11-4.i386.rpm这个软件包
二、安装PPPOE客户端软件
Linux下的PPPOE客户端软件比较多,而且大多使用GNULicense,我们推荐使用rp-pppoe 这个软件包。从http://www.roaringpenguin.com/pppoe/这个网站上,不仅可以下栽 RedHat 62平台下的rp-pppoe的二进制软件包,而且可以下栽源代码软件包。
1.二进制软件包的安装:
A.下栽二进制软件包
target="_blank">http://www.roaringpenguin.com/pppoe/rp-pppoe-3.2-1.i386.rpm
B.进行安装
以root执行:
#rpm -Uvh rp-pppoe-3.2-1.i386.rpm
2.从源代码进行安装:
从源代码进行安装同样适用于其它平台的Linux,但必须在Linux系统中安装gcc编译器?br>?
A.下栽源代码软件包
target="_blank">http://www.roaringpenguin.com/pppoe/rp-pppoe-3.2.tar.gz
B.解压缩
#tar xvfz rp-pppoe-3.2.tar.gz
#cd rp-pppoe-3.2
C.进行编译和安装
运行脚本
#./go
将自动进行编译和安装,最后,调用/usr/sbin/adsl-setup进行配置,具体解释见三?br>?
三、配置PPPOE客户端软件
安装完软件包后,必须配置pppoe的配置文件/etc/ppp/pppoe.conf,从而让ADSL拨号?br>? 使用配置文件中的用户名、密码等参数。我们不必手工改动这个文件,可以使用 adsl-setup这个工具进行配置:
#/usr/sbin/adsl-setup
当出现
>>> Enter your PPPoE user name :
输入ADSL帐号的用户名
当出现
>>> Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethn, where 'n' is a number.
(default eth0):
输入 eth0 ,这是ADSL相连的网卡的名字
当出现
>>> Enter the demand value (default no):
输入 no
当出现
>>> Enter the DNS information here:
输入 server ,这表示使用ADSL拨号自动获得的DNS服务器IP地址
当出现
>>> Please enter your PPPoE password:
输入ADSL帐号的密码
当出现
>>> Choose a type of firewall (0-2):
输入 0 ,不使用防火墙
当出现
>>> Accept these settings and adjust configuration files(y/n)?
如果输入的信息正确,输入 y ,完成配置,否则,输入 n 重新输入。
四、启动PPPOE客户端软件
使用命令
/usr/sbin/adsl-start 启动PPPOE客户端软件,进行连接,如果成功,将出现 Connected;
如果不成功,请检查网线、ADSL MODEM等物理设备,并查看/var/log/messages中的信 息
/usr/sbin/adsl-stop 关闭和ISP的连接
/usr/sbin/adsl-status 查看当前连接的状态
如果想在Linux系统启动时自动启动ADSL连接,输入以下命令
#chkconfig --add adsl
将在当前的运行级下加入ADSL的自启动脚本
五、测试
当连接成功后,使用命令
#ifconfig -a
在输出中应该含有关于 ppp0 的一堆信息,其中还绑定了 IP地址,说明已经从拨号中获
得了IP地址。
使用命令
#netstat -nr
查看路由表信息,这时的默认路由应该是上面获得的IP地址。
如果没有默认路由,我们可以手动增加:
#route add default gw 上面获得的IP地址
使用命令
#nslookup target="_blank">www.sina.com.cn
如果解析出新浪的IP,说明已经从拨号中正确获得了DNS服务器
最后,使用命令ping某个域名或IP,如果有响应,表示你已经大功告成了。
六、其它说明
RedHat Linux7.1 7.2 7.3已经集成了rp-pppoe这个软件包,只不过版本有些低,如果你不在意版本高低,可以直接进行三后面的步骤。
本文以RedHat Linux7.2为实验平台,其它平台的Linux安装办法可以参照下面从源代码 进行安装的步骤。
一、安装的前提条件
1.确保安装了网卡并工作正常
使用命令
#ifconfig eth0
查看网卡状态
2.在系统中不要设置默认路由(网关),让ADSL拨号后自动获得
如果已经设置了默认路由,使用以下方法删除:
在文件 /etc/sysconfig/network 中删除 GATEWAY= 这一行,然后以root执行:
#/etc/rc.d/init.d/network restart
3.已经安装了pppd软件包
如果存在文件 /usr/sbin/pppd,则说明已经安装了pppd;
如果未安装,从RedHatLinux6.2安装光盘上安装ppp-2.3.11-4.i386.rpm这个软件包
二、安装PPPOE客户端软件
Linux下的PPPOE客户端软件比较多,而且大多使用GNULicense,我们推荐使用rp-pppoe 这个软件包。从http://www.roaringpenguin.com/pppoe/这个网站上,不仅可以下栽 RedHat 62平台下的rp-pppoe的二进制软件包,而且可以下栽源代码软件包。
1.二进制软件包的安装:
A.下栽二进制软件包
target="_blank">http://www.roaringpenguin.com/pppoe/rp-pppoe-3.2-1.i386.rpm
B.进行安装
以root执行:
#rpm -Uvh rp-pppoe-3.2-1.i386.rpm
2.从源代码进行安装:
从源代码进行安装同样适用于其它平台的Linux,但必须在Linux系统中安装gcc编译器?br>?
A.下栽源代码软件包
target="_blank">http://www.roaringpenguin.com/pppoe/rp-pppoe-3.2.tar.gz
B.解压缩
#tar xvfz rp-pppoe-3.2.tar.gz
#cd rp-pppoe-3.2
C.进行编译和安装
运行脚本
#./go
将自动进行编译和安装,最后,调用/usr/sbin/adsl-setup进行配置,具体解释见三?br>?
三、配置PPPOE客户端软件
安装完软件包后,必须配置pppoe的配置文件/etc/ppp/pppoe.conf,从而让ADSL拨号?br>? 使用配置文件中的用户名、密码等参数。我们不必手工改动这个文件,可以使用 adsl-setup这个工具进行配置:
#/usr/sbin/adsl-setup
当出现
>>> Enter your PPPoE user name :
输入ADSL帐号的用户名
当出现
>>> Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethn, where 'n' is a number.
(default eth0):
输入 eth0 ,这是ADSL相连的网卡的名字
当出现
>>> Enter the demand value (default no):
输入 no
当出现
>>> Enter the DNS information here:
输入 server ,这表示使用ADSL拨号自动获得的DNS服务器IP地址
当出现
>>> Please enter your PPPoE password:
输入ADSL帐号的密码
当出现
>>> Choose a type of firewall (0-2):
输入 0 ,不使用防火墙
当出现
>>> Accept these settings and adjust configuration files(y/n)?
如果输入的信息正确,输入 y ,完成配置,否则,输入 n 重新输入。
四、启动PPPOE客户端软件
使用命令
/usr/sbin/adsl-start 启动PPPOE客户端软件,进行连接,如果成功,将出现 Connected;
如果不成功,请检查网线、ADSL MODEM等物理设备,并查看/var/log/messages中的信 息
/usr/sbin/adsl-stop 关闭和ISP的连接
/usr/sbin/adsl-status 查看当前连接的状态
如果想在Linux系统启动时自动启动ADSL连接,输入以下命令
#chkconfig --add adsl
将在当前的运行级下加入ADSL的自启动脚本
五、测试
当连接成功后,使用命令
#ifconfig -a
在输出中应该含有关于 ppp0 的一堆信息,其中还绑定了 IP地址,说明已经从拨号中获
得了IP地址。
使用命令
#netstat -nr
查看路由表信息,这时的默认路由应该是上面获得的IP地址。
如果没有默认路由,我们可以手动增加:
#route add default gw 上面获得的IP地址
使用命令
#nslookup target="_blank">www.sina.com.cn
如果解析出新浪的IP,说明已经从拨号中正确获得了DNS服务器
最后,使用命令ping某个域名或IP,如果有响应,表示你已经大功告成了。
六、其它说明
RedHat Linux7.1 7.2 7.3已经集成了rp-pppoe这个软件包,只不过版本有些低,如果你不在意版本高低,可以直接进行三后面的步骤。
提高firefox浏览的速度
步骤:
1. 先在地址栏键入about:config
2. 设置 "network.http.pipelining" 为 "true"
3. 设置 "network.http.proxy.pipelining" 为 "true"
4. 设置 "network.http.pipelining.maxrequests" 为 30
5. 单击右键,选择新建->整数,命名为 nglayout.initialpaint.delay ,值为 0
firefox 使用小技巧:转载
firefox使用小技巧
firefox真是个好东东,收集了一些使用小技巧及一些问题的解决方法,
方便以后查找使用 ^_^
不断更新中.....................
一:firefox右上角的搜索每次都链接到google主页才可以再搜索
今天终于找到让它正常工作的办法啦。^_^
输入about:config
搜索google,把两项值都去掉,就是删调字符串,就能用了。
二:解决firefox播放rtsp协议时出现"rtsp不是已注册协议",可以用firefox看在线啦
在prefs.js所在的目录下创建user.js,这个prefs.js在
~/.mozilla/firefox/infs5unb.default下
infs5unb.default这个目录可能不同,总之那个目录下有prefs.js就对啦。
内容如下:
user_pref("network.protocol-handler.external.rtsp", true);
user_pref("network.protocol-handler.app.rtsp", "/usr/bin/realplay");
/usr/bin/realplay要换成自己的realplay程序的路径哦。重启firefox,OK拉.Razz
三: 让firefox支持"右键下载",象调用flashget一样调用d4x.
https://addons.update.mozilla.org/extensions/moreinfo.php?id=220
下载该插件安装上,就可以啦
四:加快firefox浏览网页速度
在地址栏中输入about:config,然后查找下面各项,如果没有可以新建
nglayout.initialpaint.delay 100 (这里应该是0)
network.http.pipelining true
network.http.pipelining.maxrequests 30
network.http.proxy.pipelining true
network.http.max-connections 48
network.http.max-connections-per-server 24
Network.dns.disableIPv6 true
https://addons.update.mozilla.org/e...?id=327&vid=989
这个插件可以设置上面的部分选项,用起来很方便,想少打几个字就试试吧 ^_^
五:给firefox加上天气预报,不用去weather.com啦
http://forecastfox.mozdev.org/installation.html
下载该插件安装上,就可以随时得到气象信息喽
六:firefox,手气不错 !
firefox地址栏支持google的"手气不错",输入要搜索的内容
直接进入google查找结果的第一个网页,比如输入"linux"就直接进入红旗主页啦 ^_^
七:让firefox支持ed2k:///协议
1、在地址栏输入about:config,进入配置页面
2、在列表上单击右键,新建一个布尔值(Boolean)值
名字是network.protocol-handler.external.ed2k,值为true。
3、再新建一个字符串值(String),名字是network.protocol-handler.app.ed2k
值为你程序的路径
如"/usr/bin/ed2k.amule"。
八:firefox,让信息动起来! -----firefox的活动书签
浏览某些网页时,在firefox的右下角会出现一个小图标,这就说明该网页支持firefox的
"活动书签",它可以让你的书签自动更新内容,这样该网页有什么新的信息,立刻就可以
显现出来,很cool的功能。比如http://www.firefox.net.cn/newforum/index.php
firefox社区就支持这种功能(不支持才怪),还有许多网页支持这种特性,自己多留意啦 ^_^
九: 让firefox变成翻译工具
https://addons.update.mozilla.or ... fo.php?application= firefox&id=181&vid=938
下载安装后,在"工具里就多出了Translate"选择后,打开次级菜单,就可以英-汉啦
选择Options,将"Select your language"换成English,确定
就可以选择汉-英,韩,日。。不用去翻译网站喽。
1. 先在地址栏键入about:config
2. 设置 "network.http.pipelining" 为 "true"
3. 设置 "network.http.proxy.pipelining" 为 "true"
4. 设置 "network.http.pipelining.maxrequests" 为 30
5. 单击右键,选择新建->整数,命名为 nglayout.initialpaint.delay ,值为 0
firefox 使用小技巧:转载
firefox使用小技巧
firefox真是个好东东,收集了一些使用小技巧及一些问题的解决方法,
方便以后查找使用 ^_^
不断更新中.....................
一:firefox右上角的搜索每次都链接到google主页才可以再搜索
今天终于找到让它正常工作的办法啦。^_^
输入about:config
搜索google,把两项值都去掉,就是删调字符串,就能用了。
二:解决firefox播放rtsp协议时出现"rtsp不是已注册协议",可以用firefox看在线啦
在prefs.js所在的目录下创建user.js,这个prefs.js在
~/.mozilla/firefox/infs5unb.default下
infs5unb.default这个目录可能不同,总之那个目录下有prefs.js就对啦。
内容如下:
user_pref("network.protocol-handler.external.rtsp", true);
user_pref("network.protocol-handler.app.rtsp", "/usr/bin/realplay");
/usr/bin/realplay要换成自己的realplay程序的路径哦。重启firefox,OK拉.Razz
三: 让firefox支持"右键下载",象调用flashget一样调用d4x.
https://addons.update.mozilla.org/extensions/moreinfo.php?id=220
下载该插件安装上,就可以啦
四:加快firefox浏览网页速度
在地址栏中输入about:config,然后查找下面各项,如果没有可以新建
nglayout.initialpaint.delay 100 (这里应该是0)
network.http.pipelining true
network.http.pipelining.maxrequests 30
network.http.proxy.pipelining true
network.http.max-connections 48
network.http.max-connections-per-server 24
Network.dns.disableIPv6 true
https://addons.update.mozilla.org/e...?id=327&vid=989
这个插件可以设置上面的部分选项,用起来很方便,想少打几个字就试试吧 ^_^
五:给firefox加上天气预报,不用去weather.com啦
http://forecastfox.mozdev.org/installation.html
下载该插件安装上,就可以随时得到气象信息喽
六:firefox,手气不错 !
firefox地址栏支持google的"手气不错",输入要搜索的内容
直接进入google查找结果的第一个网页,比如输入"linux"就直接进入红旗主页啦 ^_^
七:让firefox支持ed2k:///协议
1、在地址栏输入about:config,进入配置页面
2、在列表上单击右键,新建一个布尔值(Boolean)值
名字是network.protocol-handler.external.ed2k,值为true。
3、再新建一个字符串值(String),名字是network.protocol-handler.app.ed2k
值为你程序的路径
如"/usr/bin/ed2k.amule"。
八:firefox,让信息动起来! -----firefox的活动书签
浏览某些网页时,在firefox的右下角会出现一个小图标,这就说明该网页支持firefox的
"活动书签",它可以让你的书签自动更新内容,这样该网页有什么新的信息,立刻就可以
显现出来,很cool的功能。比如http://www.firefox.net.cn/newforum/index.php
firefox社区就支持这种功能(不支持才怪),还有许多网页支持这种特性,自己多留意啦 ^_^
九: 让firefox变成翻译工具
https://addons.update.mozilla.or ... fo.php?application= firefox&id=181&vid=938
下载安装后,在"工具里就多出了Translate"选择后,打开次级菜单,就可以英-汉啦
选择Options,将"Select your language"换成English,确定
就可以选择汉-英,韩,日。。不用去翻译网站喽。
编译内核的详细步骤
(1)安装module-init-tools-3.0.tar.gz:
# tar -zxvf module-init-tools-3.0.tar.gz
# cd module-init-tools-3.0
# ./configure --prefix=/sbin
# make
# make install
# ./generate-modprobe.conf /etc/modprobe.conf
(2)安装modutils-2.4.25-8.9.i386.rpm:
# rpm -Uvih modutils-2.4.25-8.9.i386.rpm
对modutils进行升级。
(3)安装新内核:
将新内核copy到/usr/src下,
#tar xzvf linux-2.6.11.tar.gz -----解压缩.
II. 将名为linux的符号链接删掉,这时旧版本内核的符号链接.
#ln -s linux-2.6.11 linux ------建立linux-2.6.11的符号链接linux.
设置内核.
# cd /usr/src/linux
# make mrproper -----删除不必要的文件和目录.
#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
它们的目的是一样的,那就是生成一个.config文件
这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,你就用这个好了,这个比较方便,也好设置。如果你不能使用Xwindow,那么就使用 make menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了。
选择相应的配置时,有三种选择,它们分别代表的含义如下:
Y--将该功能编译进内核
N--不将该功能编译进内核
M--将该功能编译成可以在需要时动态插入到内核中的模块
如果使用的是make xconfig,使用鼠标就可以选择对应的选项。如果使用的是 make menuconfig,则需要使用空格键进行选取。你会发现在每一个选项前都有个括号, 但有的是中括号有的是尖括号,还有一种圆括号。用空格键选择时可以发现,中括号里要么是空,要么是"*",而尖括号里可以是空,"*"和"M"。这表示前者对应的项要么不要,要么编译到内核里;后者则多一样选择,可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。
代码成熟度选项:
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
[*] Select only drivers expected to compile cleanly
打开使用开发中、不完全的代码/驱动会让内核配置多出很多选项,由于我们需要使用一些正在开发中的功能,因此必需打开这一选项。
通用设置选项,
General setup --->
() Local version - append to kernel release
这里填入的是64字符以内的字符串,你在这里填上的字符口串可以用uname -a命令看到。
[*] Support for paging of anonymous memory (swap)
这是使用交换分区或者交换文件来做为虚拟内存的,当然要选上了。
[*] System V IPC
表示系统5的Inter Process Communication,它用于处理器在程序之间同步和交换信息,如果不选这项,很多程序运行不起来
[*] POSIX Message Queues
这是POSIX的消息队列,它同样是一种IPC。建议你最好将它选上
[*] BSD Process Accounting
这是充许用户进程访问内核将账户信息写入文件中的。这通常被认为是个好主意,建议你最好将它选上。
[*] BSD Process Accounting version 3 file format
[*] Sysctl support
这个选项能不重新编译内核修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核的参数或变量。建议你最好将它选上
[ ] Auditing support
审记支持,用于和内核的某些子模块同时工作,例如SELinux。只有选择此项及它的子项,才能调用有关审记的系统调用
(15) Kernel log buffer size (16 => 64KB, 17 => 128KB)
内核日志缓存的大小,12 => 4 KB,13 => 8 KB,14 => 16 KB单处理器,15 => 32 KB多处理器,16 => 64 KB for x86 NUMAQ or IA-64,17 => 128 KB for S/390
[*] Support for hot-pluggable devices
是否支持热插拔的选项,肯定要选上
[*] Kernel Userspace Events
内核中分为系统区和用户区,这里系统区和用户区进行通讯的一种方式,选上。
[*] Kernel .config support
将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc中得到内核的配置
[*] Enable access to .config through /proc/config.gz
[ ] Configure standard kernel features (for small systems) --->
这是为了编译某些特殊的内核使用的,通常你可以不选择这一选项,你也不用对它下面的子项操心了。
--- Configure standard kernel features (for small systems)
[ ] Load all symbols for debugging/kksymoops
是否装载所有的调试符号表信息,如果你不需要对内核调试,不需要选择此项。
[*] Enable futex support
不选这个内核不一定能正确的运行使用glibc的程序,当然要选上
[*] Enable eventpoll support
不选这个内核将不支持事件轮循的系统调用,最好选上
[*] Optimize for size
这个选项使gcc使用-Os的参数而不是-O2的参数来优化编译,以获得更小尺寸的内核,建议选上。
[*] Use full shmem filesystem
除非你在很少的内存且不使用交换内存时,才不要选择这项
(0) Function alignment
(0) Label alignment
(0) Loop alignment
(0) Jump alignment
可加载模块:
Loadable module support --->
[*] Enable loadable module support
[*] Module unloading
不选这个功能,加载的模块就不能卸载
[ ] Forced module unloading
[ ] Module versioning support (EXPERIMENTAL)
[ ] Source checksum for all modules
[*] Automatic kernel module loading
处理器类型及特性:
Processor type and features --->
Subarchitecture Type (PC-compatible) --->
Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon) --->
[ ] Generic x86 support
这一选项针对x86系列的CPU使用更多的常规优化。如果你在上面一项选的是i386、i586之类的才选这个
[*] HPET Timer Support
HPET是替代8254芯片的下一代时钟处理器。这里你可以安全的选上这一选项。如果硬件不支持的话,将仍使用8254时钟处理器
[*] Symmetric multi-processing support
对称多处理器支持,在单CPU的机器上,不选这个选项会更快一些。由于超线程技术,看起来是两颗CPU,因些要选上这个选项
(1) Maximum number of CPUs (2-255) 支持的最大CPU数
[ ] SMT (Hyperthreading) scheduler support
[*] Preemptible Kernel
这个选项能使应用程序即使内核在高负载时也很可靠,建议最好选上
[*] Machine Check Exception
这个选项能让CPU检测到系统故障时通知内核,一般我用组装的台式机会选这项。
Toshiba Laptop support
Dell laptop support
/dev/cpu/microcode - Intel IA32 CPU microcode support
/dev/cpu/*/msr - Model-specific register support
/dev/cpu/*/cpuid - CPU information support
Firmware Drivers --->
BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL)
High Memory Support (4GB) --->
[ ] Allocate 3rd-level pagetables from highmem
[ ] Math emulation
[*] MTRR (Memory Type Range Register) support
[ ] Boot from EFI support (EXPERIMENTAL)
[*] Enable kernel irq balancing
[ ] Use register arguments (EXPERI
MENTAL)
电源管理:
Power management options (ACPI, APM) --->
[*] Power Management support
[ ] Power Management Debug Support
[ ] Software Suspend (EXPERIMENTAL)
ACPI (Advanced Configuration and Power Interface) Support --->
APM (Advanced Power Management) BIOS Support --->
CPU Frequency scaling --->
ACPI (Advanced Configuration and Power Interface) Support --->
[*] ACPI Support
这是一种电源管理方式,你可以看看你的BIOS是否支持。如果支持的话建议你选上这项
[ ] Sleep States (EXPERIMENTAL)
AC Adapter
Battery
Button 捕获Power、Sleep、Lid(我也不知道这是什么按钮)等按钮是否按下,并做相应的动作
Video 集成在板上的显卡的ACPI支持,对有些板卡可能不起作用
Fan
Processor
Thermal Zone
ASUS/Medion Laptop Extras
IBM ThinkPad Laptop Extras
Toshiba Laptop Extras
(0) Disable ACPI for systems before Jan 1st this year
[ ] Debug Statements
[*] Power Management Timer Support
APM (Advanced Power Management) BIOS Support --->
APM (Advanced Power Management) BIOS support
高级电源管理的支持,一般来说笔记本应该选上,台式机可以不选。
[ ] Ignore USER SUSPEND
[*] Enable PM at boot time
[ ] Make CPU Idle calls when idle
[ ] Enable console blanking using APM
[ ] RTC stores time in GMT 按Unix的标准,硬件的时钟应该设为格林威治时间
[ ] Allow interrupts during APM BIOS calls
[*] Use real mode APM BIOS call to power off
[*] CPU Frequency scaling
这一选项允许改变CPU的主频,使CPU在低负荷或使用电池时降低主频,达到省电的目的。
[ ] Enable CPUfreq debugging
/proc/cpufreq interface (deprecated)
Default CPUFreq governor (performance) --->
--- 'performance' governor
'powersave' governor
'userspace' governor for userspace frequency scaling
[ ] /proc/sys/cpu/ interface (2.4. / OLD)
'ondemand' cpufreq policy governor自动调节主频
CPU frequency table helpers 多数的CPU需要这一项来调节主频
ACPI Processor P-States driver 报告处理器的状态
AMD Mobile K6-2/K6-3 PowerNow!
AMD Mobile Athlon/Duron PowerNow!
AMD Opteron/Athlon64 PowerNow!
Cyrix MediaGX/NatSemi Geode Suspend Modulation
Intel Enhanced SpeedStep Intel的变频技术支持
[ ] Use ACPI tables to decode valid frequency/voltage pairs
--- Built-in tables for Banias CPUs
Intel Speedstep on ICH-M chipsets (ioport interface)
Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
Intel Pentium 4 clock modulation
nVidia nForce2 FSB changing
Transmeta LongRun
VIA Cyrix III Longhaul
--- shared options
[ ] /proc/acpi/processor/../performance interface (deprecated)
[ ] Relaxed speedstep capability checks
总线类型:
[*] PCI support
PCI access mode (Any) --->强列建议选Any,系统将优先使用MMConfig,然后使用BIOS,最后使用Direct检测PCI设备。
[ ] Message Signaled Interrupts (MSI and MSI-X)
[ ] Legacy /proc/pci interface
[ ] PCI device name database
[ ] ISA support
[*] EISA support
[*] Vesa Local Bus priming
[*] Generic PCI/EISA bridge
[*] EISA virtual root device
[ ] EISA device name database
[ ] MCA support
NatSemi SCx200 support
PCCARD (PCMCIA/CardBus) support --->
PCI Hotplug Support --->
PCCARD (PCMCIA/CardBus) support --->一般只有笔记本电脑上才会有PCMCIA插槽,如果你是台式机的话,可以不选这一项,然后跳过这一部份。
PCI Hotplug Support --->
Support for PCI Hotplug (EXPERIMENTAL)
一般来讲只有服务器上会有热插拔的设备,如果你使用的是台式机,你可以不选择此项并跳过这一部份。
可执行文件格式,
[*] Kernel support for ELF binaries
ELF是开放平台下最常用的二进制文件,它支持不同的硬件平台
Kernel support for a.out and ECOFF binaries
Kernel support for MISC binaries
此选项允许插入二进制的封装层到内核中,当使用Java、.NET、Python、Lisp等语言编写的程序时非常有用
硬件设备相当复杂,看得偶头晕,大家针对自己的设备慎重选择(手边最好准备一本汉英字典:)如果想使用adsl,记得网络部分除了TCP/IP协议还得把ppp部分编译进内核,想当初偶就是把这个给忘了,郁闷了许久。
文件系统,
Second extended fs support
[*] Ext2 extended attributes
[*] Ext2 POSIX Access Control Lists
[*] Ext2 Security Labels
Ext3 journalling file system support
[*] Ext3 extended attributes
[*] Ext3 POSIX Access Control Lists
[*] Ext3 Security Labels
[ ] JBD (ext3) debugging support
Reiserfs support
[ ] Enable reiserfs debug mode
[ ] Stats in /proc/fs/reiserfs
[*] ReiserFS extended attributes
[*] ReiserFS POSIX Access Control Lists
[*] ReiserFS Security Labels
JFS filesystem support
[*] JFS POSIX Access Control Lists
[ ] JFS debugging
[ ] JFS statistics
XFS filesystem support
[*] Realtime support (EXPERIMENTAL)
[*] Quota support
[*] Security Label support
[*] POSIX ACL support
Minix fs support
ROM file system support
[*] Quota support
Old quota format support
Quota format v2 support
[*] Dnotify support
Kernel automounter support
Kernel automounter version 4 support (also supports v3)
CD-ROM/DVD Filesystems --->
DOS/FAT/NT Filesystems --->
Pseudo filesystems --->
Miscellaneous filesystems --->
Network File Systems --->
Partition Types --->
Native Language Support --->
Profiling support --->
Kernel hacking --->
Security options --->
Cryptographic options --->
Library routines --->
这个东东你要是搞不来就不要搞,默认的也可以的。先学习一下怎么样编译内核,等成功了,有了经验了在改也没有事的!
编译内核:
# cd /usr/src/linux
# make dep -----链接程序代码与函数库.
# make clean -----删除不必要的模块和文件.
# make bzImage -----开始编译系统内核.
# make modules -----开始编译外挂模块.
# make modules_install -----安装编译完成的模块.
要好常时间的,我洗了一件衣服,抽了N根白沙之后,总算完成了,好激动呀!
# su -
# /sbin/depmod -a -----创建模块的链接.
更换内核:
# cd /boot -----切换到引导分区/boot.
# rm System.map vmlinuz -----删除旧的符号链接.
# mv /usr/src/linux/System.map System.map
# mv /usr/src/linux/arch/i386/boot/bzImage vmlinuz
如果你用GRUB来管理开机,简单点就是你装了win还装了linux就要修改/boot/grub下的menu.1st文件:
# vi /boot/grub/menu.1st
键入i进入编辑模式:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,1)
# kernel /boot/vmlinuz-version ro root=/dev/hda2
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=1
timeout=10
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
title Fedora Core(2.6.11)
root (hd0,1)
kernel /boot/vmlinuz ro root=/dev/hda2 ---你的linux所在的分区
title DOS
rootnoverify (hd0,0)
chainloader +1
title Fedora Core(2.4.22)
root (hd0,1)
kernel /boot/vmlinuz-2.4.22-1.2115.nptl ro root=LABEL=/ hdd=ide-scsi rhgb
initrd /boot/initrd-2.4.22-
1.2115.nptl.img
这样还可以保留旧版本的内核以防编译新内核失败进不了系统
# tar -zxvf module-init-tools-3.0.tar.gz
# cd module-init-tools-3.0
# ./configure --prefix=/sbin
# make
# make install
# ./generate-modprobe.conf /etc/modprobe.conf
(2)安装modutils-2.4.25-8.9.i386.rpm:
# rpm -Uvih modutils-2.4.25-8.9.i386.rpm
对modutils进行升级。
(3)安装新内核:
将新内核copy到/usr/src下,
#tar xzvf linux-2.6.11.tar.gz -----解压缩.
II. 将名为linux的符号链接删掉,这时旧版本内核的符号链接.
#ln -s linux-2.6.11 linux ------建立linux-2.6.11的符号链接linux.
设置内核.
# cd /usr/src/linux
# make mrproper -----删除不必要的文件和目录.
#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
它们的目的是一样的,那就是生成一个.config文件
这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,你就用这个好了,这个比较方便,也好设置。如果你不能使用Xwindow,那么就使用 make menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了。
选择相应的配置时,有三种选择,它们分别代表的含义如下:
Y--将该功能编译进内核
N--不将该功能编译进内核
M--将该功能编译成可以在需要时动态插入到内核中的模块
如果使用的是make xconfig,使用鼠标就可以选择对应的选项。如果使用的是 make menuconfig,则需要使用空格键进行选取。你会发现在每一个选项前都有个括号, 但有的是中括号有的是尖括号,还有一种圆括号。用空格键选择时可以发现,中括号里要么是空,要么是"*",而尖括号里可以是空,"*"和"M"。这表示前者对应的项要么不要,要么编译到内核里;后者则多一样选择,可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。
代码成熟度选项:
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
[*] Select only drivers expected to compile cleanly
打开使用开发中、不完全的代码/驱动会让内核配置多出很多选项,由于我们需要使用一些正在开发中的功能,因此必需打开这一选项。
通用设置选项,
General setup --->
() Local version - append to kernel release
这里填入的是64字符以内的字符串,你在这里填上的字符口串可以用uname -a命令看到。
[*] Support for paging of anonymous memory (swap)
这是使用交换分区或者交换文件来做为虚拟内存的,当然要选上了。
[*] System V IPC
表示系统5的Inter Process Communication,它用于处理器在程序之间同步和交换信息,如果不选这项,很多程序运行不起来
[*] POSIX Message Queues
这是POSIX的消息队列,它同样是一种IPC。建议你最好将它选上
[*] BSD Process Accounting
这是充许用户进程访问内核将账户信息写入文件中的。这通常被认为是个好主意,建议你最好将它选上。
[*] BSD Process Accounting version 3 file format
[*] Sysctl support
这个选项能不重新编译内核修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核的参数或变量。建议你最好将它选上
[ ] Auditing support
审记支持,用于和内核的某些子模块同时工作,例如SELinux。只有选择此项及它的子项,才能调用有关审记的系统调用
(15) Kernel log buffer size (16 => 64KB, 17 => 128KB)
内核日志缓存的大小,12 => 4 KB,13 => 8 KB,14 => 16 KB单处理器,15 => 32 KB多处理器,16 => 64 KB for x86 NUMAQ or IA-64,17 => 128 KB for S/390
[*] Support for hot-pluggable devices
是否支持热插拔的选项,肯定要选上
[*] Kernel Userspace Events
内核中分为系统区和用户区,这里系统区和用户区进行通讯的一种方式,选上。
[*] Kernel .config support
将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc中得到内核的配置
[*] Enable access to .config through /proc/config.gz
[ ] Configure standard kernel features (for small systems) --->
这是为了编译某些特殊的内核使用的,通常你可以不选择这一选项,你也不用对它下面的子项操心了。
--- Configure standard kernel features (for small systems)
[ ] Load all symbols for debugging/kksymoops
是否装载所有的调试符号表信息,如果你不需要对内核调试,不需要选择此项。
[*] Enable futex support
不选这个内核不一定能正确的运行使用glibc的程序,当然要选上
[*] Enable eventpoll support
不选这个内核将不支持事件轮循的系统调用,最好选上
[*] Optimize for size
这个选项使gcc使用-Os的参数而不是-O2的参数来优化编译,以获得更小尺寸的内核,建议选上。
[*] Use full shmem filesystem
除非你在很少的内存且不使用交换内存时,才不要选择这项
(0) Function alignment
(0) Label alignment
(0) Loop alignment
(0) Jump alignment
可加载模块:
Loadable module support --->
[*] Enable loadable module support
[*] Module unloading
不选这个功能,加载的模块就不能卸载
[ ] Forced module unloading
[ ] Module versioning support (EXPERIMENTAL)
[ ] Source checksum for all modules
[*] Automatic kernel module loading
处理器类型及特性:
Processor type and features --->
Subarchitecture Type (PC-compatible) --->
Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon) --->
[ ] Generic x86 support
这一选项针对x86系列的CPU使用更多的常规优化。如果你在上面一项选的是i386、i586之类的才选这个
[*] HPET Timer Support
HPET是替代8254芯片的下一代时钟处理器。这里你可以安全的选上这一选项。如果硬件不支持的话,将仍使用8254时钟处理器
[*] Symmetric multi-processing support
对称多处理器支持,在单CPU的机器上,不选这个选项会更快一些。由于超线程技术,看起来是两颗CPU,因些要选上这个选项
(1) Maximum number of CPUs (2-255) 支持的最大CPU数
[ ] SMT (Hyperthreading) scheduler support
[*] Preemptible Kernel
这个选项能使应用程序即使内核在高负载时也很可靠,建议最好选上
[*] Machine Check Exception
这个选项能让CPU检测到系统故障时通知内核,一般我用组装的台式机会选这项。
Toshiba Laptop support
Dell laptop support
/dev/cpu/microcode - Intel IA32 CPU microcode support
/dev/cpu/*/msr - Model-specific register support
/dev/cpu/*/cpuid - CPU information support
Firmware Drivers --->
BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL)
High Memory Support (4GB) --->
[ ] Allocate 3rd-level pagetables from highmem
[ ] Math emulation
[*] MTRR (Memory Type Range Register) support
[ ] Boot from EFI support (EXPERIMENTAL)
[*] Enable kernel irq balancing
[ ] Use register arguments (EXPERI
MENTAL)
电源管理:
Power management options (ACPI, APM) --->
[*] Power Management support
[ ] Power Management Debug Support
[ ] Software Suspend (EXPERIMENTAL)
ACPI (Advanced Configuration and Power Interface) Support --->
APM (Advanced Power Management) BIOS Support --->
CPU Frequency scaling --->
ACPI (Advanced Configuration and Power Interface) Support --->
[*] ACPI Support
这是一种电源管理方式,你可以看看你的BIOS是否支持。如果支持的话建议你选上这项
[ ] Sleep States (EXPERIMENTAL)
AC Adapter
Battery
Button 捕获Power、Sleep、Lid(我也不知道这是什么按钮)等按钮是否按下,并做相应的动作
Video 集成在板上的显卡的ACPI支持,对有些板卡可能不起作用
Fan
Processor
Thermal Zone
ASUS/Medion Laptop Extras
IBM ThinkPad Laptop Extras
Toshiba Laptop Extras
(0) Disable ACPI for systems before Jan 1st this year
[ ] Debug Statements
[*] Power Management Timer Support
APM (Advanced Power Management) BIOS Support --->
APM (Advanced Power Management) BIOS support
高级电源管理的支持,一般来说笔记本应该选上,台式机可以不选。
[ ] Ignore USER SUSPEND
[*] Enable PM at boot time
[ ] Make CPU Idle calls when idle
[ ] Enable console blanking using APM
[ ] RTC stores time in GMT 按Unix的标准,硬件的时钟应该设为格林威治时间
[ ] Allow interrupts during APM BIOS calls
[*] Use real mode APM BIOS call to power off
[*] CPU Frequency scaling
这一选项允许改变CPU的主频,使CPU在低负荷或使用电池时降低主频,达到省电的目的。
[ ] Enable CPUfreq debugging
/proc/cpufreq interface (deprecated)
Default CPUFreq governor (performance) --->
--- 'performance' governor
'powersave' governor
'userspace' governor for userspace frequency scaling
[ ] /proc/sys/cpu/ interface (2.4. / OLD)
'ondemand' cpufreq policy governor自动调节主频
CPU frequency table helpers 多数的CPU需要这一项来调节主频
ACPI Processor P-States driver 报告处理器的状态
AMD Mobile K6-2/K6-3 PowerNow!
AMD Mobile Athlon/Duron PowerNow!
AMD Opteron/Athlon64 PowerNow!
Cyrix MediaGX/NatSemi Geode Suspend Modulation
Intel Enhanced SpeedStep Intel的变频技术支持
[ ] Use ACPI tables to decode valid frequency/voltage pairs
--- Built-in tables for Banias CPUs
Intel Speedstep on ICH-M chipsets (ioport interface)
Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
Intel Pentium 4 clock modulation
nVidia nForce2 FSB changing
Transmeta LongRun
VIA Cyrix III Longhaul
--- shared options
[ ] /proc/acpi/processor/../performance interface (deprecated)
[ ] Relaxed speedstep capability checks
总线类型:
[*] PCI support
PCI access mode (Any) --->强列建议选Any,系统将优先使用MMConfig,然后使用BIOS,最后使用Direct检测PCI设备。
[ ] Message Signaled Interrupts (MSI and MSI-X)
[ ] Legacy /proc/pci interface
[ ] PCI device name database
[ ] ISA support
[*] EISA support
[*] Vesa Local Bus priming
[*] Generic PCI/EISA bridge
[*] EISA virtual root device
[ ] EISA device name database
[ ] MCA support
NatSemi SCx200 support
PCCARD (PCMCIA/CardBus) support --->
PCI Hotplug Support --->
PCCARD (PCMCIA/CardBus) support --->一般只有笔记本电脑上才会有PCMCIA插槽,如果你是台式机的话,可以不选这一项,然后跳过这一部份。
PCI Hotplug Support --->
Support for PCI Hotplug (EXPERIMENTAL)
一般来讲只有服务器上会有热插拔的设备,如果你使用的是台式机,你可以不选择此项并跳过这一部份。
可执行文件格式,
[*] Kernel support for ELF binaries
ELF是开放平台下最常用的二进制文件,它支持不同的硬件平台
Kernel support for a.out and ECOFF binaries
Kernel support for MISC binaries
此选项允许插入二进制的封装层到内核中,当使用Java、.NET、Python、Lisp等语言编写的程序时非常有用
硬件设备相当复杂,看得偶头晕,大家针对自己的设备慎重选择(手边最好准备一本汉英字典:)如果想使用adsl,记得网络部分除了TCP/IP协议还得把ppp部分编译进内核,想当初偶就是把这个给忘了,郁闷了许久。
文件系统,
Second extended fs support
[*] Ext2 extended attributes
[*] Ext2 POSIX Access Control Lists
[*] Ext2 Security Labels
Ext3 journalling file system support
[*] Ext3 extended attributes
[*] Ext3 POSIX Access Control Lists
[*] Ext3 Security Labels
[ ] JBD (ext3) debugging support
Reiserfs support
[ ] Enable reiserfs debug mode
[ ] Stats in /proc/fs/reiserfs
[*] ReiserFS extended attributes
[*] ReiserFS POSIX Access Control Lists
[*] ReiserFS Security Labels
JFS filesystem support
[*] JFS POSIX Access Control Lists
[ ] JFS debugging
[ ] JFS statistics
XFS filesystem support
[*] Realtime support (EXPERIMENTAL)
[*] Quota support
[*] Security Label support
[*] POSIX ACL support
Minix fs support
ROM file system support
[*] Quota support
Old quota format support
Quota format v2 support
[*] Dnotify support
Kernel automounter support
Kernel automounter version 4 support (also supports v3)
CD-ROM/DVD Filesystems --->
DOS/FAT/NT Filesystems --->
Pseudo filesystems --->
Miscellaneous filesystems --->
Network File Systems --->
Partition Types --->
Native Language Support --->
Profiling support --->
Kernel hacking --->
Security options --->
Cryptographic options --->
Library routines --->
这个东东你要是搞不来就不要搞,默认的也可以的。先学习一下怎么样编译内核,等成功了,有了经验了在改也没有事的!
编译内核:
# cd /usr/src/linux
# make dep -----链接程序代码与函数库.
# make clean -----删除不必要的模块和文件.
# make bzImage -----开始编译系统内核.
# make modules -----开始编译外挂模块.
# make modules_install -----安装编译完成的模块.
要好常时间的,我洗了一件衣服,抽了N根白沙之后,总算完成了,好激动呀!
# su -
# /sbin/depmod -a -----创建模块的链接.
更换内核:
# cd /boot -----切换到引导分区/boot.
# rm System.map vmlinuz -----删除旧的符号链接.
# mv /usr/src/linux/System.map System.map
# mv /usr/src/linux/arch/i386/boot/bzImage vmlinuz
如果你用GRUB来管理开机,简单点就是你装了win还装了linux就要修改/boot/grub下的menu.1st文件:
# vi /boot/grub/menu.1st
键入i进入编辑模式:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,1)
# kernel /boot/vmlinuz-version ro root=/dev/hda2
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=1
timeout=10
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
title Fedora Core(2.6.11)
root (hd0,1)
kernel /boot/vmlinuz ro root=/dev/hda2 ---你的linux所在的分区
title DOS
rootnoverify (hd0,0)
chainloader +1
title Fedora Core(2.4.22)
root (hd0,1)
kernel /boot/vmlinuz-2.4.22-1.2115.nptl ro root=LABEL=/ hdd=ide-scsi rhgb
initrd /boot/initrd-2.4.22-
1.2115.nptl.img
这样还可以保留旧版本的内核以防编译新内核失败进不了系统
Linux中文件查找方法大全
Linux中文件查找方法大全
每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘中的哪个地方。在微软的Windows操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击“开始”-“搜索”中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档。
可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻烦的事情。毕竟在Linux中需要我们使用专用的“查找”命令来寻找在硬盘上的文件。Linux下的文件表达格式非常复杂,不象 Windows,DOS下都是统一的AAAAAAA.BBB格式那么方便查找,在Windows中,只要知道要查找的文件的文件名或者后缀就非常容易查找到。Linux中查找文件的命令通常为“find”命令,“find”命令能帮助我们在使用,管理Linux的日常事务中方便的查找出我们需要的文件。对于Linux新手来说,“find”命令也是了解和学习Linux文件特点的方法。因为Linux发行版本繁多,版本升级很快,在Linux书籍上往往写明某个配置文件的所在位置,往往Linux新手按图索骥还是不能找到。比如说REDHAT Linux 7.O和REDHAT Linux 7.1中有些重要的配置文件所在的硬盘位置和文件目录就有了很大的改变,如果不学会使用“find”命令,那么在成千上万的Linux文件中要找到其中的一个配置文件是相当困难的,笔者在没有精通“find”命令之前就吃过这样的苦头。好,下面就详细为大家介绍强大的“find”命令的全部使用方法和用途。
通过文件名查找法:
这个方法说起来就和在WINDOWS下查找文件一样容易理解了。如果你把这个文件放在单个的文件夹里面,只要使用常见的“ls"命令就能方便的查找出来,那么使用“find”命令来查找它就不能给你留下深刻的印象,毕竟“find”命令的强大功能不止这个。如果知道了某个文件的文件名,而不知道这个文件放到哪个文件夹,甚至是层层套嵌的文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用如下命令:
find / -name httpd.conf
这个命令语法看起来很容易就明白了,就是直接在find后面写上 -name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机屏幕上显示出查找结果列表:
etc/httpd/conf/httpd.conf
这就是httpd.conf这个文件在Linux系统中的完整路径。查找成功。
如果输入以上查找命令后系统并没有显示出结果,那么不要以为系统没有执行find/ -name httpd.conf命令,而可能是你的系统中没有安装Apache服务器,这时只要你安装了Apache Web服务器,然后再使用find / -name httpd.conf就能找到这个配置文件了。
无错误查找技巧:
在Linux系统中“find”命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。但是普通用户使用“find”命令时也有可能遇到这样的问题,那就是Linux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有权限用“find”命令来查询这些目录或者文件。当普通用户使用 “find”命令来查询这些文件目录是,往往会出现"Permissiondenied."(禁止访问)字样。系统将无法查询到你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,输入
find / -name access_log 2>/dev/null
这个方法是把查找错误提示转移到特定的目录中去。系统执行这个命令后,遇到错误的信息就直接输送到stderrstream 2 中,access_log 2就是表明系统将把错误信息输送到stderrstream 2中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这样查询到的错误信息将被转移了,不会再显示了。
在Linux系统查找文件也会遇到这样一个实际问题。如果我们在整个硬盘,这个系统中查找某个文件就要花费相当长的一段时间,特别是大型Linux系统和容量较大的硬盘,文件放在套嵌很深的目录中的时候。如果我们知道了这个文件存放在某个大的目录中,那么只要在这个目录中往下找就能节省很多时间了。使用find /etc -name httpd.conf 就可以解决这个问题。上面的命令就是表示在etc目录中查询httpd.conf这个文件。这里再说明一下“/ ”这个函数符号的含义,如果输入 “find/ ”就是表示要求Linux系统在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,而“find/etc”就是只在 etc目录下查找文件。因为“find/etc”表示只在etc目录下查找文件,所以查找的速度就相应要快很多了。
根据部分文件名查找方法:
这个方法和在WINDOWS中查找已知的文件名方法是一样的。不过在Linux中根据部分文件名查找文件的方法要比在WINDOWS中的同类查找方法要强大得多。例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现的,输入:
find /etc -name '*srm*'
这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如 absrmyz, tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由srm 这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:
find/etc -name 'srm*'
这是只有像srmyz 这样的文件才被查找出来,象absrmyz或者 absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。
根据文件的特征查询方法:
如果只知道某个文件的大小,修改日期等特征也可以使用“find”命令查找出来,这和WINDOWS系统中的"搜索"功能是基本相同的。在微软的"搜索 "中WINDOWS中的"搜索助理"使得搜索文件和文件夹、打印机、用户以及网络中的其他计算机更加容易。它甚至使在Internet 上搜索更加容易。"搜索助理"还包括一个索引服务,该服务维护了计算机中所有文件的索引,使得搜索速度更快。使用"搜索助理"时,用户可以指定多个搜索标准。例如,用户可以按名称、类型及大小搜索文件和文件夹。用户甚至可以搜索包含特定文本的文件。如果用户正使用 Active Directory,这时还可以搜索带有特定名称或位置的打印机。
例如我们知道一个Linux文件大小为1,500 bytes,那么我们可是使用如下命令来查询find / -size 1500c,字符 c 表明这个要查找的文件的大小是以bytes为单位。如果我们连这个文件的具体大小都不知道,那么在Linux中还可以进行模糊查找方式来解决。例如我们输入find/ -size +10000000c 这个命令,则标明我们指定系统在根目录中查找出大于10000000字节的文件并显示出来。命令中的“+”是表示要求系统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小于指定大小的文件。下面的列表就是在Linux使用不同“ find"命令后系统所要作出的查找动作,从中我们很容易看出在Linux中使用“find"命令的方式是很多的,“ find"命令查找文件只要灵活应用,丝毫不必在WI
NDOWS中查找能力差。
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
下面的列表就是对find命令所可以指定文件的特征进行查找的部分条件。在这里并没有列举所有的查找条件,参考有关Linux有关书籍可以知道所有find命令的查找函数。
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变状态的文件
-ctime n 查找系统中最后n*24小时被改变状态的文件
-empty 查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
-false 查找系统中总是错误的文件
-fstype type 查找系统中存在于指定文件系统的文件,例如:ext2 .
-gid n 查找系统中文件数字组 ID 为 n的文件
-group gname 查找系统中文件属于gnam文件组,并且指定组和ID的文件
Find命令的控制选项说明:
Find命令也提供给用户一些特有的选项来控制查找操作。下表就是我们总结出的最基本,最常用的find命令的控制选项及其用法。
选项 用途描述
-daystart 测试系统从今天开始24小时以内的文件,用法类似-amin
-depth 使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
-follow 遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询
-help 显示命令摘要
-maxdepth levels 在某个层次的目录中按照递减方法查找
-mount 不在文件系统目录中查找, 用法类似 -xdev.
-noleaf 禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找
-version 打印版本数字
使用-follow选项后,find命令则遵循通配符链接方式进行查找,除非你指定这个选项,否则一般情况下find命令将忽略通配符链接方式进行文件查找。
-maxdepth选项的作用就是限制find命令在目录中按照递减方式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样导致查找速度变慢,查找花费的时间过多。例如,我们要在当前(.)目录技巧子目录中查找一个名叫fred的文件,我们可以使用如下命令
find . -maxdepth 2 -name fred
假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查找很容易成功。假如,这个文件在. /sub1/sub2/fred目录中,那么这个命令就无法查找到。因为前面已经给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的文件。这样做的目的就是为了让find命令更加精确的定位文件,如果你已经知道了某个文件大概所在的文件目录级数,那么加入-maxdepth n 就很快的能在指定目录中查找成功。
使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如我们想在/tmp目录中查找大于100000000字节并且在48小时内修改的某个文件,我们可以使用-and 来把两个查找选项链接起来组合成一个混合的查找方式。
find /tmp -size +10000000c -and -mtime +2
学习过计算机语言的朋友都知道,在计算机语言里,使用and ,or 分别表示“与”和“或”的关系。在Linux系统的查找命令中一样通用。
还有这样的例子,
find / -user fred -or -user george
我们可以解释为在/tmp目录中查找属于fred或者george这两个用户的文件。
在find命令中还可以使用“非”的关系来查找文件,如果我们要在/tmp目录中查找所有不属于panda的文件,使用一个简单的
find /tmp ! -user panda
命令就可以解决了。很简单。
查找并显示文件的方法
查找到某个文件是我们的目的,我们更想知道查找到的文件的详细信息和属性,如果我们采取现查找文件,在使用LS命令来查看文件信息是相当繁琐的,现在我们也可以把这两个命令结合起来使用。
find / -name "httpd.conf" -ls
系统查找到httpd.conf文件后立即在屏幕上显示httpd.conf文件信息。
12063 34 -rw-r--r-- 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/httpd.conf
下面的表格就是一些常用的查找文件并显示文件信息的参数和使用方法
选项 用途描述
-exec command 查找并执行命令
-fprint file 打印文件完整文件名
-fprint0 file 打印文件完整文件名包括空的文件
-fprintf file format 打印文件格式
-ok command 给用户命令执行操作,根据用户的Y 确认输入执行
-printf format 打印文件格式
-ls 打印同种文件格式的文件
总结:到这里为止我们已经学习了这名多关于find命令的使用方法,也列出了很多常用的find命令的选项,如果我们能熟练掌握在Linux中find命令的使用方法,那么在Linux中查找文件也不是一件困难的事情。
每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘中的哪个地方。在微软的Windows操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击“开始”-“搜索”中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档。
可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻烦的事情。毕竟在Linux中需要我们使用专用的“查找”命令来寻找在硬盘上的文件。Linux下的文件表达格式非常复杂,不象 Windows,DOS下都是统一的AAAAAAA.BBB格式那么方便查找,在Windows中,只要知道要查找的文件的文件名或者后缀就非常容易查找到。Linux中查找文件的命令通常为“find”命令,“find”命令能帮助我们在使用,管理Linux的日常事务中方便的查找出我们需要的文件。对于Linux新手来说,“find”命令也是了解和学习Linux文件特点的方法。因为Linux发行版本繁多,版本升级很快,在Linux书籍上往往写明某个配置文件的所在位置,往往Linux新手按图索骥还是不能找到。比如说REDHAT Linux 7.O和REDHAT Linux 7.1中有些重要的配置文件所在的硬盘位置和文件目录就有了很大的改变,如果不学会使用“find”命令,那么在成千上万的Linux文件中要找到其中的一个配置文件是相当困难的,笔者在没有精通“find”命令之前就吃过这样的苦头。好,下面就详细为大家介绍强大的“find”命令的全部使用方法和用途。
通过文件名查找法:
这个方法说起来就和在WINDOWS下查找文件一样容易理解了。如果你把这个文件放在单个的文件夹里面,只要使用常见的“ls"命令就能方便的查找出来,那么使用“find”命令来查找它就不能给你留下深刻的印象,毕竟“find”命令的强大功能不止这个。如果知道了某个文件的文件名,而不知道这个文件放到哪个文件夹,甚至是层层套嵌的文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用如下命令:
find / -name httpd.conf
这个命令语法看起来很容易就明白了,就是直接在find后面写上 -name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机屏幕上显示出查找结果列表:
etc/httpd/conf/httpd.conf
这就是httpd.conf这个文件在Linux系统中的完整路径。查找成功。
如果输入以上查找命令后系统并没有显示出结果,那么不要以为系统没有执行find/ -name httpd.conf命令,而可能是你的系统中没有安装Apache服务器,这时只要你安装了Apache Web服务器,然后再使用find / -name httpd.conf就能找到这个配置文件了。
无错误查找技巧:
在Linux系统中“find”命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。但是普通用户使用“find”命令时也有可能遇到这样的问题,那就是Linux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有权限用“find”命令来查询这些目录或者文件。当普通用户使用 “find”命令来查询这些文件目录是,往往会出现"Permissiondenied."(禁止访问)字样。系统将无法查询到你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,输入
find / -name access_log 2>/dev/null
这个方法是把查找错误提示转移到特定的目录中去。系统执行这个命令后,遇到错误的信息就直接输送到stderrstream 2 中,access_log 2就是表明系统将把错误信息输送到stderrstream 2中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这样查询到的错误信息将被转移了,不会再显示了。
在Linux系统查找文件也会遇到这样一个实际问题。如果我们在整个硬盘,这个系统中查找某个文件就要花费相当长的一段时间,特别是大型Linux系统和容量较大的硬盘,文件放在套嵌很深的目录中的时候。如果我们知道了这个文件存放在某个大的目录中,那么只要在这个目录中往下找就能节省很多时间了。使用find /etc -name httpd.conf 就可以解决这个问题。上面的命令就是表示在etc目录中查询httpd.conf这个文件。这里再说明一下“/ ”这个函数符号的含义,如果输入 “find/ ”就是表示要求Linux系统在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,而“find/etc”就是只在 etc目录下查找文件。因为“find/etc”表示只在etc目录下查找文件,所以查找的速度就相应要快很多了。
根据部分文件名查找方法:
这个方法和在WINDOWS中查找已知的文件名方法是一样的。不过在Linux中根据部分文件名查找文件的方法要比在WINDOWS中的同类查找方法要强大得多。例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现的,输入:
find /etc -name '*srm*'
这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如 absrmyz, tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由srm 这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:
find/etc -name 'srm*'
这是只有像srmyz 这样的文件才被查找出来,象absrmyz或者 absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。
根据文件的特征查询方法:
如果只知道某个文件的大小,修改日期等特征也可以使用“find”命令查找出来,这和WINDOWS系统中的"搜索"功能是基本相同的。在微软的"搜索 "中WINDOWS中的"搜索助理"使得搜索文件和文件夹、打印机、用户以及网络中的其他计算机更加容易。它甚至使在Internet 上搜索更加容易。"搜索助理"还包括一个索引服务,该服务维护了计算机中所有文件的索引,使得搜索速度更快。使用"搜索助理"时,用户可以指定多个搜索标准。例如,用户可以按名称、类型及大小搜索文件和文件夹。用户甚至可以搜索包含特定文本的文件。如果用户正使用 Active Directory,这时还可以搜索带有特定名称或位置的打印机。
例如我们知道一个Linux文件大小为1,500 bytes,那么我们可是使用如下命令来查询find / -size 1500c,字符 c 表明这个要查找的文件的大小是以bytes为单位。如果我们连这个文件的具体大小都不知道,那么在Linux中还可以进行模糊查找方式来解决。例如我们输入find/ -size +10000000c 这个命令,则标明我们指定系统在根目录中查找出大于10000000字节的文件并显示出来。命令中的“+”是表示要求系统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小于指定大小的文件。下面的列表就是在Linux使用不同“ find"命令后系统所要作出的查找动作,从中我们很容易看出在Linux中使用“find"命令的方式是很多的,“ find"命令查找文件只要灵活应用,丝毫不必在WI
NDOWS中查找能力差。
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
下面的列表就是对find命令所可以指定文件的特征进行查找的部分条件。在这里并没有列举所有的查找条件,参考有关Linux有关书籍可以知道所有find命令的查找函数。
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变状态的文件
-ctime n 查找系统中最后n*24小时被改变状态的文件
-empty 查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
-false 查找系统中总是错误的文件
-fstype type 查找系统中存在于指定文件系统的文件,例如:ext2 .
-gid n 查找系统中文件数字组 ID 为 n的文件
-group gname 查找系统中文件属于gnam文件组,并且指定组和ID的文件
Find命令的控制选项说明:
Find命令也提供给用户一些特有的选项来控制查找操作。下表就是我们总结出的最基本,最常用的find命令的控制选项及其用法。
选项 用途描述
-daystart 测试系统从今天开始24小时以内的文件,用法类似-amin
-depth 使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
-follow 遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询
-help 显示命令摘要
-maxdepth levels 在某个层次的目录中按照递减方法查找
-mount 不在文件系统目录中查找, 用法类似 -xdev.
-noleaf 禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找
-version 打印版本数字
使用-follow选项后,find命令则遵循通配符链接方式进行查找,除非你指定这个选项,否则一般情况下find命令将忽略通配符链接方式进行文件查找。
-maxdepth选项的作用就是限制find命令在目录中按照递减方式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样导致查找速度变慢,查找花费的时间过多。例如,我们要在当前(.)目录技巧子目录中查找一个名叫fred的文件,我们可以使用如下命令
find . -maxdepth 2 -name fred
假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查找很容易成功。假如,这个文件在. /sub1/sub2/fred目录中,那么这个命令就无法查找到。因为前面已经给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的文件。这样做的目的就是为了让find命令更加精确的定位文件,如果你已经知道了某个文件大概所在的文件目录级数,那么加入-maxdepth n 就很快的能在指定目录中查找成功。
使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如我们想在/tmp目录中查找大于100000000字节并且在48小时内修改的某个文件,我们可以使用-and 来把两个查找选项链接起来组合成一个混合的查找方式。
find /tmp -size +10000000c -and -mtime +2
学习过计算机语言的朋友都知道,在计算机语言里,使用and ,or 分别表示“与”和“或”的关系。在Linux系统的查找命令中一样通用。
还有这样的例子,
find / -user fred -or -user george
我们可以解释为在/tmp目录中查找属于fred或者george这两个用户的文件。
在find命令中还可以使用“非”的关系来查找文件,如果我们要在/tmp目录中查找所有不属于panda的文件,使用一个简单的
find /tmp ! -user panda
命令就可以解决了。很简单。
查找并显示文件的方法
查找到某个文件是我们的目的,我们更想知道查找到的文件的详细信息和属性,如果我们采取现查找文件,在使用LS命令来查看文件信息是相当繁琐的,现在我们也可以把这两个命令结合起来使用。
find / -name "httpd.conf" -ls
系统查找到httpd.conf文件后立即在屏幕上显示httpd.conf文件信息。
12063 34 -rw-r--r-- 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/httpd.conf
下面的表格就是一些常用的查找文件并显示文件信息的参数和使用方法
选项 用途描述
-exec command 查找并执行命令
-fprint file 打印文件完整文件名
-fprint0 file 打印文件完整文件名包括空的文件
-fprintf file format 打印文件格式
-ok command 给用户命令执行操作,根据用户的Y 确认输入执行
-printf format 打印文件格式
-ls 打印同种文件格式的文件
总结:到这里为止我们已经学习了这名多关于find命令的使用方法,也列出了很多常用的find命令的选项,如果我们能熟练掌握在Linux中find命令的使用方法,那么在Linux中查找文件也不是一件困难的事情。
Ubuntu基础知识
Ubuntu基础知识
Ubuntu卡片
* 获取帮助
man page 或 man bash:
读取每个命令的联机帮助 或 多数配置文件.
command [--help, -h]:
大多数命令的简要帮助.
/usr/share/doc/[package-name/]:
在这里查找所有文档, 以及包含具体选项的 README.Debian 文件
* 配置
/etc/
所有的系统配置文件都在 /etc/ 目录下
nano files
默认的文本编辑器, 也可能是 emacs ,vi, joe
https://hostname:10000 处的 webmin
用于系统配置的浏览器接口, 其访问在 /etc/webmin/miniserv.conf 处定义
http://hostname:631 处的 CUPS
打印系统的浏览器接口
dpkg-reconfigure package-name
重新配置软件包, 例如console-common(键盘), locales(本地化)
update-alternatives options
设定默认启动命令
update-grub
在安装了新内核以后的操作
make-kpkg --initrd --version=2:my.1.0 --rootcmd fakeroot --uc --us kernel_image
当需要定制内核时, 从源码构建一个内核包, 需要安装 kernel-package
m-a a-i module kernel_image
创建并安装第三方模块(nvidia...), 需要安装 module-assistant
* 守护进程和系统
/etc/init.d/file restart
重启一项服务, 系统守护进程
/etc/init.d/file stop
停止一项服务, 系统守护进程
/etc/init.d/file start
启动一项服务, 系统守护进程
halt, reboot, poweroff
停止, 重启, 关闭系统
/var/log/
所有的日志文件都在这个目录下
/etc/default/
一些守护进程和服务的默认值
* 重要的shell命令
cat files
在屏幕上显示文件内容
cd directort
切换目录
cp files dest
复制文件和目录
echo string
将字符串回显至屏幕
gzip, bzip2 [-d] files
压缩, 解压 文件
less files
显示文件的内容
ls files
显示文件列表
mkdir directory-names
创建目录
mv file1 file2
移动, 重命名文件
rm files
删除文件
rmdir dirs
删除空目录
tar [c] [x] [t] [z] [j] -f file.tar [files]
创建, 解压, 列出归档文件的内容, z,j 是针对 .gz 和 .bz2 的
find directories expressions
查找文件, 如 -name name or -size +1000, 等
grep search-string files
在文件中, 搜索匹配字符串
kill [-9] number
对进程发送信号(例如, 终止它)
ln -s file link
为一个文件建立一个符号连接
ps [options]
显示当前进程
su -[username]
变成另一用户, 如 root
sudo command
普通用户以root的身份执行一个命令, 参阅 /etc/sudoers
command >file
将命令的输出以覆盖的方式输出到文件
command >>file
将命令的输出添加到文件的尾部
cmd1 |cmd2
把命令1的输出作为命令2的输入
command <file
把文件的内容作为命令的输入
* APT
apt-get update
从 /etc/apt/source.list 中源的更新软件包列表, 当源的内容改变或不能确定时,运行
apt-cache search search-string
查找描述如 search-string 的软件包
apt-cache policy package-name
显示软件包的版本和优先级
apt-cache show package-name
显示文件的描述信息
apt-cache showpkg package-name
显示软件包的依赖关系
apt-get install package-name
从源安装软件包及其所有依赖包
apt-get upgrade
将当前安装的软件包更新到最新
apt-get dist-upgrade
如 apt-get upgrade, 但是自动解决冲突
apt-get remove package-names
删除软件包, 及其所有依赖它的包
apt-cache depends package-names
列出指定包的所有依赖包
apt-cache rdepends package-names
列出依赖于给定包的所有软件包
apt-file upgrade
从源更新内容列表, 详见 apt-get upgrade
apt-file search file-name
查找包含文件的软件包
apt-file search package-name
列出软件包的内容
auto-apt
如果需要可以自动安装软件包, 可以替代 apt-file, 需要安装 auto-apt.
aptitude
APT 的控制台接口, 需要安装 aptitude
synaptic
APT的GUI接口, 需要安装synaptic
* DPKG
dpkg -l [names]
列出软件包
dpkg -I pkg.deb
显示软件包相关信息
dpkg -c pkg.deb
列出软件包的内容
dpkg -S filename
显示哪个包包含这个文件
dpkg -i pkg.deb
安装软件包
deborphan
显示没有被依赖(孤儿)的软件包, 需要安装deborphan
debsums
审计安装的软件报, 需要安装debsums
dpkg-divert [option] file
重写一个软件包的版本
dpkg --compare-versions v1 gt v2
比较版本, 用 echo $? 检查
dpkg-query -W --showformat=format
查询已安装软件包, 格式 例如'$ $ $\n'.
dpkg --get-selections <file
将选择的软件包写入一个文件
dpkg --set-selection <file
从文件读取软件包选择
* 网络
/sbin/ifconfig
配置网络接口
/etc/network/
网络配置文件, 多数与接口有关.
ifup, ifdown device
启动,停止网络接口, 根据上边的文件
ssh -X user@host
登入别的机器
scp files user@hostath
将文件复制到别的机器上
* WEB服务器(Apache2)
/etc/apache2/
配置文件
/etc/apache2/sites-enabled/default
定义默认虚拟主机
/etc/apache2/mods-available/
包含有效的模块文件. 若要启用一个模块, 在 /etc/apache2/mods-available/创建符号连接
* 数据库(postgreSQL)
createdb
创建一个新数据库
dropdb
删除一个数据库
createuser
创建一个数据库用户
dropuser
删除一个数据库用户
/etc/postgresql/pg_hba.conf
客户端访问配置文件
ALTER USER name WITH PASSWORD 'password';
通过SQL控制台 psql 来修改密码
* 文件和打印服务器(SAMBA)
/etc/samba/smb.conf
主配置文件
smbclient
浏览 SMB 网络资源, 例如, 下载, 上载文件
Ubuntu卡片
* 获取帮助
man page 或 man bash:
读取每个命令的联机帮助 或 多数配置文件.
command [--help, -h]:
大多数命令的简要帮助.
/usr/share/doc/[package-name/]:
在这里查找所有文档, 以及包含具体选项的 README.Debian 文件
* 配置
/etc/
所有的系统配置文件都在 /etc/ 目录下
nano files
默认的文本编辑器, 也可能是 emacs ,vi, joe
https://hostname:10000 处的 webmin
用于系统配置的浏览器接口, 其访问在 /etc/webmin/miniserv.conf 处定义
http://hostname:631 处的 CUPS
打印系统的浏览器接口
dpkg-reconfigure package-name
重新配置软件包, 例如console-common(键盘), locales(本地化)
update-alternatives options
设定默认启动命令
update-grub
在安装了新内核以后的操作
make-kpkg --initrd --version=2:my.1.0 --rootcmd fakeroot --uc --us kernel_image
当需要定制内核时, 从源码构建一个内核包, 需要安装 kernel-package
m-a a-i module kernel_image
创建并安装第三方模块(nvidia...), 需要安装 module-assistant
* 守护进程和系统
/etc/init.d/file restart
重启一项服务, 系统守护进程
/etc/init.d/file stop
停止一项服务, 系统守护进程
/etc/init.d/file start
启动一项服务, 系统守护进程
halt, reboot, poweroff
停止, 重启, 关闭系统
/var/log/
所有的日志文件都在这个目录下
/etc/default/
一些守护进程和服务的默认值
* 重要的shell命令
cat files
在屏幕上显示文件内容
cd directort
切换目录
cp files dest
复制文件和目录
echo string
将字符串回显至屏幕
gzip, bzip2 [-d] files
压缩, 解压 文件
less files
显示文件的内容
ls files
显示文件列表
mkdir directory-names
创建目录
mv file1 file2
移动, 重命名文件
rm files
删除文件
rmdir dirs
删除空目录
tar [c] [x] [t] [z] [j] -f file.tar [files]
创建, 解压, 列出归档文件的内容, z,j 是针对 .gz 和 .bz2 的
find directories expressions
查找文件, 如 -name name or -size +1000, 等
grep search-string files
在文件中, 搜索匹配字符串
kill [-9] number
对进程发送信号(例如, 终止它)
ln -s file link
为一个文件建立一个符号连接
ps [options]
显示当前进程
su -[username]
变成另一用户, 如 root
sudo command
普通用户以root的身份执行一个命令, 参阅 /etc/sudoers
command >file
将命令的输出以覆盖的方式输出到文件
command >>file
将命令的输出添加到文件的尾部
cmd1 |cmd2
把命令1的输出作为命令2的输入
command <file
把文件的内容作为命令的输入
* APT
apt-get update
从 /etc/apt/source.list 中源的更新软件包列表, 当源的内容改变或不能确定时,运行
apt-cache search search-string
查找描述如 search-string 的软件包
apt-cache policy package-name
显示软件包的版本和优先级
apt-cache show package-name
显示文件的描述信息
apt-cache showpkg package-name
显示软件包的依赖关系
apt-get install package-name
从源安装软件包及其所有依赖包
apt-get upgrade
将当前安装的软件包更新到最新
apt-get dist-upgrade
如 apt-get upgrade, 但是自动解决冲突
apt-get remove package-names
删除软件包, 及其所有依赖它的包
apt-cache depends package-names
列出指定包的所有依赖包
apt-cache rdepends package-names
列出依赖于给定包的所有软件包
apt-file upgrade
从源更新内容列表, 详见 apt-get upgrade
apt-file search file-name
查找包含文件的软件包
apt-file search package-name
列出软件包的内容
auto-apt
如果需要可以自动安装软件包, 可以替代 apt-file, 需要安装 auto-apt.
aptitude
APT 的控制台接口, 需要安装 aptitude
synaptic
APT的GUI接口, 需要安装synaptic
* DPKG
dpkg -l [names]
列出软件包
dpkg -I pkg.deb
显示软件包相关信息
dpkg -c pkg.deb
列出软件包的内容
dpkg -S filename
显示哪个包包含这个文件
dpkg -i pkg.deb
安装软件包
deborphan
显示没有被依赖(孤儿)的软件包, 需要安装deborphan
debsums
审计安装的软件报, 需要安装debsums
dpkg-divert [option] file
重写一个软件包的版本
dpkg --compare-versions v1 gt v2
比较版本, 用 echo $? 检查
dpkg-query -W --showformat=format
查询已安装软件包, 格式 例如'$ $ $\n'.
dpkg --get-selections <file
将选择的软件包写入一个文件
dpkg --set-selection <file
从文件读取软件包选择
* 网络
/sbin/ifconfig
配置网络接口
/etc/network/
网络配置文件, 多数与接口有关.
ifup, ifdown device
启动,停止网络接口, 根据上边的文件
ssh -X user@host
登入别的机器
scp files user@hostath
将文件复制到别的机器上
* WEB服务器(Apache2)
/etc/apache2/
配置文件
/etc/apache2/sites-enabled/default
定义默认虚拟主机
/etc/apache2/mods-available/
包含有效的模块文件. 若要启用一个模块, 在 /etc/apache2/mods-available/创建符号连接
* 数据库(postgreSQL)
createdb
创建一个新数据库
dropdb
删除一个数据库
createuser
创建一个数据库用户
dropuser
删除一个数据库用户
/etc/postgresql/pg_hba.conf
客户端访问配置文件
ALTER USER name WITH PASSWORD 'password';
通过SQL控制台 psql 来修改密码
* 文件和打印服务器(SAMBA)
/etc/samba/smb.conf
主配置文件
smbclient
浏览 SMB 网络资源, 例如, 下载, 上载文件
GRUB三步通
GRUB三步通
GRUB三步通
##################
# GRUB的优点 #
##################
GRUB 是引导装入器(boot loader) -- 它负责装入内核并引导 Linux 系统。GRUB 还可以引导其它操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT 和 2000。尽管引导操作系统看上去是件平凡且琐碎的任务,但它实际上很重要。如果引导装入器不能很好地完成工作或者不具有弹性,那么就可能锁住系统,而无法引导计算机。另外,好的引导装入器可以给您灵活性,让您可以在计算机上安装多个操作系统,而不必处理不必要的麻烦。
GRUB 是一个很棒的boot loader。它有许多功能,可以使引导过程变得非常可靠。例如,它可以直接从 FAT、minix、FFS、ext2 或 ReiserFS 分区读取 Linux 内核。这就意味着无论怎样它总能找到内核。另外,GRUB 有一个特殊的交互式控制台方式,可以让您手工装入内核并选择引导分区。这个功能是无价的:假设 GRUB 菜单配置不正确,但仍可以引导系统。哦,对了 -- GRUB 还有一个彩色引导菜单。更令人惊讶的是,这是一个自由软件!
##################
# GRUB菜单 #
##################
先来看一个例子,这是位于/boot/grub/目录下的menu.lst文件。 此文件将在开机是产生一个菜单,包含有Debian linux,Windows2000,RedHat linux和 Mandrake linux,共四个选择项。我一共分了8个区,一个fat16(0x6),一个ntfs(0x7),三个ext2fs分区(0x83),一个swap分区(0x82)。ntfs用来装win2000,三个ext2fs装了三个linux,c盘fat16分区没有装任何东西。
#例子由此开始
######################
# 一个GRUB configure 的例子 #
######################
timeout 10
default 2
# --> Debian linux <--
title Debian linux
root (hd0,2)
kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro
initrd /boot/initrd-2.2.18.gz
# --> Debian END <--
# --> Windows 菜单选项 <--
title Windows2000
root (hd0,0)
chainloader +1
# --> Winddows 结束 <--
# --> RedHat linux 菜单选项 <--
title RedHat linux
root (hd0,8)
chainloader +1 # 在硬盘主引导分区装了lilo,所以也用了chainloader。
# --> RedHat linux 结束 <--
# --> Mandrake linux 菜单选项 <--
title Mandrake linux
root (hd0,5)
kernel /boot/vmlinuz-2.4.3-20mdk root=/dev/hda6 ro
initrd /boot/initrd-2.4.3-20mdk.img
# --> Mandrake linux 结束 <--
#例子到此结束
(以符号井"#"开头的行表示被注释掉,没有任何意义。)
timeout表示默认等待的时间,这儿是10秒钟。超过10秒,用户还没有作出选择的话,系统将自动选择默认的操作系统。
默认的操作系统就是由default控制的。default后加一个数字n,表明是第n+1个。需要注意的是,GRUB中,计数是从0开始的,第一个硬盘是hd0,第一个软驱是fd0,等等。所以,default 2 表示默认的操作系统在这儿是 Redhat linux。
接下来,正如你所想象的,title表示的是“Debian linux”菜单项。root (hd0,2)表示第一个硬盘,第三个分区。这儿的root 于linux的root分区及其不同,此root非彼root也!
在 Linux 中,当谈到 "root" 文件系统时,通常是指主 Linux 分区。但是,GRUB 有它自己的 root 分区定义。GRUB 的 root 分区是保存 Linux 内核的分区。这可能是您的正式 root 文件系统,也可能不是。我们讨论的是 GRUB,需要指定 GRUB 的 root 分区。进入 root 分区时,GRUB 将把这个分区安装成只读型,这样就可以从该分区中装入 Linux 内核。GRUB 的一个很“酷”的功能是它可以读取本机的 FAT、FFS、minix、ext2 和 ReiserFS 分区。
到目前为止,您可能会感到一点疑惑,因为 GRUB 所使用的硬盘/分区命名约定与 Linux 使用的命名约定不同。在 Linux 中,第一个硬盘的第五个分区称作 "hda5"。而 GRUB 把这个分区称作 "(hd0,4)"。GRUB 对硬盘和分区的编号都是从 0 开始计算。另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。现在,可以发现如果要引导 Linux 硬盘 hda5,应输入 "root (hd0,4)"。
知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。
kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro说明/boot/vmlinuz-2.2.18 就是要载入的内核。后面的都是传递给内核的参数。root=/dev/hda3就是linux的硬盘分区表示法,ro是以readonly的意思。
initrd用来初始的linux image,并设置相应的参数。
是不是感觉很简单啊!再来看一看windows的定义段吧。
这里,我添加了一项来引导 Windows2000。要完成此操作,GRUB 使用了“链式装入器”(chainloader)。链式装入器从分区 (hd0,0) 的引导记录中装入 win2000 自己的引导装入器,然后引导它。这就是这种技术叫做链式装入的原因 -- 它创建了一个从引导装入器到另一个的链。这种链式装入技术可以用于引导任何版本的 DOS 或 Windows。
我的RedHat linux在硬盘主引导分区装了lilo,所以也用了chainloader。
GRUB的配置文件要简单就这么简单,如果你要更个性化一点,试一试把“color light-gray/blue ”加在default语句的下面,下一次启动GRUB时,看看有什么变化,再试一试“color light-blue/red",惊喜吗? 有趣吧!
######################
# GRUB的交互性 #
######################
GRUB 最好的优点之一就是其强健的设计 -- 在不断使用它时请别忘了这点。如果更新内核或更改它在磁盘上的位置,不必重新安装 GRUB。事实上,如有必要,只要更新 menu.lst 文件即可,一切将保持正常。
只有少数情况下,才需要将 GRUB 引导装入器重新安装到引导记录。首先,如果更改 GRUB root 分区的分区类型(例如,从 ext2 改成 ReiserFS),则需要重新安装。或者,如果更新 /boot/grub 中的 stage1 和 stage2 文件,由于它们来自更新版本的 GRUB,很有可能要重新安装引导装入器。其它情况下,可以不必理睬!
GRUB的最大的特点就是交互性特别强.在开机时,按一下“c”,将进入GRUB 控制台.显示如下:
GRUB version 0.5.96.1 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub>
欢迎使用 GRUB 控制台。现在,再研究命令:
我将通过GRUB 控制台绕过lilo来启动RedHat linux,
grub> root (h
现在,按一次 Tab 键。如果系统中有多个硬盘,GRUB 将显示可能完成的列表,从 "hd0" 开始。如果只有一个硬盘,GRUB 将插入 "hd0,"。如果有多个硬盘,继续进行,在 ("hd2") 中输入名称并在名称后紧跟着输入逗号,但不要按 Enter 键。部分完成的 root 命令看起来如下:
grub> root (hd0,
现在,继续操作,再按一次 Tab 键。GRUB 将显示特定硬盘上所有分区的列表,以及它们的文件系统类型。在我的系统中,按 Tab 键时得到以下列表:
grub&g
t; root (hd0, (tab,按tab一下键)
Possible partitions are:
Partition num: 0, Filesystem type is fat, partition type 0x6
Partition num: 2, Filesystem type is ext2fs, partition type 0x83
Partition num: 4, Filesystem type unknown, partition type 0x7
Partition num: 5, Filesystem type is ext2fs, partition type 0x83
Partition num: 6, Filesystem type is fat, partition type 0xb
Partition num: 7, Filesystem type is fat, partition type 0xb
Partition num: 8, Filesystem type is ext2fs, partition type 0x83
Partition num: 9, Filesystem type unknown, partition type 0x82
如您所见,GRUB 的交互式硬盘和分区名称实现功能非常有条理。这些,只需要好好理解 GRUB 新奇的硬盘和分区命名语法,然后就可以继续操作了
grub> root (hd0,8)
现在已安装了 root 文件系统,到装入内核的时候了
grub> kernel /boot/vmlinuz-2.4.2 root=/dev/hda5 ro
[Linux-bzImage, setup=0x1200, size=0xe1a30]
您已经安装了 root 文件系统并装入了内核。现在,可以引导了。只要输入 "boot",Linux 引导过程就将开始。是不是很cool啊,GRUB的menu.lst更像一个linux下的脚本程序。
#####################
# GRUB启动盘 #
#####################
要制作引导盘,需执行一些简单的步骤。首先,在新的软盘上创建 ext2 文件系统。然后,将其安装,并将一些 GRUB 文件复制到该文件系统,最后运行 "grub" 程序,它将负责设置软盘的引导扇区。准备好了吗?
将一张空盘插入 1.44MB 软驱,输入:
# mke2fs /dev/fd0
创建了 ext2 文件系统后,需要安装该文件系统:
# mount /dev/fd0 /mnt/floppy
现在,需要创建一些目录,并将一些关键文件(原先安装 GRUB 时已安装了这些文件)复制到软盘:
# mkdir /mnt/floppy/boot
# mkdir /mnt/floppy/boot/grub
# cp /boot/grub/stage1 /mnt/floppy/boot/grub
# cp /boot/grub/stage2 /mnt/floppy/boot/grub
再有一个步骤,就能得到可用的引导盘。
在linux bash中,从 root 用户运行“grub”,该程序非常有趣并值得注意,因为它实际上是 GRUB 引导装入器的半功能性版本。尽管 Linux 已经启动并正在运行,您仍可以运行 GRUB 并执行某些任务,而且其界面与使用 GRUB 引导盘或将 GRUB 安装到硬盘 MBR 时看到的界面(即GRUB控制台)完全相同。
在 grub> 提示符处,输入:
grub> root (fd0)
grub> setup (fd0)
grub> quit
现在,引导盘完成了。
如果要把GRUB装到硬盘上,也很容易。这个过程几乎与引导盘安装过程一样。首先,需要决定哪个硬盘分区将成为 root GRUB 分区。在这个分区上,创建 /boot/grub 目录,并将 stage1 和 stage2 文件复制到该目录中,可以通过重新引导系统并使用引导盘,或者使用驻留版本的 GRUB 来执行后一步操作。在这两种情况下,启动 GRUB,并用 root 命令指定 root 分区。例如,如果将 stage1 和 stage2 文件复制到 hda5 的 /boot/grub 目录中,应输入 "root (hd0,4)"。接着,决定在哪里安装 GRUB -- 在硬盘的 MBR,或者如果与 GRUB 一起使用另一个“主”引导装入器,则安装在特定分区的引导记录中。如果安装到 MBR,则可以指定整个磁盘而不必指定分区,如下(对于 hda):
grub> setup (hd0)
如果要将 GRUB 安装到 /dev/hda5 的引导记录中,应输入:
grub> setup (hd0,4)
现在,已安装 GRUB。引导系统时,应该立即以 GRUB 的控制台方式结束(如果安装到 MBR)。现在,应创建引导菜单,这样就不必在每次引导系统时都输入那些命令。
小结:在这里只是介绍了 GRUB 的一部分。例如,可以使用 GRUB 来执行网络引导,引导 BSD 文件系统,或更多操作。另外,GRUB 有许多配置和安全性命令也很有用。如需所有 GRUB 功能的完整描述,请阅读 GRUB 出色的 GNU 文档。只要在 bash 提示中输入 "info grub" 就可以阅读该文档。
有用的一些信息:xosl是一个支持鼠标的图形界面boot loader,可以于system command和boot manager相比网址是www.xosl.org。
GRUB的下载:ftp://alpha.gnu.org/gnu/grub/
GRUB三步通
##################
# GRUB的优点 #
##################
GRUB 是引导装入器(boot loader) -- 它负责装入内核并引导 Linux 系统。GRUB 还可以引导其它操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT 和 2000。尽管引导操作系统看上去是件平凡且琐碎的任务,但它实际上很重要。如果引导装入器不能很好地完成工作或者不具有弹性,那么就可能锁住系统,而无法引导计算机。另外,好的引导装入器可以给您灵活性,让您可以在计算机上安装多个操作系统,而不必处理不必要的麻烦。
GRUB 是一个很棒的boot loader。它有许多功能,可以使引导过程变得非常可靠。例如,它可以直接从 FAT、minix、FFS、ext2 或 ReiserFS 分区读取 Linux 内核。这就意味着无论怎样它总能找到内核。另外,GRUB 有一个特殊的交互式控制台方式,可以让您手工装入内核并选择引导分区。这个功能是无价的:假设 GRUB 菜单配置不正确,但仍可以引导系统。哦,对了 -- GRUB 还有一个彩色引导菜单。更令人惊讶的是,这是一个自由软件!
##################
# GRUB菜单 #
##################
先来看一个例子,这是位于/boot/grub/目录下的menu.lst文件。 此文件将在开机是产生一个菜单,包含有Debian linux,Windows2000,RedHat linux和 Mandrake linux,共四个选择项。我一共分了8个区,一个fat16(0x6),一个ntfs(0x7),三个ext2fs分区(0x83),一个swap分区(0x82)。ntfs用来装win2000,三个ext2fs装了三个linux,c盘fat16分区没有装任何东西。
#例子由此开始
######################
# 一个GRUB configure 的例子 #
######################
timeout 10
default 2
# --> Debian linux <--
title Debian linux
root (hd0,2)
kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro
initrd /boot/initrd-2.2.18.gz
# --> Debian END <--
# --> Windows 菜单选项 <--
title Windows2000
root (hd0,0)
chainloader +1
# --> Winddows 结束 <--
# --> RedHat linux 菜单选项 <--
title RedHat linux
root (hd0,8)
chainloader +1 # 在硬盘主引导分区装了lilo,所以也用了chainloader。
# --> RedHat linux 结束 <--
# --> Mandrake linux 菜单选项 <--
title Mandrake linux
root (hd0,5)
kernel /boot/vmlinuz-2.4.3-20mdk root=/dev/hda6 ro
initrd /boot/initrd-2.4.3-20mdk.img
# --> Mandrake linux 结束 <--
#例子到此结束
(以符号井"#"开头的行表示被注释掉,没有任何意义。)
timeout表示默认等待的时间,这儿是10秒钟。超过10秒,用户还没有作出选择的话,系统将自动选择默认的操作系统。
默认的操作系统就是由default控制的。default后加一个数字n,表明是第n+1个。需要注意的是,GRUB中,计数是从0开始的,第一个硬盘是hd0,第一个软驱是fd0,等等。所以,default 2 表示默认的操作系统在这儿是 Redhat linux。
接下来,正如你所想象的,title表示的是“Debian linux”菜单项。root (hd0,2)表示第一个硬盘,第三个分区。这儿的root 于linux的root分区及其不同,此root非彼root也!
在 Linux 中,当谈到 "root" 文件系统时,通常是指主 Linux 分区。但是,GRUB 有它自己的 root 分区定义。GRUB 的 root 分区是保存 Linux 内核的分区。这可能是您的正式 root 文件系统,也可能不是。我们讨论的是 GRUB,需要指定 GRUB 的 root 分区。进入 root 分区时,GRUB 将把这个分区安装成只读型,这样就可以从该分区中装入 Linux 内核。GRUB 的一个很“酷”的功能是它可以读取本机的 FAT、FFS、minix、ext2 和 ReiserFS 分区。
到目前为止,您可能会感到一点疑惑,因为 GRUB 所使用的硬盘/分区命名约定与 Linux 使用的命名约定不同。在 Linux 中,第一个硬盘的第五个分区称作 "hda5"。而 GRUB 把这个分区称作 "(hd0,4)"。GRUB 对硬盘和分区的编号都是从 0 开始计算。另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。现在,可以发现如果要引导 Linux 硬盘 hda5,应输入 "root (hd0,4)"。
知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。
kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro说明/boot/vmlinuz-2.2.18 就是要载入的内核。后面的都是传递给内核的参数。root=/dev/hda3就是linux的硬盘分区表示法,ro是以readonly的意思。
initrd用来初始的linux image,并设置相应的参数。
是不是感觉很简单啊!再来看一看windows的定义段吧。
这里,我添加了一项来引导 Windows2000。要完成此操作,GRUB 使用了“链式装入器”(chainloader)。链式装入器从分区 (hd0,0) 的引导记录中装入 win2000 自己的引导装入器,然后引导它。这就是这种技术叫做链式装入的原因 -- 它创建了一个从引导装入器到另一个的链。这种链式装入技术可以用于引导任何版本的 DOS 或 Windows。
我的RedHat linux在硬盘主引导分区装了lilo,所以也用了chainloader。
GRUB的配置文件要简单就这么简单,如果你要更个性化一点,试一试把“color light-gray/blue ”加在default语句的下面,下一次启动GRUB时,看看有什么变化,再试一试“color light-blue/red",惊喜吗? 有趣吧!
######################
# GRUB的交互性 #
######################
GRUB 最好的优点之一就是其强健的设计 -- 在不断使用它时请别忘了这点。如果更新内核或更改它在磁盘上的位置,不必重新安装 GRUB。事实上,如有必要,只要更新 menu.lst 文件即可,一切将保持正常。
只有少数情况下,才需要将 GRUB 引导装入器重新安装到引导记录。首先,如果更改 GRUB root 分区的分区类型(例如,从 ext2 改成 ReiserFS),则需要重新安装。或者,如果更新 /boot/grub 中的 stage1 和 stage2 文件,由于它们来自更新版本的 GRUB,很有可能要重新安装引导装入器。其它情况下,可以不必理睬!
GRUB的最大的特点就是交互性特别强.在开机时,按一下“c”,将进入GRUB 控制台.显示如下:
GRUB version 0.5.96.1 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub>
欢迎使用 GRUB 控制台。现在,再研究命令:
我将通过GRUB 控制台绕过lilo来启动RedHat linux,
grub> root (h
现在,按一次 Tab 键。如果系统中有多个硬盘,GRUB 将显示可能完成的列表,从 "hd0" 开始。如果只有一个硬盘,GRUB 将插入 "hd0,"。如果有多个硬盘,继续进行,在 ("hd2") 中输入名称并在名称后紧跟着输入逗号,但不要按 Enter 键。部分完成的 root 命令看起来如下:
grub> root (hd0,
现在,继续操作,再按一次 Tab 键。GRUB 将显示特定硬盘上所有分区的列表,以及它们的文件系统类型。在我的系统中,按 Tab 键时得到以下列表:
grub&g
t; root (hd0, (tab,按tab一下键)
Possible partitions are:
Partition num: 0, Filesystem type is fat, partition type 0x6
Partition num: 2, Filesystem type is ext2fs, partition type 0x83
Partition num: 4, Filesystem type unknown, partition type 0x7
Partition num: 5, Filesystem type is ext2fs, partition type 0x83
Partition num: 6, Filesystem type is fat, partition type 0xb
Partition num: 7, Filesystem type is fat, partition type 0xb
Partition num: 8, Filesystem type is ext2fs, partition type 0x83
Partition num: 9, Filesystem type unknown, partition type 0x82
如您所见,GRUB 的交互式硬盘和分区名称实现功能非常有条理。这些,只需要好好理解 GRUB 新奇的硬盘和分区命名语法,然后就可以继续操作了
grub> root (hd0,8)
现在已安装了 root 文件系统,到装入内核的时候了
grub> kernel /boot/vmlinuz-2.4.2 root=/dev/hda5 ro
[Linux-bzImage, setup=0x1200, size=0xe1a30]
您已经安装了 root 文件系统并装入了内核。现在,可以引导了。只要输入 "boot",Linux 引导过程就将开始。是不是很cool啊,GRUB的menu.lst更像一个linux下的脚本程序。
#####################
# GRUB启动盘 #
#####################
要制作引导盘,需执行一些简单的步骤。首先,在新的软盘上创建 ext2 文件系统。然后,将其安装,并将一些 GRUB 文件复制到该文件系统,最后运行 "grub" 程序,它将负责设置软盘的引导扇区。准备好了吗?
将一张空盘插入 1.44MB 软驱,输入:
# mke2fs /dev/fd0
创建了 ext2 文件系统后,需要安装该文件系统:
# mount /dev/fd0 /mnt/floppy
现在,需要创建一些目录,并将一些关键文件(原先安装 GRUB 时已安装了这些文件)复制到软盘:
# mkdir /mnt/floppy/boot
# mkdir /mnt/floppy/boot/grub
# cp /boot/grub/stage1 /mnt/floppy/boot/grub
# cp /boot/grub/stage2 /mnt/floppy/boot/grub
再有一个步骤,就能得到可用的引导盘。
在linux bash中,从 root 用户运行“grub”,该程序非常有趣并值得注意,因为它实际上是 GRUB 引导装入器的半功能性版本。尽管 Linux 已经启动并正在运行,您仍可以运行 GRUB 并执行某些任务,而且其界面与使用 GRUB 引导盘或将 GRUB 安装到硬盘 MBR 时看到的界面(即GRUB控制台)完全相同。
在 grub> 提示符处,输入:
grub> root (fd0)
grub> setup (fd0)
grub> quit
现在,引导盘完成了。
如果要把GRUB装到硬盘上,也很容易。这个过程几乎与引导盘安装过程一样。首先,需要决定哪个硬盘分区将成为 root GRUB 分区。在这个分区上,创建 /boot/grub 目录,并将 stage1 和 stage2 文件复制到该目录中,可以通过重新引导系统并使用引导盘,或者使用驻留版本的 GRUB 来执行后一步操作。在这两种情况下,启动 GRUB,并用 root 命令指定 root 分区。例如,如果将 stage1 和 stage2 文件复制到 hda5 的 /boot/grub 目录中,应输入 "root (hd0,4)"。接着,决定在哪里安装 GRUB -- 在硬盘的 MBR,或者如果与 GRUB 一起使用另一个“主”引导装入器,则安装在特定分区的引导记录中。如果安装到 MBR,则可以指定整个磁盘而不必指定分区,如下(对于 hda):
grub> setup (hd0)
如果要将 GRUB 安装到 /dev/hda5 的引导记录中,应输入:
grub> setup (hd0,4)
现在,已安装 GRUB。引导系统时,应该立即以 GRUB 的控制台方式结束(如果安装到 MBR)。现在,应创建引导菜单,这样就不必在每次引导系统时都输入那些命令。
小结:在这里只是介绍了 GRUB 的一部分。例如,可以使用 GRUB 来执行网络引导,引导 BSD 文件系统,或更多操作。另外,GRUB 有许多配置和安全性命令也很有用。如需所有 GRUB 功能的完整描述,请阅读 GRUB 出色的 GNU 文档。只要在 bash 提示中输入 "info grub" 就可以阅读该文档。
有用的一些信息:xosl是一个支持鼠标的图形界面boot loader,可以于system command和boot manager相比网址是www.xosl.org。
GRUB的下载:ftp://alpha.gnu.org/gnu/grub/
linux init详解
linux init详解
一、什么是INIT:
init是Linux系统操作中不可缺少的程序之一。
所谓的init进程,它是一个由内核启动的用户级进程。
内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。
内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。
二、运行级别
那么,到底什么是运行级呢?
简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。
不同的运行级定义如下:(可以参考Red Hat Linux 里面的/etc/inittab)
# 0 - 停机(千万不能把initdefault 设置为0 )
# 1 - 单用户模式
# 2 - 多用户,没有 NFS
# 3 - 完全多用户模式(标准的运行级)
# 4 - 没有用到
# 5 - X11 (xwindow)
# 6 - 重新启动 (千万不要把initdefault 设置为6 )
这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6)
三、运行级别的配置
运行级别的配置是在/etc/inittab行内进行的,如下所示:
12 : 2 : wait : / etc / init.d / rc 2
第一个字段是一个任意指定的标签;
第二个字段表示这一行适用于运行那个级别(这里是2);
第三个字 段表示进入运行级别时,init应该运行第四个字段内的命令一次,而且init应该等待该命令结束。/etc/init.d/rc命令运行启动和终止输入以便进入运行级别2时所需的任何命令。
第四个字段中的命令执行设置运行级别时的一切“杂活”。它启动已经没有运行的服务,终止不应该再在新运行级别内运行的服务。根据Linux版本的不同,采用的具体命令也不同,而且运行级别的配置也是有差别的。
init启动时,它会在/etc/inittab内查找一个代码行,这一行指定了默认的运行级别:
id : 2 : initdefault :
你可以要求init在启动时,进入非默认运行级别,这是通过为内核指定一个“single”或“emergency” 命令行参数来实现的。比如说,内核命令行参数的指定可通过LILO来执行。这样一来,你就可以选择单用户模式了(即运行级别1)。
系统正在运行时,telinit命令可更改运行级别。运行级别发生变化时, init 就会从/etc/inittab运行相应的命令。
四、/etc/inittab中的特殊配置
/etc/inittab中,有几个特殊的特性,允许init重新激活特殊事件。这些特殊特性都是用第三个字段中的特殊关键字标记出来的。比如:
1. powerwait
允许init在电源被切断时,关闭系统。其前提是具有U P S和监视U P S并通知init电源已被切断的软件。
2. ctrlaltdel
允许init在用户于控制台键盘上按下C t r l + A l t + D e l组合键时,重新启动系统。注意,如果该系统放在一个公共场所,系统管理员可将C t r l + A l t + D e l组合键配置为别的行为,比如忽略等。
3. sysinit
系统启动时准备运行的命令。比如说,这个命令将清除/tmp。
上面列出的特殊关键字尚不完整。其他的关键字及其使用详情,可参考你的inittab手册页。
五、在单用户模式下引导
一个重要的运行级别就是单用户模式(运行级别1),该模式中,只有一个系统管理员使用特定的机器,而且尽可能少地运行系统服务,其中包含登录。单用户模式对少数管理任务(比如在/usr分区上运行fsck)而言,是很有必要的,因为这需要卸载分区,但这是不可能的,除非所有的服务系统已被杀死。
一个正在运行的系统可以进入单用户模式,具体做法是利用init,请求运行级别1。内核启动时,在内核命令行指定single或emergency关键字,就可进入运行级别1了。内核同时也为init指定命令行, init从关键字得知自己不应该采用默认的运行级别(内核命令行的输入方式和你启动系统的方式有关)。
有时,以单用户模式进行启动是必要的,这样一来,用户在装入分区之前,或至少在装入分散的/usr分区之前,能手工运行fsck(在分散的文件系统上,任何活动都可能使其更为分散,所以应该尽可能地运行fsck)。
如果自动化的fsck在启动时失败了,启动脚本init的运行将自动进入单用户模式。这样做是为了防止系统使用不连贯的文件系统,这个文件系统是f s c k不能自动修复的。文件系统不连贯的现象极为少见,而且通常会导致硬盘的不连贯或实验性的内核释放,但最好能做到防患于未然。
由于安全上的考虑,在单用户模式下,启动外壳脚本之前,配置得当的系统会要求用户提供root密码。否则,它会简单地为L I L O输入合适的一行代码,以r o o t的身份登录(当然,如果/etc/passwd已经由于文件系统的问题而不连贯了,就不适合这里的原则了,为对付这种情况,你最好随时准备一张启动盘)。
不同的运行级有不同的用处,也应该根据自己的不同情形来设置。
例如,如果丢失了root口令,那么可以让机器启动进入单用户状态。在启动后的 lilo 提示符下输入:
init=/bin/sh rw 使机器进入运行级1 ,并把 root 文件系统挂为读写。他会跳过所有系统认证,让你可以使用passwd 程序来改变root口令,然后启动到一个新的运行级。
一、什么是INIT:
init是Linux系统操作中不可缺少的程序之一。
所谓的init进程,它是一个由内核启动的用户级进程。
内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。
内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。
二、运行级别
那么,到底什么是运行级呢?
简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。
不同的运行级定义如下:(可以参考Red Hat Linux 里面的/etc/inittab)
# 0 - 停机(千万不能把initdefault 设置为0 )
# 1 - 单用户模式
# 2 - 多用户,没有 NFS
# 3 - 完全多用户模式(标准的运行级)
# 4 - 没有用到
# 5 - X11 (xwindow)
# 6 - 重新启动 (千万不要把initdefault 设置为6 )
这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6)
三、运行级别的配置
运行级别的配置是在/etc/inittab行内进行的,如下所示:
12 : 2 : wait : / etc / init.d / rc 2
第一个字段是一个任意指定的标签;
第二个字段表示这一行适用于运行那个级别(这里是2);
第三个字 段表示进入运行级别时,init应该运行第四个字段内的命令一次,而且init应该等待该命令结束。/etc/init.d/rc命令运行启动和终止输入以便进入运行级别2时所需的任何命令。
第四个字段中的命令执行设置运行级别时的一切“杂活”。它启动已经没有运行的服务,终止不应该再在新运行级别内运行的服务。根据Linux版本的不同,采用的具体命令也不同,而且运行级别的配置也是有差别的。
init启动时,它会在/etc/inittab内查找一个代码行,这一行指定了默认的运行级别:
id : 2 : initdefault :
你可以要求init在启动时,进入非默认运行级别,这是通过为内核指定一个“single”或“emergency” 命令行参数来实现的。比如说,内核命令行参数的指定可通过LILO来执行。这样一来,你就可以选择单用户模式了(即运行级别1)。
系统正在运行时,telinit命令可更改运行级别。运行级别发生变化时, init 就会从/etc/inittab运行相应的命令。
四、/etc/inittab中的特殊配置
/etc/inittab中,有几个特殊的特性,允许init重新激活特殊事件。这些特殊特性都是用第三个字段中的特殊关键字标记出来的。比如:
1. powerwait
允许init在电源被切断时,关闭系统。其前提是具有U P S和监视U P S并通知init电源已被切断的软件。
2. ctrlaltdel
允许init在用户于控制台键盘上按下C t r l + A l t + D e l组合键时,重新启动系统。注意,如果该系统放在一个公共场所,系统管理员可将C t r l + A l t + D e l组合键配置为别的行为,比如忽略等。
3. sysinit
系统启动时准备运行的命令。比如说,这个命令将清除/tmp。
上面列出的特殊关键字尚不完整。其他的关键字及其使用详情,可参考你的inittab手册页。
五、在单用户模式下引导
一个重要的运行级别就是单用户模式(运行级别1),该模式中,只有一个系统管理员使用特定的机器,而且尽可能少地运行系统服务,其中包含登录。单用户模式对少数管理任务(比如在/usr分区上运行fsck)而言,是很有必要的,因为这需要卸载分区,但这是不可能的,除非所有的服务系统已被杀死。
一个正在运行的系统可以进入单用户模式,具体做法是利用init,请求运行级别1。内核启动时,在内核命令行指定single或emergency关键字,就可进入运行级别1了。内核同时也为init指定命令行, init从关键字得知自己不应该采用默认的运行级别(内核命令行的输入方式和你启动系统的方式有关)。
有时,以单用户模式进行启动是必要的,这样一来,用户在装入分区之前,或至少在装入分散的/usr分区之前,能手工运行fsck(在分散的文件系统上,任何活动都可能使其更为分散,所以应该尽可能地运行fsck)。
如果自动化的fsck在启动时失败了,启动脚本init的运行将自动进入单用户模式。这样做是为了防止系统使用不连贯的文件系统,这个文件系统是f s c k不能自动修复的。文件系统不连贯的现象极为少见,而且通常会导致硬盘的不连贯或实验性的内核释放,但最好能做到防患于未然。
由于安全上的考虑,在单用户模式下,启动外壳脚本之前,配置得当的系统会要求用户提供root密码。否则,它会简单地为L I L O输入合适的一行代码,以r o o t的身份登录(当然,如果/etc/passwd已经由于文件系统的问题而不连贯了,就不适合这里的原则了,为对付这种情况,你最好随时准备一张启动盘)。
不同的运行级有不同的用处,也应该根据自己的不同情形来设置。
例如,如果丢失了root口令,那么可以让机器启动进入单用户状态。在启动后的 lilo 提示符下输入:
init=/bin/sh rw 使机器进入运行级1 ,并把 root 文件系统挂为读写。他会跳过所有系统认证,让你可以使用passwd 程序来改变root口令,然后启动到一个新的运行级。
100个最佳linux站点
评选出的这100个优秀站点,将按照下述20个类别作以评介:
(一) 文件下载
(二) 幽默娱乐
(三) 相关新闻
(四) 通用硬件
(五) 专用硬件
(六) 新手站点
(七) 图形/多媒体
(八) 游戏站点
(九) 网络杂志
(十) 入口(教育、链接)
(十一) 软件开发
(十二) 购物
(十三) linux内核
(十四) 职业机会
(十五) 科学工程
(十六) 文档管理
(十七) X-Window 系统
(十八) linux 分发站点
(十九) 用户团体
(二十) 网管站点
(一) 软件下载
(1) Freshmeat站点
网址:http://www.freshmeat.net
评介:如果你绝对肯定,非要获取开放源代码应用程序,那毫无疑问,Freshmeat就是个不错的站点。这个最值得推崇的软件下载站点,有着数以千计的大量开放源代码应用程序的分类链接。此外,Freshmeat站点在更新程序的基础上,每天还会添加10到30个新程序链接。
(2) Tucows linux
网址:http://linux.tucows.com
评介:最初,该站点是一个基于Windows的软件园地,几年后,Tucows拓宽领域。现在,该站点已经发展成为了最开放的linux下载站点之一。不过,说真的,这也是因为Linux从一开始就增强了服务器的缘故。
(3) Woven Goods for linux
网址:http://www.fokus.gmd.de/linux
评介:Woven Goods for linux 是一个德语站点,它的特征就在于英文和德文版的Linux程序下载和文档。该站点还有一个很不错的综合列表,几乎列出了你所能想象出的每一个Linux分发。
(4) linux ISO Images
网址:http://www.linuxISO.org
评介:是不是已经极其厌倦了查找ISO图象?在linuxISO.org站点中一个非常醒目的地方,就放置了最流行的Linux 分发ISOs的链接。当然,它不能让你56k的调制解调器具有更快的下载速度,但他们已经竭尽所能了,那些有DSL或光缆调制解调器的用户们会非常高兴的。
(5) RPMfind.net
网址:http://www.rpmfind.net
评介:如果你还沉浸在网络海洋寻找最新用RPM(Red Hat Package Manager)格式编写的软件,那这个站点最适合不过了。凡是存在的RPM Package,这里都可以找到,而且这些软件还被编进了索引,用户可以通过多种不同方式来分类。例如,你可以分别用类别(比如游戏等等)、创建日期、package maintainer或名称等等多种方式查询一个软件包。
(二)娱乐休闲
(1) UserFriendly
网址:http://www.userfriendly.org
评介:真应该建议Netscape在浏览器(就在“Home”旁边)上添加一个按钮,以便用户可以很轻易地跳转到User Friendly上的Daily Static链接中去。喜欢新奇感觉的用户可能没有人愿意错过该站点上的冒险体验。此外,还有其它像卡通等等内容丰富的东西。User Friendly站点的最大特点就是每日都有新服务内容,而且还有庞大的人才数据库和Ufie社区。
(2) Segfault
网址:http://www.segfault.org
评介:是一个不错的linux娱乐站点。该站点的特征在于喜欢拿Linux界的名流人物来开涮,非常可笑且带有讽刺意味。在这里用户不会找到太多有用的资料,但绝对可以让你捧腹大笑。
(3) Sluggy Freelance
网址:http://www.sluggy.com
评介:可以肯定,第一名的UserFriendly绝对不是惟一的滑稽喜剧站点,Sluggy Freelance就是一个典型例证。该站点的创建日期可以回溯到1997年,特征就是提供了不少通俗易懂的素材。尤其值得一提的是,Sluggy站点非常体贴新用户,专门在最醒目的位置放置了新读者指南。建议大家不妨请一天假,完完整整地浏览一个这个不错的网站。
(4) Humorix
网址:http://i-want-a-website.com/about-linux
评介:Humorix站点既讲述linux的相关知识,又着力于Linux,、Microsoft以及其他许多相关系统或软件的趣事收集。此外,还有许多专栏作者和自愿投稿者的搞笑文章。
(5) Jargon File
网址:http://www.tuxedo.org/~esr/jargon
评介:不是特别了解“行话”?难道不想去深入了解滑稽语言隐含的深层含义?那就访问Jargon File站点吧。该站点收集了庞大的滑稽行语概要,时间跨度相当大。在这里,你会同时发现像早期的“Bit Bucket”和“404”,同时还有现在时新的有关Hacker Writing Style和Lamer-speak的文章。该站点由Eric Raymond编辑整理而成。
(三)相关新闻
(1) Slashdot.org
网址:http://slashdot.org
评介:这个自称为“为大众服务的新闻”站点早先是以“芯片和程序”起家的。后来慢慢发展成为搞笑闲谈的场所。成千上万的铁杆支持者和匿名用户通过该站点搜寻大量的技术故事和未过滤的社区回信。当CmdrTaco和Hemos的语法成为时兴后,他们关于这个搞笑网站尝试后的成功地位自然也无人可比了。
(2) linux Today
网址:http://www.linuxtoday.com
评介:linux Today网站遵从的是Rolling Stone Magazine杂志的座右铭“All the News that Fits”。并且作为一个网站,它的确作得相当不错。对于想直接访问大多Linux业界主要大事的用户来说,由于该站点提供了新闻故事、出版发行等相关信息,所以确实是一个不错的切入点。
(3) linux Weekly News
网址:http://www.lwn.net
评介:如果你想查找所有简明扼要的新闻,那就不应该错过linux Weekly News站点。它的范围非常广泛,远至安全事件,近至社会问题。而且每周星期四,该站点都非常有规律地提供一个关于所有业界所发生事件的编辑评注,仔细浏览,你会发现它的评注非常合情合理。
(4) Wired News
网址:http://www.wired.com
评介:尽管,每周Wired News站点只有几组专门的linux新闻故事,但这些新闻故事中却总有技术爱好者所关心的信息。而且在当今充盈着“链接到----网站”的情况下,该站点还做了其他此类网站没有时间去真正做的事????自己亲自动手写稿件。
(5) Wide Open News
网址:http://www.wideopen.com
评介:该站点的新闻区经常包含一些相当有意义的专题特写和文章,而且一般都由专业记者撰写。Wide Open News站点每周都会发布一些原创作品,而且通常稿件质量都很高。喜欢浏览行业新闻的不妨去感受一番。
(四)通用硬件
(1) linux Hardware
网址: http://www.linuxhardware.net/
评介:linux Hardware站点中包括一个内容非常广泛的Linux系统中所有的硬件信息数据库。用户既可以浏览这些数据库资料,也可以使用该站点的搜索引擎来快速查找所需要的硬件资料。同样,该站点也允许搜索Usenet 组。其中Linux Friendly Hardware Vendor 列表也是另一个特点所在。
(2) linux Hardware Database
网址:http://lhd.datapower.com
评介:尽管每天linux下的硬件支持变得越来越少,但不可否认仍然有那么几款硬件非常适合于Linux用户。Linux Hardware Database站点就是一个可以找到此类适合Linux的控件类别的不错站点。
(3) The linux Benchmarking Project
网址:http://www.tux.org/bench
评介:差不多每一个电脑爱好者都喜欢基准,特别是当他们的硬件产品处于顶级时更是如此。The linux Benchmarking Project站点提供了一个基准结果数据库,以及可供下载的基准软件。
(4) Tom’s Hardware Guide
网址:http:/
/www.tomshardware.com
评介:该站点虽然并不是一个专门的linux站点,但是有关Linux的内容非常不错,很值得一看。用户不但在这里可以找到评论、新闻、技巧,还可以查找图形信息、微处理器硬件等等。
(5) linux on Laptops
网址:http://www.cs.utexas.edu/users/kharker/linux-laptop/
评介:如果你还在顽强地想将linux装进你的笔记本电脑,那这个站点绝对是最适合不过了。从德克萨斯学院毕业的Kenneth Harker用了五年的时间来对相关笔记本电脑的站点进行精选和分类。同时,还让真正的用户推荐如何可以在他们的笔记本电脑中装入和运行Linux系统。
(五)专用硬件
(1) linuxPPC.org
网址:http://www.linuxppc.org/
评介:如果你正在犹豫,不能判断壁橱里的老式Macintosh能不能支持linux系统,那LinuxPPC.org站点就是个值得一去的地方。它是通往Linux/PPC方案的家园,能够将Linux端口置于Mac,而且还可以链接到Linux/Macintosh邮件列表、常用问题解答、软件等等。
(2) iMac linux
网址:http://www.imaclinux.net
评介:如果你难以忍受玻璃鱼缸样式、果冻般颜色的iMac,而现在想运行linux,不知行不行?可以肯定地说,没问题,iMac Linux 网站可以帮助你在短短几分钟内完成你的心愿。
(3) Printer Compatibility Database
网址:http://www.picante.com/~gtaylor/pht/printer_list.cgi
评介:在linux下执行打印任务可能有些烦人,以至于想购买一个新的打印机来同Linux配套。Printer Compatibility Database网站可以给用户提供一个在Linux下工作的打印机综合列表,包括如何同Linux配套使用的综合信息。同时,用户可以在该网站找到Linux Printing HOWTO和其他有用的打印信息。
(4) linux Modem Compatibility Knowledge Base
网址:http://www.o2.net/~gromitkc/winmodem.html
评介:该站点提供了一个范围广泛的用户级调制解调器列表(包括linux下)以及一些有帮助价值的Linux调制解调器链接。
(5) SANE
网址:http://www.mostang.com/sane/
评介:如果你不知道如何在linux下使用扫描仪,那SANE (Scanner Access Now Easy)站点就可以告诉你该怎么办了。况且,该站点不仅有最流行的Linux扫描仪软件,而且还以兼容硬件的数据库而颇具特色。
(六) 新手站点
(1) Penguin Magazine
网址:http://www.penguinmagazine.com/
评介:事实上,找一个能给linux入门者提供各种所需的网站并不是很多,因此,相比之下,这个后起之秀Penguin Magazine站点的确还算是能解决这个难题。该站点在今年初才启动,由一个名叫Scott Haven的Linux爱好者个人制作完成,网站中包含了大量的有关Windows和Linux文件系统的逐步式内容介绍。在厌倦了阅读大多网站中专业化程度超过自己知识容量的资料之后,Penguin Magazine可以让你轻轻松松地喘口气了。
(2) linuxPlanet.com
网址:http://www.linuxplanet.com/
评介:由于制作优秀而被Big Company所认可的linux站点之一就是LinuxPlanet,自从去年推出核心Linux内容之后,该站点就被因特网上的人们所看好。难度适中的论坛、评论、以及一些打印、查找文档等现实问题的疑难指点等。对于Linux菜鸟级的用户,LinuxPlanet绝对是一个有用的站点。
(3) Beginners linux Guide
网址:http://www.linux.ie/beginners-linux-guide
评介:Beginners linux Guide是Irish Linux User Group Web站点的一部分。它的可圈可点之处在于其中通俗易懂的指南性专题,包括如何使用基本Linux命令、以及安装信息等等。
(4) linuxdot.org
网址:http://www.linuxdot.org/
评介:从这个站点完全可以证明,linux并不只是美国佬的专利。因为Linuxdot.org是英国站点,而且的确是一个适用于初学者的向导性优秀站点。几乎可以冠以“Linux入门者的手册”美称了。该站点的特征是从硬盘分区直到MySOL的简单介绍几乎无所不包,囊括了所有Linux的相关知识。
(5) linuxnewbie.org
网址:http://www.linuxnewbie.org/
评介:linuxnewbie.org是一个综合性站点,包括新闻标题、论坛、著名的Newbieized帮助文件(Newbieized Help Files)等等。这种帮助文件是为了帮助用户习惯使用Linux,进行部分系统的配置。此外,用户还可以讨论或者检验该站点书架所推荐的图书。
(七)图形/多媒体
(1) linuxArtist.org
网址:http://www.linuxartist.org/
评介:linuxArtist.org是我们目前所见过的Linux系统下最综合全面的图形站点。不论用户喜欢平面图形还是三维图形,LinuxArtist.org都能给那些使用Linux来创建名作的艺术家们提供大量的链接和邮件列表。
(2) The Gimp
网址:http://www.gimp.org/
评介:一旦你提到图象和linux,那就不得不说说The GIMP Web站点。该站点特别适合于那些希望在Linux市场里得到最好图形程序的用户。站点里包含了大量的资源和下载软件,此外还展示了一些GIMP.自己制作的美术作品。
(3) 3D software for linux
网址:http://www.linux3d.org/
评介:虽然3D software for linux站点不是网络中最可爱的网站,但用户可以在这里找到许多有价值的Linux下的3D应用程序,同时还有支持Linux的3D硬件等。此外,站点页面中还有许多Linux下的3D相关链接、当前新闻、Linux下的有关3D图形的事件等等。
(4) GraphicsMuse
网址:http://www.graphics-muse.com/
评介:GraphicsMuse站点是一个资源丰富的linux下图形信息网站。在这个站点上,用户可以找到大量的图形资源、推荐图书、关于GIMP的原始内容以及其他一些非常好的图形方案。
(5) General Graphics Interface Project
网址:http://www.ggi-project.org/
评介:不知你是否抱怨过,X Window系统可能压根就不适合你?这些家伙们对于用X设计一点都没有激情,但他们希望有一种更好的工作方式。现在,他们应该有了一个计划,而且,更重要的是,他们拥有beta代码。
(八)游戏站点
(1)linux Game Tome
网址:http://happypenguin.org/
评介:从1995年开始,linux Game Tome就已经成为了一个Linux游戏竞赛的专门场所。而那时,Linux游戏世界本身也还是一片小天地。现在,他们以http://happypenguin.org/ 为网址,频道设置有新闻、游戏场景图片、游戏预告,以及最新游戏的评论等等。同时,该站点还有一个不错的搜索引擎,可以让用户根据游戏类别、等级、名称,甚至该游戏添加到网站的日期等分类浏览游戏评论。
(2)linux Games
网址:http://www.linuxgames.com/
评介:网站内容设置有下载、基本知识、论坛以及新闻等。特别是新闻成为该网站的特色频道。毫无疑问,linux Games是一个可以覆盖全球绝大多数Linux游戏新闻的站点。
(3)linux Quake
网址:http://www.linuxquake.com/
评介:绝对不能错过的站点。是一个非常精彩的《雷神之锤》站点。包括了linuxe下《雷神之锤》(Quake)的安装、运行,以及新闻和非常活跃的论坛等。
(4)linux Game Development Center
网址:http://sunsite.auc.dk/lgdc/
评介:如果你想寻找一个非常精彩、且又能找到linux游戏开发人员一切所需的场所,那可以肯定目前这样的站点的确还没有出现。不过,Linux Game Development Center 的发展目标也基本类似。现在,该站点设置了精彩新闻、游戏开发指南、针对开发人员的访谈等,但它还正在开发代码仓库、开发工具列表、以及新工作方案,以求不断发展。
(5)Loki
网址:http://www.lokigames.com/
评
介:目前,Loki是一个商业性的linux游戏公司。从《文明》到《雷神之锤3》,再到《铁路大亨2》等等,Loki公司几乎将所有最流行的游戏软件都移植到了Linux平台上。如果你想看看最近有什么大游戏,那就上去看看吧!
(九)网上杂志
(1)linux Journal Online
网址:http://www.linuxjournal.com/
评介:linux Journal是其印刷杂志的电子版,大部分和印刷版特征相符,不过也添加了一些新的资料。此外,电子版的特色频道还体现在职业中心、论坛,以及著名软件列表等等。怎样说服你的老板使用Linux系统,只要看看该站点的企业部分就可以了。
(2)linuxWorld
网址:http://www.linuxworld.com/
评介:linuxWorld是一个发行量很大的周刊,范围涉及到Linux的方方面面,从软件评论到Linux市场的大幅专题。对于反微软的业界来说,LinuxWorld可是一个几乎无人不知的驰名站点。
(3)linux Gazette
网址:http://www.linuxgazette.com/
评介:linux Gazette是由Linux Journal 出版的电子刊物,属于Linux Documentation Project的一部分。自从1995年成立以来,无数的志愿者都在踊跃提交稿件,以至于该站点现在已经成为一个实力很强的站点之一(如果翻看他们的档案,就能看到一个非常非常古老的Red Hat图标)。对于很多高级Linux用户来说,该站点的优势在于提供了很多指南和技巧,同时用户还可以对未来想了解的专题发送提议。
(4)Salon Magazine: The Free Software Story
网址:http://www.salon.com/tech/special/opensource/
评介:最早在1998年,Salon就开始初涉linux和开放源代码。和其他大量再线Linux杂志不同的是,该站点所涉的内容题材非常广泛而且相当有意义。
(5)linux Focus
网址:http://www.linuxfocus.org/
评介:这个定期按时发送的电子杂志自从1997年就开始诞生了。它以月刊的形式,给用户提供了许多新颖(多少有些深奥)的技术性文章。而且以多种语言发行,当然也包括英文版。
(十)链接/入口
(1) linux.com
网址:http://www.linux.com
评介:仅仅一年的时间,VA linux的Linux.com 就已经成长为因特网上最具竞争力的Linux站点之一。在网站经理Trae McCombs和他的自愿者小组努力下,该网站为Linux社区添加了无数非常有用的特色内容和资源。近来,该站点和O’Reilly & Associates结成合作关系,双方合作的结果使Linux.com站点更具有专业化和更高质量。
(2) linuxStart.com
网址:http://www.linuxStart.com
评介:想一想Yahoo,基本就能够想象得出linux的同类站点------LinuxStart.com站点的特色也正在于有一个相当不错的分成好多个主题区的精选链接。此外,如果你正在费劲地用Hotmail发送网络信件,不妨试试Linux-Start的电子信箱。甚至你还可以将你的网页也一并搬到上面。
(3) linuxLinks.com
网址:http://www.linuxlinks.com
评介:linuxLinks.com是最综合性的Linux站点之一,在这里你能见到许多曾经印象比较深刻的站点链接。目前,该站点的链接数量超过10,000,而且随时都在增加。
(4) linux Online
网址:http://www.linux.org
评介:linux Online的名称甚至比它的域名Linux.org更为知名。是一个比较早的Linux站点,虽然界面做得并不是非常漂亮,但其中包含的Linux资源价值却使其成为了一个必须参观的网站之一。
(5) Linsight
网址:http://Linsight.com
评介:Linsight在宣传中介绍自己为“linux时代的Linux信息”。该网站实际上是由好几个部分组成的,其中包括命名为LinDeveloper的一个开发人员分区、一个叫做Linsider的Linux市场跟踪区、追踪全年所发生的Linux业界焦点事件报道的LinEvents区、以及可以告诉你和你的员工们在那里得到Linux培训的LinTraining专区。
(十一)软件开发
(1) SourceForge
网址:http://www.SourceForge.net
评介:SourceForge站点是VA linux针对开发人员的一个入口。程序员们在这里可以放置他们的开放源代码方案,包括CVS工具、调试追踪和补丁管理工具。SourceForge给所有没有资源来自己安装一个服务器的Linux和开放源代码程序员们一个家园。用户可以浏览和下栽网站上已开发的软件,也可以给这些方案做补丁。
(2) Catalog of Free Compilers and Interpreters
网址:http://www.idiom.com/free-compilers/
评介:在没有明确限制linux和开放源代码软件的时候,免费编译器和解释程序的目录对于开放源代码的开发人员还是会有些兴趣的。此外,该站点包含了许多编程工具和编译器。
(3) SourceXchange
网址:http://www.sourcexchange.com
评介:SourceXchange是一个可以让linux和开放源代码软件开发人员得到报酬的站点。通过链接到一个付费的商业公司,就可以用开放源代码软件赚钱了。需要开放源代码吗?需要提交方案、标明你的价格-------当然,成功的前提是他们必须正好有你所需要的代码。
(4) CoSource
网址:http://www.cosource.com
评介:CoSource是又一个专门给源代码开发人员提供的付费站点。目前,表单上已经有将近250个要求,总量达$71,500。
(5) linux Source Navigator
网址:http://www.metalab.unc.edu/navigator-bin/navigator.cgi?
评介:该站点将源代码镶进一个简单的导航性分层文件夹系统中,以便用户快速查找到所需要的代码。
(十二)购物
(1) linuxMall.com
网址:http://www.linuxmall.com
评介:可能由于最近更新过的缘故,linuxMall.com站点看起来不想是购物站点,倒像是一个专门的Linux链接入口。而且,它还远不只是一个普通的电子商务站点。目前,该站点已经打算建立很多特色社区了,如论坛以及已经启动的新闻服务等。
(2) Thinkgeek
网址:http://thinkgeek.com
评介:该网站有随手可得地最酷linux附件。但除了一些$1.99的发行CD外,用户可能在这里不会找到任何软件。不过,如果你想用“"compile”、“telnet”、和“regexp”写点东西,最好还是上这个站点看看吧!
(3) The linux Store
网址:http://thelinuxstore.com
评介:该站点比较自豪的是他们易于使用、简洁的界面、非常广泛的产品线,以及大量的技术支持,没准在这里你还能找到你需要的东西呢。
(4) elinux.com
网址:http://www.elinux.com
评介:这个进入linux购物市场的新入口是由Creative Computers公司提供支持的,该公司同时还有PCMall和MacMall。Elinux站点中有一个非常广泛的Linux硬件和软件区,同时还有一个由Linuxcare提供支持的FAQ数据库。
(5) linuxcentral
网址:http://www.linuxcentral.com
评介:图书、T恤--------用户在这里可以找到所有传统linux电子商务所能买到的东西,此外,在这里还有一些更有趣的东西,比如网卡等等。
(十三)linux内核
(1) Kernel Notes
网址:http://kernelnotes.org
评介:KernelNotes.org是一个可以得到所有内核的地方。该站点所包括的内容比较广泛,而且,特色是能够找到最新内核的升级技巧。
(2) The linux Kernel Archives
网址:http://www.kernel.org/
评介:该站点奉行的原则是:简洁、简洁,再简洁。用户可以选择linux内核、不稳定内核、稳定内核以及内核源代码。如果你想找最新的稳定Linux内核或开发中内核,那就去看看吧。
(3) Kernel Traffic
网址:http://kt.linuxcare.com/
评介:难道每周不想要一个
几乎达到6MB的linux开发邮件列表吗?Kernel Traffic站点的那帮家伙们早就替你想到了这一点。Kernel Traffic是一个时事通讯周刊,总结了本周主要的专题。一个不错的站点。
(4) GNU Hurd
网址:http://www.gnu.ai.mit.edu/software/hurd/hurd.html
评介:稳定版目前已经具体化,但关于Hurd kernel 的GNU Project还在发展之中。Hurd内核是一个微核设计的实练。GNU/ Hurd站点的特征就是说明了如何将Hurd安装进Debian distribution中去。
(5) linux Mama
网址:http://www.linuxMama.com/
评介:无论如何,也不是每一个内核补丁都得作到fold中,如果你正好属于好奇心比较重的类型,想玩玩非正式内核补丁,那就不要错过linux Mama了。
(十四) 职业机会
(1)Geekfinder
网址:http://www.geekfinder.com/
评介:主机位于User Friendly站点的Geekfinder是一个猎职的好去处。该站点不只限于linux类相关工作,用户可以根据自己的技能搜索和选择最适合自己的工作。此外,用户还可以根据自己的意愿按照州和地区来搜索职位。
(2)linux.com Jobs Page
网址:http://www.linux.com/jobs/
评介:想寻找专职linux工作的人,值得来Linux.com’s Jobs page站点看看。根据提交的职位,该站点有大量适用于Linux求职者的有用专题和链接。
(3)eLance
网址:http://www.elance.com
评介:正式发布于去年的eLance站点为包括计算机业求职的各类自由服务开辟了一个新市场。用户可以在该站点填写个人资料表格,并在其“固定薪酬”部分根据填写者自己要求的计时薪酬(在这里你也可以以每小时3到300美圆的价格雇佣其他人),或者你也可以浏览网站上的各种信息看看是否有适合你的自由工作。
(4)linux Today Jobs
网址:http://jobs.linuxtoday.com/
评介:该站点有两个特征:网络上综合性最强的linux新闻站点之一;能够同时提供Linux企业公司招聘和Linux个人求职的专业站点。
(5)Hotjobs.com
网址:http://www.hotjobs.com
评介:Hotjobs.com是一个不局限于linux特定求职的网站,该站点每天发布5到10个Linux相关职位,而且所公布的职位资料绝对不是那些看起来充裕却几乎没有什么回映的过时消息。
(十五)科学工程
(1) SAL: Scientific Applications for linux
网址:http://www.kachinatech.com/SAL/
评介:linux现在不仅仅是供玩乐的东西了,但这并不是意味着就此失去了许多乐趣。对于年轻的科学工作者们来说,可以在该网站找到许多适用于Linux下各种科研应用程序的开放源代码、共享软件和商业软件等等。
(2) Beowulf Project at CESDIS
网址:http://beowulf.gsfc.nasa.gov/
评介:一个很酷的linux站点。以帮助科学家们联系大量质优价廉的电脑而出名。
(3) High-Availability linux Project
网址:http://www.henge.com/~alanr/ha/
评介:如果你正在linux下运行企业级的应用程序,或者只想验证一下Quake服务器从不会崩溃,那该站点就太适合你了。同时该站点还提供了许多簇管理、Linux-HA软件以及大量地此类相关站点链接。
(4) Free Physics Project
网址:http://freephysics.sourceforge.net/
评介:是一个创建linux下的GPL物理模拟器的站点。用户可以下载运行代码、项目处理等等。
(5) linux and Chemistry
网址:http://chpc06.ch.unito.it/chem_linux.html
评介:这是一个综合了linux和化学的网站,其中有许多商业、共享软件和GPL的软件,适合于那些在Linux下做研究工作的化学家。想必化学系的学生和教授应当喜欢这个站点。
(十六)文档管理
1)linux Documentation Project
网址:http://www.linuxdoc.org/
评介:在所有linux站点中,LDP已经作了相当久的FAQ、HOWTO以及Linux导引了。该站点最为夸耀的是各种格式的Linux详细信息集萃。此外,此站点中的HOWTO分项也是一个能解答用户所有疑难问题的权威场所。最近由于新鲜血液的加盟,该站点又有了新特色。
2)Open Source Writer’s Group
网址:http://www.oswg.org:8080/oswg
评介:该站点是由linuxChix的Deb Richardson在去年制作完成的,为一个开放源代码的集萃站点,特别适合于开放源代码项目的用户。
3)linux Resources
网址:http://www2.linuxjournal.com/cgi-bi....pl/lr-toc.html
评介:该站点是一个优秀的资料站点,同时适用于linux新手和专业人士。在这里,用户可以找到所有相关Linux的资料,而且它还告诉你,在哪里可以找到相关资料、可以和使用这些资料的人见面,以及其它更多。
4)GNU Project Documentation
网址:http://www.gnu.org/doc/doc.html
评介:如果你手里有一个很好的免费软件却不知如何使用,怎么办?幸运的是,GNU Project Documentation站点的管理人员已经为你提供了一个非常综合的文档区。此外,如果你心情不错,那么还可以去读读Free Software and Free Manuals上刊登的Richard Stallman的评论。
5)The Vim Homepage
网址:http://www.vim.org/
评介:一个绝对让新手震动的linux网站。这里有大量的Vim信息和使用资料。
(十七)X-Window 系统
1)Themes.org
网址:http://www.themes.org
评介:这里有装扮你桌面的所有好东西,同时还有在window 管理器和其它流行软件包上更新的X资源和新闻。此外,Themes.org还有SawMill、Afterstep、 Enlightenment、WindowMaker、KDE专区等等。
2)KDE Home
网址:http://www.kde.org
评介:该站点能提供给你适用于K Desktop Environment的任何开发资料,而且还有随时更新的适用于KDE的最新发行软件。此外,KDE还有许多像K Office之类的相关资料。
3)GNOME Home
网址:http://www.GNOME.org
评介:Gnome.org是一个组织最好的免费软件站点。在这里,用户可以得到有关GNOME的开发资源,可以加入GNOME邮件列表,还可以进行软件下载。开发人员将搜索到最新的附加资料,GNOME用户们还将找到大量有用的文档。
4)XFree86 Project
网址:http://www.xfree86.org
评介:XFree86 Project站点将给用户linux系统的相关资料、最新发行的软件、以及一个精彩的FAQ等等。XFree86站点对于刚入门的Linux新手来说将是一个不可错过的站点。
5)Window Managers for X
网址:http://www.PLiG.org/xwinman
评介:Window Managers for X站点是有关X窗口管理器的最综合性站点。从最早的一直到最新的乃至全部,以及最大的窗口管理器都可以在该站点找到。还不知道一个窗口管理器和一个桌面环境的区别吗?该站点也可以回答你这些基本问题。
(十八)linux 分布站点
1)Debian
网址:http://www.debian.org
评介:Debian网站用户界面非常友好,并且关于Debian GNU/linux和Linux一般使用方面内容丰富。如果你喜欢冒险,你甚至可以在这里找到如何使用GNU/Hurd内核运行Debian而不是我们都知道和喜爱的Linux内核。而且还有很多各种各样免费资源的链接供用户使用!
2)Red Hat
网址:http://www.RedHat.com
评介:Red Hat的网站在过去的一年里已经多次发生变化。但是RedHat.com只是保持做更好的改变。最新的界面容易浏览,并且还为用户提供了大量的链接和下载。
3)SuSE
网址:http://www.SuSE.com
评介:SuSE网站是一个商业站点――没有打算成为“门户”站点或其它。所以该网站只是仅仅包含了你想了解的SuSE linux的一切相关信息。SuSE的网站对于想知道Linux是否能和他们的硬件兼容的用户则是
非常有用。
4)Slackware
网址:http://www.Slackware.com
评介:该站点让用户唯一不满的就是太多的图片和太慢的下载速度。相对而言,Slackware站点是一个漂亮、整洁、黑白形象设计,而且还对所有重要的材料建了链接。
5)linux-Mandrake
网址:http://www.linux-Mandrake.com
评介:linux-Mandrake站点对于Linux-Mandrake distro的用户来说确实是一个优秀的网站。无论你是一个需要寻找技术支持的菜鸟,还是一个想同最新的代码打交道的开发者,Linux-Mandrake都是实现这一切的捷径。
(十九)用户团体
1)linux User Groups WorldWide
网址:http://lugww.counter.li.org/lugww.php3
评介:想要寻找离你最近或最远的Liunx用户组吗?linux User Groups WorldWide网站有最全面的相关LUGs(Linux用户组)列表。基于用户地址定位的列表允许相互间建立联系,而且该站点还给出如何创建指南。
2)SVLUG
网址:http://www.sulug.org
评介:该网站很可能是世界上最有活力的LUG站点,而且一定是人们常频繁光顾的热点地带。Silicon Valley linux Users Group站点包含了许多相当有趣的历史和有用链接。
3)Groups of linux Users Everywhere
网址:http://www2.linuxjournal.com/glue/index.html
评介:GLUE是linux Journal的主办者。注册过的LUGs可以参加世界各地的友好Linux公司所提供的活动。同时,GLUE网站中也有一定数量的LUGs资源,包括技巧等等。
4)linux Online’s Linux User Group Registry
网址:http://www.linux.org/users/index.html
评介:linux Online有一个很全面的世界性LUGs列表。如果你想在此找点你的LUG,请在Linux Online site上列出来。
5)linuxChix
网址:http://www.linuxchix.org
评介:没错,Chix的确是在钻研linux。创立LinuxChix的Deb Richardson想打算制作一个能让女性使用的Linux邮件列表。LinuxChix发展的很快,简直比Deb期望的还要流行。而且地区化的LinuxChix LUGs 也已经开始走向全球。
(一) 文件下载
(二) 幽默娱乐
(三) 相关新闻
(四) 通用硬件
(五) 专用硬件
(六) 新手站点
(七) 图形/多媒体
(八) 游戏站点
(九) 网络杂志
(十) 入口(教育、链接)
(十一) 软件开发
(十二) 购物
(十三) linux内核
(十四) 职业机会
(十五) 科学工程
(十六) 文档管理
(十七) X-Window 系统
(十八) linux 分发站点
(十九) 用户团体
(二十) 网管站点
(一) 软件下载
(1) Freshmeat站点
网址:http://www.freshmeat.net
评介:如果你绝对肯定,非要获取开放源代码应用程序,那毫无疑问,Freshmeat就是个不错的站点。这个最值得推崇的软件下载站点,有着数以千计的大量开放源代码应用程序的分类链接。此外,Freshmeat站点在更新程序的基础上,每天还会添加10到30个新程序链接。
(2) Tucows linux
网址:http://linux.tucows.com
评介:最初,该站点是一个基于Windows的软件园地,几年后,Tucows拓宽领域。现在,该站点已经发展成为了最开放的linux下载站点之一。不过,说真的,这也是因为Linux从一开始就增强了服务器的缘故。
(3) Woven Goods for linux
网址:http://www.fokus.gmd.de/linux
评介:Woven Goods for linux 是一个德语站点,它的特征就在于英文和德文版的Linux程序下载和文档。该站点还有一个很不错的综合列表,几乎列出了你所能想象出的每一个Linux分发。
(4) linux ISO Images
网址:http://www.linuxISO.org
评介:是不是已经极其厌倦了查找ISO图象?在linuxISO.org站点中一个非常醒目的地方,就放置了最流行的Linux 分发ISOs的链接。当然,它不能让你56k的调制解调器具有更快的下载速度,但他们已经竭尽所能了,那些有DSL或光缆调制解调器的用户们会非常高兴的。
(5) RPMfind.net
网址:http://www.rpmfind.net
评介:如果你还沉浸在网络海洋寻找最新用RPM(Red Hat Package Manager)格式编写的软件,那这个站点最适合不过了。凡是存在的RPM Package,这里都可以找到,而且这些软件还被编进了索引,用户可以通过多种不同方式来分类。例如,你可以分别用类别(比如游戏等等)、创建日期、package maintainer或名称等等多种方式查询一个软件包。
(二)娱乐休闲
(1) UserFriendly
网址:http://www.userfriendly.org
评介:真应该建议Netscape在浏览器(就在“Home”旁边)上添加一个按钮,以便用户可以很轻易地跳转到User Friendly上的Daily Static链接中去。喜欢新奇感觉的用户可能没有人愿意错过该站点上的冒险体验。此外,还有其它像卡通等等内容丰富的东西。User Friendly站点的最大特点就是每日都有新服务内容,而且还有庞大的人才数据库和Ufie社区。
(2) Segfault
网址:http://www.segfault.org
评介:是一个不错的linux娱乐站点。该站点的特征在于喜欢拿Linux界的名流人物来开涮,非常可笑且带有讽刺意味。在这里用户不会找到太多有用的资料,但绝对可以让你捧腹大笑。
(3) Sluggy Freelance
网址:http://www.sluggy.com
评介:可以肯定,第一名的UserFriendly绝对不是惟一的滑稽喜剧站点,Sluggy Freelance就是一个典型例证。该站点的创建日期可以回溯到1997年,特征就是提供了不少通俗易懂的素材。尤其值得一提的是,Sluggy站点非常体贴新用户,专门在最醒目的位置放置了新读者指南。建议大家不妨请一天假,完完整整地浏览一个这个不错的网站。
(4) Humorix
网址:http://i-want-a-website.com/about-linux
评介:Humorix站点既讲述linux的相关知识,又着力于Linux,、Microsoft以及其他许多相关系统或软件的趣事收集。此外,还有许多专栏作者和自愿投稿者的搞笑文章。
(5) Jargon File
网址:http://www.tuxedo.org/~esr/jargon
评介:不是特别了解“行话”?难道不想去深入了解滑稽语言隐含的深层含义?那就访问Jargon File站点吧。该站点收集了庞大的滑稽行语概要,时间跨度相当大。在这里,你会同时发现像早期的“Bit Bucket”和“404”,同时还有现在时新的有关Hacker Writing Style和Lamer-speak的文章。该站点由Eric Raymond编辑整理而成。
(三)相关新闻
(1) Slashdot.org
网址:http://slashdot.org
评介:这个自称为“为大众服务的新闻”站点早先是以“芯片和程序”起家的。后来慢慢发展成为搞笑闲谈的场所。成千上万的铁杆支持者和匿名用户通过该站点搜寻大量的技术故事和未过滤的社区回信。当CmdrTaco和Hemos的语法成为时兴后,他们关于这个搞笑网站尝试后的成功地位自然也无人可比了。
(2) linux Today
网址:http://www.linuxtoday.com
评介:linux Today网站遵从的是Rolling Stone Magazine杂志的座右铭“All the News that Fits”。并且作为一个网站,它的确作得相当不错。对于想直接访问大多Linux业界主要大事的用户来说,由于该站点提供了新闻故事、出版发行等相关信息,所以确实是一个不错的切入点。
(3) linux Weekly News
网址:http://www.lwn.net
评介:如果你想查找所有简明扼要的新闻,那就不应该错过linux Weekly News站点。它的范围非常广泛,远至安全事件,近至社会问题。而且每周星期四,该站点都非常有规律地提供一个关于所有业界所发生事件的编辑评注,仔细浏览,你会发现它的评注非常合情合理。
(4) Wired News
网址:http://www.wired.com
评介:尽管,每周Wired News站点只有几组专门的linux新闻故事,但这些新闻故事中却总有技术爱好者所关心的信息。而且在当今充盈着“链接到----网站”的情况下,该站点还做了其他此类网站没有时间去真正做的事????自己亲自动手写稿件。
(5) Wide Open News
网址:http://www.wideopen.com
评介:该站点的新闻区经常包含一些相当有意义的专题特写和文章,而且一般都由专业记者撰写。Wide Open News站点每周都会发布一些原创作品,而且通常稿件质量都很高。喜欢浏览行业新闻的不妨去感受一番。
(四)通用硬件
(1) linux Hardware
网址: http://www.linuxhardware.net/
评介:linux Hardware站点中包括一个内容非常广泛的Linux系统中所有的硬件信息数据库。用户既可以浏览这些数据库资料,也可以使用该站点的搜索引擎来快速查找所需要的硬件资料。同样,该站点也允许搜索Usenet 组。其中Linux Friendly Hardware Vendor 列表也是另一个特点所在。
(2) linux Hardware Database
网址:http://lhd.datapower.com
评介:尽管每天linux下的硬件支持变得越来越少,但不可否认仍然有那么几款硬件非常适合于Linux用户。Linux Hardware Database站点就是一个可以找到此类适合Linux的控件类别的不错站点。
(3) The linux Benchmarking Project
网址:http://www.tux.org/bench
评介:差不多每一个电脑爱好者都喜欢基准,特别是当他们的硬件产品处于顶级时更是如此。The linux Benchmarking Project站点提供了一个基准结果数据库,以及可供下载的基准软件。
(4) Tom’s Hardware Guide
网址:http:/
/www.tomshardware.com
评介:该站点虽然并不是一个专门的linux站点,但是有关Linux的内容非常不错,很值得一看。用户不但在这里可以找到评论、新闻、技巧,还可以查找图形信息、微处理器硬件等等。
(5) linux on Laptops
网址:http://www.cs.utexas.edu/users/kharker/linux-laptop/
评介:如果你还在顽强地想将linux装进你的笔记本电脑,那这个站点绝对是最适合不过了。从德克萨斯学院毕业的Kenneth Harker用了五年的时间来对相关笔记本电脑的站点进行精选和分类。同时,还让真正的用户推荐如何可以在他们的笔记本电脑中装入和运行Linux系统。
(五)专用硬件
(1) linuxPPC.org
网址:http://www.linuxppc.org/
评介:如果你正在犹豫,不能判断壁橱里的老式Macintosh能不能支持linux系统,那LinuxPPC.org站点就是个值得一去的地方。它是通往Linux/PPC方案的家园,能够将Linux端口置于Mac,而且还可以链接到Linux/Macintosh邮件列表、常用问题解答、软件等等。
(2) iMac linux
网址:http://www.imaclinux.net
评介:如果你难以忍受玻璃鱼缸样式、果冻般颜色的iMac,而现在想运行linux,不知行不行?可以肯定地说,没问题,iMac Linux 网站可以帮助你在短短几分钟内完成你的心愿。
(3) Printer Compatibility Database
网址:http://www.picante.com/~gtaylor/pht/printer_list.cgi
评介:在linux下执行打印任务可能有些烦人,以至于想购买一个新的打印机来同Linux配套。Printer Compatibility Database网站可以给用户提供一个在Linux下工作的打印机综合列表,包括如何同Linux配套使用的综合信息。同时,用户可以在该网站找到Linux Printing HOWTO和其他有用的打印信息。
(4) linux Modem Compatibility Knowledge Base
网址:http://www.o2.net/~gromitkc/winmodem.html
评介:该站点提供了一个范围广泛的用户级调制解调器列表(包括linux下)以及一些有帮助价值的Linux调制解调器链接。
(5) SANE
网址:http://www.mostang.com/sane/
评介:如果你不知道如何在linux下使用扫描仪,那SANE (Scanner Access Now Easy)站点就可以告诉你该怎么办了。况且,该站点不仅有最流行的Linux扫描仪软件,而且还以兼容硬件的数据库而颇具特色。
(六) 新手站点
(1) Penguin Magazine
网址:http://www.penguinmagazine.com/
评介:事实上,找一个能给linux入门者提供各种所需的网站并不是很多,因此,相比之下,这个后起之秀Penguin Magazine站点的确还算是能解决这个难题。该站点在今年初才启动,由一个名叫Scott Haven的Linux爱好者个人制作完成,网站中包含了大量的有关Windows和Linux文件系统的逐步式内容介绍。在厌倦了阅读大多网站中专业化程度超过自己知识容量的资料之后,Penguin Magazine可以让你轻轻松松地喘口气了。
(2) linuxPlanet.com
网址:http://www.linuxplanet.com/
评介:由于制作优秀而被Big Company所认可的linux站点之一就是LinuxPlanet,自从去年推出核心Linux内容之后,该站点就被因特网上的人们所看好。难度适中的论坛、评论、以及一些打印、查找文档等现实问题的疑难指点等。对于Linux菜鸟级的用户,LinuxPlanet绝对是一个有用的站点。
(3) Beginners linux Guide
网址:http://www.linux.ie/beginners-linux-guide
评介:Beginners linux Guide是Irish Linux User Group Web站点的一部分。它的可圈可点之处在于其中通俗易懂的指南性专题,包括如何使用基本Linux命令、以及安装信息等等。
(4) linuxdot.org
网址:http://www.linuxdot.org/
评介:从这个站点完全可以证明,linux并不只是美国佬的专利。因为Linuxdot.org是英国站点,而且的确是一个适用于初学者的向导性优秀站点。几乎可以冠以“Linux入门者的手册”美称了。该站点的特征是从硬盘分区直到MySOL的简单介绍几乎无所不包,囊括了所有Linux的相关知识。
(5) linuxnewbie.org
网址:http://www.linuxnewbie.org/
评介:linuxnewbie.org是一个综合性站点,包括新闻标题、论坛、著名的Newbieized帮助文件(Newbieized Help Files)等等。这种帮助文件是为了帮助用户习惯使用Linux,进行部分系统的配置。此外,用户还可以讨论或者检验该站点书架所推荐的图书。
(七)图形/多媒体
(1) linuxArtist.org
网址:http://www.linuxartist.org/
评介:linuxArtist.org是我们目前所见过的Linux系统下最综合全面的图形站点。不论用户喜欢平面图形还是三维图形,LinuxArtist.org都能给那些使用Linux来创建名作的艺术家们提供大量的链接和邮件列表。
(2) The Gimp
网址:http://www.gimp.org/
评介:一旦你提到图象和linux,那就不得不说说The GIMP Web站点。该站点特别适合于那些希望在Linux市场里得到最好图形程序的用户。站点里包含了大量的资源和下载软件,此外还展示了一些GIMP.自己制作的美术作品。
(3) 3D software for linux
网址:http://www.linux3d.org/
评介:虽然3D software for linux站点不是网络中最可爱的网站,但用户可以在这里找到许多有价值的Linux下的3D应用程序,同时还有支持Linux的3D硬件等。此外,站点页面中还有许多Linux下的3D相关链接、当前新闻、Linux下的有关3D图形的事件等等。
(4) GraphicsMuse
网址:http://www.graphics-muse.com/
评介:GraphicsMuse站点是一个资源丰富的linux下图形信息网站。在这个站点上,用户可以找到大量的图形资源、推荐图书、关于GIMP的原始内容以及其他一些非常好的图形方案。
(5) General Graphics Interface Project
网址:http://www.ggi-project.org/
评介:不知你是否抱怨过,X Window系统可能压根就不适合你?这些家伙们对于用X设计一点都没有激情,但他们希望有一种更好的工作方式。现在,他们应该有了一个计划,而且,更重要的是,他们拥有beta代码。
(八)游戏站点
(1)linux Game Tome
网址:http://happypenguin.org/
评介:从1995年开始,linux Game Tome就已经成为了一个Linux游戏竞赛的专门场所。而那时,Linux游戏世界本身也还是一片小天地。现在,他们以http://happypenguin.org/ 为网址,频道设置有新闻、游戏场景图片、游戏预告,以及最新游戏的评论等等。同时,该站点还有一个不错的搜索引擎,可以让用户根据游戏类别、等级、名称,甚至该游戏添加到网站的日期等分类浏览游戏评论。
(2)linux Games
网址:http://www.linuxgames.com/
评介:网站内容设置有下载、基本知识、论坛以及新闻等。特别是新闻成为该网站的特色频道。毫无疑问,linux Games是一个可以覆盖全球绝大多数Linux游戏新闻的站点。
(3)linux Quake
网址:http://www.linuxquake.com/
评介:绝对不能错过的站点。是一个非常精彩的《雷神之锤》站点。包括了linuxe下《雷神之锤》(Quake)的安装、运行,以及新闻和非常活跃的论坛等。
(4)linux Game Development Center
网址:http://sunsite.auc.dk/lgdc/
评介:如果你想寻找一个非常精彩、且又能找到linux游戏开发人员一切所需的场所,那可以肯定目前这样的站点的确还没有出现。不过,Linux Game Development Center 的发展目标也基本类似。现在,该站点设置了精彩新闻、游戏开发指南、针对开发人员的访谈等,但它还正在开发代码仓库、开发工具列表、以及新工作方案,以求不断发展。
(5)Loki
网址:http://www.lokigames.com/
评
介:目前,Loki是一个商业性的linux游戏公司。从《文明》到《雷神之锤3》,再到《铁路大亨2》等等,Loki公司几乎将所有最流行的游戏软件都移植到了Linux平台上。如果你想看看最近有什么大游戏,那就上去看看吧!
(九)网上杂志
(1)linux Journal Online
网址:http://www.linuxjournal.com/
评介:linux Journal是其印刷杂志的电子版,大部分和印刷版特征相符,不过也添加了一些新的资料。此外,电子版的特色频道还体现在职业中心、论坛,以及著名软件列表等等。怎样说服你的老板使用Linux系统,只要看看该站点的企业部分就可以了。
(2)linuxWorld
网址:http://www.linuxworld.com/
评介:linuxWorld是一个发行量很大的周刊,范围涉及到Linux的方方面面,从软件评论到Linux市场的大幅专题。对于反微软的业界来说,LinuxWorld可是一个几乎无人不知的驰名站点。
(3)linux Gazette
网址:http://www.linuxgazette.com/
评介:linux Gazette是由Linux Journal 出版的电子刊物,属于Linux Documentation Project的一部分。自从1995年成立以来,无数的志愿者都在踊跃提交稿件,以至于该站点现在已经成为一个实力很强的站点之一(如果翻看他们的档案,就能看到一个非常非常古老的Red Hat图标)。对于很多高级Linux用户来说,该站点的优势在于提供了很多指南和技巧,同时用户还可以对未来想了解的专题发送提议。
(4)Salon Magazine: The Free Software Story
网址:http://www.salon.com/tech/special/opensource/
评介:最早在1998年,Salon就开始初涉linux和开放源代码。和其他大量再线Linux杂志不同的是,该站点所涉的内容题材非常广泛而且相当有意义。
(5)linux Focus
网址:http://www.linuxfocus.org/
评介:这个定期按时发送的电子杂志自从1997年就开始诞生了。它以月刊的形式,给用户提供了许多新颖(多少有些深奥)的技术性文章。而且以多种语言发行,当然也包括英文版。
(十)链接/入口
(1) linux.com
网址:http://www.linux.com
评介:仅仅一年的时间,VA linux的Linux.com 就已经成长为因特网上最具竞争力的Linux站点之一。在网站经理Trae McCombs和他的自愿者小组努力下,该网站为Linux社区添加了无数非常有用的特色内容和资源。近来,该站点和O’Reilly & Associates结成合作关系,双方合作的结果使Linux.com站点更具有专业化和更高质量。
(2) linuxStart.com
网址:http://www.linuxStart.com
评介:想一想Yahoo,基本就能够想象得出linux的同类站点------LinuxStart.com站点的特色也正在于有一个相当不错的分成好多个主题区的精选链接。此外,如果你正在费劲地用Hotmail发送网络信件,不妨试试Linux-Start的电子信箱。甚至你还可以将你的网页也一并搬到上面。
(3) linuxLinks.com
网址:http://www.linuxlinks.com
评介:linuxLinks.com是最综合性的Linux站点之一,在这里你能见到许多曾经印象比较深刻的站点链接。目前,该站点的链接数量超过10,000,而且随时都在增加。
(4) linux Online
网址:http://www.linux.org
评介:linux Online的名称甚至比它的域名Linux.org更为知名。是一个比较早的Linux站点,虽然界面做得并不是非常漂亮,但其中包含的Linux资源价值却使其成为了一个必须参观的网站之一。
(5) Linsight
网址:http://Linsight.com
评介:Linsight在宣传中介绍自己为“linux时代的Linux信息”。该网站实际上是由好几个部分组成的,其中包括命名为LinDeveloper的一个开发人员分区、一个叫做Linsider的Linux市场跟踪区、追踪全年所发生的Linux业界焦点事件报道的LinEvents区、以及可以告诉你和你的员工们在那里得到Linux培训的LinTraining专区。
(十一)软件开发
(1) SourceForge
网址:http://www.SourceForge.net
评介:SourceForge站点是VA linux针对开发人员的一个入口。程序员们在这里可以放置他们的开放源代码方案,包括CVS工具、调试追踪和补丁管理工具。SourceForge给所有没有资源来自己安装一个服务器的Linux和开放源代码程序员们一个家园。用户可以浏览和下栽网站上已开发的软件,也可以给这些方案做补丁。
(2) Catalog of Free Compilers and Interpreters
网址:http://www.idiom.com/free-compilers/
评介:在没有明确限制linux和开放源代码软件的时候,免费编译器和解释程序的目录对于开放源代码的开发人员还是会有些兴趣的。此外,该站点包含了许多编程工具和编译器。
(3) SourceXchange
网址:http://www.sourcexchange.com
评介:SourceXchange是一个可以让linux和开放源代码软件开发人员得到报酬的站点。通过链接到一个付费的商业公司,就可以用开放源代码软件赚钱了。需要开放源代码吗?需要提交方案、标明你的价格-------当然,成功的前提是他们必须正好有你所需要的代码。
(4) CoSource
网址:http://www.cosource.com
评介:CoSource是又一个专门给源代码开发人员提供的付费站点。目前,表单上已经有将近250个要求,总量达$71,500。
(5) linux Source Navigator
网址:http://www.metalab.unc.edu/navigator-bin/navigator.cgi?
评介:该站点将源代码镶进一个简单的导航性分层文件夹系统中,以便用户快速查找到所需要的代码。
(十二)购物
(1) linuxMall.com
网址:http://www.linuxmall.com
评介:可能由于最近更新过的缘故,linuxMall.com站点看起来不想是购物站点,倒像是一个专门的Linux链接入口。而且,它还远不只是一个普通的电子商务站点。目前,该站点已经打算建立很多特色社区了,如论坛以及已经启动的新闻服务等。
(2) Thinkgeek
网址:http://thinkgeek.com
评介:该网站有随手可得地最酷linux附件。但除了一些$1.99的发行CD外,用户可能在这里不会找到任何软件。不过,如果你想用“"compile”、“telnet”、和“regexp”写点东西,最好还是上这个站点看看吧!
(3) The linux Store
网址:http://thelinuxstore.com
评介:该站点比较自豪的是他们易于使用、简洁的界面、非常广泛的产品线,以及大量的技术支持,没准在这里你还能找到你需要的东西呢。
(4) elinux.com
网址:http://www.elinux.com
评介:这个进入linux购物市场的新入口是由Creative Computers公司提供支持的,该公司同时还有PCMall和MacMall。Elinux站点中有一个非常广泛的Linux硬件和软件区,同时还有一个由Linuxcare提供支持的FAQ数据库。
(5) linuxcentral
网址:http://www.linuxcentral.com
评介:图书、T恤--------用户在这里可以找到所有传统linux电子商务所能买到的东西,此外,在这里还有一些更有趣的东西,比如网卡等等。
(十三)linux内核
(1) Kernel Notes
网址:http://kernelnotes.org
评介:KernelNotes.org是一个可以得到所有内核的地方。该站点所包括的内容比较广泛,而且,特色是能够找到最新内核的升级技巧。
(2) The linux Kernel Archives
网址:http://www.kernel.org/
评介:该站点奉行的原则是:简洁、简洁,再简洁。用户可以选择linux内核、不稳定内核、稳定内核以及内核源代码。如果你想找最新的稳定Linux内核或开发中内核,那就去看看吧。
(3) Kernel Traffic
网址:http://kt.linuxcare.com/
评介:难道每周不想要一个
几乎达到6MB的linux开发邮件列表吗?Kernel Traffic站点的那帮家伙们早就替你想到了这一点。Kernel Traffic是一个时事通讯周刊,总结了本周主要的专题。一个不错的站点。
(4) GNU Hurd
网址:http://www.gnu.ai.mit.edu/software/hurd/hurd.html
评介:稳定版目前已经具体化,但关于Hurd kernel 的GNU Project还在发展之中。Hurd内核是一个微核设计的实练。GNU/ Hurd站点的特征就是说明了如何将Hurd安装进Debian distribution中去。
(5) linux Mama
网址:http://www.linuxMama.com/
评介:无论如何,也不是每一个内核补丁都得作到fold中,如果你正好属于好奇心比较重的类型,想玩玩非正式内核补丁,那就不要错过linux Mama了。
(十四) 职业机会
(1)Geekfinder
网址:http://www.geekfinder.com/
评介:主机位于User Friendly站点的Geekfinder是一个猎职的好去处。该站点不只限于linux类相关工作,用户可以根据自己的技能搜索和选择最适合自己的工作。此外,用户还可以根据自己的意愿按照州和地区来搜索职位。
(2)linux.com Jobs Page
网址:http://www.linux.com/jobs/
评介:想寻找专职linux工作的人,值得来Linux.com’s Jobs page站点看看。根据提交的职位,该站点有大量适用于Linux求职者的有用专题和链接。
(3)eLance
网址:http://www.elance.com
评介:正式发布于去年的eLance站点为包括计算机业求职的各类自由服务开辟了一个新市场。用户可以在该站点填写个人资料表格,并在其“固定薪酬”部分根据填写者自己要求的计时薪酬(在这里你也可以以每小时3到300美圆的价格雇佣其他人),或者你也可以浏览网站上的各种信息看看是否有适合你的自由工作。
(4)linux Today Jobs
网址:http://jobs.linuxtoday.com/
评介:该站点有两个特征:网络上综合性最强的linux新闻站点之一;能够同时提供Linux企业公司招聘和Linux个人求职的专业站点。
(5)Hotjobs.com
网址:http://www.hotjobs.com
评介:Hotjobs.com是一个不局限于linux特定求职的网站,该站点每天发布5到10个Linux相关职位,而且所公布的职位资料绝对不是那些看起来充裕却几乎没有什么回映的过时消息。
(十五)科学工程
(1) SAL: Scientific Applications for linux
网址:http://www.kachinatech.com/SAL/
评介:linux现在不仅仅是供玩乐的东西了,但这并不是意味着就此失去了许多乐趣。对于年轻的科学工作者们来说,可以在该网站找到许多适用于Linux下各种科研应用程序的开放源代码、共享软件和商业软件等等。
(2) Beowulf Project at CESDIS
网址:http://beowulf.gsfc.nasa.gov/
评介:一个很酷的linux站点。以帮助科学家们联系大量质优价廉的电脑而出名。
(3) High-Availability linux Project
网址:http://www.henge.com/~alanr/ha/
评介:如果你正在linux下运行企业级的应用程序,或者只想验证一下Quake服务器从不会崩溃,那该站点就太适合你了。同时该站点还提供了许多簇管理、Linux-HA软件以及大量地此类相关站点链接。
(4) Free Physics Project
网址:http://freephysics.sourceforge.net/
评介:是一个创建linux下的GPL物理模拟器的站点。用户可以下载运行代码、项目处理等等。
(5) linux and Chemistry
网址:http://chpc06.ch.unito.it/chem_linux.html
评介:这是一个综合了linux和化学的网站,其中有许多商业、共享软件和GPL的软件,适合于那些在Linux下做研究工作的化学家。想必化学系的学生和教授应当喜欢这个站点。
(十六)文档管理
1)linux Documentation Project
网址:http://www.linuxdoc.org/
评介:在所有linux站点中,LDP已经作了相当久的FAQ、HOWTO以及Linux导引了。该站点最为夸耀的是各种格式的Linux详细信息集萃。此外,此站点中的HOWTO分项也是一个能解答用户所有疑难问题的权威场所。最近由于新鲜血液的加盟,该站点又有了新特色。
2)Open Source Writer’s Group
网址:http://www.oswg.org:8080/oswg
评介:该站点是由linuxChix的Deb Richardson在去年制作完成的,为一个开放源代码的集萃站点,特别适合于开放源代码项目的用户。
3)linux Resources
网址:http://www2.linuxjournal.com/cgi-bi....pl/lr-toc.html
评介:该站点是一个优秀的资料站点,同时适用于linux新手和专业人士。在这里,用户可以找到所有相关Linux的资料,而且它还告诉你,在哪里可以找到相关资料、可以和使用这些资料的人见面,以及其它更多。
4)GNU Project Documentation
网址:http://www.gnu.org/doc/doc.html
评介:如果你手里有一个很好的免费软件却不知如何使用,怎么办?幸运的是,GNU Project Documentation站点的管理人员已经为你提供了一个非常综合的文档区。此外,如果你心情不错,那么还可以去读读Free Software and Free Manuals上刊登的Richard Stallman的评论。
5)The Vim Homepage
网址:http://www.vim.org/
评介:一个绝对让新手震动的linux网站。这里有大量的Vim信息和使用资料。
(十七)X-Window 系统
1)Themes.org
网址:http://www.themes.org
评介:这里有装扮你桌面的所有好东西,同时还有在window 管理器和其它流行软件包上更新的X资源和新闻。此外,Themes.org还有SawMill、Afterstep、 Enlightenment、WindowMaker、KDE专区等等。
2)KDE Home
网址:http://www.kde.org
评介:该站点能提供给你适用于K Desktop Environment的任何开发资料,而且还有随时更新的适用于KDE的最新发行软件。此外,KDE还有许多像K Office之类的相关资料。
3)GNOME Home
网址:http://www.GNOME.org
评介:Gnome.org是一个组织最好的免费软件站点。在这里,用户可以得到有关GNOME的开发资源,可以加入GNOME邮件列表,还可以进行软件下载。开发人员将搜索到最新的附加资料,GNOME用户们还将找到大量有用的文档。
4)XFree86 Project
网址:http://www.xfree86.org
评介:XFree86 Project站点将给用户linux系统的相关资料、最新发行的软件、以及一个精彩的FAQ等等。XFree86站点对于刚入门的Linux新手来说将是一个不可错过的站点。
5)Window Managers for X
网址:http://www.PLiG.org/xwinman
评介:Window Managers for X站点是有关X窗口管理器的最综合性站点。从最早的一直到最新的乃至全部,以及最大的窗口管理器都可以在该站点找到。还不知道一个窗口管理器和一个桌面环境的区别吗?该站点也可以回答你这些基本问题。
(十八)linux 分布站点
1)Debian
网址:http://www.debian.org
评介:Debian网站用户界面非常友好,并且关于Debian GNU/linux和Linux一般使用方面内容丰富。如果你喜欢冒险,你甚至可以在这里找到如何使用GNU/Hurd内核运行Debian而不是我们都知道和喜爱的Linux内核。而且还有很多各种各样免费资源的链接供用户使用!
2)Red Hat
网址:http://www.RedHat.com
评介:Red Hat的网站在过去的一年里已经多次发生变化。但是RedHat.com只是保持做更好的改变。最新的界面容易浏览,并且还为用户提供了大量的链接和下载。
3)SuSE
网址:http://www.SuSE.com
评介:SuSE网站是一个商业站点――没有打算成为“门户”站点或其它。所以该网站只是仅仅包含了你想了解的SuSE linux的一切相关信息。SuSE的网站对于想知道Linux是否能和他们的硬件兼容的用户则是
非常有用。
4)Slackware
网址:http://www.Slackware.com
评介:该站点让用户唯一不满的就是太多的图片和太慢的下载速度。相对而言,Slackware站点是一个漂亮、整洁、黑白形象设计,而且还对所有重要的材料建了链接。
5)linux-Mandrake
网址:http://www.linux-Mandrake.com
评介:linux-Mandrake站点对于Linux-Mandrake distro的用户来说确实是一个优秀的网站。无论你是一个需要寻找技术支持的菜鸟,还是一个想同最新的代码打交道的开发者,Linux-Mandrake都是实现这一切的捷径。
(十九)用户团体
1)linux User Groups WorldWide
网址:http://lugww.counter.li.org/lugww.php3
评介:想要寻找离你最近或最远的Liunx用户组吗?linux User Groups WorldWide网站有最全面的相关LUGs(Linux用户组)列表。基于用户地址定位的列表允许相互间建立联系,而且该站点还给出如何创建指南。
2)SVLUG
网址:http://www.sulug.org
评介:该网站很可能是世界上最有活力的LUG站点,而且一定是人们常频繁光顾的热点地带。Silicon Valley linux Users Group站点包含了许多相当有趣的历史和有用链接。
3)Groups of linux Users Everywhere
网址:http://www2.linuxjournal.com/glue/index.html
评介:GLUE是linux Journal的主办者。注册过的LUGs可以参加世界各地的友好Linux公司所提供的活动。同时,GLUE网站中也有一定数量的LUGs资源,包括技巧等等。
4)linux Online’s Linux User Group Registry
网址:http://www.linux.org/users/index.html
评介:linux Online有一个很全面的世界性LUGs列表。如果你想在此找点你的LUG,请在Linux Online site上列出来。
5)linuxChix
网址:http://www.linuxchix.org
评介:没错,Chix的确是在钻研linux。创立LinuxChix的Deb Richardson想打算制作一个能让女性使用的Linux邮件列表。LinuxChix发展的很快,简直比Deb期望的还要流行。而且地区化的LinuxChix LUGs 也已经开始走向全球。
Linux下安装与卸载软件
在Windows下安装软件时,只需用鼠标双击软件的安装程序,或者用Zip等解压缩软件解压缩即可安装。在Linux下安装软件对初学者来说,难度高于Windows下软件安装。下面我就详细讲解Linux下如何安装软件。
先来看看Linux软件扩展名。软件后缀为.rpm最初是Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用;后缀为.deb是Debain Linux提供的一种包封装格式;后缀为.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系统打包工具tar打包的;后缀为.bin的一般是一些商业软件。通过扩展名可以了解软件格式,进而了解软件安装。
RPM格式软件包的安装
1.简介
几乎所有的Linux发行版本都使用某种形式的软件包管理安装、更新和卸载软件。与直接从源代码安装相比,软件包管理易于安装和卸载;易于更新已安装的软件包;易于保护配置文件;易于跟踪已安装文件。
RPM全称是Red Hat Package Manager(Red Hat包管理器)。RPM本质上就是一个包,包含可以立即在特定机器体系结构上安装和运行的Linux软件。RPM示意图见图1。
大多数Linux RPM软件包的命名有一定的规律,它遵循名称-版本-修正版-类型-MYsoftware-1.2 -1.i386.rpm 。
2.安装RPM包软件
# rpm -ivh MYsoftware-1.2 -1.i386.rpm
RPM命令主要参数:
-i 安装软件。
-t 测试安装,不是真的安装。
-p 显示安装进度。
-f 忽略任何错误。
-U 升级安装。
-v 检测套件是否正确安装。
这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。
3.卸载软件
# rpm -e 软件名
需要说明的是,上面代码中使用的是软件名,而不是软件包名。例如,要卸载software-1.2.-1.i386.rpm这个包时,应执行:
#rpm -e software
4.强行卸载RPM包
有时除去一个RPM是不行的,尤其是系统上有别的程序依赖于它的时候。如果执行命令会显示如下错误信息:
## rpm -e xsnow
error: removing these packages would break dependencies:
/usr/X11R6/bin/xsnow is needed by x-amusements-1.0-1
在这种情况下,可以用--force选项重新安装xsnow:
## rpm -ivh --force xsnow-1.41-1.i386.rpm
xsnow
这里推荐使用工具软件Kleandisk,用它可以安全彻底清理掉不再使用的RPM包。
5.安装.src.rpm类型的文件
目前RPM有两种模式,一种是已经过编码的(i386.rpm),一种是未经编码的(src.rpm)。
rpm --rebuild Filename.src.rpm
这时系统会建立一个文件Filenamr.rpm,在/usr/src/redflag/RPMS/子目录下,一般是i386,具体情况和Linux发行版本有关。然后执行下面代码即可:
rpm -ivh /usr/src/regflag/RPMS/i386/Filename.rpm
使用deb打包的软件安装
deb是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得早,并且应用广泛,所以在各种版本的Linux中都常见到,而Debian的包管理器dpkg只出现在Debina Linux中。它的优点是不用被严格的依赖性检查所困扰,缺点是只在Debian Linux发行版中才能见到这个包管理工具。
1. 安装
# dpkg -i MYsoftware-1.2.-1.deb
2. 卸载
# dpkg -e MYsoftware
使用源代码进行软件安装
和RPM安装方式相比,使用源代码进行软件安装会复杂一些,但是用源代码安装软件是Linux下进行软件安装的重要手段,也是运行Linux的最主要的优势之一。使用源代码安装软件,能按照用户的需要选择定制的安装方式进行安装,而不是仅仅依靠那些在安装包中的预配置的参数选择安装。另外,仍然有一些软件程序只能从源代码处进行安装。
现在有很多地方都提供源代码包,到底在什么地方获得取决于软件的特殊需要。对于那些使用比较普遍的软件,如Sendmail,可以从商业网站处下载源代码软件包(如http://www.sendmail.org )。一般的软件包,可从开发者的Web站点下载。下面介绍一下安装步骤:
1.解压数据包
源代码软件通常以.tar.gz做为扩展名,也有tar.Z、tar.bz2或.tgz为扩展名的。不同扩展名解压缩命令也不相同,见表1。
2.编译软件
成功解压缩源代码文件后,进入解包的目录。在安装前阅读Readme文件和Install文件。尽管许多源代码文件包都使用基本相同的命令,但是有时在阅读这些文件时能发现一些重要的区别。例如,有些软件包含一个可以安装的安装脚本程序(.sh)。在安装前阅读这些说明文件,有助于安装成功和节约时间。
在安装软件以前要成为root用户。实现这一点通常有两种方式:在另一台终端以root用户登录,或者输入“su”,此时系统会提示输入root用户的密码。输入密码以后,就将一直拥有root用户的权限。如果已经是root用户,那就可以进行下一步。
通常的安装方法是从安装包的目录执行以下命令:
gunzip soft1.tar.gz
cd soft1
#. /configure #配置#
make #调用make#
make install #安装源代码#
删除安装时产生的临时文件:
#make clean
卸载软件:
#make uninstall
有些软件包的源代码编译安装后可以用make uninstall命令卸载。如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,应该在编译前进行配置。
.bin文件安装
扩展名为.bin文件是二进制的,它也是源程序经编译后得到的机器语言。有一些软件可以发布为以.bin为后缀的安装包,例如,流媒体播放器RealONE。如果安装过RealONE的Windows版的话,那么安装RealONE for Linux版本(文件名:r1p1_linux22_libc6_i386_a1.bin)就非常简单了:
#chmod +x r1p1_linux22_libc6_i386_a1.bin
./ r1p1_linux22_libc6_i386_a1.bin
接下来选择安装方式,有普通安装和高级安装两种。如果不想改动安装目录,就可选择普通安装,整个安装过程几乎和在Windwos下一样。
.bin文件的卸载,以RealONE for Linux为例,如果采用普通安装方式的话,在用户主目录下会有Real和Realplayer9两个文件夹,把它们删除即可。
Linux绿色软件
Linux也有一些绿色软件,不过不是很多。Linux系统提供一种机制:自动响应软件运行进程的要求,为它设定好可以马上运行的环境。这种机制可以是一种接口,或者是中间件。程序员编写的程序可以直接拷贝分发,不用安装,只要点击程序的图标,访问操作系统提供的接口,设定好就可以工作。若要删除软件,直接删除就可以,不用链接文件。这是最简单的软件安装、卸载方式。
上面介绍了Linux软件安装的方法,对于Linux初学者来说,RPM安装是一个不错的选择。如果想真正掌握Linux系统,源代码安装仍然是Linux下软件安装的重要手段。
先来看看Linux软件扩展名。软件后缀为.rpm最初是Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用;后缀为.deb是Debain Linux提供的一种包封装格式;后缀为.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系统打包工具tar打包的;后缀为.bin的一般是一些商业软件。通过扩展名可以了解软件格式,进而了解软件安装。
RPM格式软件包的安装
1.简介
几乎所有的Linux发行版本都使用某种形式的软件包管理安装、更新和卸载软件。与直接从源代码安装相比,软件包管理易于安装和卸载;易于更新已安装的软件包;易于保护配置文件;易于跟踪已安装文件。
RPM全称是Red Hat Package Manager(Red Hat包管理器)。RPM本质上就是一个包,包含可以立即在特定机器体系结构上安装和运行的Linux软件。RPM示意图见图1。
大多数Linux RPM软件包的命名有一定的规律,它遵循名称-版本-修正版-类型-MYsoftware-1.2 -1.i386.rpm 。
2.安装RPM包软件
# rpm -ivh MYsoftware-1.2 -1.i386.rpm
RPM命令主要参数:
-i 安装软件。
-t 测试安装,不是真的安装。
-p 显示安装进度。
-f 忽略任何错误。
-U 升级安装。
-v 检测套件是否正确安装。
这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。
3.卸载软件
# rpm -e 软件名
需要说明的是,上面代码中使用的是软件名,而不是软件包名。例如,要卸载software-1.2.-1.i386.rpm这个包时,应执行:
#rpm -e software
4.强行卸载RPM包
有时除去一个RPM是不行的,尤其是系统上有别的程序依赖于它的时候。如果执行命令会显示如下错误信息:
## rpm -e xsnow
error: removing these packages would break dependencies:
/usr/X11R6/bin/xsnow is needed by x-amusements-1.0-1
在这种情况下,可以用--force选项重新安装xsnow:
## rpm -ivh --force xsnow-1.41-1.i386.rpm
xsnow
这里推荐使用工具软件Kleandisk,用它可以安全彻底清理掉不再使用的RPM包。
5.安装.src.rpm类型的文件
目前RPM有两种模式,一种是已经过编码的(i386.rpm),一种是未经编码的(src.rpm)。
rpm --rebuild Filename.src.rpm
这时系统会建立一个文件Filenamr.rpm,在/usr/src/redflag/RPMS/子目录下,一般是i386,具体情况和Linux发行版本有关。然后执行下面代码即可:
rpm -ivh /usr/src/regflag/RPMS/i386/Filename.rpm
使用deb打包的软件安装
deb是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得早,并且应用广泛,所以在各种版本的Linux中都常见到,而Debian的包管理器dpkg只出现在Debina Linux中。它的优点是不用被严格的依赖性检查所困扰,缺点是只在Debian Linux发行版中才能见到这个包管理工具。
1. 安装
# dpkg -i MYsoftware-1.2.-1.deb
2. 卸载
# dpkg -e MYsoftware
使用源代码进行软件安装
和RPM安装方式相比,使用源代码进行软件安装会复杂一些,但是用源代码安装软件是Linux下进行软件安装的重要手段,也是运行Linux的最主要的优势之一。使用源代码安装软件,能按照用户的需要选择定制的安装方式进行安装,而不是仅仅依靠那些在安装包中的预配置的参数选择安装。另外,仍然有一些软件程序只能从源代码处进行安装。
现在有很多地方都提供源代码包,到底在什么地方获得取决于软件的特殊需要。对于那些使用比较普遍的软件,如Sendmail,可以从商业网站处下载源代码软件包(如http://www.sendmail.org )。一般的软件包,可从开发者的Web站点下载。下面介绍一下安装步骤:
1.解压数据包
源代码软件通常以.tar.gz做为扩展名,也有tar.Z、tar.bz2或.tgz为扩展名的。不同扩展名解压缩命令也不相同,见表1。
2.编译软件
成功解压缩源代码文件后,进入解包的目录。在安装前阅读Readme文件和Install文件。尽管许多源代码文件包都使用基本相同的命令,但是有时在阅读这些文件时能发现一些重要的区别。例如,有些软件包含一个可以安装的安装脚本程序(.sh)。在安装前阅读这些说明文件,有助于安装成功和节约时间。
在安装软件以前要成为root用户。实现这一点通常有两种方式:在另一台终端以root用户登录,或者输入“su”,此时系统会提示输入root用户的密码。输入密码以后,就将一直拥有root用户的权限。如果已经是root用户,那就可以进行下一步。
通常的安装方法是从安装包的目录执行以下命令:
gunzip soft1.tar.gz
cd soft1
#. /configure #配置#
make #调用make#
make install #安装源代码#
删除安装时产生的临时文件:
#make clean
卸载软件:
#make uninstall
有些软件包的源代码编译安装后可以用make uninstall命令卸载。如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,应该在编译前进行配置。
.bin文件安装
扩展名为.bin文件是二进制的,它也是源程序经编译后得到的机器语言。有一些软件可以发布为以.bin为后缀的安装包,例如,流媒体播放器RealONE。如果安装过RealONE的Windows版的话,那么安装RealONE for Linux版本(文件名:r1p1_linux22_libc6_i386_a1.bin)就非常简单了:
#chmod +x r1p1_linux22_libc6_i386_a1.bin
./ r1p1_linux22_libc6_i386_a1.bin
接下来选择安装方式,有普通安装和高级安装两种。如果不想改动安装目录,就可选择普通安装,整个安装过程几乎和在Windwos下一样。
.bin文件的卸载,以RealONE for Linux为例,如果采用普通安装方式的话,在用户主目录下会有Real和Realplayer9两个文件夹,把它们删除即可。
Linux绿色软件
Linux也有一些绿色软件,不过不是很多。Linux系统提供一种机制:自动响应软件运行进程的要求,为它设定好可以马上运行的环境。这种机制可以是一种接口,或者是中间件。程序员编写的程序可以直接拷贝分发,不用安装,只要点击程序的图标,访问操作系统提供的接口,设定好就可以工作。若要删除软件,直接删除就可以,不用链接文件。这是最简单的软件安装、卸载方式。
上面介绍了Linux软件安装的方法,对于Linux初学者来说,RPM安装是一个不错的选择。如果想真正掌握Linux系统,源代码安装仍然是Linux下软件安装的重要手段。
用安装盘来修复GRUB
用安装盘来修复GRUB 详解
一、本解决方案所要解决的问题:
我们可能在安装WIN时,把GRUB或者LILO从MBR上清除。如果在没有系统引导软盘只有安装盘的情况下,所采取的解决解决办法。
常用恢复MBR的办法还有一种是用升级系统的办法,这种办法经过验证,是极不可靠的。我们经过近二三十次的实践,证明效果几乎很少,这个办法用于没有安装GRUB的还是可行的。如果已经把GRUB安装上,后来就重装WINDOW或者别的操作系统而带的LILO,而导致系统不能正常引导,这种办法就失效了。所以说,本方案最适合GRUB的恢复。
二、解决过程[以RedHat 7.3为例]
1.把安装盘的第一张放到光驱,然后重新启动机器,在BOIS中把系统用光驱来引导。
2.等安装界面出来后,按[F4]键,也就是linux rescue模式。
3.一系列键盘以及几项简单的配制,过后就[继续]了。。。这个过程,我不说了,比较简单。
4.然后会出现这样的字符
sh#
5.我们就可以操作GRUB了。。。哈。。。只要能出现这样的,以后都是小KISS了
sh#grub
会出现这样的字符
grub>
我们就可以在这样的字符后面,输入
grub>root (hdX,Y)
grub>setup (hd0)
如果成功会有一个successful......
这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。 setup (hd0)就是把GRUB写到硬盘的MBR上。
我来举个例子吧,如果以我的硬盘为例。我在第一个硬盘上装了XP,在第一个硬盘的hda9个装了RH73.我总共有两个硬盘。如果我把GRUB丢了,就用这种办法找回来。 如果你不知道你的linux安装到哪个分区上,也就是说,不知道这个Y是多少,这也不要紧,先输入root (hdX,然后用[TAB]来查看,一下就明白了...
一、本解决方案所要解决的问题:
我们可能在安装WIN时,把GRUB或者LILO从MBR上清除。如果在没有系统引导软盘只有安装盘的情况下,所采取的解决解决办法。
常用恢复MBR的办法还有一种是用升级系统的办法,这种办法经过验证,是极不可靠的。我们经过近二三十次的实践,证明效果几乎很少,这个办法用于没有安装GRUB的还是可行的。如果已经把GRUB安装上,后来就重装WINDOW或者别的操作系统而带的LILO,而导致系统不能正常引导,这种办法就失效了。所以说,本方案最适合GRUB的恢复。
二、解决过程[以RedHat 7.3为例]
1.把安装盘的第一张放到光驱,然后重新启动机器,在BOIS中把系统用光驱来引导。
2.等安装界面出来后,按[F4]键,也就是linux rescue模式。
3.一系列键盘以及几项简单的配制,过后就[继续]了。。。这个过程,我不说了,比较简单。
4.然后会出现这样的字符
sh#
5.我们就可以操作GRUB了。。。哈。。。只要能出现这样的,以后都是小KISS了
sh#grub
会出现这样的字符
grub>
我们就可以在这样的字符后面,输入
grub>root (hdX,Y)
grub>setup (hd0)
如果成功会有一个successful......
这里的X,如果是一个盘,就是0,如果你所安装的linux的根分区在第二个硬盘上,那X就是1了;Y,就是装有linux系统所在的根分区。 setup (hd0)就是把GRUB写到硬盘的MBR上。
我来举个例子吧,如果以我的硬盘为例。我在第一个硬盘上装了XP,在第一个硬盘的hda9个装了RH73.我总共有两个硬盘。如果我把GRUB丢了,就用这种办法找回来。 如果你不知道你的linux安装到哪个分区上,也就是说,不知道这个Y是多少,这也不要紧,先输入root (hdX,然后用[TAB]来查看,一下就明白了...
无光驱软驱不用虚拟机–安装FreeBSD
linuxsir。org上123写了一个无光、软不用虚拟机,从硬盘安装FreeBSD的:详看:
http://www.linuxsir.com/bbs/showthread.php?s=&threadid=71058
不过不是很具体。很多人怀疑能不能用。
我今天尝试了一次、证明是可以的。
不过仅限于4.× ;
5。X的只能用这个方法启动安装程序,然后从网络安装。
好,我简单的说说我的步骤:
首先下载 grub for dos
我下的是最新版:http://newdos.yginfo.net/dosware/grub/grub020p.zip
接着下载
FreeBSD4.9 disk1(从硬盘安装嘛)
然后把这张ISO的内容全部提取到C:/FreeBSD/下。
解开grub for dos
把压缩包内的文件全部放到C:/下:
形成格式大概如下的:
c:\grub.exe
C:\splash
……
……
……
然后拷贝c:/FreeBSD/floppies/boot.flp到c:/下,
变成c:/boot.flp
这就准备完启动FreeBSD安装程序了。
不过要启动grub for dos要进入纯dos环境,所以还差一点。
首先下载dos启动盘:
http://newdos.yginfo.net/dosware/mdos71bd.zip
接着下载vfloppy(虚拟软驱,用来启动纯dos):
http://gd.pcdog.com/down/vFloppy.rar
然后解开vFloppy.rar
打开vFloppy.exe
映象文件用刚才下载的mdos71bd.zip里面的MSDOS710.IMG
然后应用就可以了。
重启计算机。
在多重启动菜单时候选择“由虚拟启动软盘启动”。
就进入纯dos环境。接着敲入以下命令:
a:\c:
c:\grub.exe(出现一堆启动菜单让你选择的时候,按c进入命令格式)
grub\>map (hd0,0)/boot.flp (fd0)
grub\>chainloader (hd0,0)/boot.flp
grub\>rootnoverify (fd0)
grub\>boot
这样就启动了顺利的启动了FreeBSD的安装程序。
4.x就可以从硬盘安装了。
5.x也可以从网络安装了。
http://www.linuxsir.com/bbs/showthread.php?s=&threadid=71058
不过不是很具体。很多人怀疑能不能用。
我今天尝试了一次、证明是可以的。
不过仅限于4.× ;
5。X的只能用这个方法启动安装程序,然后从网络安装。
好,我简单的说说我的步骤:
首先下载 grub for dos
我下的是最新版:http://newdos.yginfo.net/dosware/grub/grub020p.zip
接着下载
FreeBSD4.9 disk1(从硬盘安装嘛)
然后把这张ISO的内容全部提取到C:/FreeBSD/下。
解开grub for dos
把压缩包内的文件全部放到C:/下:
形成格式大概如下的:
c:\grub.exe
C:\splash
……
……
……
然后拷贝c:/FreeBSD/floppies/boot.flp到c:/下,
变成c:/boot.flp
这就准备完启动FreeBSD安装程序了。
不过要启动grub for dos要进入纯dos环境,所以还差一点。
首先下载dos启动盘:
http://newdos.yginfo.net/dosware/mdos71bd.zip
接着下载vfloppy(虚拟软驱,用来启动纯dos):
http://gd.pcdog.com/down/vFloppy.rar
然后解开vFloppy.rar
打开vFloppy.exe
映象文件用刚才下载的mdos71bd.zip里面的MSDOS710.IMG
然后应用就可以了。
重启计算机。
在多重启动菜单时候选择“由虚拟启动软盘启动”。
就进入纯dos环境。接着敲入以下命令:
a:\c:
c:\grub.exe(出现一堆启动菜单让你选择的时候,按c进入命令格式)
grub\>map (hd0,0)/boot.flp (fd0)
grub\>chainloader (hd0,0)/boot.flp
grub\>rootnoverify (fd0)
grub\>boot
这样就启动了顺利的启动了FreeBSD的安装程序。
4.x就可以从硬盘安装了。
5.x也可以从网络安装了。
MySQL服务器的配置教程
1、安装MySQL
这个应该很简单了,而且我觉得大家在安装方面也没什么太大问题,所以也就不多说了,下面我们来讲讲配置。
2、配置MySQL
注意,在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件了!下面我们一步步地来:
默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入:
$mysql -u root
在这里之所以用-u root是因为我现在是一般用户(firehare),如果不加-u root的话,mysql会以为是firehare在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作,根本没必要进入根用户模式,只有在设置时才有这种可能。
进入mysql之后,最要紧的就是要设置Mysql中的root用户密码了,否则,Mysql服务无安全可言了。
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";
注意,我这儿用的是123456做为root用户的密码,但是该密码是不安全的,请大家最好使用大小写字母与数字混合的密码,且不少于8位。
这样的话,就设置好了MySQL中的root用户密码了,然后就用root用户建立你所需要的数据库。我这里就以xoops为例:
mysql>CREATE DATABASE xoops;
mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@localhost IDENTIFIED BY "654321";
这样就建立了一个xoops_roots的用户,它对数据库xoops有着全部权限。以后就用xoops_root来对xoops数据库进行管理,而无需要再用root用户了,而该用户的权限也只被限定在xoops数据库中。
如果你想进行远程访问或控制,那么你要做两件事:
其一:
mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@"%" IDENTIFIED BY "654321";
允许xoops_root用户可以从任意机器上登入MySQL。
其二:
$sudo gedit /etc/mysql/my.cnf
>skip-networking => # skip-networking
这样就可以允许其他机器访问MySQL了。
这个应该很简单了,而且我觉得大家在安装方面也没什么太大问题,所以也就不多说了,下面我们来讲讲配置。
2、配置MySQL
注意,在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件了!下面我们一步步地来:
默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入:
$mysql -u root
在这里之所以用-u root是因为我现在是一般用户(firehare),如果不加-u root的话,mysql会以为是firehare在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作,根本没必要进入根用户模式,只有在设置时才有这种可能。
进入mysql之后,最要紧的就是要设置Mysql中的root用户密码了,否则,Mysql服务无安全可言了。
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";
注意,我这儿用的是123456做为root用户的密码,但是该密码是不安全的,请大家最好使用大小写字母与数字混合的密码,且不少于8位。
这样的话,就设置好了MySQL中的root用户密码了,然后就用root用户建立你所需要的数据库。我这里就以xoops为例:
mysql>CREATE DATABASE xoops;
mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@localhost IDENTIFIED BY "654321";
这样就建立了一个xoops_roots的用户,它对数据库xoops有着全部权限。以后就用xoops_root来对xoops数据库进行管理,而无需要再用root用户了,而该用户的权限也只被限定在xoops数据库中。
如果你想进行远程访问或控制,那么你要做两件事:
其一:
mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@"%" IDENTIFIED BY "654321";
允许xoops_root用户可以从任意机器上登入MySQL。
其二:
$sudo gedit /etc/mysql/my.cnf
>skip-networking => # skip-networking
这样就可以允许其他机器访问MySQL了。
一篇国外的mysql集群配置
Mysql Cluster: Two webserver setup (three servers required for true redundancy)
HOWTO set up a mysql cluster for two servers
Introduction
This HOWTO was designed for a classic setup of two servers behind a loadbalancer. The aim is to have true redundancy - either server can be unplugged and yet the site will remain up.
Notes
You MUST have a third server as a managment node but this can be shut down after the cluster starts. Also note that I do not recommend shutting down the managment server (see the extra notes at the bottom of this document for more information). You can not run a mysql cluster with just two servers And have true redundancy.
Although it is possible to set the cluster up on two physical servers you WILL NOT GET the ability to "kill" one server and for the cluster to continue as normal. For this you need a third server running the managment node.
I am going to talk about three servers,
mysql1.domain.com 192.168.0.1
mysql2.domain.com 192.168.0.2
mysql3.domain.com 192.168.0.3
Servers 1 and 2 will be the two that end up "clustered". This would be perfect for two servers behind a loadbalancer or using round robin DNS and is a good replacement for replication. Server 3 needs to have only minor changes made to it and does NOT require a mysql install. It can be a low-end machine and can be carrying out other tasks.
STAGE 1: Install mysql on the first two servers:
Complete the following steps on both mysql1 and mysql2:
cd /usr/local/
http://dev.mysql.com/get/Downloa ... ux-gnu-i686.tar.gz/
from/http://www.signal42.com/mirrors/mysql/
groupadd mysql
useradd -g mysql mysql
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
ln -s mysql-max-4.1.9-pc-linux-gnu-i686 mysql
cd mysql
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server
Do not start mysql yet.
STAGE 2: Install and configure the managment server
You need the following files from the bin/ of the mysql directory: ndb_mgm and ndb_mgmd. Download the whole mysql-max tarball and extract them from the bin/ directory.
mkdir /usr/src/mysql-mgm
cd /usr/src/mysql-mgm
http://dev.mysql.com/get/Downloa ... ux-gnu-i686.tar.gz/
from/http://www.signal42.com/mirrors/mysql/
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
cd mysql-max-4.1.9-pc-linux-gnu-i686
mv bin/ndb_mgm .
mv bin/ndb_mgmd .
chmod +x ndb_mg*
mv ndb_mg* /usr/bin/
cd
rm -rf /usr/src/mysql-mgm
You now need to set up the config file for this managment:
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi [or emacs or any other editor] config.ini
Now, insert the following (changing the bits as indicated):
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.0.3# the IP of THIS SERVER
# Storage Engines
[NDBD]
HostName=192.168.0.1# the IP of the FIRST SERVER
DataDir= /var/lib/mysql-cluster
[NDBD]
HostName=192.168.0.2# the IP of the SECOND SERVER
DataDir=/var/lib/mysql-cluster
# 2 MySQL Clients
# I personally leave this blank to allow rapid changes of the mysql clients;
# you can enter the hostnames of the above two servers here. I suggest you dont.
[MYSQLD]
[MYSQLD]
Now, start the managment server:
ndb_mgmd
This is the mysql managment server, not maganment console. You should therefore not expect any output (we will start the console later).
STAGE 3: Configure the storage/SQL servers and start mysql
On each of the two storage/SQL servers (192.168.0.1 and 192.168.0.2) enter the following (changing the bits as appropriate):
vi /etc/my.cnf
Enter i to go to insert mode again and insert this on both servers (changing the IP address to the IP of the managment server that you set up in stage 2):
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3# the IP of the MANAGMENT (THIRD) SERVER
[mysql_cluster]
ndb-connectstring=192.168.0.3# the IP of the MANAGMENT (THIRD) SERVER
Now, we make the data directory and start the storage engine:
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
/usr/local/mysql/bin/ndbd --initial
/etc/rc.d/init.d/mysql.server start
If you have done one server now go back to the start of stage 3 and repeat exactly the same procedure on the second server.
NOTE that you should ONLY use --initial if you are either starting from scratch or have changed the config.ini file on the managment.
STAGE 4: Check its working
You can now return to the managment server (mysql3) and enter the managment console:
/usr/local/mysql/bin/ndb_mgm
Enter the command SHOW to see what is going on. A sample output looks like this:
[root@mysql3 mysql-cluster]# /usr/local/mysql/bin/ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm>; show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.1 (Version: 4.1.9, Nodegroup: 0, Master)
id=3 @192.168.0.2 (Version: 4.1.9, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.3 (Version: 4.1.9)
[mysqld(API)] 2 node(s)
id=4 (Version: 4.1.9)
id=5 (Version: 4.1.9)
ndb_mgm>;
If you see
not connected, accepting connect from 192.168.0.[1/2/3]
in the first or last two lines they you have a problem. Please email me with as much detail as you can give and I can try to find out where you have gone wrong and change this HOWTO to fix it.
If you are OK to here it is time to test mysql. On either server mysql1 or mysql2 enter the following commands: Note that we have no root password yet.
mysql
use test;
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
INSERT INTO ctest () VALUES (1);
SELECT * FROM ctest;
You should see 1 row returned (with the value 1).
If this works, now go to the other server and run the same SELECT and see what you get. Insert from that host and go back to host 1 and see if it works. If it works then congratulations.
The final test is to kill one server to see what happens. If you have physical access to the machine simply unplug its network cable and see if the other server keeps on going fine (try the SELECT query). If you dont have physical access do the following:
ps aux | grep ndbd
You get an output like this:
root 5578 0.0 0.3 6220 1964 ? S 03:14 0:00 ndbd
root 5579 0.0 20.4 492072 102828 ? R 03:14 0:04 ndbd
root 23532 0.0 0.1 3680 684 pts/1 S 07:59 0:00 grep ndbd
In this case ignore the command "grep ndbd" (the last line) but kill the first two processes by issuing the command kill -9 pid pid:
kill -9 5578 5579
Then try the select on the other server. While you are at it run a SHOW command on the managment node to see that the server has died. To restart it, just issue
ndbd
NOTE no --inital!
Further notes about setup
I strongly recommend that you read all of this (and bookmark this page). It will almost certainly save you a lot of searching.
The Managment Server
I strongly recommend that you do not stop the managment server once it has started. This is for several resons:
The server takes hardly any server resources
If a
cluster falls over, you want to be able to just ssh in and type ndbd to stat it. You dont want to have to start messing around with another server
If you want to take backups then you need the managment server up
The cluster log is sent to the management server so to check what is going on in the cluster or has happened since last this is an important tool
All commands from the ndb_mgm client is sent to the management server and thus no management commands without management server.
The managment server is required in case of cluster reconfiguration (crashed server or network split). In the case that it is not running, "split-brain" scenario will occure. The management server arbitration role is required for this type of setup to provide better fault tollerance.
However you are welcome to stop the server if you prefer.
Starting and stopping ndbd automatically on boot
To achieve this, do the following on both mysql1 and mysql2:
echo "ndbd" >; /etc/rc.d/init.d/ndbd
chmod +x /etc/rc.d/init.d/ndbd
chkconfig --add ndbd
Note that this is a really quick script. You ought really to write one that at least checks if ndbd is already started on the machine.
Use of hostnames
You will note that I have used IP addresses exclusively throught this setup. This is because using hostnames simply increases the number of things that can go wrong. Mikael Ronstr?m of MySQL AB kindly explains: "Hostnames certainly work with MySQL Cluster. But using hostnames introduces quite a few error sources since a proper DNS lookup system must be set-up, sometimes /etc/hosts must be edited and their might be security blocks ensuring that communication between certain machines is not possible other than on certain ports". I strongly suggest that while testing you use IP addresses if you can, then once it is all working change to hostnames.
RAM
Use the following formula to work out the amount of RAM that you need on each storage node:
(Size of database * NumberofReplicas * 1.1) / Number of storage nodes
NumberofReplicas is set to two by default. You can change it in config.ini if you want. So for example to run a 4GB database you need just under 9GB of RAM on each storage node. For the SQL nodes and managment nodes you dont need much RAM at all.
Note: A lot of people have emailed me querying the maths above! Remember that the cluster is fault tollerant, and each piece of data is stored on at least 2 nodes. (2 by default, as set by NumberOfReplicas). So you need TWICE the space you would need just for one copy, multiplied by 1.1 for overhead.
Adding storage nodes
If you decide to add storage nodes, bear in mind that 3 is not an optimal numbers. If you are going to move from two (above) then move to 4.
Adding SQL nodes
If you want to add another SQL node (i.e. you have another server that you want to add to the cluster but you dont need it to act as a storage node), then just add the following to /etc/my.cnf on the server (it must be a mysql-max server):
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3# the IP of the MANAGMENT (THIRD) SERVER
[mysql_cluster]
ndb-connectstring=192.168.0.3# the IP of the MANAGMENT (THIRD) SERVER
Then you need to make sure that there is another [MYSQLD] line at the end of config.ini on the managment server. Restart the cluster (see below for an important note) and restart mysql on the new API. It should be connected.
Important note on changing config.ini
If you ever change config.ini you must stop the whole cluster and restart it to re-read the config file. Stop the cluster with a SHUTDOWN command to the ndb_mgm package on the managment server and then restart all the storage nodes.
Some useful configuration options that you will need if you have large tables:
DataMemory: defines the space available to store the actual records in the database. The entire DataMemory will be allocated in memory so it is important that the machine contains enough memory to handle the DataMemory size. Note that DataMemory is also used to store ordered indexes. Ordered indexes uses about 10 bytes per record. Default: 80MB
IndexMemory The IndexMemory is the parameter that controls the amount of storage used for hash indexes in MySQL Cluster. Hash indexes are always used for primary key indexes, unique indexes, and unique constraints. Default: 18MB
MaxNoOfAttributes This parameter defines the number of attributes that can be defined in the cluster. Default: 1000
MaxNoOfTables Obvious (bear in mind that each BLOB field creates another table for various reasons so take this into account). Default: 128
View this page at mysql.com for further information about the things you can put in the [NDBD] section of config.ini
A note about security
MySQL cluster is not secure. By default anyone can connect to your managment server and shut the whole thing down. I suggest the following precautions:
Install APF and block all ports except those you use (do NOT include any MySQL cluster ports). Add the IPs of your cluster machines to the /etc/apf/allow_hosts file.
Run MySQL cluster over a second network card on a second, isolated, network.
Other resources
I found the following resources very useful:
The MySQL cluster documentation. This is gradually being reworked. I would, however, suggest that you at least read these pages:
On-line Backup of MySQL Cluster.
Defining MySQL Cluster Storage Nodes for information that you will need to allow for bigger database memory or a larger number of tables, indexes, unique indexes
MySQL Cluster mailing list.
Google.
MySQL Forums
The #mysql IRC chanel on freenode and EFNet. If you need a free (open source) IRC client I recomment Bersirc.
Thanks
I must thank several others who have contributed to this: Mikael Ronstr?m from MySQL AB for helping me to get this to work and spotting my silly mistake right at the end, Lewis Bergman for proof-reading this page and pointing out some improvements, as well as suffering the frustration with me and Martin Pala for explaining the final reason to keep the managment server up as well as a few other minor changes. Thanks also to Terry from Advanced Network Hosts who paid me to set a cluster up and at the same time produce a HOWTO.
HOWTO set up a mysql cluster for two servers
Introduction
This HOWTO was designed for a classic setup of two servers behind a loadbalancer. The aim is to have true redundancy - either server can be unplugged and yet the site will remain up.
Notes
You MUST have a third server as a managment node but this can be shut down after the cluster starts. Also note that I do not recommend shutting down the managment server (see the extra notes at the bottom of this document for more information). You can not run a mysql cluster with just two servers And have true redundancy.
Although it is possible to set the cluster up on two physical servers you WILL NOT GET the ability to "kill" one server and for the cluster to continue as normal. For this you need a third server running the managment node.
I am going to talk about three servers,
mysql1.domain.com 192.168.0.1
mysql2.domain.com 192.168.0.2
mysql3.domain.com 192.168.0.3
Servers 1 and 2 will be the two that end up "clustered". This would be perfect for two servers behind a loadbalancer or using round robin DNS and is a good replacement for replication. Server 3 needs to have only minor changes made to it and does NOT require a mysql install. It can be a low-end machine and can be carrying out other tasks.
STAGE 1: Install mysql on the first two servers:
Complete the following steps on both mysql1 and mysql2:
cd /usr/local/
http://dev.mysql.com/get/Downloa ... ux-gnu-i686.tar.gz/
from/http://www.signal42.com/mirrors/mysql/
groupadd mysql
useradd -g mysql mysql
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
ln -s mysql-max-4.1.9-pc-linux-gnu-i686 mysql
cd mysql
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server
Do not start mysql yet.
STAGE 2: Install and configure the managment server
You need the following files from the bin/ of the mysql directory: ndb_mgm and ndb_mgmd. Download the whole mysql-max tarball and extract them from the bin/ directory.
mkdir /usr/src/mysql-mgm
cd /usr/src/mysql-mgm
http://dev.mysql.com/get/Downloa ... ux-gnu-i686.tar.gz/
from/http://www.signal42.com/mirrors/mysql/
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
cd mysql-max-4.1.9-pc-linux-gnu-i686
mv bin/ndb_mgm .
mv bin/ndb_mgmd .
chmod +x ndb_mg*
mv ndb_mg* /usr/bin/
cd
rm -rf /usr/src/mysql-mgm
You now need to set up the config file for this managment:
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi [or emacs or any other editor] config.ini
Now, insert the following (changing the bits as indicated):
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.0.3# the IP of THIS SERVER
# Storage Engines
[NDBD]
HostName=192.168.0.1# the IP of the FIRST SERVER
DataDir= /var/lib/mysql-cluster
[NDBD]
HostName=192.168.0.2# the IP of the SECOND SERVER
DataDir=/var/lib/mysql-cluster
# 2 MySQL Clients
# I personally leave this blank to allow rapid changes of the mysql clients;
# you can enter the hostnames of the above two servers here. I suggest you dont.
[MYSQLD]
[MYSQLD]
Now, start the managment server:
ndb_mgmd
This is the mysql managment server, not maganment console. You should therefore not expect any output (we will start the console later).
STAGE 3: Configure the storage/SQL servers and start mysql
On each of the two storage/SQL servers (192.168.0.1 and 192.168.0.2) enter the following (changing the bits as appropriate):
vi /etc/my.cnf
Enter i to go to insert mode again and insert this on both servers (changing the IP address to the IP of the managment server that you set up in stage 2):
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3# the IP of the MANAGMENT (THIRD) SERVER
[mysql_cluster]
ndb-connectstring=192.168.0.3# the IP of the MANAGMENT (THIRD) SERVER
Now, we make the data directory and start the storage engine:
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
/usr/local/mysql/bin/ndbd --initial
/etc/rc.d/init.d/mysql.server start
If you have done one server now go back to the start of stage 3 and repeat exactly the same procedure on the second server.
NOTE that you should ONLY use --initial if you are either starting from scratch or have changed the config.ini file on the managment.
STAGE 4: Check its working
You can now return to the managment server (mysql3) and enter the managment console:
/usr/local/mysql/bin/ndb_mgm
Enter the command SHOW to see what is going on. A sample output looks like this:
[root@mysql3 mysql-cluster]# /usr/local/mysql/bin/ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm>; show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.1 (Version: 4.1.9, Nodegroup: 0, Master)
id=3 @192.168.0.2 (Version: 4.1.9, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.3 (Version: 4.1.9)
[mysqld(API)] 2 node(s)
id=4 (Version: 4.1.9)
id=5 (Version: 4.1.9)
ndb_mgm>;
If you see
not connected, accepting connect from 192.168.0.[1/2/3]
in the first or last two lines they you have a problem. Please email me with as much detail as you can give and I can try to find out where you have gone wrong and change this HOWTO to fix it.
If you are OK to here it is time to test mysql. On either server mysql1 or mysql2 enter the following commands: Note that we have no root password yet.
mysql
use test;
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
INSERT INTO ctest () VALUES (1);
SELECT * FROM ctest;
You should see 1 row returned (with the value 1).
If this works, now go to the other server and run the same SELECT and see what you get. Insert from that host and go back to host 1 and see if it works. If it works then congratulations.
The final test is to kill one server to see what happens. If you have physical access to the machine simply unplug its network cable and see if the other server keeps on going fine (try the SELECT query). If you dont have physical access do the following:
ps aux | grep ndbd
You get an output like this:
root 5578 0.0 0.3 6220 1964 ? S 03:14 0:00 ndbd
root 5579 0.0 20.4 492072 102828 ? R 03:14 0:04 ndbd
root 23532 0.0 0.1 3680 684 pts/1 S 07:59 0:00 grep ndbd
In this case ignore the command "grep ndbd" (the last line) but kill the first two processes by issuing the command kill -9 pid pid:
kill -9 5578 5579
Then try the select on the other server. While you are at it run a SHOW command on the managment node to see that the server has died. To restart it, just issue
ndbd
NOTE no --inital!
Further notes about setup
I strongly recommend that you read all of this (and bookmark this page). It will almost certainly save you a lot of searching.
The Managment Server
I strongly recommend that you do not stop the managment server once it has started. This is for several resons:
The server takes hardly any server resources
If a
cluster falls over, you want to be able to just ssh in and type ndbd to stat it. You dont want to have to start messing around with another server
If you want to take backups then you need the managment server up
The cluster log is sent to the management server so to check what is going on in the cluster or has happened since last this is an important tool
All commands from the ndb_mgm client is sent to the management server and thus no management commands without management server.
The managment server is required in case of cluster reconfiguration (crashed server or network split). In the case that it is not running, "split-brain" scenario will occure. The management server arbitration role is required for this type of setup to provide better fault tollerance.
However you are welcome to stop the server if you prefer.
Starting and stopping ndbd automatically on boot
To achieve this, do the following on both mysql1 and mysql2:
echo "ndbd" >; /etc/rc.d/init.d/ndbd
chmod +x /etc/rc.d/init.d/ndbd
chkconfig --add ndbd
Note that this is a really quick script. You ought really to write one that at least checks if ndbd is already started on the machine.
Use of hostnames
You will note that I have used IP addresses exclusively throught this setup. This is because using hostnames simply increases the number of things that can go wrong. Mikael Ronstr?m of MySQL AB kindly explains: "Hostnames certainly work with MySQL Cluster. But using hostnames introduces quite a few error sources since a proper DNS lookup system must be set-up, sometimes /etc/hosts must be edited and their might be security blocks ensuring that communication between certain machines is not possible other than on certain ports". I strongly suggest that while testing you use IP addresses if you can, then once it is all working change to hostnames.
RAM
Use the following formula to work out the amount of RAM that you need on each storage node:
(Size of database * NumberofReplicas * 1.1) / Number of storage nodes
NumberofReplicas is set to two by default. You can change it in config.ini if you want. So for example to run a 4GB database you need just under 9GB of RAM on each storage node. For the SQL nodes and managment nodes you dont need much RAM at all.
Note: A lot of people have emailed me querying the maths above! Remember that the cluster is fault tollerant, and each piece of data is stored on at least 2 nodes. (2 by default, as set by NumberOfReplicas). So you need TWICE the space you would need just for one copy, multiplied by 1.1 for overhead.
Adding storage nodes
If you decide to add storage nodes, bear in mind that 3 is not an optimal numbers. If you are going to move from two (above) then move to 4.
Adding SQL nodes
If you want to add another SQL node (i.e. you have another server that you want to add to the cluster but you dont need it to act as a storage node), then just add the following to /etc/my.cnf on the server (it must be a mysql-max server):
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3# the IP of the MANAGMENT (THIRD) SERVER
[mysql_cluster]
ndb-connectstring=192.168.0.3# the IP of the MANAGMENT (THIRD) SERVER
Then you need to make sure that there is another [MYSQLD] line at the end of config.ini on the managment server. Restart the cluster (see below for an important note) and restart mysql on the new API. It should be connected.
Important note on changing config.ini
If you ever change config.ini you must stop the whole cluster and restart it to re-read the config file. Stop the cluster with a SHUTDOWN command to the ndb_mgm package on the managment server and then restart all the storage nodes.
Some useful configuration options that you will need if you have large tables:
DataMemory: defines the space available to store the actual records in the database. The entire DataMemory will be allocated in memory so it is important that the machine contains enough memory to handle the DataMemory size. Note that DataMemory is also used to store ordered indexes. Ordered indexes uses about 10 bytes per record. Default: 80MB
IndexMemory The IndexMemory is the parameter that controls the amount of storage used for hash indexes in MySQL Cluster. Hash indexes are always used for primary key indexes, unique indexes, and unique constraints. Default: 18MB
MaxNoOfAttributes This parameter defines the number of attributes that can be defined in the cluster. Default: 1000
MaxNoOfTables Obvious (bear in mind that each BLOB field creates another table for various reasons so take this into account). Default: 128
View this page at mysql.com for further information about the things you can put in the [NDBD] section of config.ini
A note about security
MySQL cluster is not secure. By default anyone can connect to your managment server and shut the whole thing down. I suggest the following precautions:
Install APF and block all ports except those you use (do NOT include any MySQL cluster ports). Add the IPs of your cluster machines to the /etc/apf/allow_hosts file.
Run MySQL cluster over a second network card on a second, isolated, network.
Other resources
I found the following resources very useful:
The MySQL cluster documentation. This is gradually being reworked. I would, however, suggest that you at least read these pages:
On-line Backup of MySQL Cluster.
Defining MySQL Cluster Storage Nodes for information that you will need to allow for bigger database memory or a larger number of tables, indexes, unique indexes
MySQL Cluster mailing list.
Google.
MySQL Forums
The #mysql IRC chanel on freenode and EFNet. If you need a free (open source) IRC client I recomment Bersirc.
Thanks
I must thank several others who have contributed to this: Mikael Ronstr?m from MySQL AB for helping me to get this to work and spotting my silly mistake right at the end, Lewis Bergman for proof-reading this page and pointing out some improvements, as well as suffering the frustration with me and Martin Pala for explaining the final reason to keep the managment server up as well as a few other minor changes. Thanks also to Terry from Advanced Network Hosts who paid me to set a cluster up and at the same time produce a HOWTO.
一个Mysql自动备份脚本
#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by aspbiz
#2004-09
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=
BackupPath=/root/
LogFile=/root/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >;>; $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >;>; $LogFile
echo "--------------------------" >;>; $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >;>; $LogFile 2>;&1
echo "[$OldFile]Delete Old File Success!" >;>; $LogFile
else
echo "[$OldFile]No Old Backup File!" >;>; $LogFile
fi
if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is exists,Can't Backup!" >;>; $LogFile
else
case $BackupMethod in
mysqldump)
if [ -z $DBPasswd ]
then
mysqldump -u $DBUser --opt $DBName >; $DumpFile
else
mysqldump -u $DBUser -p$DBPasswd --opt $DBName >; $DumpFile
fi
tar czvf $NewFile $DumpFile >;>; $LogFile 2>;&1
echo "[$NewFile]Backup Success!" >;>; $LogFile
rm -rf $DumpFile
;;
mysqlhotcopy)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhotcopy -u $DBUser $DBName $DumpFile >;>; $LogFile 2>;&1
else
mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >;>;$LogFile 2>;&1
fi
tar czvf $NewFile $DumpFile >;>; $LogFile 2>;&1
echo "[$NewFile]Backup Success!" >;>; $LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >;/dev/null 2>;&1
tar czvf $NewFile $DBPath$DBName >;>; $LogFile 2>;&1
/etc/init.d/mysqld start >;/dev/null 2>;&1
echo "[$NewFile]Backup Success!" >;>; $LogFile
;;
esac
fi
echo "-------------------------------------------" >;>; $LogFile
#This is a ShellScript For Auto DB Backup
#Powered by aspbiz
#2004-09
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=
BackupPath=/root/
LogFile=/root/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >;>; $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >;>; $LogFile
echo "--------------------------" >;>; $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >;>; $LogFile 2>;&1
echo "[$OldFile]Delete Old File Success!" >;>; $LogFile
else
echo "[$OldFile]No Old Backup File!" >;>; $LogFile
fi
if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is exists,Can't Backup!" >;>; $LogFile
else
case $BackupMethod in
mysqldump)
if [ -z $DBPasswd ]
then
mysqldump -u $DBUser --opt $DBName >; $DumpFile
else
mysqldump -u $DBUser -p$DBPasswd --opt $DBName >; $DumpFile
fi
tar czvf $NewFile $DumpFile >;>; $LogFile 2>;&1
echo "[$NewFile]Backup Success!" >;>; $LogFile
rm -rf $DumpFile
;;
mysqlhotcopy)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhotcopy -u $DBUser $DBName $DumpFile >;>; $LogFile 2>;&1
else
mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >;>;$LogFile 2>;&1
fi
tar czvf $NewFile $DumpFile >;>; $LogFile 2>;&1
echo "[$NewFile]Backup Success!" >;>; $LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >;/dev/null 2>;&1
tar czvf $NewFile $DBPath$DBName >;>; $LogFile 2>;&1
/etc/init.d/mysqld start >;/dev/null 2>;&1
echo "[$NewFile]Backup Success!" >;>; $LogFile
;;
esac
fi
echo "-------------------------------------------" >;>; $LogFile
Mysql常用到的命令
MySql常用命令
一、连接MYSQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
1、例1:连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>
2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)
二、修改密码。
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令
mysqladmin -uroot -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:再将root的密码改为djg345。
mysqladmin -uroot -pab12 password djg345
三、增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@\"%\" Identified by \"abc\";
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"abc\";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";
在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。
一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。
二、显示命令
1、显示数据库列表。
show databases;
刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
use mysql; //打开库,学过FOXBASE的一定不会陌生吧
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名;
三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default ’深圳’,
year date
); //建表结束
//以下为插入字段
insert into teacher values(’’,’glchengang’,’深圳一中’,’1976-10-10’);
insert into teacher values(’’,’jack’,’深圳一中’,’1975-12-23’);
注:在建表中(1)将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key(2)将NAME设为长度为10的字符字段(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。(4)将YEAR设为日期字段。
如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:\\下,并在DOS状态进入目录\\mysql\\bin,然后键入以下命令:
mysql -uroot -p密码 < c:\\school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
四、将文本数据转到数据库中
1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\\n来代替.
例:
3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
2、数据传入命令 load data local infile \"文件名\" into table 表名;
注意:你最好将文件复制到\\mysql\\bin目录下,并且要先用use命令打表所在的库。
五、备份数据库:(命令在DOS的\\mysql\\bin目录下执行)
mysqldump --opt school>school.bbb
注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。
关闭mysql服务 issue the following command:
mysqladmin shutdown -uroot -p
一、连接MYSQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
1、例1:连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>
2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)
二、修改密码。
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令
mysqladmin -uroot -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:再将root的密码改为djg345。
mysqladmin -uroot -pab12 password djg345
三、增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@\"%\" Identified by \"abc\";
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"abc\";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";
在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。
一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。
二、显示命令
1、显示数据库列表。
show databases;
刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
use mysql; //打开库,学过FOXBASE的一定不会陌生吧
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名;
三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default ’深圳’,
year date
); //建表结束
//以下为插入字段
insert into teacher values(’’,’glchengang’,’深圳一中’,’1976-10-10’);
insert into teacher values(’’,’jack’,’深圳一中’,’1975-12-23’);
注:在建表中(1)将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key(2)将NAME设为长度为10的字符字段(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。(4)将YEAR设为日期字段。
如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:\\下,并在DOS状态进入目录\\mysql\\bin,然后键入以下命令:
mysql -uroot -p密码 < c:\\school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
四、将文本数据转到数据库中
1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\\n来代替.
例:
3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
2、数据传入命令 load data local infile \"文件名\" into table 表名;
注意:你最好将文件复制到\\mysql\\bin目录下,并且要先用use命令打表所在的库。
五、备份数据库:(命令在DOS的\\mysql\\bin目录下执行)
mysqldump --opt school>school.bbb
注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。
关闭mysql服务 issue the following command:
mysqladmin shutdown -uroot -p
shell入门基础必备
1.建立和运行shell程序
什么是shell程序呢? 简单的说shell程序就是一个包含若干行
shell或者linux命令的文件.
象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器.如VI等.
在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成一个完整
的程序文件.
执行shell程序文件有三种方法
(1)#chmod +x file(在/etc/profile中,加入export PATH=${PATH}:~/yourpath,就可以在命令行下直接运行,像执行普通命令一样)
(2)#sh file
(3)# . file
(4)#source file
在编写shell时,第一行一定要指明系统需要那种shell解释你的shell程序,如:#! /bin/bash,
#! /bin/csh,/bin/tcsh,还是#! /bin/pdksh .
2.shell中的变量
(1)常用系统变量
$ # :保存程序命令行参数的数目
$ ? :保存前一个命令的返回码
$ 0 :保存程序名
$ * :以("$1 $2...")的形式保存所有输入的命令行参数
$ @ :以("$1""$2"...)的形式保存所有输入的命令行参数
(2)定义变量
shell语言是非类型的解释型语言,不象用C++/JAVA语言编程时需要事先声明变量.给一
个变量赋值,实际上就是定义了变量.
在linux支持的所有shell中,都可以用赋值符号(=)为变量赋值.
如:
abc=9 (bash/pdksh不能在等号两侧留下空格 )
set abc = 9 (tcsh/csh)
由于shell程序的变量是无类型的,所以用户可以使用同一个变量时而存放字符时而存放
整数.
如:
name=abc (bash/pdksh)
set name = abc (tcsh)
在变量赋值之后,只需在变量前面加一个$去引用.
如:
echo $abc
(3)位置变量
当运行一个支持多个命令行参数的shell程序时,这些变量的值将分别存放在位置变量里.
其中第一个参数存放在位置变量1,第二个参数存放在位置变量2,依次类推...,shell保留
这些变量,不允许用户以令外的方式定义他们.同别的变量,用$符号引用他们.
3.shell中引号的使用方法
shell使用引号(单引号/双引号)和反斜线("\")用于向shell解释器屏蔽一些特殊字符.
反引号(")对shell则有特殊意义.
如:
abc="how are you" (bash/pdksh)
set abc = "how are you" (tcsh)
这个命令行把三个单词组成的字符串how are you作为一个整体赋值给变量abc.
abc1='@LOGNAME,how are you!' (bash/pdksh)
set abc1='$LOGNAME,how are you!' (tcsh)
abc2="$LOGNAME,how are you!" (bash/pdksh)
set abc2="$LOGNAME,how are you!" (tcsh)
LOGNAME变量是保存当前用户名的shell变量,假设他的当前值是:wang.执行完两条命令后,
abc1的内容是:$LOGNAME, how are you!.而abc2的内容是;wang, how are you!.
象单引号一样,反斜线也能屏蔽所有特殊字符.但是他一次只能屏蔽一个字符.而不能屏蔽
一组字符.
反引号的功能不同于以上的三种符号.他不具有屏蔽特殊字符的功能.但是可以通过他将
一个命令的运行结果传递给另外一个命令.
如:
contents=`ls` (bash/pdksh)
set contents = `ls` (tcsh)
4.shell程序中的test命令
在bash/pdksh中,命令test用于计算一个条件表达式的值.他们经常在条件语句和循环
语句中被用来判断某些条件是否满足.
test命令的语法格式:
test expression
或者
[expression]
在test命令中,可以使用很多shell的内部操作符.这些操作符介绍如下:
(1)字符串操作符 用于计算字符串表达式
test命令 | 含义
-----------------------------------------
Str1 = str2 | 当str1与str2相同时,返回True
Str1! = str2| 当str1与str2不同时,返回True
Str | 当str不是空字符时,返回True
-n str | 当str的长度大于0时,返回True
-z str | 当str的长度是0时,返回True
-----------------------------------------
(2)整数操作符具有和字符操作符类似的功能.只是他们的操作是针对整数
test表达式 | 含义
---------------------------------------------
Int1 -eq int2|当int1等于int2时,返回True
Int1 -ge int2|当int1大于/等于int2时,返回True
Int1 -le int2|当int1小于/等于int2时,返回True
Int1 -gt int2|当int1大于int2时,返回True
Int1 -ne int2|当int1不等于int2时,返回True
-----------------------------------------
(3)用于文件操作的操作符,他们能检查:文件是否存在,文件类型等
test表达式 | 含义
------------------------------------------------
-d file |当file是一个目录时,返回 True
-f file |当file是一个普通文件时,返回 True
-r file |当file是一个刻读文件时,返回 True
-s file |当file文件长度大于0时,返回 True
-w file |当file是一个可写文件时,返回 True
-x file |当file是一个可执行文件时,返回 True
------------------------------------------------
(4)shell的逻辑操作符用于修饰/连接包含整数,字符串,文件操作符的表达式
test表达式 | 含义
----------------------------------------------------------
! expr |当expr的值是False时,返回True
Expr1 -a expr2|当expr1,expr2值同为True时,返回True
Expr1 -o expr2|当expr1,expr2的值至少有一个为True时,返回True
-----------------------------------------------------------
注意:
tcsh shell 不使用test命令,但是tcsh中的表达式同样能承担相同的功能.tcsh
支持的表达式于C中的表达式相同.通常使用在if和while命令中.
tcsh表达式 | 含义
-------------------------------------------------------
Int1 <= int2 |当int1小于/等于int2时,返回True
Int1 >= int2 |当int1大于/等于int2时,返回True
Int1 < int2 |当int1小于int2时,返回True
Int1 > int2 |当int1大于int2时,返回True
Str1 == str2 |当str1与str2相同时,返回True
Str1 != str2 |当str1与str2不同时,返回True
-r file |当file是一个可读文件时,返回True
-w file |当file是一个可写文件时,返回True
-x file |当file是一个可执行文件时,返回True
-e file |当file存在时,返回True
-o file |当file文件的所有者是当前用户时,返回True
-z file |当file长度为0时,返回True
-f file |当file是一个普通文件时,返回True
-d file |当file是一个目录时,返回True
Exp1 || exp2 |当exp1和exp2的值至少一个为True时,返回True
Exp1 && exp2 |当exp1和exp2的值同为True时,返回True
! exp |当exp的值为False时,返回True
什么是shell程序呢? 简单的说shell程序就是一个包含若干行
shell或者linux命令的文件.
象编写高级语言的程序一样,编写一个shell程序需要一个文本编辑器.如VI等.
在文本编辑环境下,依据shell的语法规则,输入一些shell/linux命令行,形成一个完整
的程序文件.
执行shell程序文件有三种方法
(1)#chmod +x file(在/etc/profile中,加入export PATH=${PATH}:~/yourpath,就可以在命令行下直接运行,像执行普通命令一样)
(2)#sh file
(3)# . file
(4)#source file
在编写shell时,第一行一定要指明系统需要那种shell解释你的shell程序,如:#! /bin/bash,
#! /bin/csh,/bin/tcsh,还是#! /bin/pdksh .
2.shell中的变量
(1)常用系统变量
$ # :保存程序命令行参数的数目
$ ? :保存前一个命令的返回码
$ 0 :保存程序名
$ * :以("$1 $2...")的形式保存所有输入的命令行参数
$ @ :以("$1""$2"...)的形式保存所有输入的命令行参数
(2)定义变量
shell语言是非类型的解释型语言,不象用C++/JAVA语言编程时需要事先声明变量.给一
个变量赋值,实际上就是定义了变量.
在linux支持的所有shell中,都可以用赋值符号(=)为变量赋值.
如:
abc=9 (bash/pdksh不能在等号两侧留下空格 )
set abc = 9 (tcsh/csh)
由于shell程序的变量是无类型的,所以用户可以使用同一个变量时而存放字符时而存放
整数.
如:
name=abc (bash/pdksh)
set name = abc (tcsh)
在变量赋值之后,只需在变量前面加一个$去引用.
如:
echo $abc
(3)位置变量
当运行一个支持多个命令行参数的shell程序时,这些变量的值将分别存放在位置变量里.
其中第一个参数存放在位置变量1,第二个参数存放在位置变量2,依次类推...,shell保留
这些变量,不允许用户以令外的方式定义他们.同别的变量,用$符号引用他们.
3.shell中引号的使用方法
shell使用引号(单引号/双引号)和反斜线("\")用于向shell解释器屏蔽一些特殊字符.
反引号(")对shell则有特殊意义.
如:
abc="how are you" (bash/pdksh)
set abc = "how are you" (tcsh)
这个命令行把三个单词组成的字符串how are you作为一个整体赋值给变量abc.
abc1='@LOGNAME,how are you!' (bash/pdksh)
set abc1='$LOGNAME,how are you!' (tcsh)
abc2="$LOGNAME,how are you!" (bash/pdksh)
set abc2="$LOGNAME,how are you!" (tcsh)
LOGNAME变量是保存当前用户名的shell变量,假设他的当前值是:wang.执行完两条命令后,
abc1的内容是:$LOGNAME, how are you!.而abc2的内容是;wang, how are you!.
象单引号一样,反斜线也能屏蔽所有特殊字符.但是他一次只能屏蔽一个字符.而不能屏蔽
一组字符.
反引号的功能不同于以上的三种符号.他不具有屏蔽特殊字符的功能.但是可以通过他将
一个命令的运行结果传递给另外一个命令.
如:
contents=`ls` (bash/pdksh)
set contents = `ls` (tcsh)
4.shell程序中的test命令
在bash/pdksh中,命令test用于计算一个条件表达式的值.他们经常在条件语句和循环
语句中被用来判断某些条件是否满足.
test命令的语法格式:
test expression
或者
[expression]
在test命令中,可以使用很多shell的内部操作符.这些操作符介绍如下:
(1)字符串操作符 用于计算字符串表达式
test命令 | 含义
-----------------------------------------
Str1 = str2 | 当str1与str2相同时,返回True
Str1! = str2| 当str1与str2不同时,返回True
Str | 当str不是空字符时,返回True
-n str | 当str的长度大于0时,返回True
-z str | 当str的长度是0时,返回True
-----------------------------------------
(2)整数操作符具有和字符操作符类似的功能.只是他们的操作是针对整数
test表达式 | 含义
---------------------------------------------
Int1 -eq int2|当int1等于int2时,返回True
Int1 -ge int2|当int1大于/等于int2时,返回True
Int1 -le int2|当int1小于/等于int2时,返回True
Int1 -gt int2|当int1大于int2时,返回True
Int1 -ne int2|当int1不等于int2时,返回True
-----------------------------------------
(3)用于文件操作的操作符,他们能检查:文件是否存在,文件类型等
test表达式 | 含义
------------------------------------------------
-d file |当file是一个目录时,返回 True
-f file |当file是一个普通文件时,返回 True
-r file |当file是一个刻读文件时,返回 True
-s file |当file文件长度大于0时,返回 True
-w file |当file是一个可写文件时,返回 True
-x file |当file是一个可执行文件时,返回 True
------------------------------------------------
(4)shell的逻辑操作符用于修饰/连接包含整数,字符串,文件操作符的表达式
test表达式 | 含义
----------------------------------------------------------
! expr |当expr的值是False时,返回True
Expr1 -a expr2|当expr1,expr2值同为True时,返回True
Expr1 -o expr2|当expr1,expr2的值至少有一个为True时,返回True
-----------------------------------------------------------
注意:
tcsh shell 不使用test命令,但是tcsh中的表达式同样能承担相同的功能.tcsh
支持的表达式于C中的表达式相同.通常使用在if和while命令中.
tcsh表达式 | 含义
-------------------------------------------------------
Int1 <= int2 |当int1小于/等于int2时,返回True
Int1 >= int2 |当int1大于/等于int2时,返回True
Int1 < int2 |当int1小于int2时,返回True
Int1 > int2 |当int1大于int2时,返回True
Str1 == str2 |当str1与str2相同时,返回True
Str1 != str2 |当str1与str2不同时,返回True
-r file |当file是一个可读文件时,返回True
-w file |当file是一个可写文件时,返回True
-x file |当file是一个可执行文件时,返回True
-e file |当file存在时,返回True
-o file |当file文件的所有者是当前用户时,返回True
-z file |当file长度为0时,返回True
-f file |当file是一个普通文件时,返回True
-d file |当file是一个目录时,返回True
Exp1 || exp2 |当exp1和exp2的值至少一个为True时,返回True
Exp1 && exp2 |当exp1和exp2的值同为True时,返回True
! exp |当exp的值为False时,返回True
订阅:
博文 (Atom)