2007年5月20日星期日

Installing Beryl On An Ubuntu Feisty Fawn Desktop With An ATI Radeon Graphic Card

Installing Beryl On An Ubuntu Feisty Fawn Desktop With An ATI Radeon Graphic Card
Version 1.0
Author: Falko Timme
Last edited 04/03/2007

This tutorial shows how you can install and configure Beryl on an Ubuntu 7.04 (Feisty Fawn) desktop with an ATI Radeon graphic card. With Beryl, you can make your desktop use beautiful 3D effects. We will use the open-source ATI driver that comes with Ubuntu plus AIGLX to achieve this; the other way to do this would be to use the closed-source ATI driver together with XGL which seems to be a bit unstable.

This document comes without warranty of any kind! I want to say that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. I do not issue any guarantee that this will work for you!



1 Preliminary Note
I have put this tutorial together from these two articles:

https://help.ubuntu.com/community/RadeonDriver
http://wiki.beryl-project.org/wiki/Install_Beryl_on_Ubuntu_Feisty_with_AIGLX
I have tried this on my 3-year old HP Pavilion zt3000 notebook which has an ATI Mobility Radeon 9200 graphic card, and it works really good there.

[教学]ATI+feisty+aiglx+beryl 详细安装过程

[教学]ATI+feisty+aiglx+beryl 详细安装过程
原文:http://www.howtoforge.com/ubuntu_feisty_beryl_ati_radeon

1
我的机子配置是 Thinkpad T43 ATI mobility X300
首先更新所有的软件
sudo apt-get update
sudo apt-get upgrade

2
确定你的显卡被识别
打开terminal输入命令
lspci | grep ATI
应该含有 ATI Technologies Inc Radeon R250 [Mobility X300 ..] 等信息
以下是可以装beryl 的列表

完全支持3D的

* 7000 / rv100 based cards.
* 7200 / R100 based cards.
* 7500 / rv200 based cards.
* 8X00 / R200 based cards.
* 9000 / rv250 based cards.
* 9100 / R200 based cards.
* 9200 / rv280 based cards.


实验性的3d加速

* 9500 / R300 based cards.
* 9600 / rv350 or rv360 based cards.
* 9700 / R300 based cards.
* 9800 / R350 or R360 based cards.
* X300 / rv370 based cards.
* X600 / rv380 based cards.
* X700 / rv410 based cards.
* X800 / R420 or R423 or R430 or R480 based cards.
* X850 / R480 or R481 based cards.


只有2D加速的

* Xpress 200M Northbridge integrated GPUs


不支持的

* X1300 / R515 based cards.
* X1600 / R530 based cards.
* X1800 / R520 based cards.
* X1900 / R580 based cards.

3 配置AIGLX和开源的 ATI 显卡驱动

注意:如果你已经安装了fglrx驱动,一定要卸载,在受限制的驱动对话框中把启动勾掉然后重启或Ctrl-Alt-Backspace 重启图形服务器

打开terminal
输入
glxinfo | grep vendor

如果出现
server glx vendor string: SGI
client glx vendor string: SGI
OpenGL vendor string: Tungsten Graphics, Inc.

则可以继续
安装开源驱动
输入命令
sudo apt-get remove xorg-driver-fglrx; sudo apt-get install libgl1-mesa-glx libgl1-mesa-dri

备份配置文件
cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
sudo gedit /etc/X11/xorg.conf


Section "Device"
Identifier "ATI Technologies Inc Radeon ***"
Driver "ati"
BusID "PCI:1:0:0"
EndSection
替换成
Section "Device"
Identifier "ATI Technologies Inc Radeon ***" (这里保持原来标示)
Driver "radeon"
BusID "PCI:1:0:0"
Option "XAANoOffscreenPixmaps"
Option "AGPMode" "4"
Option "AGPFastWrite" "true"
Option "DisableGLXRootClipping" "true"
Option "AddARGBGLXVisuals" "true"
Option "AllowGLXWithComposite" "true"
Option "EnablePageFlip" "true"
EndSection

然后把
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "stylus" "SendCoreEvents"
InputDevice "cursor" "SendCoreEvents"
InputDevice "eraser" "SendCoreEvents"
InputDevice "Synaptics Touchpad"
EndSection
替换成
Section "ServerLayout"
Option "AIGLX" "true"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "stylus" "SendCoreEvents"
InputDevice "cursor" "SendCoreEvents"
InputDevice "eraser" "SendCoreEvents"
InputDevice "Synaptics Touchpad"
EndSection

然后如果没有以下两段的话则在文件最后加上
Section "DRI"
Mode 0666
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection

然后保存文件
重启系统或者Ctrl-Alt-Backspace 重启图形服务器

重启后打开 terminal
输入
glxinfo | grep vendor
应该得到
server glx vendor string: SGI
client glx vendor string: SGI
OpenGL vendor string: Tungsten Graphics, Inc.

然后运行
glxinfo | grep "direct rendering"
应该得到
direct rendering: Yes

4 安装 Beryl

首先备份源列表
cp /etc/apt/sources.list /etc/apt/sources.list.bak

然后运行
sudo echo "deb http://ubuntu.beryl-project.org feisty main" >> /etc/apt/sources.list
wget http://ubuntu.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add -
sudo apt-get update

然后编辑/etc/X11/xorg.conf
sudo gedit /etc/X11/xorg.conf

在文件中找 Section "Module" 段 确保里面含有
Load "dri"
Load "dbe"
Load "glx"

我的修改后如下
Section "Module"
Load "i2c"
Load "bitmap"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "vbe"
Load "dbe"
EndSection

保存后重启系统或者Ctrl-Alt-Backspace 重启图形服务器

重启后打开terminal 安装 beryl 和 emerald 主题
sudo apt-get install beryl beryl-manager emerald-themes

安装完之后运行
beryl-manager
或者
在应用程序->附件->beryl-manager
这个时候你就可以享受特效了


简单翻译一下,做了一些修改,希望大家批评指正

2007年5月19日星期六

[分享]Linux与Windows双系统下的Grub引导管理器安装——boot.ini与menu.lst的例解

添加一个附件,其中为本文的PDF和ODT格式的打印版本,方便大家下载阅读。
2007年4月29日

Linux与Windows双系统下的Grub引导管理器安装

——boot.ini与menu.lst的例解

大多数人日常工作所用的系统是Windows,如果想尝试或者转向Linux,那么进行Windows与Linux共存的双系统安装是个不错的主意。但双系统的安装较之单系统,在磁盘分区和引导管理器两个方面增加了复杂性,本文对双系统下引导管理器的安装来加以介绍。
笔者假定你已经有了一个可以正常运行的Win2k/XP系统,并且已经为Linux准备好了硬盘分区:Windows位于第一块硬盘的第一个分区,在Linux下表示为hda1,在Grub下表示为(hd0,0),而Linux位于hdaX,用Grub表示为(hd0, X-1)。——Linux下的硬盘分区计数是从hda1开始的,而Grub的硬盘分区计数是从(hd0,0)开始的,所以hdaX就是(hd0,X-1)。这里X如果在1-4之内,说明Linux分区是主分区,如果X大于4,说明Linux分区是逻辑分区,本文并不限定Linux必须位于主分区,它在逻辑分区一样是可以引导的。
首先说明本文的思路,笔者推荐由Windows到Linux的引导序列,即首先引导Windows的ntloader,然后通过ntloader加载Linux分区的Grub引导扇区,最后通过Grub引导Linux系统。本文涉及到的引导管理器包括ntloader和Grub,ntloader是Windows系统自带的,在安装Win2k/XP后就已经安装了,Windows 2000以及Windows Xp就是由ntloader加载的。Grub是Linux系统下很强大的引导管理器,在常见的Linux版本里都是有的,一般是自动安装的。
下面具体说明安装序列:

一、在已经准备好的Linux分区上安装Grub
这个过程通常是由Linux系统的安装程序自动进行的,当安装程序进行到引导管理器的安装,并就Grub的安装给出一些提示时,要当心了:我们选择Grub,而不是lilo,并且Grub要安装在该Linux分区,不要安装到硬盘主引导记录MBR(master boot record)上。安装程序询问Grub的安装位置时,应该是上文提到的hdaX或者(hd0,X-1),如果你写成hda或者(hd0),就会安装到MBR上。
之所以强调Grub安装到Linux分区,而不是MBR,因为本文是双系统安装,要顾忌到与Windows系统的兼容性(“兼容”在这里并不准确,实际是共生的意思)。我们的原则,就是把对已经安装的Windows系统的修改限制到最小的必要的程度,不去进行并非必要的修改,以此保障Linux与Windows两个系统的和平共处。“简洁即美”,“简单”也会更安全。
如果安装到MBR,也是可以的,但可能会有下面的问题:
1、如果所安装的Windows系统修改了MBR的默认设置,那么再把Grub安装到MBR,就对MBR的内容进行了修改,可能会导致Windows不能正常启动。通常的Windows安装并不会改动MBR的内容,但如果你安装了一些引导管理程序,它们往往是通过MBR进行设置的。时下很流行的一些“一键恢复”程序,有些也是通过MBR设置的;
2、日后重装Windows系统时,MBR里的Grub会被擦除,这会造成Linux系统不能引导。虽然这个问题也是可以解决的,但笔者更欣赏一劳永逸的安装方式,Grub安装到Linux分区下,可以避免日后的麻烦;
3、在一些个别情形下,Grub不能正常引导系统。这个现象并不常见,但仍有可能发生,要知道Grub目前仍然是版本前的软件,而将Grub装到MBR里,就会把问题弄得更复杂。
当你所安装的Linux系统不能指定将Grub安装到Linux的所在分区时,我们的选择是:
暂将Grub安装到MBR,如果Linux系统能被Grub加以引导,进入Linux系统后,我们再手工将Grub装入Linux分区,然后恢复MBR;或者在安装程序内暂时不进行Grub的安装,退出安装程序后手工安装Grub。
恢复MBR需要用DOS、win98/me的启动软盘引导系统,以/mbr参数执行引导软盘上的磁盘分区程序fdisk.exe,即在DOS命令行(plain dos)下执行A:\>fdisk /mbr。如果机器没有软驱,那么就需要用光盘或者U盘来引导机器进入DOS;在Windows 2k/XP下,一个叫Vfloppy的软件可以用软盘镜像文件来实现对软盘的虚拟引导,如果你的机器没有USB接口(或没有可以引导DOS的U盘),也没有光驱和软驱,可以一试。
我曾经用Xubuntu的LiveCD在一台设置了“一键恢复”的TCL电脑安装时,安装程序没有给出任何选择,自动将Grub安装到了MBR上,结果不能进入任何系统。最后还是用DOS下的A:\ > fdisk /mbr恢复了MBR,能够正常引导Windows后,手工将Grub装到了Linux下的根分区,然后通过ntloader加载Grub,才实现了对Linux的引导。
手工安装Grub的简便方法是用一张带有Grub的Linux LiveCD(比如常见的Knoppix、Morphix、Ubuntu,都是可以的),启动系统,在Linux的安装程序内如果能进入shell也是可以的,总之就是为了执行Linux指令,在终端下执行以下指令:
# grub
grub > root (hd0,X-1)
grub > setup (hd0,X-1)
grub > quit
以上指令首先定位Grub所需的/boot目录在分区(hd0,X-1),然后将Grub的引导代码写入(hd0,X-1)分区的第一个扇区,所以你首先应该确保(hd0,X-1)分区内的/boot/grub目录下已经有stage1、stage2、*_stage*等文件,这些文件可以通过释放Grub的打包文件来获得,或者直接从LiveCD光盘内的/boot/grub目录复制。
如果LiveCD带有grub-install脚本,也可以直接执行
# mount /dev/hdaX /mnt
# grub-install --root-directory=/mnt /dev/hdaX
以上指令首先将带有Grub目录/boot/grub的/hdaX挂载到/mnt,然后将Grub安装到/hdaX。

二、将Grub装配到ntloader内
Grub已经安装到了Linux分区内,但它还不能引导系统,我们需要把它和ntloader联接起来,由ntloader对Grub加以引导。这是通过把hdaX分区内的Grub引导扇区转换为文件,并装配到Windows的ntloader内来实施的。
仍然用LiveCD启动Linux系统(因为你所安装的Linux系统目前还是不能引导的),或者在安装程序可以进入shell的情况下,执行以下指令:
# mount -t vfat /dev/hda1 /mnt
# dd if=/dev/hdaX of=/mnt/linux.lnx bs=512 count=1
以上两条指令将Windows的启动分区(本文中为hda1)挂载到/mnt下,然后把Linux分区(hdaX)的第一个扇区(大小为512字节)复制为Windows启动分区根目录下名为linux.lnx的文件。
注意:如果你的Windows启动分区(即Windows下的C盘)不是fat32文件系统,而是ntfs文件系统,你需要在软驱内放入格式化的DOS软盘,并将第一条指令替换为:
# mount -t msdos /dev/fd0 /mnt
因为ntfs文件系统不经过特殊处理,在Linux下是不可写的,即使你将指令中的vfat替换为ntfs,实现了挂载,也是一样,所以我们在这里把linux.lnx写入DOS格式的软盘,然后通过软盘在Windows下把linux.lnx放入C盘。
接着是在Windows下编辑C盘根目录下的boot.ini文件,boot.ini通常是隐藏、只读的系统文件,所以需要把它的“隐藏”、“只读”属性去掉,才可以编辑。在“我的电脑”工具菜单“文件夹选项”下的“查看”栏中取消“隐藏受保护的操作系统文件”和“隐藏已知文件类型的扩展名”,并选择“显示所有文件和文件夹”,就可以看到C盘根目录下的boot.ini文件了。在boot.ini内的[operating systems]栏增添一行:
c:\linux.lnx=”Grub Menu”
并将[boot loader]栏内的“timeout=0”,改为“timeout=5”,这样引导Windows时将会显示带有“Grub Menu”字样的操作系统选择菜单,并持续5秒钟,如果选择Grub Menu,就会进入Grub菜单。

三、设置menu.lst文件
menu.lst是对Grub进行设置的一个文本文件,可以用文本编辑器加以编辑,位于/boot/grub目录内。我们在前面虽然已经把Grub安装到了Linux根分区上,但如果没有生成menu.lst文件并对它加以设置,Grub是没有任何作用的。对menu.lst文件进行设置是个复杂的工作,特别是有关kernel和initrd的各种特殊参数,幸而系统安装的menu.lst文件内通常有详尽的注释。并且你的Grub如果是由安装程序自动设置的,那么通常menu.lst已经被设置好了,我们仅仅根据自己的需要进行一些修改和调整,而不必重写menu.lst。即使你的menu.lst不是由安装程序生成的,也不必担心,还可以参考、分析安装光盘或者LiveCD上的menu.lst文件来对Linux分区内的menu.lst加以设置。
如果Grub已经由安装程序装到了MBR,并且能够引导所安装的Linux,那么自动生成的Linux系统根分区下的/boot/grub/menu.lst就已经被配置好了,我们只须把Grub重新安装到Linux系统根分区,恢复Windows下的原初MBR,按照上文的方法把Linux系统根分区的Grub引导代码装载到ntloader就可以了。因为Grub的安装位置不是在menu.lst文件内指定,而是在linux shell中执行grub,进入Grub命令行后,应用Grub的内部指令root和setup来指定,或者在可执行的shell脚本文件grub-install中,以参数的形式指定设备文件(如/dev/hda或/dev/hdaX)。
假使所安装的Linux系统没有使用Grub,而是使用lilo作为引导管理器,只要lilo能够实现引导,我们就可以借鉴linux系统内的/etc/lilo.conf文件来对menu.lst加以设置。Lilo.conf是lilo的配置文件,其格式虽然与menu.lst不同,但关键部分是相同的,如指定kernel和initrd的位置,向内核传递引导参数,指定缺省引导的系统和延时时长,在lilo.conf中内核参数是在APPEND后,我们可以将lilo.conf中的参数移植到menu.lst中。

四、Menu.lst的一个实例:
以下作为实例的menu.lst是我在windows 2000系统中安装的grub4nt的配置文件,所以可以看到(hd0,0)既是Windows的引导分区,又是Grub文件及一些linux内核文件的所在分区。虽然Grub4nt不能在menu.lst中应用savedefault命令外(可能因为grub4nt不支持在fat32文件系统上的写操作),其他设置与标准的Gnu Grub并无不同,大家可以通过这个实例来具体了解配置文件menu.lst。

default 0
timeout 5
foreground = 333333
background = eeeeee
color light-gray/blue black/light-gray
gfxmenu (hd0,0)/boot/morphix/message

title ubuntu linux
kernel (hd0,2)/vmlinuz ro root=/dev/hda3

title ubuntu linux (rescue mode)
kernel (hd0,2)/vmlinuz ro single root=/dev/hda3

title Other operating systems:
root

title PUD LiveHD
kernel (hd0,0)/boot/pud/linux lang=us ramdisk_size=100000 init=/etc/init apm=power-off vga=791 nomce initrd=miniroot.gz quiet BOOT_IMAGE=knoppix
initrd (hd0,0)/boot/pud/miniroot.gz

title Windows
root (hd0,0) 或者 rootnoverify (hd0,0)
makeactive
chainloader +1

title submenu -> Morphix LiveHD
configfile (hd0,1)/boot/grub/menu.lst

这里不对menu.lst做全面解释了,只结合实例,介绍几个重点环节,完整说明请阅读网上Grub的使用手册。
Default 0
default用来设置缺省引导系统,数字序列从0开始,本例会在menu.lst内自动寻找以title开始的词条,并引导第一个title词条,你可以根据自己的需要改成其他数字,如1(第二个title词条);
timeout 5
timeout用来设置Grub引导的延时时长,本例中为5秒钟,系统在等待5秒后用户如果没有手动选择要引导的系统,Grub就会自动引导由default指定的系统;
title ubuntu linux
title用来指示Grub所引导系统的设置的开始,title后面的文字在Grub菜单中会被作为系统的名称显示出来,本例中Grub引导菜单会显示ubuntu linux、ubuntu linux (rescue mode)、other operating systems、PUD LiveHD、Windows、submenu -> Morphix六个词条,其中第三个词条并非一个真实的系统,仅起指示的作用,故其root部分为空;
kernel (hd0,2)/vmlinuz ro root=/dev/hda3
kernel用来指示linux系统的内核文件的所在位置及引导参数,(hd0,2)/vmlinuz指内核为hda3(第一块硬盘第三个主分区)内根目录下的vmlinuz文件,根文件系统(/)位于hda3,注意:指示内核文件所用路径中的分区必须用Grub的表示法,不能用linux的表示法, 而根文件系统的位置必须用linux下的设备文件名来表示(本例中为/dev/hda3)。有时,vmlinuz并不是真实的内核文件,而是内核文件的一个链结文件(link file),但这不影响Grub的引导,它能根据链结文件找到真实的内核并加以引导,这在内核文件带有很长的版本号时会非常有用,简化了内核文件名的拼写,减少了拼写错误的出错几率;
kernel的这种设置是最为简单的方式,也是比较通用的设置方式,使用安装过的内核直接引导已安装的根文件系统(即linux系统),而不需进行initrd的设置;在不清楚内核的特殊设置参数时,可以用这种设置来尝试引导系统。如果在以上设置中加上single,即改为kernel (hd0,2)/vmlinuz ro root=/dev/hda3 single,则系统引导后会进入单用户(root用户)的文本模式,即救援模式(rescue mode),在系统升级、维护或查找、排除故障时会比较有用;
initrd (hd0,0)/boot/pud/miniroot.gz
initrd用来指示initrd文件(即初始内存磁盘文件,linux系统中常用的引导技术)的位置,关于硬盘分区的表示方法与kernel的要求相同,必须用(hd0,0)这种Grub的表示方法;
root (hd0,0)
root用来定位分区,本例中为hda1,Windows系统的所在分区。如果在kernel和initrd之前使用它,可以用来简化文件位置的表述,比如
kernel (hd0,2)/vmlinuz ro root=/dev/hda3
可以写成
root (hd0,2)
kernel /vmlinuz ro root=/dev/hda3
而initrd也可如是模仿;
makeactive
makeactive用来激活root所定位的分区,它只能用于主分区,不能用于扩展分区上的逻辑分区,虽然可以用这种技术来引导Grub安装在了主分区的linux系统但有比较大的局限性,所以通常是用来引导Windows系统;
chainloader +1
chainloader +1用来对makeactive所激活的主分区加以引导,同上:它只能引导主分区,所以通常是用来引导Windows系统,而linux系统可以安装在扩展分区上的逻辑分区,通常是使用kernel和initrd这种功能更为强大、灵活的引导方式;
configfile (hd0,1)/boot/grub/menu.lst
configfile用来将其他的menu.lst菜单引入Grub菜单,在同一机器上安装了多个linux系统、存在多个menu.lst文件时,这个语句非常有用,它可以简化menu.lst文件的设置,不必重抄那些复杂的引导参数,只须把别的系统的menu.lst文件加以引用就可以了,在Grub引导时选择这个子菜单,就会进入所引用的menu.lst的引导菜单。
本例中的PUD LiveHD是将PUD(一种中文繁体Debian LiveCD版本)光盘上的内容复制到hda1(在本例中为Windows的C:盘) 中,然后使用grub4nt对其加以引导,这样就实现了LiveCD到硬盘的移植,我称之为LiveHD;而Morphix LiveHD则是将Morphix(一种模块化的Debian LiveCD)光盘上的内容复制到一个单独的ext2/3分区,本例中为(hd0,1),即hda2,实现LiveHD的引导。很有趣的是,PUD只能放入fat32分区,Morphix只能放入ext2分区,反之则不能引导,这应该是不同版本的LiveCD的内核所支持文件系统的不同所致。
注:Grub4nt是Grub在windows 2k/XP下的扩展,建基于Grub for DOS,/boot/grub目录放在fat/fat32文件系统内,可以在ntloader内通过一个小文件grldr实现Grub的引导,而无须写入MBR,它是中国人的作品,作为一种新颖别致的引导方式,向世界上的linux爱好者展示了中国人的智慧,本文会在后面专门予以介绍。

五、boot.ini文件的调整
boot.ini是一个文本文件,可以用文本编辑器打开,它是win 2k/XP下ntloader的设置文件,下面是我的机器上的boot.ini实例:

[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
c:\ubuntu.lnx=Xubuntu Linux
c:\morphix.lnx=Morphix LiveHD
c:\grldr=Grub Menu
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Win2k" /fastdetect

我们逐行来对它加以解释。
[boot loader]一节用来指定缺省引导的系统及其等待时间,本例中缺省引导第一块IDE硬盘的第一个分区(表示为multi(0)disk(0)rdisk(0)partition(1),而如果你的windows Xp系统在硬盘的第二个分区,则表示为multi(0)disk(0)rdisk(0)partition(2)\WINDOWS,这种表示法不同于linux,它不区别主分区和逻辑分区,而依据分区在磁盘上的顺序从数字1开始计数)内的windows 2000系统,没有延时,立即引导。
若把Timeout的值从0改为5,则延时5秒,供用户选择boot菜单;改为-1,则系统不进行自动引导,始终等待着用户的键盘输入来进行选择。
[operating systems]一节用来描述boot菜单中要引导的不同系统,“=”后面的字符是boot菜单的显示内容,而“=”前面的部分是ntloader实际引导的内容,multi(0)disk(0)rdisk(0)partition(1)\WINNT指ntloader所要引导的windows系统位于第一块硬盘的第一个分区内的\winnt目录,c:\ubuntu.lnx和c:\morphix.lnx则是应用dd命令在linux下将grub在根分区内的引导扇区转换生成的文件,而c:\grldr是grub4nt的引导文件,用来实现grub在ntloader的引导。
[operating systems]内的不同词条的顺序是可以调整的,例如我们可以将c:\grldr=Grub Menu从本节第三行改为第一行,这样Grub Menu就会在boot菜单的第一行显示。
而缺省引导的系统也是可以改变的,例如我们可以将[boot loader]内的multi(0)disk(0)rdisk(0)partition(1)\WINNT改为c:\grldr,这样缺省引导的就是grub4nt的Grub菜单,而不是windows 2000了。这里要注意:c:\grldr放入[boot loader]一节时,正确的写法应该是
default=c:\grldr
一定不要将“=Grub Menu”带上,否则boot菜单的显示效果将不是我们所想要的,切记!

六、grub4nt的使用
将grub加载到ntloader里的方法,除了上文第二部分所介绍的将Linux根分区内的Grub引导扇区转换为ntloader可以引导的文件,还有另外一种方法,就是使用grub4nt。grub4nt通过grldr这个小文件,使ntloader直接加载Windows系统C:盘下的\boot\grub\menu.lst(新版本的grub4nt会寻找根目录的\menu.lst)。
在windows下的boot.ini文件内[operating systems]一节增添一行如下:
c:\grldr=grub4nt
对grub4nt的menu.lst设置,既可以把Linux系统根分区内的/boot/grub/menu.lst直接移植过来(GNU Grub下的savedefault在grub4nt下不能使用,会导致grub4nt的出错),也可以在grub4nt的menu.lst文件内通过configfile直接引入Linux系统根分区内的/boot/grub/menu.lst菜单,而后者不失为一种简单安全的方法,省掉了对内核引导参数的复杂设置。
即在grub4nt的menu.lst文件内这样设置:
title GNU Grub menu
configfile (hda0,X)/boot/grub/menu.lst

七、总结
本文对Windows与Linux并存于同一机器时引导管理器的安装给出了描述,可以看出,笔者推荐的是以Windows 2k/XP下的ntloader为主引导器,通过ntloader来加载Grub,最后由Grub实现Linux的引导。这样一种引导序列的特点是,对Windows的引导几乎没有加以改动,仅仅在其中插入了对Grub的加载。当然,相反的序列也是可以的,即首先引导Grub(可以将Grub装入MBR或者处于激活状态的主分区),由Grub来加载ntloader(通过chainloader +1命令),然后实现对Windows的引导。但后者可能会引发其他的问题。
无论如何,本文中Linux的引导都是通过Grub进行的,不管是将Grub装入Linux根分区、由ntloader加载Linux根分区的Grub引导扇区,还是通过grub4nt的grldr、由ntloader加载grldr来实现对Grub的引导。其实,Grub的引导扇区文件和grldr只是对Grub加载的不同实现方式罢了。



--------------------------------------------------------------------------------

windows下的grub安装.zip
描述:

下载
文件名: windows下的grub安装.zip
文件大小: 135.83 KB
下载过的: 文件被下载或查看 86 次

巧设置 低配置机器也能用卡巴斯基

巴斯基是目前国内最流行的反病毒软件之一,但其资源占用高的问题一直为人所诟病,也让一些机器配置低的用户望而却步。其实,只要经过一定的合理设置,卡巴斯基一样可以运行在低配置机器上,并不比其他杀毒软件占用系统资源多。
先说下我的电脑配置:赛扬1.7G的CPU,256M DDR的内存,这个配置勉强可以跑Windows XP,如果用卡巴斯基默认的设置,机器就会反应严重迟钝。在广查资料和朋友的建议下,我根据自己的实际情况设置了一下,机器果然快了许多。相信按照我的建议设置之后,那些配置比较低的朋友也可以正常使用卡巴斯基了。

第一步:设置 → 设置实时监控 → 将保护级别设置为高速;

第二步:如果你不使用微软的邮箱,请选择“禁用邮件实时监控”;

第三步:勾选“禁用脚本的实时监控”;

第四步:文件保护 → 勾选“不扫描磁盘引导扇区”,扫描超时500秒则停止;

第五步:网络攻击防御 → 勾选“使用隐藏模式”;

第六步:不进行计划扫描;

第七步:其他设置 → 不要选择“记录所有的信息”,其余的酌情自便;

定制Ubuntu安装CD

定制Ubuntu安装CD
From Ubuntu中文

定制Ubuntu安装CD

原文出处:https://wiki.ubuntu.com/InstallCDCustomizationHowTo

原文作者:未知

授权许可:创作共享协议

翻译人员:ctqucl

校对人员:无

适用版本:

文章状态:

定制Ubuntu CD的过程并不复杂,但是她有一些繁琐和过分的讲究。我对这过程的所知并不完美,因此,希望有人可以作适当修改。

安装CD有三个主要部分:

* 启动引导器:(如ISOLINUX用于amd64/i386,yaboot用于powerpc)开机时内核映象的选择与配置;
* Debian安装程序(d-i):其实就是一个特殊的微Ubuntu系统;
* Debian软件库:放在"pool"和"dists"目录,它将占据光盘的大部分空间。

建立这个新的CD就包涵了这三部分的修改。

用"Presseed"文件修改安装行为

当CD 启动时,Linux内核就被装载且开始安装任务。安装程序的行为可以用一个"preseed"文件来修改,这些文件给Debian安装程序(d-i)回答如何配置软件包或其它相关的问题。如果您仔细看你的安装CD,您会找到这些选项(例如server,expert,oem)都有对应的preseed文件。

所以,假设您想在一群的相同配置电脑上安装breezy,并且您已经知道安装时必问问题的答案(您所在的国家和时区,您你的键盘布局,您的网络设置,您需要如何分区等等)。您可以通过"preseed"在一简单的配置文件里回答这些问题.

改变isolinux.cfg确定您的preseed

首先,您必须告诉"d-i"找到您的preseed文件的正确位置。在标准的光盘上有个/preseed目录;您可以把您的这些文件放这里。您要修改启动引导器的配置文件/isolinux/isolinux.cfg中的相关内核参数,来告诉"d-i"找到这个文件。我的文件里有下列行:

DEFAULT /install/vmlinuz APPEND preseed/file=/cdrom/preseed/learnexchange.seed kbd-chooser/method=us debian-installer/locale=en_CA vga=normal initrd=/install/initrd.gz ramdisk_size=16384 root=/dev/rd/0 DEBCONF_PRIORITY=critical debconf/priority=critical rw --

"DEFAULT" 是指我在boot提示符下直接按回车键装载的内核。APPEND 包涵了要传给内核的参数。preseed/file 是这儿最重要的参数;接着的那两个指出我的键盘布局用及本地为加拿大;DEBCONF_PRIORITY 用来确定我不想看到不必要的配置软件包提问。

根据你的情况小心修改这文件.

写preseed文件

这里有很多实例;看看这个在安装盘里的--server.seed:

1. Don't install usplash.

d-i base-installer/kernel/linux/extra-packages-2.6 string

1. Desktop system not installed; don't waste time and disk space copying it.

d-i archive-copier/desktop-task string ubuntu-standard d-i archive-copier/ship-task string

1. Only install the standard system and language packs in the second stage.

base-config base-config/package-selection string ~t^ubuntu-standard$ base-config base-config/language-pack-patterns string language-pack-$LL

1. No language support packages.

base-config base-config/install-language-support boolean false

(Note that the version of this file on breezy CD images was buggy: it set base-config/package-selection to "~tubuntu-standard" rather than "~t^ubuntu-standard$". Use the new version in preference; the old one will break with Ubuntu 6.04.)

首先注意格式,有 4 个部分:

1. 取得变量的程序名称
2. 答案的变量名
3. 变量类型
4. 变量值

两个要注意的地方:现在,d-i 期望有精确的类型和值;在breezy这个版本不支持用 \ 来处理多行(新的版本支持)。

我建议您从一些现有的 preseed 来修改--这儿有一个可以用的 点击。 如果您没能在这儿找到,那就试着执行这些命令:

debconf-get-selections --installer > somefile.txt debconf-get-selections >> somefile.txt

这会输出一个您在安装时候作出的选择的列表;这文件相当地长,并且实际上不那么适合用在安装盘里。特别是,NOTE: debconf-get-selections 会在类型和只之间放 2 个空格。您得在把她放在安装盘上以前修改他们。

如果您想让 d-i 安装额外的软件包,或者一个最小的系统,您需要在preseed里修改 "base-config base-config/package-selection"。This should be set to an aptitude pattern; see the aptitude documentation for more information on these. 例如,标准安装一个SSH服务,用这一行:

base-config base-config/package-selection string ~t^ubuntu-standard$|~t^ubuntu-desktop$|~n^openssh-server$

To install support for additional languages, a different mechanism is available, namely to preseed the detailed locale question asked by the installer in expert mode. See the first column of /usr/share/i18n/SUPPORTED for the locale names you can use here. 例如, 增加孟加拉语和泰米尔语的支持,用这一行:

d-i localechooser/supported-locales multiselect ba_IN, ta_IN

修改pool目录,增加或删除软件包

也许制定您自己的安装CD的主要原因是想改变所安装软件包;特别是您想增加一些包到CD里。这有好几个方法来做到,不需要完全地理解。最容易的事情是建立一个最小的仓库放您想要增加的包,再在制作光盘镜像文件之前合并到光盘文件体系里。这儿棘手的地方是:制作让Debian软件包管理系统知道这个仓库的相关文件;写一个更高版本的Release文件;并签上 GPG 。下面是我所做的。

* . 选定一个文件目录作为您的工作空间;在这个目录里,

mkdir -p dists/breezy/extras/binary-i386 pool/extras/ isolinux preseed

把您修改过的isolinux.cfg放在目录isolinux/,把您的preseed文件放在目录preseed里。 Put your modified isolinux.cfg in isolinux/, and your preseed file in preseed/.

* . 把您需要的所有额外的包放在目录 pool/extras/ 里。您还需要包括一个新版本的 ubuntu-keyring 包,我将马上解释一下
* . 创建并编辑文件dists/breezy/extras/binary-i386/Release,写入下面的内容:

Archive: breezy Version: 5.10 Component: extras Origin: Ubuntu Label: Ubuntu Architecture: i386

* . 把您做的修改这样合并到CD里:
1.

挂载您下载的官方ISO文件:mount /path/to/iso /some/mountpoint/ -o loop

b. 把光盘里的全部文件拷贝到某个目录(您会需要1到2G的空间);我用rsync:sudo rsync -azvb --delete --backup-dir=/yeowe/usr/cdbuilder/old/ $MOUNT $BUILD ( 这儿的 $MOUNT 是挂载点,$BUILD 是额外的包的目录)

c. 最重要的地方. 我们将用apt-ftparchive工具来产生软件包相关和更高版本的Release文件。我们还要用GPG来签这个Release文件。安装程序会用包ubuntu-keyring 的公匙来检测签名。但是您的签名不一样。所以您得建立一个新版本的 ubuntu-keyring 包。这做起来很容易,但是要确保正确无误。下面是执行的命令:

apt-get source ubuntu-keyring
cd ubuntu-keyring--2005.01.11/keyring
gpg --import < ubuntu-archive-keyring.gpg
gpg --list-keys "Your Name"
gpg --export FBB75451 437D05B5 YOURKEYID > ubuntu-archive-keyring.gpg
cd ..
dpkg-buildpackage -rfakeroot -m"Your Name -k"Your Name "
cp ubuntu-keyring*deb $BUILD/pool/extras/

OK -- what we've done here is import the 2 Ubuntu keys into your main keyring, then exported them along with your own key into a replacement keyring. "YOURKEYID" should be replaced with the 8-digit hexadecimal code that gpg tells you when you do the --list-keys command above. And really, the best policy would be to do all that first, and copy a version into your $STAGE file structure so that you have it permanently available.

Note: If you do not have an existing gpg signing key, use the following code:

*

gpg --gen-key


Accept all defaults, select "No expiry", and enter an appropriate passphrase.

In order to use apt-ftparchive, we will need to provide it with some defaults. Create the files "apt-ftparchive-deb.conf, "apt-ftparchive-udeb.conf", and "apt-ftparchive-extras.conf" as follows (substitude $BUILD for the absolute path to your BUILD directory, and /path/to/indices to the location of the indices files, which you can download from http://archive.ubuntu.com/ubuntu/indices/ ):

*

apt-ftparchive-deb.conf:
Dir {
ArchiveDir "$BUILD";
};

TreeDefault {
Directory "pool/";
};

BinDirectory "pool/main" {
Packages "dists/breezy/main/binary-i386/Packages";
BinOverride "/path/to/indices/override.breezy.main";
ExtraOverride "path/to/indices/override.breezy.extra.main";
};

Default {
Packages {
Extensions ".deb";
Compress ". gzip";
};
};

Contents {
Compress "gzip";
};


apt-ftparchive-udeb.conf:
Dir {
ArchiveDir "$BUILD";
};

TreeDefault {
Directory "pool/";
};

BinDirectory "pool/main" {
Packages "dists/breezy/main/debian-installer/binary-i386/Packages";
BinOverride "/path/to/indices/override.breezy.main.debian-installer";
};

Default {
Packages {
Extensions ".udeb";
Compress ". gzip";
};
};

Contents {
Compress "gzip";
};


apt-ftparchive-extras.conf:
Dir {
ArchiveDir "$BUILD";
};

TreeDefault {
Directory "pool/";
};

BinDirectory "pool/extras" {
Packages "dists/breezy/extras/binary-i386/Packages";
};

Default {
Packages {
Extensions ".deb";
Compress ". gzip";
};
};

Contents {
Compress "gzip";
};


* . 现在就用apt-ftparchive来创建Packages和Release文件:
o

cd $BUILD
sudo apt-ftparchive -c $APTCONF generate /path/to/apt-ftparchive-deb.conf
sudo apt-ftparchive -c $APTCONF generate /path/to/apt-ftparchive-udeb.conf
sudo apt-ftparchive -c $APTCONF generate /path/to/apt-ftparchive-extras.conf

$APTCONF is a file somewhere that looks about like this:

APT::FTPArchive::Release::Origin "Ubuntu"; APT::FTPArchive::Release::Label "Ubuntu"; APT::FTPArchive::Release::Suite "breezy"; APT::FTPArchive::Release::Version "5.10"; APT::FTPArchive::Release::Codename "breezy"; APT::FTPArchive::Release::Architectures "i386"; APT::FTPArchive::Release::Components "main restricted extras"; APT::FTPArchive::Release::Description "Ubuntu Breezy";

1.

给Release文件签gpg:

sudo gpg --default-key "MY GPG KEY ID" --output $BUILD/dists/breezy/Release.gpg -ba $BUILD/dists/breezy/Release

* . Regenerate the md5 checksums:

cd $BUILD find . -type f -print0 | xargs -0 md5sum > md5sum.txt

* . 现在可以来生成光盘镜像文件:

sudo mkisofs -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -hide-rr-moved -o $IMAGE -R $BUILD/

* ‘$IMAGE’表示您的光盘镜像文件.

* . 最後,可以用cdrecord或其它刻录工具来刻录您的CD了:

sudo nice -18 cdrecord dev=ATA:1,1,0 speed=12 --blank=fast -v -gracetime=2 -tao $IMAGE

that will burn the image on the second cd drive; if your cd-burner is the first or only cd-drive, change dev argument to ATA:1,0,0. I strongly recommend using rewritable media -- I've burned a LOT of coasters on this project.

好了,搞定! 如果谁感兴趣,我写了一个小脚本(很简单)来自动完成这个步骤。我想我正好可以放在这儿

1. !/bin/bash
2. usage
3. update-learningexchange.sh kubuntu|ubuntu|xubuntu

1. a very primitive script with no structure of controls etc
2. no default behaviour, etc etc
3. all ofthis should be trivial to implement but my
4. bash syntax sucks
5. obvious thing to do would be to convert to python
6. & add a simple gtk front end too
7. but I'm rushed at the moment

1. Notes;Bugs:
2. REMEMBER: this absolutely will not work if you haven't built a new version of ubuntu-keyring
3. package & included that in $STAGE/pool/extras/! You do that thusly:
4. apt-get source ubuntu-keyring
5. cd ubuntu-keyring-version-info/keyring
6. gpg --import < ubuntu-server-keyring.gpg
7. gpg --output=ubuntu-server-keyring.gpg --export "ubuntu" "Your Name"
8. dpkg-buildpackage -rfakeroot -m"My Name "
9. cp ../ubuntu-keyring*deb $BUILD/pool/extras/


1. VARIABLES
2. this script relies on the existence of several files and directories:

1. Original = $ORIG: location of the "clean", unmodified CD .iso
2. CD mount point = $MOUNT: mount point of clean CD
3. Staging area = $STAGE: where you keep all your files
4. this area should include main dirs isolinux/, pool/, and dists/ at a minimum
5. as written the script assumes you have a directory pool/extras with your
6. extra debs, and that dists/breezy/extras/binary-i386/Release exists (copy it over
7. from dists/breezy/main/binary-i386, and replace "main" with "extras")
8. There is no doubt a better way to do this but it involves work...
9. Building Area = $BUILD: location where your changes are merged into the "clean" directory \
10. structure.
11. Image location = $IMAGE: name of the new .iso file you want to build
12. apt.conf file = $APTCONF: location of the file used to feed instructions to apt-ftparchive

ORIG="/var/www/jigdo/$1-breezy-install-i386.iso" STAGE="/home/matt/LearningExchangeCD/$1/" MOUNT=/mnt/iso/ BUILD="/yeowe/usr/cdbuilder/$1" IMAGE="/yeowe/usr/cdbuilder/$1-learningexchange.iso" APTCONF=/home/matt/LearningExchangeCD/apt.conf


1. sync with latest image

sudo umount $MOUNT sudo mount $ORIG $MOUNT -o loop

1. sudo rsync -azvb --delete --exclude="language-pack*" --backup-dir=/yeowe/usr/cdbuilder/old/ $MOUNT $BUILD

sudo rsync -azvb --delete $MOUNT $BUILD

1. now get rid of the old ubuntu-keyring package

sudo rm -r $BUILD/pool/u/ubuntu-keyring/

1. note I've excluded a few files, shouldn't matter much for you I reckon

sudo rsync -avzb --exclude='*~' --exclude='INSTRUCTIONS.txt' --backup-dir=/yeowe/usr/cdbuilder/old/ --exclude='example-preseed.txt' $STAGE $BUILD

1. generate Packages, Release, Release.gpg
2. first thing to realize is, that we only need to generate the Packages files,
3. the top-level Release file, and top-level Release.gpg.
4. everything else should be in your $STAGE file structure or usable unchanged
5. in the original form

1. remove Release file otherwise you'll have trouble writing to it.

sudo rm $BUILD/dists/breezy/Release*

1. ubuntu-keyring must be included in main/, so main NEEDS to be rebuilt!

for component in main extras; do

sudo apt-ftparchive packages "$BUILD/pool/$component/" > "$BUILD/dists/breezy/$component/binary-i386/Packages"
gzip -c "$BUILD/dists/breezy/$component/binary-i386/Packages" | \
sudo tee "$BUILD/dists/breezy/$component/binary-i386/Packages.gz" > /dev/null

done sudo apt-ftparchive -c $APTCONF release $BUILD/dists/breezy > $BUILD/dists/breezy/Release

1. gpg options: -ba = armored, detached-sig

sudo gpg --output $BUILD/dists/breezy/Release.gpg -ba $BUILD/dists/breezy/Release

1. build the actual image. Note the options to mkisofs, which make the image bootable

sudo chown -R root:root $BUILD/isolinux $BUILD/preseed sudo mkisofs -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -hide-rr-moved -o $IMAGE -R $BUILD/

1. burn the image to 2nd cd drive on most setups

sudo nice -18 cdrecord dev=ATA:1,1,0 speed=12 --blank=fast -v -gracetime=2 -tao $IMAGE

更改GRUB默认启动系统

更改GRUB默认启动系统
From Ubuntu中文

用你熟悉的编辑器打开文件 menu.lst

sudo gedit /boot/grub/menu.lst

* 修改默认启动系统:

找到 "default 0"(注意文件中没有引号) 这一句,将"0"改为你想要默认启动的系统编号(0开始数)

* 修改启动菜单暂停时间

找到“time 10”为启动选择菜单暂停的时间 。单位为秒。数字可以自由设定。

修改完成後保存即可。
取自"http://wiki.ubuntu.org.cn/index.php?title=%E6%9B%B4%E6%94%B9GRUB%E9%BB%98%E8%AE%A4%E5%90%AF%E5%8A%A8%E7%B3%BB%E7%BB%9F&variant=zh-cn"

Apt和dpkg快速参考

apt-cache search # ------(package 搜索包)
apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等)
sudo apt-get install # ------(package 安装包)
sudo apt-get install # -----(package - - reinstall 重新安装包)
sudo apt-get -f install # -----(强制安装?#"-f = --fix-missing"当是修复安装吧...)
sudo apt-get remove #-----(package 删除包)
sudo apt-get remove - - purge # ------(package 删除包,包括删除配置文件等)
sudo apt-get autoremove --purge # ----(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))
sudo apt-get update #------更新源
sudo apt-get upgrade #------更新已安装的包
sudo apt-get dist-upgrade # ---------升级系统
sudo apt-get dselect-upgrade #------使用 dselect 升级
apt-cache depends #-------(package 了解使用依赖)
apt-cache rdepends # ------(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧...)
sudo apt-get build-dep # ------(package 安装相关的编译环境)
apt-get source #------(package 下载该包的源代码)
sudo apt-get clean && sudo apt-get autoclean # --------清理下载文件的存档 && 只清理过时的包
sudo apt-get check #-------检查是否有损坏的依赖


apt-get install
下载 以及所有倚赖的包裹,同时进行包裹的安装或升级。如果某个包裹被设置了 hold (停止标志,就会被搁在一边(即不会被升级)。更多 hold 细节请看下面。

apt-get remove [--purge]
移除 以及任何倚赖这个包裹的其它包裹。
--purge 指明这个包裹应该被完全清除 (purged) ,更多信息请看 dpkg -P。

apt-get update
升级来自 Debian 镜像的包裹列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了
/etc/apt/sources.list 後,必须执行。

apt-get upgrade [-u]
升级所以已经安装的包裹为最新可用版本。不会安装新的或移除老的包裹。如果一个包改变了倚赖关系而需要安装一个新的包裹,那么它将不会被升级,而是标志为 hold。apt-get update 不会升级被标志为 hold 的包裹 (这个也就是 hold 的意思)。请看下文如何手动设置包裹为 hold。我建议同时使用 '-u' 选项,因为这样你就能看到哪些包裹将会被升级。

apt-get dist-upgrade [-u]
和 apt-get upgrade 类似,除了 dist-upgrade 会安装和移除包裹来满足倚赖关系。因此具有一定的危险性。

apt-cache search
搜索满足 的包裹和描述。

apt-cache show
显示 的完整的描述。

apt-cache showpkg
显示 许多细节,以及和其它包裹的关系。

dselect
console-apt
aptitude
gnome-apt
APT 的几个图形前端(其中一些在使用前得先安装)。这里 dselect 无疑是最强大的,也是最古老,最难驾驭。

普通 Dpkg 用法
dpkg -i
安装一个 Debian 包裹文件,如你手动下载的文件。

dpkg -c
列出 的内容。

dpkg -I
从 中提取包裹信息。

dpkg -r
移除一个已安装的包裹。

dpkg -P
完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。

dpkg -L
列出 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。

dpkg -s
显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。

dpkg-reconfigure
重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。你能够重新配制 debconf 它本身,如你想改变它的前端或提问的优先权。例如,重新配制 debconf,使用一个 dialog 前端,简单运行:

dpkg-reconfigure --frontend=dialog debconf (如果你安装时选错了,这里可以改回来哟:)

echo " hold" | dpkg --set-selections
设置 的状态为 hlod (命令行方式)

dpkg --get-selections ""
取的 的当前状态 (命令行方式)

支持通配符,如:
Debian:~# dpkg --get-selections *wine*
libwine hold
libwine-alsa hold
libwine-arts hold
libwine-dev hold
libwine-nas hold
libwine-print hold
libwine-twain hold
wine hold
wine+ hold
wine-doc hold
wine-utils hold

例如:
大家现在用的都是 gaim-0.58 + QQ-plugin,为了防止 gaim 被升级,我们可以采用如下方法:

方法一:
Debian:~# echo "gaim hold" | dpkg --set-selections
然後用下面命令检查一下:
Debian:~# dpkg --get-selections "gaim"
gaim hold
现在的状态标志是 hold,就不能被升级了。

如果想恢复怎么办呢?
Debian:~# echo "gaim install" | dpkg --set-selections
Debian:~# dpkg --get-selections "gaim"
gaim install
这时状态标志又被重置为 install,可以继续升级了。

同志们会问,哪个这些状态标志都写在哪个文件中呢?
在 /var/lib/dpkg/status 里,你也可以通过修改这个文件实现 hold。

有时你会发现有的软件状态标志是 purge,不要奇怪。
如:事先已经安装了 amsn,然後把它卸了。
apt-get remove --purge amsn
那么状态标志就从 install 变成 purge。

方法二:
在/etc/apt 下手动建一个 preferences 文件
内容:
Package: gaim
Pin: version 0.58*
保存

dpkg -S
在包裹数据库中查找 ,并告诉你哪个包裹包含了这个文件。(注:查找的是事先已经安装的包裹)

快速设置指南/FeistyFawn

快速设置指南/FeistyFawn
From Ubuntu中文
目录
[隐藏]

* 1 前言
* 2 修改源并更新你的Kubuntu/Ubuntu
* 3 设置系统中文环境支持
o 3.1 安装语言包
o 3.2 scim输入法安装及设置
o 3.3 fcitx输入法安装及设置(Kubuntu下推荐使用)
o 3.4 安装文泉驿字体
o 3.5 解决PDF电子文档中文乱码
* 4 安装JAVA环境支持
* 5 安装QQ软件
o 5.1 安装EVA,Kubuntu推荐使用
o 5.2 安装LumaQQ,需JAVA支持
* 6 多媒体播应用环境设置
o 6.1 安装多媒体解码器
o 6.2 安装mplayer播放器
o 6.3 Xine前端播放器设置
* 7 安装英汉辞典
o 7.1 StarDict更多词典的安装
o 7.2 安装真人发声语音包
o 7.3 发音设置
* 8 安装设置Firefox浏览器
o 8.1 安装flash播放插件
o 8.2 安装中文语言支持(可选)
o 8.3 安装插件
o 8.4 配置firefox/swiftfox
o 8.5 查看firefox/swiftfox当前所安装的插件
o 8.6 安装Swiftfox
* 9 安装支持BT/电驴/Gnutella1/Gnutella2等下载软件
o 9.1 安装BT下载软件
o 9.2 安装电驴下载软件
* 10 其他参考

[编辑] 前言

* 最新修改部份: 去除fcitx多馀的码表 ---2007-05-12
* 因为中间部分包没有相应的AMD64和PPC的对应包,因此会出现找不到该包的情况。如果你是属于这样的系统,请到论坛咨询。 当你刚刚安装完毕之後,我们来花10分钟设置一下系统,让其有一个更加舒适的中文环境。
* 如果您看到 "$", 的符号, 意思是你必须在终端状态下运行此命令。(应用程序 -> 附件 -> 终端)
* "sudo" 的意思是(以超级用户执行 [Superuser Do] )。"sudo" 需要提供密码 "Password:".请输入您指定的用户密码。
* 源的简单定义:你可以把源看成是存放在网络上某台服务器中的软件仓库,当你加入多个源并试图安装某软件时,以多个源中版本最新的为优先,版本相同时以排在最前面的源优先
* 注意:五一期间由于服务器故障导至ubuntu-cn源的问题已经修复,各源服务器同步需要一定时间,如您急需使用,可直接加入中文源(不建议,以防止给服务器带来过重负担)http://archive.ubuntu.org.cn/
* 文中所提到的下载地址http://ftp.ubuntu.org.cn/帐号: ubuntu 密码: ubuntuftp

[编辑] 修改源并更新你的Kubuntu/Ubuntu

* 不同的网络状况连接以下源的速度不同,所以cn99并不一定是最快的源。建议在添加前手动验证以下源的连接速度(ping下就行),比如说北京网通用户连接cn99就非常慢,而ftp.sjtu.edu.cn是相对较快的源,选择最快的源可大大节省下载时间,请根据自己网络环境设置更新服务器,以达到最快的速度
* 在kubuntu下,你可以使用Adept软件管理器,Ubuntu下可以使用Synaptic(新立得)软件管理器,命令行下可以使用apt-get install,aptitude install来安装软件
* 注意,你可以同时加入几个源。尽量选择一组官方的源(也就是下面的Archive.ubuntu.com的条目)直接加在文件的最後,以避免非官方源软件包不全时出现 404 Not Found 文件未发现 的错误。建议电信用户使用cn99和台湾大学的源,建议网通用户使用台湾大学的源.
* 关于终端:可以简单认为终端是在图形界面下的命令行操作模拟器,下文中出现的所有命令均需在终端中执行,你可以直接复制文中的命令行到终端中,回车运行它.但我建议你还是自己动手输入,作为开始进入linux世界的热身.

'Kubuntu'下打开终端方法:

按下ALT+F2 -> konsole -> 运行

'Ubuntu'下打开终端方法:

按下ALT+F2 -> gnome-terminal -> 运行

备份当前的源列表,以便日後需要时恢复

sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup

* Kubuntu下可以使用Kate作为文本编辑软件,Ubuntu下可以用gedit作为文本编辑软件,当然你可以换成任一款你喜欢的编辑器
* 在Kubuntu下尽量使用kdesu command来获取管理员权限并执行某指令,Ubuntu下尽量使用gksu command来获取管理员权限并执行某指令

编辑源列表,将对于你最快的源放在最前面,如果有alternateCD/DVD则将其放于最开始位置,如果你还没有学会如何挂载ISO光盘镜像,那就先在该行前面加上一个#号,或者先去学习一下关于mount命令的用法.

kubuntu:

kdesu kate /etc/apt/sources.list

ubuntu:

gksu gedit /etc/apt/sources.list

从以下各服务器列表内容中选择一段替换文件中的所有内容,为防止非官方源中软件包不全的问题,请在sources.list文件中尾部添加一组官方源 Archive.ubuntu.com 更新服务器(欧洲,此为官方源,推荐使用。)

deb http://archive.ubuntu.com/ubuntu/ feisty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ feisty-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ feisty-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ feisty-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ feisty-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ feisty main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ feisty-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ feisty-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ feisty-proposed main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ feisty-backports main restricted universe multiverse

Ubuntu.cn99.com 更新服务器(江苏省常州市电信,推荐电信用户使用。)

deb http://ubuntu.cn99.com/ubuntu/ feisty main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ feisty-security main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ feisty-updates main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ feisty-proposed main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ feisty-backports main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ feisty main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ feisty-security main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ feisty-updates main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ feisty-proposed main restricted universe multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ feisty-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu-cn/ feisty main restricted universe multiverse

Mirror.lupaworld.com 更新服务器(浙江省杭州市双线服务器,亚洲地区官方更新服务器。)

deb http://cn.archive.ubuntu.com/ubuntu feisty main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu feisty-security main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu feisty-updates main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu feisty-backports main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu feisty-proposed main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu feisty main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu feisty-security main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu feisty-updates main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu feisty-backports main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu feisty-proposed main restricted universe multiverse

上海市 上海交通大学 更新服务器(教育网,推荐校园网和网通用户使用。)

deb http://ftp.sjtu.edu.cn/ubuntu/ feisty main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ feisty-backports main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ feisty-proposed main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ feisty-security main multiverse restricted universe
deb http://ftp.sjtu.edu.cn/ubuntu/ feisty-updates main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ feisty main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ feisty-backports main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ feisty-proposed main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ feisty-security main multiverse restricted universe
deb-src http://ftp.sjtu.edu.cn/ubuntu/ feisty-updates main multiverse restricted universe

北京市清华大学 更新服务器(教育网,推荐校园网和网通用户使用。)

deb http://mirror9.net9.org/ubuntu/ feisty main multiverse restricted universe
deb http://mirror9.net9.org/ubuntu/ feisty-backports main multiverse restricted universe
deb http://mirror9.net9.org/ubuntu/ feisty-proposed main multiverse restricted universe
deb http://mirror9.net9.org/ubuntu/ feisty-security main multiverse restricted universe
deb http://mirror9.net9.org/ubuntu/ feisty-updates main multiverse restricted universe
deb-src http://mirror9.net9.org/ubuntu/ feisty main multiverse restricted universe
deb-src http://mirror9.net9.org/ubuntu/ feisty-backports main multiverse restricted universe
deb-src http://mirror9.net9.org/ubuntu/ feisty-proposed main multiverse restricted universe
deb-src http://mirror9.net9.org/ubuntu/ feisty-security main multiverse restricted universe
deb-src http://mirror9.net9.org/ubuntu/ feisty-updates main multiverse restricted universe

中国 台湾省台湾大学 更新服务器(推荐网通用户使用,电信PING平均响应速度41MS。)(强烈推荐,此源比较完整,较少出现同步问题)

deb http://ubuntu.csie.ntu.edu.tw/ubuntu/ feisty main restricted universe multiverse
deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/ feisty main restricted universe multiverse
deb http://ubuntu.csie.ntu.edu.tw/ubuntu/ feisty-updates main restricted universe multiverse
deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/ feisty-updates main restricted universe multiverse
deb http://ubuntu.csie.ntu.edu.tw/ubuntu/ feisty-backports main restricted universe multiverse
deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/ feisty-backports main restricted universe multiverse
deb http://ubuntu.csie.ntu.edu.tw/ubuntu/ feisty-security main restricted universe multiverse
deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/ feisty-security main restricted universe multiverse
deb http://ubuntu.csie.ntu.edu.tw/ubuntu/ feisty-proposed main multiverse restricted universe
deb-src http://ubuntu.csie.ntu.edu.tw/ubuntu/ feisty-proposed main restricted universe multiverse

Mirror.vmmatrix.net 更新服务器(上海市电信,推荐电信网通用户使用。)

deb http://mirror.vmmatrix.net/ubuntu/ feisty main restricted universe multiverse
deb-src http://mirror.vmmatrix.net/ubuntu/ feisty main restricted universe multiverse
deb http://mirror.vmmatrix.net/ubuntu/ feisty-updates main restricted universe multiverse
deb-src http://mirror.vmmatrix.net/ubuntu/ feisty-updates main restricted universe multiverse
deb http://mirror.vmmatrix.net/ubuntu/ feisty-backports main restricted universe multiverse
deb-src http://mirror.vmmatrix.net/ubuntu/ feisty-backports main restricted universe multiverse
deb http://mirror.vmmatrix.net/ubuntu/ feisty-security main restricted universe multiverse
deb-src http://mirror.vmmatrix.net/ubuntu/ feisty-security main restricted universe multiverse
deb http://mirror.vmmatrix.net/ubuntu/ feisty-proposed main multiverse restricted universe
deb-src http://mirror.vmmatrix.net/ubuntu/ feisty-proposed main restricted universe multiverse

ubuntu.cnsite.org 更新服务器 (福建省福州市 电信)

deb http://ubuntu.cnsite.org/ubuntu/ feisty main restricted universe multiverse
deb-src http://ubuntu.cnsite.org/ubuntu/ feisty main restricted universe multiverse
deb http://ubuntu.cnsite.org/ubuntu/ feisty-updates main restricted universe multiverse
deb-src http://ubuntu.cnsite.org/ubuntu/ feisty-updates main restricted universe multiverse
deb http://ubuntu.cnsite.org/ubuntu/ feisty-backports main restricted universe multiverse
deb-src http://ubuntu.cnsite.org/ubuntu/ feisty-backports main restricted universe multiverse
deb http://ubuntu.cnsite.org/ubuntu/ feisty-security main restricted universe multiverse
deb-src http://ubuntu.cnsite.org/ubuntu/ feisty-security main restricted universe multiverse
deb http://ubuntu.cnsite.org/ubuntu/ feisty-proposed main multiverse restricted universe
deb-src http://ubuntu.cnsite.org/ubuntu/ feisty-proposed main restricted universe multiverse

mirror.rootguide.org 更新服务器 (上海市 电信)

deb http://mirror.rootguide.org/ubuntu/ feisty main restricted universe multiverse
deb-src http://mirror.rootguide.org/ubuntu/ feisty main restricted universe multiverse
deb http://mirror.rootguide.org/ubuntu/ feisty-updates main restricted universe multiverse
deb-src http://mirror.rootguide.org/ubuntu/ feisty-updates main restricted universe multiverse
deb http://mirror.rootguide.org/ubuntu/ feisty-backports main restricted universe multiverse
deb-src http://mirror.rootguide.org/ubuntu/ feisty-backports main restricted universe multiverse
deb http://mirror.rootguide.org/ubuntu/ feisty-security main restricted universe multiverse
deb-src http://mirror.rootguide.org/ubuntu/ feisty-security main restricted universe multiverse
deb http://mirror.rootguide.org/ubuntu/ feisty-proposed main multiverse restricted universe
deb-src http://mirror.rootguide.org/ubuntu/ feisty-proposed main restricted universe multiverse
deb http://mirror.rootguide.org/ubuntu-cn/ feisty main restricted universe multiverse

很多人反映台湾的官方源速度也是相当不错,有时甚至快于内地的

deb http://tw.archive.ubuntu.com/ubuntu feisty main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu feisty-security main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu feisty-updates main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu feisty-backports main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu feisty-proposed main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu feisty main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu feisty-security main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu feisty-updates main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu feisty-backports main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu feisty-proposed main restricted universe multiverse

到以下网址可以自定义产生若干源:

http://www.ubuntulinux.nl/source-o-matic

以下网址有极其全面的源,以供补充:

http://italy.copybase.ch/blog/lista-repository-sourceslist-ottimizzata-per-ubuntu-kubuntu-linux/

官方采集的源列表:

https://launchpad.net/ubuntu/+archivemirrors

保存编辑好的文件,执行以下命令更新。

sudo apt-get update
sudo apt-get dist-upgrade

[编辑] 设置系统中文环境支持
[编辑] 安装语言包

Kubuntu下如果你使用中文界面,进行如下操作补全中文支持。

主菜单->系统设置->区域与语言->安装新语言->Chinese->安装,回到“区域与语言”->选择系统语言->简体中文 确定

Ubuntu:

系统 -> 系统管理 -> 语言支持 在列表中的 Chinese 条目 打勾。 同时将默认语言修改为 Chinese(中国) 确定

如果你设置的是非中文,比如英文环境,但需要系统提供中文支持。执行以下步骤安装最小的中文支持。(如果做了上一步的设置为中文环境则不需要执行这一步)

Kubuntu:

sudo apt-get install kde-i18n-zhcn kde-i18n-zhtw #安装简体和繁体语言包,可按实际需求自行选择

Ubuntu:

sudo apt-get install language-pack-zh

配置字体,使中文看起来更漂亮

sudo fontconfig-voodoo -f -s zh_CN

[编辑] scim输入法安装及设置

如果您要在非CJK(中日韩)的locales下使用scim,请在终端执行如下命令:(如果默认是中文环境不需要这一步,系统已经设置好了。)

sudo apt-get install scim scim-modules-socket scim-modules-table scim-pinyin scim-tables-zh scim-gtk2-immodule im-switch libapt-pkg-perl

提示:带table的包为输入法码表,安装之後才有除拼音以外的输入法,如五笔、二笔、自然码等,如果你只使用拼音输入法就不用装这些包了

sudo im-switch -s scim -z default

如果在KDE下面使用scim,建议使用如下设置

sudo apt-get install im-switch libapt-pkg-perl

sudo im-switch -s scim-xim -z default

Scim输入法的可选设置 注意:feisty下不建议进行这步操作,尤其在kubuntu下强烈建议不进行这步操作

默认的scim输入法可能会与realplay、acrobat reader、openoffice等程序有冲突。如果有这样的问题,建议使用scim-bridge替换scim。安装scim-bridge 和scim-qtimm。请确保已正确设置中文环境,打开终端,执行以下命令,或使用《新立得软件管理器》,在其中搜索“scim-bridge”、 “scim-qtimm”并标记安装。 .

sudo apt-get install scim-qtimm

sudo im-switch -s scim

编辑im-switch生成的scim配置文件

gksu gedit /etc/X11/xinit/xinput.d/scim

将默认的 GTK_IM_MODULE=scim 修改为 GTK_IM_MODULE="scim-bridge"。
[编辑] fcitx输入法安装及设置(Kubuntu下推荐使用)

'fcitx'安装:

sudo apt-get install im-switch fcitx

im-switch -s fcitx -z default # 注意,前面先万不要加sudo

完成设置最好重启一下X,以便进行下一步设置

'fcitx'设置:

kate ~/.fcitx/config

提示:该文件使用GBK编码,很多人打开它可能显示乱码,在kate下点菜单 工具->编码->简体中文GBK即可正常显示。设置选项为全中文,不用多说, 英文界面下输入栏与输入文字为方块的现像,只需修改config中的字体即可,例如

显示字体(中)=SimSun
显示字体(英)=SimSun

提示:可以设为自己喜欢的字体,但必须保证你所使用的字体支持中文

英文locale下fcitx输入置设,解决部份非QT程序的输入问题

sudo kate /etc/gtk-2.0/gtk.immodules

找到下面这个部份

"/usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so"
"xim" "X Input Method" "gtk20" "/usr/share/locale" "ko:ja:th:zh"

改为下面这样

"/usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so"
"xim" "X Input Method" "gtk20" "/usr/share/locale" "en:ko:ja:th:zh"

注意:就是这里加上了en环境下的输入法支持 "ko:ja:th:zh"--->"en:ko:ja:th:zh" 设置完毕,注销一下电脑。(系统 -> 注销 -> 注销) 这时候,输入法 (按 Ctrl + 空格 键激活输入法) 就应该可以使用了。

去除fcitx多馀码表

fcitx默认是有较多的输入法的,通过上面的~/.fcitx/config修改可以去掉双拼,区位,但如果你只用五笔而又偶尔需要切换到拼音下去打个别生字的时候,肯定很讨厌按数次的ctrl+shift吧,执行下面的命令:

kdesu kate /usr/share/fcitx/data/tables.conf

里面的内容大致是这样的

#以#打头的为注释
[码表]
名称=五笔字型
码表=wbx.mb
拼音=1
拼音键=z
.........
.........
#[码表]
#名称=二笔
#码表=eb.mb
.........
.........
#[码表]
#名称=仓颉
#码表=cj.mb
.........
.........

在你不需要的东西加上#或者你如果确定今後都不会用到这些输入法直接删除也可以,保存退出.再用ctrl+shift切换一下你的fcitx输入法,发现有什么变化了吧^_^?
[编辑] 安装文泉驿字体

安装:执行下面的命令前请确保你已经将上面源中ubuntu-cn的源加进去了

sudo apt-get install wqy-bitmapfont

安装後即可以在字体管理器中找到WenQuanYi Bitmap Song字体了,如果你的系统中找不到,执行下面的命令

sudo dpkg-reconfigure fontconfig-config

系统总共会问你三个问题,其中第三个为

Enable bitmapped fonts by default? # 即是否启用Bitmap字体

移动tab键至Yes,回车,字体管理器中就应该有WenQuanYi Bitmap Song字体了
[编辑] 解决PDF电子文档中文乱码

KPDF/Evince:前者为Kubuntu自带,後者为ubuntu自带

sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional

提示:上面安装了简体/繁体中文支持,如果你还需要其他语言的支持,请查找对应软件包装上即可

Adobe acrobat英文版:到下面的地址下载简体/繁体语言包(中文版的就不需要了)

http://ftp.ubuntu.org.cn/fideas/FontPack708_chs_i386-linux.tar.gz

[编辑] 安装JAVA环境支持

打开终端,执行以下命令,或使用Adept/Synaptic软件管理器,在其中分别搜索“sun-java6-jre“和“sun-java6-jdk”并标记安装。

sudo apt-get install sun-java6-jre

如果空间富裕,建议安装一个JDK。呵呵

sudo apt-get install sun-java6-jdk

提示:安装过程中需要你回答是否同意使用协议(终端中红蓝色的提示界面),此时按tab键至OK,再按回车即可正常安装

设置当前默认的java解释器:

sudo update-alternatives --config java

执行後会出现类似如下的画面:

There are 4 alternatives which provide `java'.
Selection Alternative
-----------------------------------------------
*+ 1 /usr/lib/jvm/java-gcj/jre/bin/java
2 /usr/bin/gij-wrapper-4.1
3 /usr/bin/gij-wrapper-4.0
4 /usr/lib/jvm/java-1.6.0-sun/jre/bin/java
Press enter to keep the default[*], or type selection number:

输入 有包含 "sun" 的行的前面的数字。如上面显示,则输入 4,然後回车确定。

安装浏览器的JAVA Plugin(可选):

sudo apt-get install sun-java6-plugin

[编辑] 安装QQ软件
[编辑] 安装EVA,Kubuntu推荐使用

sudo apt-get install eva

安装完成之後,按Alt+F2,输入eva回车即可,也可以在主菜单->网络->eva 启动
[编辑] 安装LumaQQ,需JAVA支持

1.下载并安装安装QQ需要先安装上一步的JAVA环境,也可以到lumaqq官方网站下载最新版本进行安装(依次执行以下命令)

wget -c http://download.ubuntu.org.cn/software/lumaqq_2005-linux_gtk2_x86_no_jre.tar.gz
sudo tar zxvf lumaqq_2005-linux_gtk2_x86_no_jre.tar.gz -C /opt/
wget -c http://download.ubuntu.org.cn/software/lumaqq_2005_patch_2006.02.02.15.00.zip
sudo unzip -o lumaqq_2005_patch_2006.02.02.15.00.zip -d /opt/LumaQQ/lib
sudo chown -R root:root /opt/LumaQQ/
sudo chmod -R 755 /opt/LumaQQ/
sudo gedit /usr/share/applications/LumaQQ.desktop

2.在新增的文件内加入下面这几行

[Desktop Entry]
Name=LumaQQ
Comment=QQ Client
Exec=/opt/LumaQQ/lumaqq
Icon=/opt/LumaQQ/QQ.png
Terminal=false
Type=Application
Categories=Application;Network;

3.保存编辑过的文件 安装完成後的快捷方式在(应用程序 -> Internat -> LumaQQ)。
[编辑] 多媒体播应用环境设置
[编辑] 安装多媒体解码器

安装下面这些解码器,常见的多媒体格式基本都可以播放了仅适合x86,for ppc见另外文件如果出现需要输入[Y/n] 或 [y/N] 一律输入 y 并 回车 ubuntu:

sudo apt-get install audacious libdvdcss2 libdvdnav4 libdvdplay0 libdvdread3 w32codecs libxine-extracodecs gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse

提示:audacious是linux下一款出色的音频播放器,当然你如果有其他喜欢的就可以把它删去。

Kubuntu :

sudo apt-get install libdvdcss2 libdvdnav4 libdvdplay0 libdvdread3 w32codecs libxine-extracodecs gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse

[编辑] 安装mplayer播放器

sudo apt-get install mplayer-fonts mplayer mplayer-skins mozilla-mplayer

在开始用它进行视频播放前还需要进行以下设置 (先启动它) 1.右键弹出主菜单->属性->视频 在“可用驱动”中选择“XV X11/xv” 在同一窗口下半部份钩上“允许掉帧/Enable frame dropping"
[编辑] Xine前端播放器设置

如果使用 xine 後端的播放器,如 kaffeine, xine, totem-xine 等等播放器在播放有些 rmvb 的文件的时候会出现没有声音的现象(如果你没遇到,就不要进行这一步了),解决办法如下:

首先关闭播放器,然後使用你喜欢的编辑器,比如 kate, gedit, vim 等打开文件 ~/.xine/catalog.cache,(比如 kate ~/.xine/catalog.cache 打开该文件。找到其中的

/usr/lib/xine/plugins/1.1.4/xineplug_decode_real_audio.so

代码段,将其下的 decoder_priority 的数值修改成 10

修改完毕後这一段应该看起来是这样子的

/usr/lib/xine/plugins/1.1.4/xineplug_decode_real_audio.so
....
....
decoder_priority=10

[编辑] 安装英汉辞典

如果出现需要输入[Y/n] 或 [y/N] 一律输入 y 并 回车

Ubuntu

sudo apt-get install stardict stardict-common stardict-cdict-gb stardict-cedict-gb stardict-hanzim stardict-langdao-ce-gb stardict-langdao-ec-gb stardict-oxford-gb stardict-xdict-ce-gb stardict-xdict-ec-gb

安装完成後的快捷方式在(应用程序 -> 附件 -> 星际译王)

Kubuntu

sudo apt-get install stardict-gtk stardict-common stardict-cdict-gb stardict-cedict-gb stardict-hanzim stardict-langdao-ce-gb stardict-langdao-ec-gb stardict-oxford-gb stardict-xdict-ce-gb stardict-xdict-ec-gb

安装完成後的快捷方式在(主菜单 -> 附件 -> 星际译王)
[编辑] StarDict更多词典的安装

你可以在这个地址 http://ftp.ubuntu.org.cn/dictionary/ 找到很多的词典,下载你喜欢的词典後只需把它解压到

/usr/share/stardict/dic

重新启动stardict,新的词典就会被自动加载了.
[编辑] 安装真人发声语音包

安装真人语音包可以使您在使用 stardict 查询单词的时候同时读音。要使用 apt 安装的话,请确保您的 sources.list 中包含 ubuntu-cn 的软件仓库。

安装

sudo apt-get install wyabdcrealpeopletts

如果源中没有该包,可以到以下地址下载手动安装 http://ftp.ubuntu.org.cn/stardict.sourceforge.net/WyabdcRealPeopleTTS.tar.bz2

复制到/usr/share目录下面并解压缩,

sudo cp WyabdcRealPeopleTTS.tar.bz2 /usr/share
cd /usr/share
sudo tar -jxvf WyabdcRealPeopleTTS.tar.bz2
sudo rm WyabdcRealPeopleTTS.tar.bz2

解压完後目录结构是这样子的:

fideas@zerone:/usr/share/WyabdcRealPeopleTTS$ ls
a c e g i k m o q README s u w y
b d f h j l n p r readme.txt t v x z

[编辑] 发音设置

如果您安装的是 ubuntu/gnome, 那么只要安装真人发音包之後不需要任何设置,stardict 就可以发音了。

如果是安装的 kubuntu 那么还要按照下面的设置一下:

启动stardict後,点击主界面右下角按钮进入设置页面->词典->声音->在启用声音前打钩,并将play改为aplay
[编辑] 安装设置Firefox浏览器


[编辑] 安装flash播放插件

到论坛ftp下载:http://ftp.ubuntu.org.cn/fideas/install_flash_player_9_linux.tar.gz
下载後安装:

tar -zxvf install_flash_player_9_linux.tar.gz
cd install_flash_player_9_linux/
sudo ./flashplayer-installer

[编辑] 安装中文语言支持(可选)

sudo apt-get install mozilla-firefox-locale-zh-cn mozilla-firefox-locale-zh-tw

[编辑] 安装插件

从这个地址安装多线程下载插件downthemall :

http://addons.mozine.cn/firefox/89/

从这个地址安装在线观看视频插件mediawarp :

http://addons.mozine.cn/firefox/116/

[编辑] 配置firefox/swiftfox

在址址栏中输入:

about: config

[编辑] 查看firefox/swiftfox当前所安装的插件

在址址栏中输入:

about: plugins

[编辑] 安装Swiftfox

Swiftfox是一款快速高效的第三方Firefox发行版,感兴趣的可以到其官方网下载http://getswiftfox.com/debian.htm 请注意选择与你CPU相对应的版本,以Pentium M/Celeron M CPU对应的版本为例,下载得到的软件包为 :swiftfox_2.0.0.3-1_pentium-m.deb,用下面的命令安装它

sudo dpkg -i swiftfox_2.0.0.3-1_pentium-m.deb

swiftfox的plugins目录位于

/usr/lib/swiftfox/plugins

或者使用通用目录

~/.mozilla/plugins/

[编辑] 安装支持BT/电驴/Gnutella1/Gnutella2等下载软件
[编辑] 安装BT下载软件

1.在Ubuntu中,打开终端,执行以下命令,或使用Synaptic,在其中搜索azureus并标记安装。

sudo apt-get install azureus

安装完成後的快捷方式在应用程序->Internet->Azureus)该软件支持Bit Torrent协议.

2.在Kubuntu中,打开终端,执行以下命令,或使用Adept_manager,在其中搜索ktorrent,并标记安装。

sudo apt-get install ktorrent

安装完成後的快捷方式在应用程序 -Internet - Ktorrent) , 该软件支持Bit Torrent协议
[编辑] 安装电驴下载软件

安装支持p2p/ftp/http的下载软件mldoneky. 在Ubuntu中,打开终端,执行以下命令,或使用Adept/Synaptic,在其中搜索并标记安装。

sudo apt-get install kmldonkey mldonkey-server

安 装过程中,需要用户配置是否在开机时自动启动

mldonkey-server(Launch MLDonkey at startup?

这时建议选择"是",以方便进行配置。若选择是以後,在接下来的配置过程中对大部份选项都用默认设置,不过在设置的帐号密码时,最好重新设置下。安装完mldonkey以後,若想开机不自行启动mldonkey-server,可以运行sudo dpkg-reconfigure mldonkey-server进行设置。

当 完成 kmldonkey mldonkey-server的安装以後,可以在firefox或者konqueror等浏览器的地址栏里输入http://127.0.0.1:4080/ 来直接访问mldonkey , 也可以使用快捷方式(应用程序 -> Internet -> KMLDonkey)

mldonkey缺省只支持电驴(edonkey2000)协议,若要支持BT/ftp/http/Gnutella等协议,需自行在配置菜单里打开。详细步骤请参考文档或自行摸索。

常见问题解答和发帖需知

大家有问题应该先搜wiki,再搜论坛,然后再提问。
http://wiki.ubuntu.org.cn/FrontPage

強烈推荐
新手入门指引

http://wiki.ubuntu.org.cn/%E6%96%B0%E6%89%8B%E5%85%A5%E9%97%A8%E6%8C%87%E5%BC%95
特别是其中的
Ubuntu常见问答

http://wiki.ubuntu.org.cn/Ubuntu%E5%B8%B8%E8%A7%81%E9%97%AE%E7%AD%94
Ubuntu桌面入门指南

http://wiki.ubuntu.org.cn/Ubuntu%E6%A1%8C%E9%9D%A2%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97


在发帖前请至少浏览一下快速设置指南
http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97


此外,这些问题是经常问的,你要问的是不是这些?

Q:几乎所有的文档都提到一个叫”命令行“(有时又是终端)的东西,到底在哪里呢?
命令行、在终端下、输入命令之类都是要你打开终端,然后输入命令(或者复制、粘贴)。你可以这样打开终端:
菜单-应用程序-附件-终端



Q:如何免费申请光盘?
A:

http://wiki.ubuntu.org.cn/%E7%94%B3%E8%AF%B7Ubuntu%E5%85%8D%E8%B4%B9%E5%85%89%E7%9B%98%E7%9A%84%E5%85%A8%E7%A8%8B%E6%8C%87%E5%AF%BC

Q: 如何添加输入法?
Q: 如何安装QQ?
Q:如何安装英汉辞典?
Q:系统说我没有权限?
Q:到哪里输入命令?
Q:我的windows分区哪里去了?
Q: root密码是什么?我好像不能以root身份登录?
A:你确信你看过快速设置指南?

Q:我重装了windows,现在进不了ubuntu了?
A:
http://wiki.ubuntu.org.cn/RecoveringUbuntuAfterInstallingWindows(到目前为止,此页面暂无内容)


Q:如何設置grub,使我的win98/2k/xp或ubuntu成為默認的操作系統?
A:
http://forum.ubuntu.org.cn/viewtopic.php?t=2451

Q:怎样用.tgz形式的源码安装软件?
A:
http://wiki.ubuntu.org.cn/CompilingEasyHowTo

你可能还想知道更多:
http://wiki.ubuntu.org.cn/CheckInstall
http://wiki.ubuntu.org.cn/InstallingCompilers
(到目前为止,以上页面暂无内容)

當然別忘了讀.tgz中的README




Q:如何安装xx软件?
A:一些最常用的软件的安装在下面有介绍:
http://wiki.ubuntu.org.cn/Ubuntu:Feisty
试试系统>管理>新立得(system>administration>Synaptic Package Manger)

Q: 如何配置网络连接?
Q: 如果忘记 root 帐号/主要帐号的密码, 要如何重新设定密码?
Q: 如何在 Windows 下读取 Linux 的分区(ext2, ext3)?
Q: 如何在登录进 GNOME 后就自动执行某些程序?
Q:如何以 root 身份在 Nautilus(文件管理器) 内浏览文件和目录?
Q:如何将 .rpm 文件转换成 .deb 文件?
A:
http://wiki.ubuntu.org.cn/Ubuntu:Feisty
这里都有,耐心找找

Q:我看了上面的了,也搜过主站点、论坛,也google过,但是问题并没有解决,这样该发帖了吧?
A:没错,是发帖的时候了,不过发帖前建议你参考一下下面的内容:


发帖时写好主题,简洁明了,切重要点。最好不要写紧急、求助、救命之类的词,也不要太笼统。像“救救我,我的ubuntu有问题!“就是一个糟糕的主题。

不要重复发帖,如果你觉得这个帖有必要在多个分区发,请选择一个帖作为主帖,其它的帖应该只包含一个转向主帖的链结,这样有助于回复的集中。

不要在一个帖里夹杂多个问题。

把帖发到合适的论坛。



如果你的问题解决了,知会一声,这样帮助你的人会比较高兴的,而且其他人也可以知道这一方法确实有效。如果有必要,你可以写个简要的小结。最好修改标题,加上(已解决)。这样大家都知道这里有经验可看。

其他选择:
现在有“ubuntu常见问题指南 发帖问问题前必看”,由zhuqin_83维护。大家可以参考。这里我随便谈一下自己的意见:“ubuntu常见问题指南发帖问问题前必看”收录的问题更为广泛全面,而本帖有意控制收录问题的数量,(我的野心是每一个第一次来的人都浏览一遍本帖,所以太长了就不好了。),可以说本帖收录的问题基本上都是经常在论坛看到的,有些是我曾多次作答的问题。此外,zhuqin_83维护比我更勤(寒暑假期间我也会经常维护,但其它时间段很少维护)。

除了在論壇提問外,還可以到ubuntu中文的irc聊天室提問。
irc很簡單,最基本的使用知道下面的就OK了
如果你使用firefox, 只要裝一個chatzilla插件就可以了。否則,你可以安裝xchat。
最基本的命令(開頭加/就是命令,不加/就是說話)

代码:

/server irc.freenode.net #連接服務器
/join #ubuntu-cn #加入頻道(聊天室)
/part #ubuntu-cn #離開
/msg foo Hi,Mr.foo #私聊


你也可以直接用瀏覽器訪問http://irc.ubuntu.org.cn

我用drcom在ubuntu7.04上网拉

Ubuntu6.10下安装DrCOM客户端的问题

悟空 发表于 2007-4-15 16:26:00 阅读全文(15) | 回复(0) | 引用通告(0) | 编辑



真的是很高兴,经过将近一天的时间,终于将Linux系统装上了自己的爱机。不容易啊,系统装好,紧接着就是上网的问题。由于学校是网通拨号的(通过 DrCOM客户端),自己不会弄,这下 Internet的长处就显示出来了,我狠命的在网络上找寻解决的方法,终于在不认识朋友的帮助下搞定了,哈哈哈,不要说的,真是太高兴了 ~~~~~~~~~~~~~!!!!!!

不知道你们会不会遇上同样的问题,在这就把安装过程共享出来吧,我自己测试过的,完全可以成功。(我安装的系统是Ubuntu6.10)

安装过程如下:

步骤1:下载drcom-client

你必须到这里:http://sourceforge.net/projects/drcom-client 下载drcom-linux-2.6那一项(第一个是win版,三和四是老版本linux使用的drcom-client)

步骤2:安装build-essential。

如果你有ubuntu-6.10-alternate-i386.iso这张盘的话就好办了。比如我的alternate盘ISO文件放在/home/woncomp/下,那么开启终端,挂载这张镜像:

$ sudo mount -o loop /home/woncomp/ubuntu-6.10-alternate-i386.iso /cdrom/

然后添加光盘介质为更新源

$ sudo apt-cdrom -m add

这样就可以直接安装build-essential

$ sudo apt-get install build-essential

但是如果你的盘是LiveCD的话(ISO文件为Ubuntu_6.10_20061221_1610.iso 或者文件名上有desktop字样)…………建议你去下载一张alternate或者DVD —_—!!!

我曾经尝试过手动安装这个包,但是复杂的依赖关系搞得我晕头转向,最终导致重新安装系统并且下载alternate光盘。。

如果你不能下载那些盘或执意要手动安装的话,我将包打包了,上传上来共享,里面包括:

linux-libc-dev_2.6.17-10.33_i386.deb

libc6-dev_2.4-1ubuntu12_i386.deb

libstdc++6-4.1-dev_4.1.1-13ubuntu5_i386.deb

g++-4.1_4.1.1-13ubuntu5_i386.deb

g++_4.1.1-6ubuntu3_i386.deb

dpkg-dev_1.13.22ubuntu7_all.deb

build-essential_11.3_i386.deb



下载地址:

注意其中的i386是根据你实际情况变化的,比如你的CPU要是AMD64位的你就需要下载AMD64版本。

另外注意版本号一定要完全匹配,不要以为更新的版本可以向下兼容。

下载了这些包一后放在一个自定义文件夹下比如 /tmp/debs/

然后cd到这个目录下执行 $ dpkg -i * 如果没有error你的build-essential就安装好了。



解压缩你最开始下载的drcom-client(假设drcom-client保存在/home/woncomp/目录下)

$ cd /tmp/

$ tar -zxf /home/woncomp/drcom-1.3.2.tar.gz

进入drcom的目录进行编译安装

$ cd drcom-1.3.2

步骤3:修改安装程序中login.c,logout.c,passwd.c.watchport.c

这4个文件最开始的include语句中有一句 #i nclude 改成 #i nclude

否则的话你还需要安装一个libssl包,这个包安装盘里可是没有的-_.-+

在drcom目录下执行

$ make

$ sudo make install

恭喜!到现在,你已经成功了70%

步骤4:修改drcom.conf

用你习惯的文本编辑软件编辑/etc/drcom.conf

我用的是gedit

$ sudo gedit /etc/drcom.conf

这是一个配置文件,设置了上网IP登陆帐号密码等等。

username=myusername ##填入你登陆的帐号

password=mypassword ##填入你的密码

mac=00:03:0D:xx:xx:xx ##你的网卡物理地址

nic0=10.98.xx.xx ##你的IP地址

nic1=

nic2=

nic3=

dnsp=202.106.0.20 ##你的首要DNS

dnss=202.106.196.115 ##你的次要DNS,如果没有的话,请和首要DNS填的一样

dhcp= ##你的DHCP服务器,如果有固定IP的话,这个可以不填

hostip=

servip=192.168.13.5 ##你的登陆IP,就是文章最开始提到的那个IP

hostport=

servport=

hostname=

winver=

winbuild=

servicepack=



如果你不知道物理地址什么的是多少的话,请在windows的 开始-运行 后输入cmd,在msdos命令行下输入ipconfig -all

编辑完drcom.conf并且保存之后,可以说安装和设置工作就大功告成了。

步骤5:日常的使用

今后每次开机之后,运行一次

$ sudo drcomd

然后就可以用

$ drcomc login

$ drcomc logout

来登入和登出

登入成功时候你可以看到“Login Seccess”字样



不过你也可以用更简单的方法:那就是直接在WEB网页也上登陆~~~~~~~!!!!!---------

在浏览器地址栏输入你的接入IP,就是你打开Dr.COM客户端后,输入用户名和密码的地方上面那个IP。

如果出现登陆窗口,你可以尝试在这里登陆你的帐号就OK。

历史

历史
==
当然,Xwindow有悠久的历史和传统,不过那不在我们讨论的范围。您要注意的有两点:

Xwindow 和 Xbox 中的“X”本意是不同的, X 只是 W 后的一个字母,差不多应该这样理解,Xwindow 是 Window 的接班人 (注意,Window不是Windows)

同理,不要把 Xwindow 说成是 Xwindows ,这明显是一个态度或者阶级感情问题……!

架构及原理
=====

众所周知,Xwindow是服务器-客户端架构。这样可以很好的解决远程图形界面的问题。稳妥起见,我给不太了解的弟兄复述一遍:
代码:

X客户端 ┐ ┌ 键盘
X客户端 ┼ X协议 ─ X服务器 ─ 硬件规范 ┼ 鼠标
X客户端 ┘ └ 显示器


Xwindow 由三部分构成:
----------------------------------

Xserver 服务器端:通过驱动程序(硬件规范)来管理硬件资源。
例如,移动鼠标:鼠标移动时,通过驱动程序(大多数的鼠标不需要专门的驱动程序,因为它们符合某一硬件规范,例如:有四个移动方向和三个键),向 Xserver 发送信息:
“向右移动200点,向上移动100点”(其实是向右上移动),“按下左键”……

Xserver 将这些鼠标移动的相关信息发送到“窗口管理器”,窗口管理器作出判断:
1. 上一次鼠标停止在根窗口内的点600,500
2. 向右200,向上100,现在鼠标位于窗口内的点800,600。
3. 窗口Firefox目前位于所有窗口的最上层, 800,600 这个点正是窗口Firefox的“关闭”按钮
4. 窗口管理器根据预设动作,将 “点击Firefox窗口的关闭按钮” 翻译为 “关闭窗口Firefox”
5. 窗口管理器向 Firefox 发送一个“退出”消息

这个过程中,Xserver控制显示子系统,在屏幕上显示鼠标的移动和点击



Xclient 客户端: 通过X协议,实现与Xserver 的交互。
例如 :
1. Xclient (假设Firefox) 接收Xserver的消息: 输入焦点在地址栏的范围内,“ubuntu.org.cn”,回车
2. Firefox根据预设动作,将这些消息识别为 “打开链接 ubuntu.org.cn”
3. Firefox向域名服务器请求 链接 “ubuntu.org.cn”。域名服务器将这个请求转换为 “http://ubuntu.org.cn/” 和 IP地址211.148.131.7,发送回 Firefox
4. Firefox将 “http://ubuntu.org.cn/”显示在地址栏(向Xserver发送请求,在地址栏位置显示这个地址)
5. Firefox向地址 211.148.131.7 请示显示页面。
6. Firefox 将服务器发送回的页面显示在主窗口中


Xprotocol 协议: Xserver和Xclient通信的规则



WM 窗口管理器:
------------------------------------------

一种特殊的Xclient。使用窗口管理器时,Xserver并不直接与其它Xclient通信,而是通过WM这个Xclient中转,一些消息会被拦截,因为它们被定义为WM的消息,例如拖动标题栏……

来具体了解下,“打开链接 ubuntu.org.cn”的消息:
输入焦点在地址栏的范围内,“ubuntu.org.cn”,回车
Xserver并不能直接判断焦点,而是这样:
Xserver 向WM发送位置和点击的信息,WM根据当前的“焦点策略”确定激活(最上层)的窗口Firefox ,Xserver将Firefox显示在最上层,高亮显示它的标题栏
在窗口Firefox内点击地址栏,或者 Ctrl+L,Xserver将位置信息发送给WM,WM再发送给Firefox
Firefox 判断当前焦点后,显示一个闪动的文字输入光标,将它通过WM发送给Xserver,Xserver在屏幕相应位置进行显示

那么“窗口管理器”到底能作些什么呢?其实它所作的一切都是管理窗口。例如:
1. 最上层的窗口会把其它窗口挡住
2. 它通常是一个“已激活窗口”,根据不同的“焦点策略”,窗口管理器确定被激活的窗口。激活窗口标题栏高亮显示,接收大部分的键盘消息和窗口内的鼠标点击消息。
3. 为了美观和容易分辨,大多数窗口都要有标题栏和边框。为了方便,标题栏上还要有一些按钮,比如:最小化,最大化,关闭(这些按钮是窗口管理器请求的小窗口)
4. 一个窗口可以在另一个窗口旁边显示,而不一定完全被遮挡。为了实现这一点,就要控制窗口显示的位置
5. 为了控制窗口的显示位置,需要将整个屏幕用座标描述,最好的办法是绘制一个填充整个屏幕的窗口,也就是根窗口。
6. 因为根窗口是最大的,所以它可以严严实实的遮挡任何窗口,为了避免这一点,根窗口永远在最底层。这很形象的说明了为什么它叫作“根窗口” ……root
7. 根窗口不一定只有一个,大多数的窗口管理器可以使用 “工作区” ,来切换显示多个根窗口
8. 根窗口固定位置上通常放置一些其它Xclient的窗口,例如底部面板,顶部面板,侧面板,程序启动图标
9. 面板上又可以放一些其它的Xclient窗口,如任务条,启动栏,菜单……任务条可以以图标显示正在运行的任务,还可以作其它的杂活,像自动挂载USB设备……







启动流程
====
我们知道 init 是linux的根进程,是所有进程的父进程。同样, xinit是所以Xwindow进程的根进程


--------------------------

startx 命令可以在命令行下启动图形界面。实际上,执行startx 命令时,通常是执行这一个命令
xinit /etc/X11/xinit/xinitrc -- /etc/X11/xinit/xserverrc
根据脚本 /etc/X11/xinit/xserverrc启动Xserver,并且根据脚本 /etc/X11/xinit/xinitrc 启动X进程,例如窗口管理器

事实上,startx启动时,脚本/etc/X11/xinit/xserverrc 以预设的参数运行程序 /usr/bin/X11/X
/etc/X11/xinit/xinitrc脚本则指向 /etc/X11/Xsession,然后依次启动/etc/X11/Xsession.d目录中的脚本,(您可以在用户配置文件 ~/.Xsession 中定义使用的WM,它的优先级高于全局配置文件)

startx 启动时,并没有一个要求填写用户名和密码的界面,这是因为启动的是/etc/X11/Xsession.d/gnome-session ,而不是GDM


---------------------------

Ubuntu系统可以自动进入图形界面,而不需要运行 startx 命令
在某些启动级别中,有 gdm的启动脚本,例如 : /etc/rc2.d/S13gdm
它能够启动 /etc/X11/default-display-manager 这个文件中的窗口管理器 /usr/sbin/gdm
gdm在启动时,会要求用户名和密码,也就是我们看到的登录界面




Xwindow的主要配置文件
==================

X服务器
---------------------------

X服务器的主要配置文件为 /etc/X11/xorg.conf

代码:

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen" 0 0
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
EndSection

服务器布局:已激活输入、显示设备的名称

Section "Module"
加载的模块

Section "Files"
X核心字体路径

代码:

Section "Screen"
Identifier "Default Screen"
Device "ATI Technologies, Inc. RV370 5B62 [Radeon X600 (PCIE)]"
Monitor "DELL E176FP"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1280x1024" "1152x864" "1024x768" "800x600" "720x400" "640x480"
EndSubSection

服务器布局中定义的显示设备。 包括 显卡、显示器、默认色深、可用分辨率

代码:

Section "Device"
Identifier "ATI Technologies, Inc. RV370 5B62 [Radeon X600 (PCIE)]"
Driver "fglrx"
Option "KernelModuleParm" "agplock=0"
VideoRam 131072
EndSection

名为 "ATI Technologies, Inc. RV370 5B62 [Radeon X600 (PCIE)]" 的 "Device"
Driver 为驱动。如果不能正常启用图形界面,首先尝试 “vesa”

…………

整个配置文件的结构是这样的:
代码:


├/Section "ServerLayout" 布局
│ ├Section "InputDevice" keyboard 键盘
│ ├Section "InputDevice" mouse 鼠标
│ │
│ └ /Section "Screen" 显示
│ ├Section "Monitor" 显示器
│ ├Section "Device" graphcard 显卡


├Section "Files" 字体
└Section "Module" 模块









X客户端
----------------------------

在/etc/X11/Xsession文件中可以发现下列内容
代码:

OPTIONFILE=/etc/X11/Xsession.options

SYSRESOURCES=/etc/X11/Xresources
USRRESOURCES=$HOME/.Xresources

SYSSESSIONDIR=/etc/X11/Xsession.d
USERXSESSION=$HOME/.xsession
ALTUSERXSESSION=$HOME/.Xsession
ERRFILE=$HOME/.xsession-errors

OPTIONFILE=/etc/X11/Xsession.options 设定X进程的启动参数 例如允许用户进程allow-user-xsession
Xresources 为X资源文件。许多程序保留了X接口,允许X服务器管理一些视觉选项,例如窗口内的字体,配色等
xsession为X进程,可以设置一些启动时自动运行的程序,也可以用来设定自己的窗口管理器(窗口管理器和桌面环境或者登录管理器是无关的)




字体
====

freetype渲染引擎
--------------------------
作为Xorg服务器的一个模块,freetype的功能包括读取Truetype字体信息,如大小、分辨率、编码等,并以之为依据渲染字体
freetype2.x相对于freetype1.x 增加了抗锯齿等功能
(/etc/X11/xorg/conf 的 Module 字段中,可以选择使用的字体渲染模块,建议使用默认的freetype )

freetype只负责渲染字体。而查找字体,则可以由X服务器、X客户端或者字体服务器来完成。
找到字体后,使用freetype引擎就地渲染


X服务器根据X客户端的请求(字符编码),查找字体并进行渲染,然后显示,我们称之为X核心字体

X客户端自行查找字体并进行渲染,X服务器只负责显示,我们称之为Xft字体
由于Xft字体的渲染在客户端完成,所以它可以动态的加载,而不需要随同X服务器一同启动

另外还有一种字体服务器模式,例如Xfs字体:当客户端请求字体时,X服务器将请求转发到字体服务器,由字体服务器查找字体,并使用freetype引擎渲染,将结果传回X服务器,X服务器进行显示……


X核心字体
---------------------
/etc/X11/xorg.conf 中可以配置X核心字体的搜索路径。

代码:

Section "Files"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection


当X客户端向X服务器请求显示文字的时候,X服务器会按上面列表的先后顺序查找字体
例如:显示中文时,如果第一个路径中的字体不包含中文,则查找下面的路径,直到发现中文字体
请把您偏好的字体放在最上的位置

要使安装的字体能够作为X核心字体使用,将字体的安装路径添加到上面的列表中,使用 mkfontscale、mkfontdir扫瞄文件夹中的字体,并生成索引,就可以了(建议使用 ttmkfdir 生成fonts.scale ,将其复制为fonts.dir)

字体的选择及显示风格,可以修改GTK1的配置文件,或者在Xresources文件中对程序单独进行定义

事实上,在我们的日常应用中,X核心字体环境并不常见,使用GTK1图形库的程序、某些类型的终端……Emacs也是这样一个老派的程序……不过Emacs23中刚刚加入了xft字体的支持Laughing






Xft字体
--------------------------
Xft字体相关选项在 /etc/fonts/fonts.conf 文件中配置

Xft字体可以使用命令 fc-cache 安装, 递归扫瞄以下目录中的字体(包括子文件夹中的字体),并建立字体缓存

/usr/share/X11/fonts
/usr/share/fonts
/usr/local/share/fonts
~/.fonts
(/etc/fonts/fonts.fonf ""字段)


多数支持GTK2或者Qt图形库的X客户端能够使用Xft字体渲染技术 (GTK2为Gnome使用的图形库,Qt为KDE使用的图形库。相对来说,GTK2图形库在程序的GUI设计中更加通用)

如果需要安装字体,只要把字体拷贝到以上任何一个目录, fc-cache -fv 刷新字体缓存即可 (参数 -f 为强制刷新,-v 显示过程)

fc-list 能够列出所有可用字体

字体的选择及显示风格,可以修改GTK2或者Qt的配置文件,建议使用图形界面配置(通常桌面环境中附带了相关程序,例如gnome-font-properties)

提纲:

欢迎来到Ubuntu部落!
Ubuntu的读音
Linux的读音,Linux与Ubuntu的关系
简介
相对于其它Linux系统,Ubuntu的特点

进入Ubuntu
安装
分区概念
图解安装过程
登录系统(图)
基本操作(图)
图形界面 字符界面切换 使用终端
命令提示符 # $
退出系统(图)

Linux基础
Shell概念
命令语法结构
运行程序

Linux系统介绍
路径
软件
配置方式
隐藏文件
文件类型
权限

享受命令行
shell bash fish
bash的键绑定 变量 fish简介
terminal gnome-terminal kterm rxvt mlterm
rxvt基本设置

Ubuntu/Debian系统结构
目录结构
启动流程
系统服务
配置文件

系统管理
文件管理
查找
权限、用户管理
压缩解压
进程、启动管理
磁盘挂载与硬件管理
………………


安装软件
apt
dpkg
源码包

Xorg Xserver Xclient
字体、输入法……服务
Gnome
FluxBox
XGL

Grub

内核
模块

应用软件 评测
多媒体
P2P
…………
网络服务

定制LiveCD

正则表达式

VI编辑器
模式
移动
编辑
查找、替换、匹配
寄存器、宏、多窗口……

结构化写作
docbook
RST

Shell scripts

Emacs


FAQ
盘符 文件系统分配不合理
Linux下病毒少是因为使用者少
版本繁多
在线升级
被攻击主机比率Linux占80%以上
软件安装过于繁琐
软件功能太弱
维护费用过高
磁盘碎片
…………



附录:
GNU的历史
Linux的历史
Linux不是Windows
完全用Linxu工作
提问的智慧
黑客道简史
Gnu文化
Gnome项目
………………
启动脚本对应的系统服务及其作用

VIM简介

VIM简介
-------
我们使用的大多数编辑器,都可以直接在编辑区输入字符,并且能够通过一些快捷键来完成一些控制功能,比如使用方向键移动光标,使用BackSpack或者Delete键删除文字,使用PgUp和PgDn翻页,使用Home和End来定位行首和行末……
而Vim是一个带模式的编辑器,同样的按键,在不同模式下,具有不同的功能定义。例如h、j、k、l在编辑模式下输入相应的字符,在普通模式下却相当于方向键的作用。
由于需要切换模式,Vim的使用起来略显繁琐。不过优点也显而易见:您只要把手安安稳稳的放在打字区就可以了,而不需要使用诸如方向键、排版键、小键盘 等需要挪开双手的键位,从而提高了您的效率和专注程度。事实上,Vim的前身Vi诞生的时候,键盘上还没有方向键、排版键和小键盘:)

命令
----
vi [文件名]
vim [文件名]
使用Vim编辑文件

vimtutor [语言]
vim教程,相当于使用Vim编辑器以只读模式打开教程文件。您无论对这个文件作了什么,都会在退出后恢复原来的样貌。与只读模式的区别在于,它不会没有眼色的提醒您,现在的状态为只读模式。您可以使用它作一些练习
您可以指定教程文件的语言,如果使用本地语言(ZH_cn)出现乱码,您可以尝试使用英语
vimtutor en

vimdiff [文件1] [文件2] [其它文件]……

配置文件
--------
Vim的全局配置文件为“/etc/vim/vimrc”,用户配置文件为“~/.vimrc”,“ " ”起始的行为注释行。我们提供的配置项,您直接加入配置文件就可以了
您可以先对Vim进行一些简单的配置:

"设定文件编码
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936

"开启语法加亮
syntax on
"配色风格
colorscheme pablo

"设定行距 GUI界面中生效
set linespace=4
"设定GUI选项
"set guioptions=gmrLtT m:菜单 T:工具栏
set guioptions=gmrLt

"设定Tab键缩进的空格数
set tabstop=4
"设定编辑器将多少空格视为一个缩进
set shiftwidth=4

"设定折叠方式
"set foldmethod=indent

"以下字符将被视为单词的一部分 (ASCII):
"set iskeyword+=33-47,58-64,91-96,123-128


模式介绍
--------
Vim常见的模式有:普通模式、插入模式、命令模式,另外我们也会经常用到可视模式。

Vim启动时进入普通模式;或者在其它模式下,按下Esc键,便可以回到普通模式。

使用“vimtutor en”命令进入教程,现在是普通模式。随便按几下“j、k、l、h”键,您会发现光标的位置发生改变。

按下“i”键,编辑器底部出现了“-- 插入 --”或者“-- insert --”,您进入了插入模式。随便按几下“j、k、l、h”,您会发现相应的字符出现在编辑区,现在还可以通过方向键来移动光标。
可能您觉得使用方向键移动光标不是什么问题,但是习惯了Vim后,您会认为方向键太麻烦了,简单不能容忍!好了,现在按下Esc键回到普通模式,我们又可以使用“j、k、h、l”来移动光标了。

在普通模式下,按下“:”键(也就是Shift+;),在编辑器底部出现了一个“:”,您进入了命令模式。在“:”后输入一个命令“new”,回车后,编辑器被分割为上下两栏。
为了方便起见,我们在命令前加一个“:”来表示命令模式下输入的命令,像这样
:vnew
一个命令能够以一些规则简化,上面的命令也可以写为这种形式
:vne
现在您的编辑区一定弄的四分五裂,您可以使用命令“:quit”来关闭当前栏,直接用简写就可以了
:q
这个命令是退出编辑器,如果编辑区被分成多栏,则是退出当前栏。
执行完一个命令(按下回车后),编辑器会自动回到普通模式。如果您想不执行当前命令,直接回到普通模式,您可以按下Esc键。

按下“v”键,您进入了可视模式,可以使用“j、k、l、h”移动光标,高亮选取文本 。
事实上,可视模式相当于高亮选取文本后的普通模式。
可视模式具有子模式,以行为单位进行选取的可视行模式,使用“V”键进入(也就是Shift+v);和以块为单位进行选取的可视块模式,使用“Ctrl+v”键进入。


模式切换
--------
好了,现在我们总结一下模式间切换的方法

其它模式==>普通模式
Esc

普通模式==>插入模式
i 在光标前插入 I 在行首插入
a 在光标后插入 A 在行末插入
o 在当前行之下新建行 O 在当前行之上新建行
r 替换当前字符 R 从当前字符开始替换

普通模式==>命令模式
:

普通模式==>可视模式
v 可视模式
V 可视块模式
可视块模式


移动
----
在普通模式中,您可以使用以下方式移动光标
j 向下
k 向上 k
l 向右 h l
h 向左 j

您可以使用其它更有效率的方式移动光标
w 下一个单词词首 W 将特殊符号视为单词的一部分
b 上一个单词词首 B 同上
e 单词末尾 E 同上

0 行首 ^ 行首文字(行首空格之后)
$ 行末

H 页面顶部
M 页面中部
L 页面底部


在其它模式中,您可以使用方向键移动光标,不过我们不推荐您那样作,您可以在配置文件中绑定插入模式下的功能键
noremap!
noremap!
noremap!
noremap!
………………
<作用范围> <键位> <功能>
其中,map!绑定的键盘映射,作用于所有模式;inoremap!绑定的映射,仅作用于插入模式。

数字参数
--------
您也可以使用数字参数,来重复执行。例如
100j 执行100次j键,向下100行

标记
----
您可以在当前光标处作一个标记,以便快速返回
m<标记名称> 定义标记。标记名称为一个字符
`<标记名称> 返回标记

mx 将当前光标处定义为标记 x
`x 返回标记 x



浏览
----
下翻一页 下翻半页
上翻一页 上翻半页
gg 文件首行
G 文件末行
<行号>G 按行号转到相应行
<1~100>% 按百分比转到相应的行数
zz 将光标所在行调整至页面中间
下卷一行
上卷一行

Tips:gg定位到文件首行,V进入可视行模式,G定位到文件末行,实现类似“全选”的功能。依次按下 g g V(Shift+v) G(Shift+g)

编辑
----
x 剪切当前字符
dd 剪切当前行
y 复制可视模式选取字符
yy 复制当前行
p 在光标后粘贴 P 在光标前粘贴
u 撤消
重做
逐字克隆上一行内容
逐字克隆下一行内容


寄存器操作
----------
Vim可以将不同字段剪切或复制到不同寄存器中,您可以从不同寄存器中取出内容后粘贴
"<寄存器名称> 按下“"”键和另一个字符键,便可以定义一个寄存器。例如:
"a "1
定义寄存器后直接进行操作
"ayy 将当前行复制到寄存器 a 中
"ap 将寄存器 a 中的内容粘贴到光标之后

Tips:通常情况下,寄存器 + (" +(Shift+=))对应X下的剪贴板。您在其它程序中复制的内容,可以使用 "+p 粘贴到Vim中;您在Vim中,可以使用 "+y 将内容复制到剪贴板,再粘贴到其它程序中

没有指定寄存器时,Vim使用“无名寄存器”存储内容


搜索和替换
----------
按下“/”键,编辑器底部会出现“/”符号,接着输入字符串,便可以进行搜索
/ 向下搜索 ? 向上搜索
n 搜索下一个
N 搜索上一个

:s/<源字符串>/<目标字符串> 将源字符串替换为目标字符串
:s/<源字符串>/<目标字符串>/g 替换当前行中所有符合条件的字符串
:<行号1>,<行号2>s/<源字符串>/<目标字符串>/g 在指定行中进行替换
:%s/<源字符串>/<目标字符串>/g 全文替换

正则表达式
----------
在搜索和替换时,可以使用正则表达式进行匹配



--
您可以将一系列的操作录制为一个宏,然后执行它
q<宏名称> 开始录制宏。宏名称为一个字符
q 录制中按下“q”键,结束录制

@<宏名称> 执行宏



插入模式下的快捷键
------------------
<寄存器名称> 输入指定寄存器内容
<2个字符> 输入二合字符
<数字> 通过数字编码输入字符
<键位> 输入键位的名称

键绑定、缩写
------------
前面我们已经向您介绍了键绑定,
map!
尖括号及其中的内容,为Vim配置文件的约定,分别描述了按键和功能,表示将功能编写到按键上。如果绑定的只是普通字符,例如:
map! xxx XXXXX
表示将“XXXXX”绑定到“xxx”上。当您键入“xxx”时,编辑器会自动替换为“XXXXX”。

如果您只是想将字符串绑定为缩写,方便输入,我们建议您使用“iabbrev”来绑定。例如:
iabbrev ubt Ubuntu
在插入模式下键入“ubt”,编辑器会自动替换为“Ubuntu”。
您可以将“iabbrev”命令缩写为“iab”,例如:
iab ubt Ubuntu

以上命令,您可以直接在命令模式下输入,临时启用。也可以写入配置文件,永久启用。


单词补全
--------
下一个匹配项
上一个匹配项


您可以在配置文件中定义补全的方式
"自动补全方式:(使用逗号分隔)
set complete=k,.

" . 当前文件
" b 已被装缓冲区,但是没有在窗口内的文件
" d 在当前的文件中定义和由#include包含进来的文件
" i 由#include包含进来的文件
" k 由dictionary选项定义的文件
" kfile 名为{file}的文件
" t 标记(tags)文件
" u 没有载入的缓冲区
" w 在其他窗口中的文件

"设定自动补全字典 :
set dictionary=path



命令模式
--------
前面介绍了普通模式和插入模式。我们发现,普通模式主要用来浏览和修改文本内容,而插入模式则用来向文本中添加内容。
而命令模式则多用于操作文本文件(而不是操作文本文件的内容),例如保存文件;或者用来改变编辑器本身的状态,例如设定多栏窗口、标签或者退出编辑器……
w(rote) 将改变写入文件
:w
q(uit) 退出编辑器
:q

某些情况下,编辑器会阻止命令的执行。例如您修改了文件,而没有保存,那么您使用“:q”命令退出时,编辑器就不会执行这条命令,而是提醒您保存文件。
这个时候,您可以在命令末尾追加“!”来强制执行命令
:<命令>!
例如“:q!”,即便您没有保存已修改的文件,使用此命令,编辑器也会放弃修改而强行退出

以“!”引导一个Shell命令,则可以从Vim临时切换到Shell中,执行一个Shell
:!<命令>
例如“:!ls”


多栏窗口
--------
您可以使用以下命令,将当前窗口水平分为两栏
:new
新建一栏空白窗口
:split
将当前文件分两栏显示

同理,您可以使用下列命令,将当前窗口水平分为两栏
:vnew
:vsplit

先按下键,再按下方向键“j、k、l、h”,您可以切换到其它栏;在当前栏中使用“:q”命令,可以退出当前栏,也可以使用其它命令,对当前栏作出修改
如果您希望当前命令在所有栏中生效,您可以在命令的末尾追加“all”
:<命令>all
例如:
:qall
如果您希望这条命令强制执行,那么“!”位于命令的最末
:<命令>all!
例如:
:qall! 强行退出所有栏窗口


标签页
------
Vim在7以后的版本,开始支持标签页的功能
:tabnew 新建一个标签
:tabnext 转到下一个标签
:tabprevious 转到上一个标签

多数情况下,您可以使用鼠标点击标签进行切换。

搜索

搜索
----
whereis <程序名称>
查找软件的安装路径
-b 只查找二进制文件
-m 只查找帮助文件
-s 只查找源代码
-u 排除指定类型文件
-f 只显示文件名
-B <目录> 在指定目录下查找二进制文件
-M <目录> 在指定目录下查找帮助文件
-S <目录> 在指定目录下查找源代码

locate <文件名称>
在文件索引数据库中搜索文件
-d <数据库路径> 搜索指定数据库
updatedb
更新文件索引数据库


find [路径] <表达式>
查找文件
-name <表达式> 根据文件名查找文件
-iname <表达式> 根据文件名查找文件,忽略大小写
-path <表达式> 根据路径查找文件
-ipath <表达式> 根据路径查找文件,忽略大小写
-amin <分钟> 过去N分钟内访问过的文件
-atime <天数> 过去N天内访问过的文件
-cmin <分钟> 过去N分钟内修改过的文件
-ctime <天数> 过去N天内修改过的文件
-anewer <参照文件> 比参照文件更晚被读取过的文件
-cnewer <参照文件> 比参照文件更晚被修改过的文件
-size <大小> 根据文件大小查找文件,单位b c w k M G
-type <文件类型> 根据文件类型查找文件。b 块设备 c 字符设备 d 目录 p 管道文件 f 普通文件 l 链接 s 端口文件
-user <用户名> 按归属用户查找文件
-uid 按UID查找文件
-group <群组名> 按归属群组查找文件
-gid 按GID查找文件
-empty 查找空文件




grep <字符串>|"<正则表达式>" [文件名]
在文件中搜索内容


--------
echo clear halt reboot shutdown alias chroot export


用户管理
--------
su [用户名]
切换到其它用户,默认切换到root用户。提示密码为将切换用户密码
-f 快速切换,忽略配置文件
-l 重新登录
-m ,-p 不改变环境变量
-c <命令> 切换后执行命令,并退出切换



sudo [命令]
以其它用户的身份执行命令,默认以root的身份执行。提示密码为当前用户密码
-u <用户名|UID> 执行命令的身份
-l 显示自己的权限

……useradd userdel…… finger whois
passwd
chsh
usermod


进程管理
--------
ps
ps aux | grep
pstree
pkill
pgrep kill
skill nohup xxx
top
fg bg jobs renice at

nohup <命令>
将任务提交到后台,输出附加到“~/nohup.out”文件。即便用户退出登录,提交的命令仍继续执行。

<命令> &
在后台执行此命令,如果用户退出登录,则命令停止执行

磁盘和内存管理
--------------
mount umount

df

free
sync
fdisk cfdisk mkfs hdparm mkisofs


网络和硬件管理
--------------
ifconfig

ifconfig <网卡界面> up|down

hostname
ping telnet ssh netstas
lsmod lspci lsusb /proc/cpuinfo time
modprobe

系统管理

系统管理
========

一些细节
--------
Linux是大小写敏感的系统,所有的命令、路径、参数、变量……都区分大小写
您可以使用TAB键补全您的命令,无论任何时候,多按几次TAB总会有所帮助
Shell的功能键能够协助您更高效的编辑命令,请熟悉其键绑定,尽量使用它

命令由命令名、分隔符、参数、操作对象构成

命令名标识命令的功能,例如cp(copy)、mv(move)、rm(remove)……
有些命令包含一些子命令,您可以认为它的命令名由两个单词构成,例如“apt”软件包管理系统:
apt-get install 安装一个软件
apt-get remove 删除一个软件

分隔符为空格,多个连续的空格视为一个空格,下面两个命令相同:
cp a b
cp a b
有一些特殊符号也属于分隔符,例如管道(“|”)、重定向(“>”、“>>”、“<”)、后台运行(“&”)、序列执行(“&&”、“;”)。使用这些符号时,您不需要再使用空格作为分隔符,例如:
ls -al|less
我们写为以下形式,只是为了您更容易的阅读它:
ls -al | less

参数可以精细调节命令的行为,以“-”引导,通常为参数名的首字母。许多软件都可以使用“-h”参数来阅读使用说明,例如:
apt-get -h
您也可以使用参数的全名,一般以“--”引导,例如:
apt-get --help
多数命令中,使用“-”引导多个字符,将会被视为多个参数,例如:
apt-get -help
系统会解读为以下命令
apt-get -h -e -l -p
少数命令的参数,不需要以“-”引导,或者使用“-”引导参数全名,例如:
ps aux
/etc/init.d/gdm start
mplayer -loop xxx

当您需要对多个对象进行操作时,您可以使用空格分隔符将它们隔开:
touch 1 2 3 4 5 6
使用空格分隔的多个对象,视为一个整体,作为命令的一个操作对象:
mv 1 2 3 4 5 6 /home/
这个命令把“1 2 3 4 5 6”作为一个操作对象,移动到另一个操作对象,“/home/”目录

递归 表示在子层次中重复相同操作。例如递归复制某目录,不但复制当前目录及其下的所有文件;而且对当前目录的子目录,也进行递归复制的操作。


格式约定
--------
使用“[]”表示可选项,实际输入为方括号中的内容,例如
ls [-al]
ls是必须的,参数不需要以方括号包围起来。
使用“<>”表示必需项,实际输入为尖括号中的内容
使用“|”表示“或”,以“|”分隔的项目不能同时使用,例如
tar [-z|j c|x vf] <归档文件> [源文件]
参数通常紧跟命令名,除非必要,在命令格式中,我们通常省略它们


系统信息
--------
uptime
联机信息-时间,显示如下

11:27pm up 9 days, 7:12, 3 user, load average: 0.07, 0.12, 0.14
当前系统时间 系统运行时间 当前在线用户数 系统负荷 1分钟前 5分钟前 15分钟前


w
联机信息-已登录用户,显示如下

01:04:10 up 1:34, 2 users, load average: 0.25, 0.16, 0.11
uptime 信息

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user tty1 192.168.0.1 23:30 1:33 0.14s 0.12s -bash
用户名 登录方式 来源地址 登录时间 发呆时间 资源占用 当前任务

Tips:w [用户名称] : 显示某一用户相关信息


who
联机信息,常用参数
-r 运行级别


whoami
显示当前用户名


last
最近用户登录信息
-<数字> 使用数字作为参数,控制显示条目。例如
last -10 显示10条纪录


uname
系统信息
-s 内核名称(默认参数)
-a 全部
-p CPU信息
-n 主机名
-r 内核发行信息(版本号)
-v 内核版本信息


date
显示、设定系统时间
-u 显示格林尼洛时间(UTC)
MMDDhhmm[[CC]YY][.ss] 设定时间,需要管理员权限。例如: date 12292359
MM 月份 DD 天数 hh 小时 mm 分钟 CC 年份前两位 YY 年份后两位 ss 秒钟
秒钟、年份为可选,例如: date 122923592006.59
+[%X]设定显示格式,以下为date默认输出格式:
date +%Y年\ %m月\ %d日\ %A\ %H:%M:%S\ %Z
格式控制
%n 换行
%t 制表符
小时
%H(00~23) %I(01~12) %k(0~23) %l(1~12) %p(AM|PM)
分、秒
%M分钟(00~59)
%S秒(00..61)
%T(hh:mm:ss) %r(hh:mm:ss [AM|PM])
%s 从1970年1月1日00:00:00 UTC到目前为止的秒数
%X(%H:%M:%S)
%Z时区
星期
%a(Sun~Sat) %A(Sunday~Saturday) %w : 一周中的第几天 (0..6)
年份
%Y(0000~9999) %y(00~99)
月份
%m(01~12) %b %h(Jan~Dec) %B(January~December)
日期
%d(01~31) %j(001~366)
%x(本地格式mm/dd/yy) %D(mm/dd/yy) %c
一年中的第几周
%U(00~53)以Sunday为一周的第一天 %W(00~53)以Monday为一周的第一天


cal
显示日历


文件管理
--------
链接
为当前文件建立在其它路径中的访问方法。例如将系统中其它位置的可执行文件,链接到“/usr/local/bin”目录下,使用命令调用。

ls [路径]
显示当前目录文件列表
--color 不同属性以不同颜色显示(默认参数)
-a 全部显示
-i 显示inode值
-l 详细信息
-F 显示文件类型后缀 目录/ 链接@ 可执行文件* 端口文件= 管道文件| >
-A 显示隐藏文件
-R 递归显示子目录文件列表
-S 按文件大小排序
-t 按修改时间排序
-u 按访问时间排序
-d 只显示目录,不递归显示目录下的文件


cd [目录路径] | [特殊路径]
切换目录
目录路径可以使用绝对路径或者相对路径
特殊路径:
~ $HOME目录(默认值)
- 上一次目录
.. 上一级目录
. 当前目录

Tips:您可以通过修改“/etc/environment”文件,来定义$CDPATH变量,设定“cd”命令的搜索路径。


pwd
显示当前路径


file <文件名>
显示文件类型
-i 显示mime类型


du [文件名]
计算文件或目录空间占用
-h 人性化显示。自动以G、M、K为单位显示占用空间大小
-l 重复计算硬链接文件大小
-L 计算符号链接文件大小
-a 显示当前目录子目录中的文件
-c 显示文件数


less <文件名>
浏览文件,使用VI和Emacs两种风格的键绑定。以下为VI风格键绑定
Ctrl+f(orward) 向下翻一页 Ctrl+d(own) 向下翻半页
Ctrl+b(ackward) 向上翻一页 Ctrl+u(p) 向上翻半页
/ 查找 q(uit) 退出


touch <目标文件>
创建一个空文件


cp <源文件> <目标目录|文件>
将源文件复制为目录文件,或者将源文件复制到目标目录。多个源文件使用空格分隔
cp <源目录> <目标目录>
将源目录复制到目标目录中,如果复制多个源目录,需要使用“-R”参数
-a 相当于-dpr参数
-d 保留链接
-f 强制复制,覆盖目标文件
-i 覆盖时询问用户
-p 保留修改时间和访问权限
-r -R 递归复制(目录=>目录)
-l 创建链接
-v 显示过程


rm <目标目录|文件>
-r -R 递归删除
-f 强制删除(无需确认,直接删除。慎用!)
-i 交互式删除(询问用户)


rmdir <目标目录>
删除目录时,建议您使用“rm -r”命令


mv <源文件> <目标目录|文件>
相当于cp后删除源文件,也可以作为“重命名”使用。
mv <源目录> <目标目录>
-r -R 递归


ln <源文件> <链接>
-s 符号链接
-f 强制链接,覆盖目标文件
-i 覆盖前询问用户


文件操作
--------
nano
一个简单轻便的文本编辑器,使用Emacs风格的键绑定。


split <源文件> [目标文件名前缀]
将源文件按一定规则分割成若干个目标文件。默认文件名前缀为“x”
-<行数> 按行数分割文件
-l <行数> 同上
-b <字节> 按大小分割文件。可以使用b、k、m作单位,不指定单位的情况下,默认单位为b
-C <字节> 按大小分割文件,并尽量保持每行的完整

示例:
split -C 100k file.split x


cat <文件名>
输出文件内容。用空格分隔多个文件名,可以将多个文件内容连接到一起输出。使用重定向合并为一个文件
-n 在输出中添加行号
-b 在输出中添加行号,空行不编号
-s 将两行或以上的空行,合并为一个空行

示例:
cat xaa xab xac > file.split


sort [-o <输出文件>] [-t <分隔字符>] [+<起始字段> - <结束字段>] [文件]
对文本内容排序
-m 合并文件
-c 检查文件是否已按规则排序
-b 忽略行首空格字符
-u 忽略内容重复行
-f 忽略大小写
-l 忽略非打印字符
-M 作为月份比较
-d 按字典顺序排序,按照字母、数字、空格、制表符排序
-r 逆序输出


more
查看文件内容,我们建议您使用“less”


diff <文件名>
比较文件


cksum [文件名]
计算文件的CRC值。不指定文件名则从标准输入设备读入数据,例如:
echo xxx | cksum

md5sum [文件名]
计算文件的md5值。同上


权限管理
--------
一个文件主要包含下列属性,“ls -l”
- rwx rwx rwx user group date filename
111 101 101
其中,第一组为归属用户的权限,第二组为归属群组的权限,第三组为其它用户群组的权限。user为文件的归属用户,group为文件的归属群组,date为日期信息,filename为文件名。
可以使用3位的二进制数字来描述一组权限,某一权限对应的数字为1,则表示具有该种权限,为0,则不具有该种权限。
对于文件夹,必须拥有它的可执行权限,才能够使用“cd”命令进入该文件夹;拥有可读权限,才能够使用“ls”命令查看该文件夹的文件列表。
root用户拥有最高权限。

使用二进制数字来描述一组权限,虽然非常直观,但是3组权限需要用9位数来表示,使用不够方便。因此我们将三组权限使用3位8进制数字来表示。它们的对应关系为:
r 100 4
w 010 2
x 001 1
将这三位8进制数字相加的结果,就可以表示该组权限的具体内容,例如:
7=4+2+1=rwx
5=4+1=rx
755=4+2+1 4+1 4+1=rwx r-x r-x

我们还可以使用“a、u、g、o”表示归属关系,使用“=、+、-”表示权限变化,使用“r、w、x”表示权限内容,
a 所有用户 u 归属用户 g 归属群组 o 其它用户
= 具有权限 + 增加权限 - 去除权限
r 可读权限 w 可写权限 x 可执行权限
例如:
a+x 给所有用户增加可执行权限
go-wx 将归属群组和其它用户的可写、可执行权限去掉
u=rwx 归属用户具有可读、可写、可执行权限


chmod <权限表达式> <文件|目录>
改变文件的权限。权限的表达式可以使用三位8进制数字表示,或者使用+-=来表示
-R 递归
-v 显示过程
-c 类似“-v”,仅显示更改部分
--reference=<参考文件或目录> 以指定文件为参考改变权限
示例:
chmod -R a+x path
chmod -Rv 755 path


chown <归属用户>[:归属群组] <文件|目录>
改变文件的归属用户。可以使用用户名或者UID
-R 递归
-v 显示过程
-c 类似“-v”,仅显示更改部分
--reference=<参考文件或目录> 以指定文件为参考改变权限
示例:
chown user:admin path
chown -R user.admin path
chown user path

chgrp <归属群组> <文件|目录>
改变文件的归属群组。可以使用群组名或者GID
参数同上


SUID、SGID、Sticky bit
某些情况下,需要以可执行文件归属用户的身份执行该文件,可以为该文件设置SUID。同样,设置SGID能够以该文件归属群组的身份执行它。
例如:用户自行设定密码。
出于安全方面的考虑,“/etc/shadow”只能由root用户直接修改。
-rw------- root root /etc/shadow
这个时候,可以为程序“/usr/bin/passwd”设置SUID,当普通用户执行“passwd”命令时,便能够以该程序归属用户root的身份 修改“/etc/shadow”文件。而“passwd”程序自身带有身份验证机制,不能通过验证时拒绝执行,从而保证了安全。
ls -l /usr/bin/passwd
-r-s--x--x root root /usr/bin/passwd
我们发现,归属用户的可执行权限位使用“s”,表示SUID。同样,归属群组的可执行权限位使用“s”,表示SGID。
任何用户或群组都拥有“其它用户”的权限,所以不需要以“其它用户”身份执行文件,其它用户的可执行权限位便不会出现“s”。该权限位可能出现的属性为“t”,也就是粘着位Sticky bit。
ls -ld /tmp
drwxrwxrwt root root /tmp
粘着位表示任何用户都可能具有写权限,但只有该归属用户或root用户才能够删除

SUID、SGID、Sticky bit也可以像权限一样,使用一个八位数表示,如下:
4 SUID
2 SGID
1 Sticky bit
通过在“chmod”命令中使用四个八位数的表达式,如“4755”,用第一位表示SUID、SGID、或Sticky bit,便能够为文件设置这些特殊权限。
示例:
chmod -R 4755 path


lsattr [路径]
查看文件的特殊属性
-a 全部显示
-d 只显示目录
-R 递归

特殊属性包括:
 a:仅供附加用途
 b:不更新最后存取时间
 c:压缩后存放
 d:排除在倾倒操作之外
 i:不得任意更动文件或目录
 s:保密性删除文件或目录
 S:即时更新文件或目录
 u:预防以外删除

chattr <+|-|=> <路径>
-R 递归
-V 显示过程


压缩解压
--------
tar -c|x|u|r|t[z|j][v] -f <归档文件> [未打包文件]
将多个文件打包为一个归档文件,可以在打包的同时进行压缩。支持的格式为tar(归档)、gz(压缩)、bz2(压缩率更高,比较耗时)
-c 创建
-x 解包
-u 更新
-r 添加
-t 查看
-d 比较压缩包内文件和文件
-A 将tar文件添加到归档文件中

-z 使用gz压缩格式
-j 使用bz2压缩格式

-v 显示过程
-f <文件名> 归档文件的文件名
[未打包文件] 创建、更新时必须填写

示例:
tar -czvf xxx.tar.gz xxx/ xxx1 xxx2 xxx3 多个待打包文件以空格分隔
tar -czvf xxx.tar.gz /home/user/xxx/ 使用绝对路径打包,解包也使用绝对路径
tar -xzvf xxx.tar.gz 按相对路径解包到当前目录下,或按绝对路径解包
tar -czvf xxx.tar.gz xxx | split -b 1m 打包后,使用split分割为1m大小的多个文件

其它参数
-P 使用绝对路径压缩时,保留根目录“/”
-W 校验
-p 还原文件权限
-w 询问用户
--totals 统计
-T <表达式> 处理符合条件的文件
-X <表达式> 排除符合条件的文件


zip [参数] <压缩包> <源文件>
使用zip格式打包文件
-r 递归,将指定目录下的所有文件和子目录一并处理
-S 包含系统和隐藏文件
-y 直接保存符号连接,而非该连接所指向的文件
-X 不保存额外的文件属性
-m 将文件压缩并加入压缩文件后,删除源文件
-<压缩级别> 1~9,数字越大,压缩率越高
-F 尝试修复已损坏的压缩文件
-T 检查备份文件内的每个文件是否正确无误
-q 不显示指令执行过程

-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件
-u 更新压缩包内文件
-f 更新压缩包内文件。如果符合条件的文件没有包含在压缩包中,则压缩后添加

-$ 保存第一个被压缩文件所在磁盘的卷标
-j 只保存文件名称及其内容
-D 压缩文件内不建立目录名称
-i <表达式> 压缩目录时,只压缩符合条件的文件
-x <表达式> 排除符合条件的文件
-n <文件名后缀> 排除指定文件名后缀的文件

-b <缓存路径> 指定临时文件目录
-d <表达式> 从压缩文件内删除指定的文件

-t <日期时间> 把压缩文件的日期设成指定的日期
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同

-A 调整可执行的自动解压缩文件
-c 替每个被压缩的文件加上注释
-z 替压缩文件加上注释

-k 使用MS-DOS兼容格式的文件名称。
-l 压缩文件时,把LF字符置换成LF+CR字符。
-ll 压缩文件时,把LF+CR字符置换成LF字符。


unzip [参数] <压缩文件> [压缩包中将被释放的文件]
解压zip压缩包文件
-P <密码> zip压缩包的密码
-d <路径> 指定解压路径
-n 解压缩时不覆盖原有文件
-f 覆盖原有文件
-o 不经询问,直接覆盖原有文件
-u 覆盖原有文件,并将压缩文件中的其他文件解压缩到目录中
-l 显示压缩文件内所包含的文件
-t 检查压缩文件是否正确
-z 显示压缩包注释
-Z unzip -Z等于执行zipinfo指令

-j 不处理压缩文件中原有的目录路径
-C 压缩文件中的文件名称区分大小写
-L 将压缩文件中的全部文件名改为小写
-s 将文件名中的空格转换下划线
-X 解压缩时保留文件原来的UID/GID

-q 执行时不显示任何信息
-v 执行是时显示详细的信息
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
-a 对文本文件进行必要的字符转换
-b 不要对文本文件进行字符转换

-x <表达式> 处理里排除压缩包中的指定文件
-M 将输出结果送到more程序处理


7z|7za <子命令> [参数] <压缩包> [文件]
子命令
a 添加
d 删除
e 解压
x 带路径解压
l 列表查看
t 测试
u 更新
参数
-m<压缩方式>
-m0=<压缩算法> 默认使用lzma
-mx=<1~9> 压缩级别
-mfb=64 number of fast bytes for LZMA = 64
-md=<字典大小> 设置字典大小,例如 -md=32m
-ms= 是否固实压缩
-o<输出目录> 设置输出目录
-p[密码] 使用密码
-r[数字] 递归,使用数字定义递归子目录的深度
-sfx[<模块名称>] 使用自解压模块
-si 从标准输入设备读入数据
-so 将数据写入标准输出设备
-y 所有询问均回答Yes
-w<工作目录>


rar <子命令> [参数] <压缩包> [文件|文件列表|路径]
子命令
x 带路径解压
e 解压到当前目录
a 将文件添加到压缩包内
d 从压缩包中删除文件
u 更新压缩包内文件
f 更新压缩包内文件,并添加压缩包内不存在的文件
m 添加并删除源文件
r 修复
l 列表查看压缩包内文件信息 lt 更详细信息 lb 简短信息
c 添加压缩包注释
cf <文件名> 将文件内容添加为注释
cw <文件名> 将注释保存为文件
t 测试压缩包
rr 添加恢复纪录
rv 恢复到文件
参数
-p<密码> 设置密码
-m<0~5> 设置压缩级别,数字越大,压缩级别越高