📄 113.html
字号:
<br>
2、分区的时候,根据计划安装的软件灵活决定分区。一般分区有:/,/root<br>
,/usr,/var和swap分区,其中swap分区类型和其他不同需要专门选择一下,它的<br>
空间一般是物理内存的两倍即可。/root分区是紧急情况root用的,有64兆就行了<br>
。<br>
<br>
3、当然,为了方便,你可以安装发行包给你做好的软件。但我安装Linux的习<br>
惯做法是开始就安装一个最小系统,然后安装所有的编译工具。安装编译工具的方<br>
法一般都通过你用的发行包的包管理工具实现,这样最方便。比如在TurboLinux中<br>
,运行/usr/sbin/Turbopkg就可以了。在管理工具中选择所有关于Developoment相<br>
关的选项或gcc相关选项,一般就可以了。<br>
<br>
4、lilo一定要装。否则一旦出现分区问题都不好办。<br>
<br>
5、如果和Windows混装的时候,装完了系统起不来了。可以用98启动盘启动,<br>
然后用FDISK /MBR回复主引导分区来保住Windows分区。<br>
<br>
在安装了最小系统和全套的编译器后,我们应该得到一个比较干净的系统。在<br>
这个系统上,可以下载和安装各种应用软件了。<br>
<br>
三、基本使用<br>
<br>
1、文件系统<br>
<br>
无论有多少个分区,整个文件系统都是一棵完整的树结构。经常用到的目录有<br>
:<br>
<br>
(1)/usr:存放各种应用程序文件用。其中的/usr/local用来存放后安装的软<br>
件<br>
<br>
(2)/var:用来存放所有的数据文件<br>
<br>
(3)/proc:里面的文件用来表示系统内核的各种配置和状态。这一块不是真正<br>
的文件系统,而是内存里面的各种数据。可以从这里得到一些常用的系统信息。比<br>
如CPU内存什么的。<br>
<br>
(4)/etc:这里是放置所有的系统配置文件。一般情况下,后安装的软件的配<br>
置文件不会放到这里。除非你是用RPM安装的随发行包配的软件或者故意这样做。<br>
我不喜欢把不同软件的文件混在一起,因此通常让不同的软件的配置文件放在各自<br>
的目录中。<br>
<br>
2、常用的命令<br>
<br>
这里我列出一些经常用的命令,具体的用法可以参见相关手册页(希望你的英<br>
文不象我这么差)。<br>
<br>
vi(一定要会用这个你非常讨厌的东西,如果你屈服了,可以选择另一个叫做<br>
pico的编辑器,它有点象DOS的edit)<br>
<br>
head(用来看很长的文件用)<br>
<br>
tail(同上)<br>
<br>
netstat(看网络状态)<br>
<br>
tar(解开.tar.gz的压缩包)<br>
<br>
ps(察看进程)<br>
<br>
kill(干掉进程)<br>
<br>
top(看系统状况)<br>
<br>
shutdown(关闭系统)<br>
<br>
cat(看文件内容)<br>
<br>
ping (看网络连通状况)<br>
<br>
ftp(传输文件)<br>
<br>
man(手册)<br>
<br>
上面这些命令都是最最常用的,一定要把基本用法记牢。事实上,每人能记住<br>
全部命令或一个命令的全部参数,记住几个常用的就行了。其他的查书。<br>
<br>
3、内核升级<br>
<br>
如果你不愿意冒险,可以跳过这个部分。不过根据我实际使用的经验,2.4.x<br>
版本的内核性能比2.2.x的性能至少提高40%,还是很值得一试的。现在最新的发行<br>
包几乎都带有新的2.4内核,但是版本号想对保守。这里,我的建议是在决定升级<br>
任何部分的时候,一定要首先看一下所谓的“currect version release note”信<br>
息,里面告诉你本次版本升级都有些什么改动。如果改动的内容不涉及你当前的环<br>
境或需求,只是增加了一些邪门设备的驱动,你大可不必急着升级。补充一句话:<br>
Linux的内核版本号的中间一位是奇数的是非稳定版本,比如2.3,是偶数的才是稳<br>
定版本。<br>
<br>
升级内核的步骤如下:<br>
<br>
(1)首先在网上找到你打算升级的内核文件,一般名字是:linux-2.x.xx.<br>
tar.gz,把这个文件复制到/usr/src。(不知道在哪里找?看看:http://www.<br>
kernel.org ,最好找到.tar.gz格式的,比如这里:http://www.kernel.<br>
org/pub/linux/kernel/v2.x/)。下面的升级举例是从2.2.18升级到2.5.7(这是<br>
最新的内核了,你使用其它的版本别忘了改变版本号)<br>
<br>
(2)解压缩:tar zxvf linux-2.5.7.tar.gz后生成一个目录:linux-2.5.7。<br>
<br>
<br>
(3)进入/usr/src,用ls –l 命令可以看到src里面有一个连接,类似于:<br>
linux -> linux-2.2.18/ (连接指向你当前用的内核版本)。首先删除这个连接<br>
(rm linux),用ln -s linux-2.5.7 linux 命令重建连接。我想你一定不会连这<br>
里的版本号都照抄吧?<br>
<br>
(4)进入linux-2.5.7 目录,如果不是第一次编译这个内核,最好用命令:<br>
make mrproper 删掉上次编译产生的.o文件等,当然以前保存的配置也丢了。<br>
<br>
(5)用命令:make menuconfig命令调整内核配置以适应你目前的环境,记住,<br>
不懂的配置不要乱动。首要任务是调整各种硬件的环境,比如SCSI卡:SCSI<br>
support/SCSI low-level drivers,不知道现在的SCSI卡型号?在/proc/scsi中可<br>
以找到。还有网卡,在Network Device Support 里面。不知道现在的网卡型号?<br>
在这个文件里面写着呢:/proc/net/PRO_LAN_Adapters/eth0.info或/proc/pci文<br>
件中也可以找到 。在menuconfig中用空格键改变选项状态,前面的<*>表示该功能<br>
编译在内核中,主要是运行速度快。< >表示不需要该功能。表示把该功能编译成<br>
模块,通常为了减小尺寸,和更换方便而把某些驱动编译成模块。<br>
<br>
(6)下面的事情比较程序化,照着做:make dep (检查文件的完整性,过程很<br>
复杂)<br>
<br>
(7)make bzImage 注意大小写(真正开始编译了耶!我觉着这个最过瘾了,屏<br>
幕“哗啦哗啦”的,这时候你会感觉到,多少不知名的程序员在这个复杂的系统中<br>
贡献了自己的一份力量)<br>
<br>
(8)make modules (编译那些被标记为的功能模块或驱动程序)<br>
<br>
(9)make modules_install(把编译好的模块复制到指定地点,一般是:<br>
/lib/modules/ 。注意:不同版本号的模块是完全分开在不同目录中的,因为<br>
modules跟内核是紧密相关的,混用容易导致系统崩溃)<br>
<br>
<br>
(10)cd /usr/src/linux-2.5.7/arch/i386/boot ,用命令:cp<br>
/usr/src/linux2.5.7/arch/i386/boot/bzImage /boot/vmlinuz-2.5.7 把文件<br>
bzImage文件改名成vmlinuz-2.5.7复制到/boot/<br>
<br>
(11)cp /usr/src/linux-2.5.7/System.map /boot/System.map-2.5.7<br>
<br>
(12)进入/boot目录,rm System.map<br>
<br>
(13)在/boot目录中运行ln System.map-2.5.7 System.map 10-13两个步骤每<br>
次重新编译都要做。<br>
<br>
(14)我开始提醒过的,但愿你安装了lilo (否则你就高唱:“神啊,救救我<br>
吧!”),编辑文件:/etc/lilo.conf ,做下面的编辑:<br>
<br>
boot=/dev/sda<br>
map=/boot/map<br>
install=/boot/boot.b<br>
prompt<br>
timeout=50<br>
lba32<br>
default=linux-2.5.7<br>
<br>
<br>
image=/boot/vmlinuz<br>
label=linux<br>
initrd=/boot/initrd<br>
read-only<br>
root=/dev/sda5<br>
image=/boot/vmlinuz-2.5.7<br>
label=linux-2.5.7<br>
initrd=/boot/initrd<br>
read-only<br>
root=/dev/sda5<br>
<br>
黑体字部分是后加的和修改的。万一你没有安装lilo,你只能修改/boot下面<br>
的连接指向你新的System.map和vmlinuz , 而不用修改lilo了。这样也能启动,<br>
但是一旦出现问题,你的机器就启动不了了。<br>
<br>
(15)执行命令:lilo (用来更新lilo数据),注意输出的结果:带星号的是缺<br>
省的。<br>
<br>
(16)祈祷,然后reboot 系统重新启动后,用uname –a 可看到新的内核起作<br>
用了。如果出现任何问题不能引导了,你需要在lilo的引导界面选择原来的内核启<br>
动,进入系统后重新改变内核参数,调整硬件或其他配置。然后重复前面所有过程<br>
。<br>
四、主要的软件安装<br>
<br>
前面说过,我的习惯是,装系统的时候就安装一个内核和编译系统,得到了一<br>
个干净的系统后,再安装其他的软件就比较清晰。另一点,除非搞不到源代码版本<br>
,一般情况下我都会下载官方版本的源代码文件,来重新编译之。同样的,选择软<br>
件版本要根据该软件的Release Note来决定,并非越新越好。这就是为什么很多软<br>
件都是几个版本齐头并进的发展之原因。这些软件不同版本之间的安装方法会有少<br>
许不同,安装前一定要仔细阅读目录中的README文件和INSTALL文件,否则这些少<br>
许不同会造成不少得麻烦。下面描述的安装过程都核版本号紧密相关。另外,所有<br>
的软件都把程序文件的包拷贝到/usr/local/src目录中再解压缩,这是习惯。因为<br>
在Linux中习惯于把后来的软件装在/usr/local中。<br>
<br>
(1)安装DNS服务器<br>
<br>
1、从www.isc.org下载bind 域名服务器软件。我们这里用的是bind8.3.0,<br>
bind8分支和bind9分支是并行发展的。根据自己的实际情况选择合适的bind版本。<br>
<br>
<br>
2、mkdir /usr/src/bind83<br>
<br>
3、下载的文件叫bind-src.tar.gz,复制到/usr/local/src/bind83目录下。<br>
<br>
<br>
4、cd /usr/local/src/bind83<br>
<br>
5、tar zxvf bind-src.tar.gz<br>
<br>
6、cd src<br>
<br>
7、make stdlinks<br>
<br>
8、make clean<br>
<br>
9、make depend<br>
<br>
10、make all<br>
<br>
11、make install<br>
<br>
12、编辑配置文件:/etc/named.conf内容如下,需要更改的部分用黑体标出<br>
:<br>
<br>
<br>
/*<br>
* This is a worthless, nonrunnable example of a named.conf file<br>
that has<br>
* every conceivable syntax element in use. We use it to test the<br>
parser.<br>
* It could also be used as a conceptual template for users of new<br>
features.<br>
*/<br>
<br>
/*<br>
* C-style comments are OK<br>
*/<br>
<br>
// So are C++-style comments<br>
<br>
# So are shell-style comments<br>
<br>
// watch out for ";" -- it's important!<br>
<br>
options {<br>
directory "/var/named";<br>
// use current directory<br>
named-xfer "/usr/libexec/named-xfer";<br>
// _PATH_XFER<br>
dump-file "named_dump.db";<br>
// _PATH_DUMPFILE<br>
pid-file "/var/run/named.pid";<br>
// _PATH_PIDFILE<br>
statistics-file "named.stats";<br>
// _PATH_STATS<br>
memstatistics-file "named.memstats";<br>
// _PATH_MEMSTATS<br>
check-names master fail;<br>
check-names slave warn;<br>
check-names response ignore;<br>
host-statistics no;<br>
deallocate-on-exit no;<br>
// Painstakingly deallocate all<br>
// objects when exiting instead of<br>
// letting the OS clean up for us.<br>
// Useful a memory leak is suspected.<br>
// Final statistics are written to the<br>
// memstatistics-file.<br>
datasize default;<br>
stacksize default;<br>
coresize default;<br>
files unlimited;<br>
<br>
recursion yes;<br>
fetch-glue yes;<br>
fake-iquery no;<br>
notify yes;<br>
// send NOTIFY messages. You can set<br>
// notify on a zone-by-zone<br>
// basis in the "zone" statement<br>
// see (below)<br>
serial-queries 4;<br>
// number of parallel SOA queries<br>
// we can have outstanding for master<br>
// zone change testing purposes<br>
auth-nxdomain yes;<br>
// always set AA on NXDOMAIN.<br>
// don't set this to 'no' unless<br>
// you know what you're doing -- older<br>
// servers won't like it.<br>
multiple-cnames no;<br>
// if yes, then a name my have more<br>
// than one CNAME RR. This use<br>
// is non-standard and is not<br>
// recommended, but it is available<br>
// because previous releases supported<br>
// it and it was used by large sites<br>
// for load balancing.<br>
allow-query { any; };<br>
allow-transfer { any; };<br>
transfers-in 10;<br>
// DEFAULT_XFERS_RUNNING, cannot be<br>
// set > than MAX_XFERS_RUNNING (20)<br>
transfers-per-ns 2;<br>
// DEFAULT_XFERS_PER_NS<br>
transfers-out 0;<br>
// not implemented<br>
max-transfer-time-in 120;<br>
// MAX_XFER_TIME; the default number<br>
// of minutes an inbound zone transfer<br>
// may run. May be set on a per-zone<br>
// basis.<br>
transfer-format one-answer;<br>
query-source address * port *;<br>
/*<br>
* The "forward" option is only meaningful if you've defined<br>
* forwarders. "first" gives the normal BIND<br>
* forwarding behavior, i.e. ask the forwarders first, and if that<br>
* doesn't work then do the full lookup. You can also say<br>
* "forward only;" which is what used to be specified with<br>
* "slave" or "options forward-only". "only" will never attempt<br>
* a full lookup; only the forwarders will be used.<br>
*/<br>
forward first;<br>
forwarders { };<br>
// default is no forwarders<br>
topology { localhost; localnets; };<br>
// prefer local nameservers<br>
listen-on port 53 { any; };<br>
// listen for queries on port 53 on<br>
// any interface on the system<br>
// (i.e. all interfaces). The<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -