用户
 找回密码
 立即注册
搜索

Linux爱好者入门教程

[复制链接]
发表于 2009-7-30 08:25:17
编译内核之前一定要搞清楚的是网卡的芯片号.比如我有一块SMC的网卡,但是我是无法在Linux的内核配置菜单里找到SMC这样的字样的,Linux不是win95,有那么长一串厂商牌号等.我在这个SMC的卡上找到了digital 21140-AE的字眼,于是我知道这个卡用的是DEC 21140-AE芯片,于是按照这个寻找,就找到了驱动.
  知道了芯片类型,或者兼容类型(比如ne2000)就可以开始编译内核了.具体的针对不同系统的内核编译推荐先看看有关内核编译的文章,这里不多作介绍.
  进入/usr/src/linux
  运行make menuconfig进入菜单配置内核.找到Network Device Support.选则EtherNet,再选则相应的芯片号.如果是ISA系线的NE2000,就选则other ISA cards,选则NE2000/NE1000 ISA support.如果是PCI的网卡,就选则PCI ethernet adapters.注意,PCI卡未必都能这样驱动,很多都不行,得另外找driver.比如Intel PCI EtherExpress Pro 100等.
  有关其它选项希望能多自己摸索.多看看help和how-to.
  配置完内核后,运行make dep;make;make zlilo就可以了.如果内核选项过多会出现过大的情况而无法安装.那么需要把一些不必要的驱动去掉.
  一般这样之后再启动就可以发现网卡了.驱动了网卡,下一步就是设定TCP/IP这些东西.这就不是这里的内容了.
  我的经验,Linux下NE2000兼容卡都比较好设.3c系列的卡也都有支持.至于其它卡比如我的DEC 21140就麻烦很多.
  另外有些卡即使用某种芯片也未必就能用这个芯片的驱动,这种情况就是有驱动程序也不能用,就需要上网查了.
  有关Intel Etherexpress系列卡的配置.Linux内核中有Etherexpress 16的支持,但没有其它卡的driver.在http://cesdis.gsfc.nasa.gov/linux/dr...??EtherExpress 100B pro的讨论.在那里可以download到一个c源码的驱动程序,编译进内核就可以了.
使用道具 举报 回复 支持 反对
发表于 2009-7-30 08:25:27
那么,如果以上都试过了,而你的网卡的确还是不能认,那么你需要上网查driver了.在网上查东西是一门看起来简单实际上极体现经验的学问.建议寻找Linux网卡的driver从http://cesdis.gsfc.nasa.gov/linux/dr...?得驱动有:
DEC DC21*4* Tulip chip based cards
3Com PCI Etherlink PCI and EISA cards
Intel EtherExpress Pro100B, Pro100+ and Pro10+ PCI
3c515 ISA Fast Etherlink card
SMC EtherPower II (EPIC/100 83c170 chip) driver.
RealTek RTL8129/8139 driver.
Lite-On lc82c168 PNIC driver (now merged with the Tulip driver).
Macronix MX98713 and ASIX experimental drivers are now merged with the Tulip driver).
VIA Rhine (VT86C100A and 3043) driver (now released).
Winbond w89c840 driver (beta test). Note: this driver was written without official documentation.
TI ThunderLAN driver (external link -- Caldera/James Banks).
Hewlett Packard 100VG driver updates (external link -- Yaroslav).

Intel EtherExpress Pro/10 PCI driver (remote link).
3c509/3c529/3c579 ISA/MCA/EISA EtherLink III driver update. The driver now detects multiple cards when loaded as a module.
AMD LANCE/PCnet driver update. The driver is now usable as a loadable module.
Cirrus/Crystal/IBM CS8900 series driver (remote link).
PCI NE2000 driver (local page)
PCI NE2000 updates (remote link)

Intel Etherexpress Pro 100,
DEC 21X4* based board,
3Com EtherLink III PCI/EISA (3c590 3c592,3c595,3c597,3c900 3c905)
Intel EtherExpress Pro/10 PCI9 With i82596 Chip)
TI ThunderLan
PCI NE2000
Packet Engines Yellowfin G-NIC
SMC EtherPower II (EPIC/100 83c170 chip)
RealTek RTL8129/8139

  同时还有一个Ecom EtherLink III family 的setup程序,没有用过,也许不错.
  如果这里你还是没有找到相应的网卡驱动,那么就去search了.我推荐的方法是上Internet Newsgroup查.因为你绝对不是第一个在Linux下用这个网卡的人,你的问题绝对有人在网络上问过.而且有人回答过.那么问题就是如何找到他. 最简单的方法是打开netscape 到http://www.dejanews.com去.这里的...是输入21140 linux来搜索,这里Linux是必须的,否则看到上千篇关于21140 win95的驱动问题,是不是很烦?结果21140 linux很快就找到了有关文章.
使用道具 举报 回复 支持 反对
发表于 2009-7-30 08:25:40
很多Linux初学者都有这样的烦恼:好不容易才学会在计算机中安装好Linux,配置好硬件,并能顺利的进入GUI图形用户界面。可是,对于如何在Linux平台中安装软件,对很多新手来说,都是一件十分困难的事情。

Linux平台中的Linux的软件的格式是在太多了,不像在微软的Windows中那样,几乎所有的应用软件都是EXE格式,鼠标双击就能安装。当然, 在KDE或者GNOME环境中除了RPM格式有专用的RPM管理工具比较好安装之外,其他诸如GZ,TAR.GZ等压缩软件就不得不使用命令来解压和安 装。而Linux命令对Linux初学者来说那更是头痛的事情。

Linux软件的安装、卸载问题一直以来都是困扰Linux初学者的难题。究其原因就是Linux与Windows载系统目录,系统配置,软件编译等方面 存在着太大的差别。Linux下的软件的安装主要有以下这两种不同的格式。第一种安装文件名为filename.tar.gz。另外一种安装文件名为 filename.i386.rpm。一般来说,以第一种文件格式发行的软件多数为源码形式发送的。第二种则是直接是以二进制形式发行的。i386表示该 软件是按INTER386指令集编译而成的。所谓的RPM就是RedHatPackageManager的缩写,由RedHat公司开发的软件包和管理程 序。RPM格式的软件对与Linux初学者来说在安装上是非常方便的。RPM的设计目的就是具有方便的升级功能;强大的查询功能;安全的系统校验;允许用 户能够使用“纯净”的源代码。


RPM的使用方法很简单,使用简单的命令即可安装一个RPM软件:
rpm-ivhrpmfilename.i386.rpm
级RPM文件命令为:
rpm-Uvhrpmfilename.i386.rpm,系统会自动删除相应的软件包老版本,如果配置文件同新版本不兼容,则会自动将其保存为另外一个oldconfig.rpmsave文件。
查询RPM文件命令为:
rpm-qrpmfilename


具体查询可以参考以下参数来实现不同的查询功能:

rpm-qa查询系统

rpm-qffilename查询包含该文件的软件包

rpm-qF输入为标准输入,如find/usr/bin|rpm-qF

rpm-qP同-p参数,但输入为标准输入

rpm-qp软件包名,查询该软件包

用RPM校验软件包
使用道具 举报 回复 支持 反对
发表于 2009-7-30 08:25:55
可用RPM校验软件包大孝文件权限、类型及属主信息,MD5码校验等信息。

Rpm-Vfilename检查校验该软件包中的文件是否存在

Rpm-Vf/bin/vi校验该软件包中的单个文件

Rpm-Va校验安装的所有软件包

RPM软件总体来说在安装使用方面还是简单的,为了能更快速的安装Linux软件,在这里推荐大家使用一个Linux下当然软件安装辅助软件,FISH (FulxoInstallSHield),该软件就是让你安装应用程序更加地方便,因为在Linux当中,因为文件格式的不同而使软件安装方法的不同, 例如RPM,Debian格式,gzip格式,tar格式等等,FISH可以自动容易地识别这些格式,就像在Windows中那样能自动帮你安装应用软 件。并且,FISH能在KDE,GNOME等多个桌面环境中运行,也能在Linux终端的,命令栏中运行,FISH无论是对Linux新手还是Linux 高手都是十分适用的,FISH能为你节约在Linux下安装应用软件的时间。下面就让我们来看一看在Linux系统中使用FISH (FulxoInstallSHield)和传统的Linux软件安装方法的比较。

FISH的下载:

FISH是一个免费的的自由软件,在其网站上提供了最新版本的下载。fish.sourceforge.net/download.html

FISH体积很小,不足60KB。

FISH的编译和安装

下载FISH到本地硬盘后可以运行

tarzxvffish-0.0.1.tar进行解压到一个目录中。

然后进入该目录cd../fish-0.0.1中

对比:FISH的编译和安装过程事实上也是传统的Linux下软件的解压和安装方法。没有尝试过在Linux下安装*.tar软件的朋友注意了,现在我们就介绍传统的Linux下软件的解压和安装方法,让大家熟悉一下。

在Linux中,使用命令tarzxvffile.tar.gz(file.tar.gz就是目标软件的完整名字)就可以解压这个压缩包里面的东西了。

注意,在解压.tar.gz后缀名的软件包的时候可以加上如下的参数:如zxvf,zvf

x解开备份文件
使用道具 举报 回复 支持 反对
发表于 2009-7-30 08:26:07
v处理文件时显示更多的帮助信息

f后面跟着filename,他是要读入或者写入的备份文件的文件名。解压缩时,filename就是要解开的软件包的完整名字

z解开压缩后的备份文件



相反的,如果我们需要把Linux中某个一个目录下的所有文件给做成一个.tar.gz的软件包,则应当进行如下操作。

假如在目录xxx下,有三个文件,t0.c,t1.c,Makefile那我们可以在当前目录下输入如下命令:

tarcvfxxx.tarxxx|gzip-5>;xxx.tar.gz

上面的命令实际上是先把三个文件用tar打包成xxx.tar然后用gzip压缩成xxx.tar.gz。通过这两个步骤,打包压缩文件就完成了。

tar后面的vf就是参数:

v处理文件时显示更多的帮助信息

f后面跟着filename,它是要读入或者写入的备份文件的文件名。

gzip后面的-5可以是-1-2...,-9。

其中,-1压缩速度最快,但效果不好,反之-9压缩是速度最慢压缩的效果却最好。

现在就可以对FISH进行编译安装了:

运行下面的命令

%./configure
%make
%makeinstall


FISH的使用
使用道具 举报 回复 支持 反对
发表于 2009-7-30 08:26:18
基本用法:

使用FISH来安装RPM文件是一个不错的选择,FISH支持正常的RPM格式的文件,FISH能自动的安装RPM格式的文件。

下面是如何利用FISH来安装RPM文件

使用FISH来安装RPM文件最重要的是要告诉FISH要安装的RPM文件在什么地方和要FISH执行什么样的命令:

fish--analyse--depfile

上面是让FISH来分析某个RPM文件包的从属关系,其中directoryname就是该RPM文件包所在的目录,filename就是该RPM压缩包的文件名。由此可见,使用FISH来安装所需要记住的参数并不多,使用FISH来安装是比较适合Linux初学者的。

对比:从网上或者光盘上下载Linux软件包,.rpm结尾的文件是很常见的,这些文件的安装要使用RPM套件管理系统,才能安装。在

一般情况下,安装rpm包是很容易的,如过你有一个包test.i386.rpm,你可以这样来安装:

rpm-itest.i386.rpm

fish--depfile-i

上面命令是让FISH来安装某个RPM文件,这个命令主要是使用存储在filename中的文件从属信息来安装RPM压缩包要想得到更多的关于FISH的帮助信息,请输入fish--help就能获取。
使用道具 举报 回复 支持 反对
发表于 2009-7-30 08:26:27
在Linux系统中,如何有效地对存储空间加以使用和管理,是一项非常重要的技术。本章讲述如何查看系统中存储空间的使用情况、如何进行文件的转储、以及如何进行软盘的格式化。

  磁盘空间管理

  系统软件和应用软件,都要以文件的形式存储在计算机的磁盘空间中。因此,应该随时监视磁盘空间的使用情况。Linux系统提供了一组有关磁盘空间管理的命令。

  df命令

  功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

  语法:df [选项]

  说明:df命令可显示所有文件系统对i节点和磁盘块的使用情况。

  该命令各个选项的含义如下:

  -a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。

  -k 以k字节为单位显示。

  -i 显示i节点信息,而不是磁盘块。

  -t 显示各指定类型的文件系统的磁盘空间使用情况。

  -x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。

  -T 显示文件系统类型。

  例1:列出各文件系统的磁盘空间使用情况。

  $ df

  Filesystem 1 K-blocks Used Available Use% Mounted on

  /dev/hda2 1361587 1246406 44823 97% /

  df命令的输出清单的第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第 3,4列分别表示已用的和可用的数据块数目。用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use% 列表示普通用户空间使用的百分比,即使这一数字达到100%,分区仍然留有系统管理员使用的空间。最后,Mounted on列表示文件系统的安装点。
使用道具 举报 回复 支持 反对
发表于 2009-7-30 08:26:40
例2:列出各文件系统的i节点使用情况。

  $ df -ia

  Filesystem Inodes IUsed IFree Iused% Mounted on

  /dev/ hda2 352256 75043 277213 21% /

  none 0 0 0 0% /proc

  localhost:(pid221) 0 0 0 0% /net

  例3:列出文件系统的类型。

  $ df -T

  Filesystem Type 1K-blocks Used Available use% Mounted on

  /dev/hda2 ext2 1361587 1246405 44824 97% /

  本例中的文件系统是ext2类型的。

  du命令

  du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。

  功能:统计目录(或文件)所占磁盘空间的大小。

  语法:du [选项] [Names…]

  说明:该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出Names,则对当前目录进行统计。

  该命令的各个选项含义如下:

  -s 对每个Names参数只给出占用的数据块总数。

  -a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。

  -b 以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。

  -k 以1024字节为单位列出磁盘空间使用情况。

  -c 最后再加上一个总计(系统缺省设置)。

  -l 计算所有的文件大小,对硬链接文件,则计算多次。

  -x 跳过在不同文件系统上的目录不予统计。
使用道具 举报 回复 支持 反对
发表于 2009-7-30 08:26:56
下面举例说明du命令的使用:


  例1:查看/mnt目录占用磁盘空间的情况。 $ cd /mnt $ ls -lFR total 10 -rwxrwxrwx 2 root root ll0 Ju1 3l 00:33 aa*

  drwxr-xr-x 2 root root l024 Ju1 20 14:16 dev/

  -rw-r--r-- 1 root root 6229 Aug 2 0l:39 s1ack

  drwxrwxrwx 2 root root 1024 Aug 2 02:09 var/

  1rwxrwxrwx 1 root root l0 Aug 2 0l:51 wei->;/home/wei/

  dev:

  tota1 0

  lrwxrwxrwx 1 root root 8 Ju1 20 l4:l6 cdrom->;/dev/hdb

  var:

  tata1 37

  -r-xr-xr-x l root root 36064 Aug 2 02:09 rawrite. exe*
 

  例2:列出各目录所占的磁盘空间,但不详细列出每个文件所占的空间。

  $ du

  l ./dev

  38 ./var

  48 .

  输出清单中的第一列是以块为单位计的磁盘空间容量,第二列列出目录中使用这些空间的目录名称。

  注意不带选项的du命令将从当前目录开始沿着目录结构向下工作直到列出所有目录的容量为止。这可能是一个很长的清单,有时只需要一个总数。这时可在du命令中加-s选项来取得总数:

  $ du –s /mnt

  /mnt

  例3:列出所有文件和目录所占的空间(使用a选项),而且以字节为单位(使用b选项)来计算大小。

  $ du -ab

  8 ./dev/cdrom

  l032 ./dev

  36064 ./var/rawrite. exe

  37088 ./var

  6229 ./s1ack

  1l0 ./aa

  l0 ./wei

  45493 .

  磁 盘 操 作

  dd命令

  功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用 dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。
使用道具 举报 回复 支持 反对
发表于 2009-7-30 08:27:05
语法:dd [选项]

  if =输入文件(或设备名称)。

  of =输出文件(或设备名称)。

  ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。

  skip = blocks 跳过读入缓冲区开头的ibs*blocks块。

  obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。

  bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。

  cbs = byte 一次转换bytes字节。

  count=blocks 只拷贝输入的blocks块。

  conv = ASCII 把EBCDIC码转换为ASCIl码。

  conv = ebcdic 把ASCIl码转换为EBCDIC码。

  conv = ibm 把ASCIl码转换为alternate EBCDIC码。

  conv = block 把变动位转换成固定字符。

  conv = ublock 把固定位转换成变动位。

  conv = ucase 把字母由小写转换为大写。

  conv = lcase 把字母由大写转换为小写。

  conv = notrunc 不截短输出文件。

  conv = swab 交换每一对输入字节。

  conv = noerror 出错时不停止处理。

  conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。

  例1:要把一张软盘的内容拷贝到另一张软盘上,利用/tmp作为临时存储区。把源盘插入驱动器中,输入下述命令:

  $ dd if =/dev/fd0 of = /tmp/tmpfile

  拷贝完成后,将源盘从驱动器中取出,把目标盘插入,输入命令:

  $ dd if = /tmp/tmpfile of =/dev/fd0

  软盘拷贝完成后,应该将临时文件删除:

  $ rm /tmp/tmpfile

  例2:把net.i这个文件写入软盘中,并设定读/写缓冲区的数目。

  (注意:软盘中的内容会被完全覆盖掉)

  $ dd if = net.i of = /dev/fd0 bs = 16384

  例3:将文件sfile拷贝到文件 dfile中。

  $ dd if=sfile of=dfile
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则