2007年6月5日星期二

sed 命令简介 - 命令





sed 命令简介 - 命令

1. sed 命令简介

Sed(a stream editor)是流线型、非交互式编辑器。它允许你执行与vi编辑器里一样的编辑任务。Sed 程序不是与编辑器交互式工作的,而是让你在命令行里敲入编辑的命令,给文件命名,然后在屏幕上查看命令输出结果。

2. sed 如何工作

sed 编辑器按一次处理一行的方式来处理文件,并把输出送到屏幕上。

3. sed 可以用寻址的方式来决定想要编辑哪一行。

4. sed 命令和选项

选项 功能

a\ 在当前行上添加一个文本行或者多个文本行

c\ 用新闻本改变(取代)当前行里的文本

d 删除行

i\ 在当前行之前插入文本

h 把模式空间内容复制到一个固定缓存

H 把模式空间内容添加到一个固定缓存

g 得到固定缓存里所有的并复制到模式缓存,重写其内容

G 得到固定缓存的内容并复制到模式缓存,添加到里面

I 列出不打印的字符

p 打印行

n 读下一输入行,并开始用下一个命令处理换行符,而不是用第一个命令

q 结束或退出sed

r 从一个文件读如行

! 把命令应用到除了选出的行以外的其他所有行

s 把一个字串替换成另一个替换标志

g 在一行上进行全局替换

p 打印行

w 把行写到一个文件中

x 用模式空间的内容交换固定缓存的内容

y 把一个字符转换成另一个(不能和整则表达式元字符一起使用)


5、 sed元字符

基本上,grep和vi使用的元字符都可以用在sed中,&是特例:

& :保存搜索串以便可以记在替换串里

e.g.: s/love/**&**/

&号代表搜索串。串love将被星号包围的自身所替代;即love变成**love**


6 sed实例

1> 打印:p命令

sed '/north/p' datafile

默认输出所有行,找到north的行重复打印

sed –n '/north/p' datafile

禁止默认输出,只打印找到north的行

2> 删除:d命令

sed '3d' datafile

删除第三行,其余行输出到屏幕

sed '3,$d' datafile

从第3行到最后一行都删除,将剩余部分输出到屏幕

sed '/north/d' datafile

将含有north的行删除,其余输出到屏幕

3> 替换:s命令

sed 's/west/north/g' datafile

解释:找到datafile中的所有west并替换成north,将替换后的内容输出到屏幕。

sed 's/[0-9][0-9]$/&.5/' datafile

解释:在替代串里的&字符代表在搜索串中真正找到的。

每个以两个数字结尾的行都被它自己取代,且要在后面加上.5

sed -n 's/Hemenway/Jones/gp' datafile

解释:所有的Hemenway所在的位置都用Jones来取代,而且只有改变的行被打印。

-n与p命令选项相结合来禁止默认输出。g代表全局替换

sed -n 's/\(Mar\)got/\1ianne/p' datafile

解释:模式Mar被封装在括弧里且在一个专用寄存器里存为标记1。

在替换串里它将被引用做\1。然后用Marianne替代Margot。

sed 's#3#88#g' datafile

解释:s命令后面的字符是搜索串和替换串之间的分界符。

默认的分界符是一个正斜杠,但也可以改变(只有使用s命令时)。

无论s命令后面跟什么字符,它都是新的串分界符。

当搜索包含一个正斜杠的模式,如路径或生日时,这种技巧可能有用

4> 被选中的行的范围:逗号

sed -n '/west/,/east/p' datafile

打印在west和east之间的模式范围内所有行。如果west出现在east之后,

则打印从west到下一个east或者到文件末尾的行,无论哪种情况先出现都可以。

sed '/west/,/east/s/$/**VACA**/' datafile

解释:对于在模式west到east范围内的行,行末尾将用**VACA**来取代。

5> 多次编辑 -e 选项

sed -e '1,3d' -e 's/Hemenway/Jones/' datafile

-e选项允许多次编辑。不同的编辑顺序可能导致不同的结果。

例如,如果两个命令都执行了替换,第一次替换可能影响第二次替换。

6> 从文件中读取:r命令

sed '/Suan/r newfile' datafile

解释:r命令从newfile中读取内容,将内容输出到Suan的后面。

如果datafile中Suan出现的次数不只一次,则分别放到Suan的后面。

7> 写入文件:w命令

sed -n '/north/w newfile' datafile

解释:w命令把指定的行写入到一个文件。

本例中所有的包含north的行写入到newfile中。

等同于sed -n '/north/p' datafile >newfile

8> 添加:a命令

$ sed '/north/a\

> ---->THE NORTH SALES DISTRICT HAS MOVED<-----' datafile


northwest NW Charles Main 3.0 .98 3 34

---->THE NORTH SALES DISTRICT HAS MOVED<-----

解释:红颜色的内容是要输入的内容。a\命令后面跟要添加的内容。

奇怪的是a\后面必须另起一行,在输入要添加的内容,否则会提示解析错误。

9> 插入:i命令

$ sed '/north/i\

> ---->THE NORTH SALES DISTRICT HAS MOVED<-----' datafile


---->THE NORTH SALES DISTRICT HAS MOVED<-----

northwest NW Charles Main 3.0 .98 3 34


解释:在符合模式的行前面插入内容。其余和a\命令相同。


10>下一个:n命令

$ sed '/eastern/{n;s/AM/Archie/;}' datafile



eastern EA TB Savage 4.4 .84 5 20

northeast NE Archie Main Jr. 5.1 .94 3 13

……

解释:如果在某一行里模式eastern被匹配,n命令使sed区的下一行,

用该行代换模式空间,用Archie替换AM,打印并继续。


11>变换:y 命令

sed '1,3y/abcdefghijklmnopqrst/ABCDEFGHIJKLMNOPQRST/' datafile

解释:将对应字母进行转换。

12>退出:q 命令

sed '5q' datafile

解释:在打印了5行之后,用q命令退出sed程序。

13>保存和取得:h和G命令

$ sed -e '/southeast/h' -e '$G' datafile

解释:当sed 处理文件时,每行都存在模式空间(pattern space)的临时缓存中。除非行被禁止打印或删除,否则行将在处理完后被打印到屏幕,然后请模式空间并把下一输入行保存在那里等待处理。在这个例子中,在找到模式之后,把它放在模式空间里,而且h命令复制它并把它存到另一个叫做保存缓存(holding buffer)中。第二个sed指令里,当读入最后一行($)时,G命令告诉sed从包存缓存中取得该行并放回模式空间缓存,添加到当前存在那里的行中。本例子就是最后一行。

$ sed -e '/WE/{h;d;}' -e '/CT/G' datafile

解释:第一个命令h将找到了WE的行放到保存缓存中,然后删除该行;第二个命令/CT/G就是在找到了CT的行的后面加入保存缓存的内容。



14>G和g的区别

G命令在符合的条件行后面添加保存缓存中的内容;g命令用保存缓存中

15>sed 命令的花括号{}的作用

花括号{}中可以放入多个命令,每个命令后面要用分号;。

16>保存和交换:h 和 x命令。

$ sed -e '/Patricia/h' -e '/Margot/x' datafile

解释:x命令将找到的行用保存缓存中的内容替换。

7. 用sed来编写命令表

sed 命令表(script)是文件里的一个sed命令列表。用-f选项来引用一个命令表文件。编辑sed命令表有特殊要求:命令末尾不能有任何尾随的空白符或者文本。如果命令不是自成一行,就必须用分号结束。

2007年6月4日星期一

改变linux 刷新率





改变linux 刷新率 - 红联Linux门户-做最出色的Linux技术社区网站 - 信息资讯 - Linux - Linux安装指导

直接编辑/etc/X11/XF86Config(-4)或者/etc/X11/xorg.conf(FC2):

Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "775FT Plus"
DisplaySize 330 250 #这是17"显示器的数值,一般保留原来的值就行
HorizSync 30.0 - 71.0
VertRefresh 50.0 - 160.0 #根据自己的显示器改,新显示器到85没问题的,不过不要太贪
Option "dpms"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 16
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1024x768" "800x600" "640x480" #1024x768在前面就是默认
EndSubSection
EndSection

Debian 鼠标滚轮配置

修改/etc/X11/xorg.conf,主要两点:
一是将Protocol改为“ImPS/2”
二是添加Option "ZAxisMapping" "4 5",这一行的含义是将滚轮上滚动作映射为鼠标第4键,将滚轮下滚动作映射为鼠标第5键。

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/psaux"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
EndSection

mutt 文本界面的邮件客户端

主页: http://www.mutt.org/

简介: mutt是一个文本界面的邮件客户端,性能比较强,支持pop和smtp以及更多的特性。

安装:建议用源码包安装,当然在mutt的主页上也有发行版的打包。

源码包通用安装方法:举例:比如我们安装mutt的开发版 mutt-1.5.9i.tar.gz,您可以在mutt.org 上得到:

[root@S01soft]#tar zxvf mutt-1.5.9i.tar.gz
[root@S01soft]#cd mutt-1.5.9
[root@S01mutt-1.5.9]#./configure --enable-pop --enable-imap --enable-flock --enable-mailtool
如果您想获得更多的特性,请用./configure --help 查看
[root@S01mutt-1.5.9]#make
[root@S01mutt-1.5.9]#make install

注:mutt的配置文件被安装到 /usr/local/etc/ ,文件名是 Muttrc


配置:

您可以把 Muttrc 复到制 /etc/ 目录
[root@S01mutt-1.5.9]#cp /usr/local/etc/Muttrc /etc/

对于每个用户的mutt的配置,是在用户家目录的 .muttrc 文件,您可以把 Muttrc 复到到自己的家目录中,并重命名为.muttrc 。然后对.muttrc 根据自己的邮箱进行配置。

[beinan@S01soft]$cd ~
[beinan@S01~]$cp /etc/Muttrc .muttrc
[beinan@S01~]$

这样后,我们就可以对.muttrc 进行配置了。你用自己喜可欢的编辑工具来做,比如 vi ;nano 以及leafpad ,gedit ,kwrite 等等。。。。。。。只要您喜欢就行。

更改配置文件的方法:要看他的帮助文件。

比如以 set起始的,我们可以把前面的#号去掉。。

要设置hostname ,比如有这行。
# set hostname=""


我们可以改为

set hostname="localhost"
这个是必须的,也可以把localhost改为其它的,自己试试吧。。主要是用来收本地邮件的。比如系统邮件等。

还有pop的设置等。。。

自己改改就行了。

运行:

#mutt

按[caps lock]键切换成大写,然后按一下G键。就能收信了

如果出现 hostname 没有设置之类的。请设置上面所说的。。

还有一个是:/var/spool/mail/出现的错误,您可以自己建一个。比如:我用的是beinan系统用户。可以如下。

#touch /var/spool/mail/beinan
#chown beinan:mail /var/spool/mail/beinan

如果需要详细的设置,请看他的文档。在安装包中有。

另外是smtp的设置。。。。AMD-K6兄写的mutt的文章更为详细


我再说一下stmp方面的吧。我是用esmtp+sendmail 来发信的 http://esmtp.sourceforge.net
所以要简单的安装一个 esmtp ,在安装 esmtp 之前,要安装 libesmtp http://www.stafford.uklinux.net/libesmtp/ 这些东西都好安装。如果您没有sendmail ,也顺便安装一个。

安装 libesmtp
[root@S01mail]#tar jxvf libesmtp-1.0.3r1.tar.bz2
[root@S01mail]#cd libesmtp-1.0.3r1
[root@S01libesmtp-1.0.3r1]#./configure --enable-all
[root@S01libesmtp-1.0.3r1]#make;make install
[root@S01libesmtp-1.0.3r1]#./configure --enable-all

安装: esmtp

[root@S01mail]#tar jxvf esmtp-0.5.1.tar.bz2
[root@S01mail]#cd esmtp-0.5.1
[root@S01esmtp-0.5.1]#./configure
[root@S01esmtp-0.5.1]#make
[root@S01esmtp-0.5.1]#make install

如果看一下esmtp 的执行文件,可能在 /usr/local/bin目录中。
[root@S01esmtp-0.5.1]#ls -lh /usr/local/bin/esmtp
-rwxr-xr-x 1 root root 160K 2005-05-23 12:01 /usr/local/bin/esmtp


然后在当前用户的家目录中创建一个 .esmtprc的文件,权限为710的

[beinan@S01 ~]$touch .esmtprc
[beinan@S01 ~]$chmod 710 .esmtprc
[beinan@S01 ~]$ls -lh .esmtprc
-rwx--x--- 1 beinan users 97 2005-05-23 12:35 .esmtprc

内容主要有三行:
hostname = stmp的地址:端口
username = "用户名"
password = "用户密码"

举例:
hostname = mail.linuxsir.org.cn:25
username = "beinan@mail.linuxsir.org.cn"
password = "123456"


编辑好 .estmprc后,保存,然后向 .muttrc中加一行

set sendmail = "/usr/local/bin/esmtp -v -X ~/.esmtplog"

至于 sendmail的安装,您可以下载源码包,直接make 一下就OK了。。

注:有的信箱的用户名类似beinan@mail.linuxsir.org.cn ,专写beinan这样是不行的。最好按mail服务商提供的说明做。

debian 下看网络流量

#apt-get install iftop

#iftop



crontab 格式

第1列分钟1~59
第2列小时1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要运行的命令

下面是crontab的格式:
分 时 日 月 星期 要运行的命令

这里有crontab文件条目的一些例子:

30 21 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart
上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/apache/bin/apachectl restart
上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/apache/bin/apachectl restart
上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/apache/bin/apachectl restart
每一小时重启apache

* 23-7/1 * * * /usr/local/apache/bin/apachectl restart
晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart
每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/apache/bin/apachectl restart
一月一号的4点重启apache

VMWare 虚拟机操作系统时间过快或过慢的解决

前面有一个帖子看到好几个朋友问自己的虚拟机操作系统的时间不正确,过快或者过慢,下面是解决方案.

[color=navy]解决vmware guest OS时间过快的方法:[/color]

step1: 安装 vmware tools
step2: 配置guest OS,打开 time synchronization
step3: 在grub 启动配置的kernel 那行结束,加上 clock=pit , 例子如下
__________________________
title Fedora Core (2.6.9-1.667)
root (hd0,0)
kernel /vmlinuz-2.6.9-1.667 ro root=/dev/hda2 clock=pit

如果guest OS不能安装vmware tools, 或者vmware guest OS是SuSE SLES9表现时间过快,用 clock=pmtmr 代替 clock=pit

[color=navy]解决vmware guest OS 时间过慢的方法:[/color]

step1: 安装 vmware tools
step2: 配置guest OS,打开 time synchronization
step3: 如果虚拟的是单cpu guest OS, 把nosmp noapic nolapic 这三个参数加到grub的kernel参数最后, 例子如下
_________________________
title Red Hat Linux (2.4.20-28.9)
root (hd0,0)
kernel /vmlinuz-2.4.20-28.9 ro root=/dev/hda2 clock=pit nosmp noapic nolapic

本帖参考了 VMWare 的VMTN 文档库Doc ID:1420 "Clock in a Linux Guest Runs More Slowly or Quickly Than Real Time"
如果要看详细的问题解释或原版,请访问 http://kb.vmware.com/vmtnkb/search.do?cmd=displayKC&docType=kc&externalId=1420&sliceId=SAL_Public

[color=navy]另外如果是企业环境,或者你的guest OS可以直接访问internet,除了安装vmware tools并打开time synchronization之外,可以在guest OS 里面启动ntp client服务,和外部internet上的time server 同步,这样guest OS的时间就非常精确了.[/color]

Debian选择时区

#tzselect

1、cat 显示文件连接文件内容的工具;

cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。

比如:
[root@localhost ~]# cat /etc/fstab

为了便于新手弟兄灵活掌握这个工具,我们多说一点常用的参数;


1.0 cat 语法结构;

cat [选项] [文件]...


选项
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与 -vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 显示此帮助信息并离开


1.1 cat 查看文件内容实例;

[root@localhost ~]# cat /etc/profile 注:查看/etc/目录下的profile文件内容;
[root@localhost ~]# cat -b /etc/fstab 注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始;
[root@localhost ~]# cat -n /etc/profile 注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示;
[root@localhost ~]# cat -E /etc/profile 注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号;

cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;

[root@localhost ~]# cat -n /etc/profile
[root@localhost ~]# nl /etc/profile

cat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;

[root@localhost ~]# cat /etc/fstab /etc/profile

cat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;

[root@localhost ~]# cat /etc/fstab /etc/profile | more


1.2 cat 的创建、连接文件功能实例;


cat 有创建文件的功能,创建文件后,要以EOF或STOP结束;

[root@localhost ~]# cat > linuxsir.org.txt << EOF 注:创建linuxsir.org.txt文件;
> 我来测试 cat 创建文件,并且为文件输入内容; 注:这是为linuxsir.org.txt文件输入内容;
> 北南南北 测试; 注:这是为linuxsir.org.txt文件输入内容;
> EOF 注:退出编辑状态;
[root@localhost ~]# cat linuxsir.org.txt 注:我们查看一下linuxsir.org.txt文件的内容;
我来测试 cat 创建文件,并且为文件输入内容;
北南南北 测试;

cat 还有向已存在的文件追加内容的功能;

[root@localhost ~]# cat linuxsir.txt 注:查看已存在的文件linuxsir.txt 内容;
I am BeiNanNanBei From LinuxSir.Org . 注:内容行
我正在为cat命令写文档
[root@localhost ~]# cat >> linuxsir.txt << EOF 注:我们向linuxsir.txt文件追加内容;
> 我来测试cat向文档追加内容的功能; 注:这是追回的内容
> OK?
> OK~
> 北南 呈上
> EOF 注:以EOF退出;
[root@localhost ~]# cat linuxsir.txt 注:查看文件内容,看是否追回成功。
I am BeiNanNanBei From LinuxSir.Org .
我正在为cat命令写文档
我来测试cat向文档追加内容的功能;
OK?
OK~
北南 呈上



cat 连接多个文件的内容并且输出到一个新文件中;

假设我们有sir01.txt、sir02.tx和sir03.txt ,并且内容如下;

[root@localhost ~]# cat sir01.txt
123456
i am testing
[root@localhost ~]# cat sir02.txt
56789
BeiNan Tested
[root@localhost ~]# cat sir03.txt
09876
linuxsir.org testing

我想通过cat 把sir01.txt、sir02.txt及sir03.txt 三个文件连接在一起(也就是说把这三个文件的内容都接在一起)并输出到一个新的文件sir04.txt 中。

注意:其原理是把三个文件的内容连接起来,然后创建sir04.txt文件,并且把几个文件的内容同时写入sir04.txt中。特别值得一提的是,如果您输入到一个已经存在的sir04.txt 文件,会把sir04.txt内容清空。

[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt
[root@localhost ~]# more sir04.txt
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing

cat 把一个或多个已存在的文件内容,追加到一个已存在的文件中

[root@localhost ~]# cat sir00.txt
linuxsir.org forever
[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt
[root@localhost ~]# cat sir00.txt
linuxsir.org forever
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing

警告:我们要知道>意思是创建,>>是追加。千万不要弄混了。造成失误可不是闹着玩的;

2007年6月3日星期日

Debian下管理服务

Debian下管理服务用rcconf

#apt-get install rcconf

#rcconf



简单的启动和停止服务

#/etc/init.d/servername start

#/etc/init.d/servername stop

#/etc/init.d/servername restart

FAQ and Resource for Linux

问题解决之道:
1、man
2、info
3、locate/find keywords | more # there are so many docs in linux system
4、search keywords on bbs
5、google # a good way.
6、ask for help~~ # the last step

推荐发行版:
个人用户:ArchLinux,Debian,Gentoo,Slackware,Suse
服务器:Trustix,Redhat AS/ES 3
如果你对这些都不满意推荐使用FreeBSD,^-^
新手装Linux, 强烈建议完全安装


常用软件列表:
[媒体播放]
1)divx影片:mplayer
2)rm影片:realplayer10 for linux, mplayer
3)mp3: xmms, beep media player, mplayer
4)ape: xmms+monkey's audio plugin(http://supermmx.org/linux/mac/)
5)其他格式(wma, wmv, mkv, quicktime): mplayer 各种格式的文档和文件

[文件浏览]
1)打开微软的office文档: openoffice, starsuite
2)查看pdf文件:acroread for linux, kpdf, xpdf, ggv
3)查看ps文件: gsview, ggv, kghostview
4)chm文件: kchmviewer, archmage,chmsee, Xchm,chmviewer
5)mht文件: opera, ripmime,firefox+MAF插件
6)图表绘制: dia (等同于visio)
7).bin虚拟光盘: 用bin2iso或bchunk转成iso后mount
8)压缩文件
.rar: rar for linux或unrar
.zip: unzip
.zip: unzip
.bz2: bunzip2
.tar/.tgz: tar

[中文输入法]
1)scim
2)fcitx

[网络软件]
1) QQ: lumaqq, Gaim+openq plugin
2) MSN,icq,yahoo: Gaim
3) web浏览器:mozilla-firefox, mozilla, opera
4) ftp客户端(图形界面) :CoralFTP, KFTPGrabber, Iglooftp (不推荐 gftp)
5) ftp客户端(终端) : lftp, ncftp
6) ftp服务器: pureftpd, proftpd, vsftpd
7) http下载(终端): wget, curl, prozilla
8) bt下载: bittorrent(终端), azureus(图形界面)
9) email软件(图形界面):KMail, thunderbird, sylpheed, evolution, opera M2
10) email终端: mutt, pine, gnus
11) RSS:liferea, aKregator
12) BBS:qterm, {rxvt,xterm,gnome-terminal,...}+BBSbot

[编辑器]
1) 文本: vim, emacs, jedit
2) 16进制: hexedit, ghex, mc
3) 图片浏览: gImageView, gqview
4) 图片处理: gimp, ImageMagick
5) 音频处理: audacity

[常用工具]
1)英汉字典: stardict(屏幕取词,词库大,英汉,汉英, 英英)
ibmdict(包含科技词典,词库大,英汉,汉英)
dictd:英汉 汉英 可以使用stardict的全部词库
cdict:英汉 汉英 使用安装方便,彩色显示.
2)科学计算:matlab, octave
3)科学作图:gnuplot, metapost

[虚拟机]
1) win下虚拟linux: cygwin, virtual-pc, colinux
2) linux下虚拟win: win4lin
3) 跨平台: vmware, bochs
4) linux下运行windows程序: wine, winex, crossover office
5) console下的中文环境: zhcon, cce


FAQ:

[0]关于使用 Debian GNU/Linux 的问题,请先查看 debian reference
apt-get install debian-reference-zh-cn mozilla-firefox
firefox file:///usr/share/doc/Debian/reference/reference.zh-cn.html

[1]我该怎么分区?
强烈建议能不用pqmagic就不要用!!!
建议至少有/boot,/,swap分区,其他按自己需要可以分出/usr,/home,/var
一般/boot给80M,/给几个G(如果你没有分/usr什么,大小给3-5G比较合适),swap按照内存
两倍给,不过内存大于256的话,我建议不用给太大,个人用没必要.

[2]哪些软件包是需要的啊?
新手安装Linux, 建议完全安装, 这样可以省去不少麻烦

[3]如何开机自动挂载windows分区和正常挂载硬盘分区?
linux下管理该功能的是/etc/fstab这个文件,找到后,选择一个编辑器打开,
我们要做的是在最后加入我们要mount的分区参数。一个例子是:
(hda1是c盘,hda5开始是d盘,以此类推;如果有双硬盘,看你硬盘在
ide口的分布,分别为a,b,c,d,一般硬盘ide0主盘为a,光驱ide1从盘为d)
/dev/hda1 /mnt/C vfat defaults,iocharset=cp936 0 0
c盘 挂载点 格式 显示中文的参数(注:cp936是GBK编码,UTF8的见第4条)

c盘 挂载点 格式 显示中文的参数(注:cp936是GBK编码,UTF8的见第4条)
这里是一个例子,要挂多个盘类似加入。注意/mnt/C是自己建的目录,到mnt目录下建好
对应的目录,不然会出错,要mount几个盘就建几个目录。重启就可以生效。
注意,这里的例子是fat32格式的,假如要mount ntfs分区,请重新编译内核或加载模块
后,再mount。另外如果是直接用mount命令挂载,显示中文参数为-o iocharset=cp936,
具体细节自己man一下.

[4]UTF8编码下的分区挂载
对于fstab里,如下例
/dev/hda1 /mnt/C vfat defaults,utf8,umask=0 0 0

mount参数(-o utf8)
如U盘
mount -t vfat /dev/sda1 /mnt/USB -o utf8
硬盘分区
mount -t vfat /dev/hda1 /mnt/C -o utf8

[5]Linux引导(grub或lilo等)破坏如何恢复?
I.如果有系统安装时做的引导软盘,用软盘引导进入系统后重新安装引导
grub运行: grub-install /dev/hda
lilo运行: lilo
II.如果没有上述引导软盘,可以用多种方式启动,只是需要输入一些与
机器分区系统等有关数据。比如可以用安装光盘,安装软盘引导到boot:命令行

机器分区系统等有关数据。比如可以用安装光盘,安装软盘引导到boot:命令行
然后输入
(引导linux) vmlinuz root=/dev/hda*
进入系统后然后运行如上安装引导命令

[6]如何mount iso文件?
mount -t iso9660 /路径/*.iso /路径目录 -o loop
(如果提示说loop模块没有加载,执行 modprobe loop)

[7]redhat/fedora自带的xmms不能播放mp3?
由于考虑版权等问题,redhat公司把redhat自带的xmms修改为不能直接播放mp3
可以下载一个专门插件或者安装一个另外版本解决,软件到ftp站点去找。
例:xmms-mpg123-1.2.7-*.i386.rpm

[8]redhat安装软件时要求插入Redhat的安装光盘?
安装/删除应用程序的菜单->属性,在命令后面加上"--isodir=iso所在位置"
或者直接运行命令: redhat-config-packages --isodir=/iso所在目录

[9]linux下面如何修改网卡的mac地址
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
重启后失效,建议加到启动文件里面(比如rc.local)

[10]安装windows后如何恢复linux的启动

[10]安装windows后如何恢复linux的启动
用可以启动的linux软盘或者光盘启动
mount linux所在分区,chroot到硬盘上的linux系统
重新安装grub/lilo
grub的安装方法是
grub --no-floppy
grub>root (hd0,0) /boot所在分区,hda为0,第一分区为0,类推
grub>setup (hd0) 装在mbr
grub>quit

[11]如何运行bin文件
一般根据大小判断文件类型
如果是可执行文件的话,chmod +x 文件名,然后./文件名即可运行
如果是大的镜像,里面内容如果是影视内容,可以直接用mplayer打开播放
如果是其他内容,可以用bin2iso转换成iso文件再mount

[12]如何改变windows和linux在grub/lilo里面的启动顺序
一般在grub或者lilo的配置文件里面有default的选项,对应的是默认启动的项目的
名字,自己改一下即可
grub的配置文件是/boot/grub/grub.conf或者menu.lst
lilo的配置文件是/etc/lilo.conf

[13]Xmms为什么歌曲列表显示的是乱码?

[13]Xmms为什么歌曲列表显示的是乱码?
在gtk中文化配置正常的情况下(如果locale是zh_CN的话看xmms的菜单是否乱码)
xmms选项-字体里面填写
-adobe-helvetica-medium-r-*-*-12-*, -*-*-medium-r-normal-*-12-*

[14]gtk软件菜单乱码(xmms/mplayer)
正确配置gtk步骤:1.拷贝适当的中文字体到X配置文件所能检测到的目录
2.用ttmkfdir在该目录下面生成正确的fonts.dir和fonts.scale
3.修改/etc/gtk/gtkrc.zh_CN
我自己的gtkrc.zh_CN内容
style "gtk-default-zh-cn" {
fontset = "-adobe-verdana-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
-ms-simsun-medium-r-normal--12-*-*-*-*-*-*-0,*-r-*"
}
class "GtkWidget" style "gtk-default-zh-cn"

[15]win2000在安装redhat/fedora后速度慢问题?
请看精华区3-26

[16]如何退出X Window
终端下输入/sbin/init 3
如果是startx启动, 可以用ctrl-alt-backspace
如果是[xgk]dm启动,可以在终端下killall [xgk]dm

如果是[xgk]dm启动,可以在终端下killall [xgk]dm

[17]新编译了内核不能启动,出现kernel panic是什么原因?
原因有很多,首先initrd.img不是必须的, 事实上也可能对初次编译内核的新手造成
误解,所以我个人建议把必须的东西全部编译进内核,有可能用到的东西编译成模块
而不必生成initrd.img。在这个前提下grub.conf/lilo.conf里面也可以注释掉相应的
initrd项。上面的kernel panic原因一般是因为没有把启动分区的fs格式编译进内核,
可以重新编译一下内核试试看。
贴一下gentoo的handbook里面关于内核编译中File Systems的简单参考
(With a 2.4.x kernel)
File systems --->
[*] Virtual memory file system support (former shm fs)
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[*] Automatically mount at boot
[ ] /dev/pts file system for Unix98 PTYs

(With a 2.6.x kernel)
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] /dev file system support (OBSOLETE)
[*] Automatically mount at boot

[*] Automatically mount at boot
[*] Virtual memory file system support (former shm fs)

(Select one or more of the following options as needed by your system)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support

[18]如何连校内的VPN服务器?
参见 UFO wiki 上的 Howto
http://mirror.uzone.org/wiki/HowtoVPN

[19]运行 sudo gedit(或者其他 Xwindow 里的程序)出现 "cannot open display:"
以 root 运行 visudo,添加一行:
Defaults:user env_keep=DISPLAY
其中 user 为当前用户名。
[20]locale 是 gbk 时 gvim 菜单乱码
在 ~/.gvimrc 里添加:
set encoding=prc
set fileencoding=prc
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set langmenu=zh_CN.GBK
[21]如何在退出的时候让程序继续运行
(1) 使用 nohup
nohup prog &
可以让prog在受到 hangup 信号的时候(比如 logout 时)忽略之。具体请参见
man nohup
ps: 某些 shell 有自己内置的 nohup ,使用的时候最好分清楚是使用的哪个。
(2) 使用 screen
运行 screen ,然后运行程序。按 Ctrl+a Ctrl+d 可以 detach 终端,之后可
以退出登录。想看程序运行结果只要再登录一次,运行 screen -R 。具体介绍
和用法看 man screen 。
screen 的主页: http://www.gnu.org/software/screen/
在 UFO wiki 上也有相应介绍:
http://mirror.uzone.org/wiki/HowtoScreen
[22]Ubuntu 如何安装开发环境
Ubuntu 默认没有安装 gcc、make 之类的工具,只需要
apt-get install build-essential
就可以把常用的开发工具装上了。
[23]Ftp 乱码问题如何解决
(1) 客户端乱码
不推荐使用简陋的 gftp ,使用可以选择编码的 ftp 客户端,例如 coralFTP
不推荐使用简陋的 gftp ,使用可以选择编码的 ftp 客户端,例如 coralFTP
或者 kftpgrabber 等。推荐使用 lftp ,命令行 ftp 客户端,非常好用,支
持类似于 shell 的操作。一般远程 ftp 服务器编码都是 gbk ,因此只需要在
~/.lftp/rc 里面加入
set ftp:charset "GBK"
即可解决 lftp 乱码问题。
(2) 服务端乱码
待添加……
[24]如何开机自动进入字符界面
(1) RedHat 系列的发行版(包括 Fedora Core)
修改/etc/inittab文件,把里面的 runlevel 从 5 改到 3 ,类似
于这样:
# The default runlevel.
id:3:initdefault:
(2) Debian 系列(包括 Ubuntu)
sudo apt-get install sysv-rc-conf
sudo /usr/sbin/sysv-rc-conf
然后取消 gdm、kdm、xdm (如果有的话)所在行选中的项目就行了。
(3) 其他发行版
欢迎添加……
[25]用什么软件制作 ASCII 艺术字?
试试 FIGlet
[26]使用 gdm 实现自动登录

[26]使用 gdm 实现自动登录
/etc/gdm/gdm.conf
AutomaticLoginEnable=true
AutomaticLogin=name
[27]开机自动打开数字键盘(Debian)
打开 /etc/console-tools/config ,文件尾部找到:
# Turn on numlock by default
LEDS=+num <== 取消此行的注释
[28]自己建立 debian 的源
假定匿名ftp服务器的跟目录是 /home/ftp
(1) 建立 pool 目录
$ cd /home/ftp
$ mkdir -p debian/pool
(2) 复制 debian 包
$ cd debian/pool
$ cp /var/cache/apt/archives .
(3) 建立目录结构
$ cd ..
$ install -d dists/testing/main/binary-i386
(4) 生成包信息
$ ls -l pool | sed 's/_.*$/ priority section/' | uniq > override
$ dpkg-scanpackages pool override | gzip > \
dists/testing/main/binary-i386/Packages.gz

dists/testing/main/binary-i386/Packages.gz
(5) 建立发行文件
$ cat > dists/testing/main/binary-i386/Release << EOF
Archive: testing
Component: main
origin: Debian
Label: Debian
Architecture: i386
EOF
(6) 客户端 sources.list 设置
deb ftp:///debian testing main

说明:添加新包时,只需要将新包的 deb 包复制到 pool 目录,重新进行第(4)
步即可。
缺点:未建立包认证信息,安装时会提示认证错误,不过可以忽略。
*[1;37;40m[29]设置 xwindow 下鼠标的速度
使用 xset m n 命令,下面是速度列表:
"Very Fast" xset m 7 10 &
"Normal(Fast)" xset m 3 10 &
"System Default" xset m default &
"Glacial" xset m 0 10 &?
[30]修改未登录系统前的提示
/etc/issue

/etc/issue
[31]控制键盘指示灯的命令:
setleds +num|-num
setleds +caps|-caps
setleds +scroll|-scroll
注:上述命令只能在终端下执行,不能在 X 下执行。
[32]控制光驱
弹出:eject
收回:eject -t

[To Be Continued ...]


一些有用的Linux网络资源

[国内]
http://learn.tsinghua.edu.cn/homepage/2001315450/index.html
http://debian.ustc.edu.cn 中科大的Debian镜像
http://www.linuxfans.org
http://www.linuxsir.org
http://www.linuxeden.com
http://www.linuxforum.net
http://www.linuxaid.com.cn

[国内]
http://learn.tsinghua.edu.cn/homepage/2001315450/index.html
http://debian.ustc.edu.cn 中科大的Debian镜像
http://www.linuxfans.org
http://www.linuxsir.org
http://www.linuxeden.com
http://www.linuxforum.net
http://www.linuxaid.com.cn
http://61.153.200.30/lucida/linux-patch/ Lucida的中文patch
http://www.1985.cn/wangshangjiaoyu/Linux/Html/index.html
http://i18n.linux.net.cn/others 一个不错的关于linux中文化的站点
http://socrates.ytht.net/~yangyj/HOWTO/HOWTO-INDEX/index.html

[国外站点]
http://forums.gentoo.org
http://sourceforge.net
http://freshmeat.net
http://rpm.pbone.net
http://rpmfind.net rpm包非常的全,提供搜索功能,找起来非常方便
http://www.linuxquestions.org
http://www.linux-laptop.net
http://www-900.ibm.com/developerWorks/cn/linux IBM的linux技术站点

[Linux相关]
ftp://ftp.tsinghua.edu.cn 各种镜像、Linux软件
ftp://mirror.pku.edu.cn/pub/linux/
ftp://219.238.157.219/pub/
ftp://eelinux.3322.org
ftp://166.111.72.5/Linux/
ftp://166.111.121.3/Linux/
ftp://166.111.68.183/pub/Linux/

[Debian升级镜像]
ftp://debian.ustc.edu.cn/
ftp://debian.cn99.com/
ftp://ftp.tsinghua.edu.cn/mirror/debian
ftp://ftp.sjtu.edu.cn/mirror/sites/ftp.debian.org/
ftp://mirror.dlut.edu.cn/
ftp://mirror.6600.org/ (校内)

[Gentoo 升级镜像]
ftp://mirror.6600.org/gentoo/(校内)

[Fedora Core 升级镜像]
ftp://mirror.6600.org/fedora(说明见ftp://mirror.6600.org/fedora/readme.txt)

vim中显示颜色或不显示颜色

首先确保安装了vim-enhanced包,然后,vi ~/.vimrc (/etc/vim/vimrc 全局); 如果有syntax on,则显示颜色,syntax off,则不显示颜色。

另外,关于vi的syntax color,还有一点是终端类型(环境变量TERM)的设置。比如通常要设置成xterm或xterm-color才能使用syntax color。尤其是从Linux远程登陆到其他的Unix上。

使用wsadmin命令行工具:

set appManager [$AdminControl queryNames type=ApplicationManager,cell=$cellname,node=$nodename,process=server1,*]





This command gets the name of the application manager Mbean


for the applications running on the server.





set app [$AdminControl queryNames


type=Application,cell=$cellname,node=$nodename,process=server1,J2EEName=ivtApp,*]





This command gets the application detail and assigns it to a


variable.





set appName [$AdminControl getAttribute $app name]





This command gets the application name and assigns it to a


variable.





$AdminControl invoke $appManager stopApplication $appName


This command stops the ivtApp.

2007年6月1日星期五

让alsa 把你的声卡驱动起来


apt-get install alsa-base alsa-utils


执行 alsaconf 一路回车。 再执行alsa-mixer 设置音量,M键取消静音,ESC 键退出。


保存设置 alsactl store


测试 cat /dev/urandom > /dev/dsp 你将会听到非常好听的声音,恭喜你,你的声卡工作了。


ctrl+c 终止它,当然你喜欢它的话,可以不那么做^_^





到这里,你的X服务器和声卡就安装配置好了。

安装Gnome桌面

1. 安装x-window-system-core
apt-get install x-window-system-core

2. 安装hal (硬件抽象层)、pmount (gnome下自动挂载)以实现你的移动设备(usb)自动挂载。
apt-get install hal pmount
它将会自动安装dbus (信息总线)以实现hal与gnome应用程序通信,实现设备自动发现。

3. 安装gnome
apt-get install gnome-core (如果你需要所有gnome 套件的话 apt-get install gnome 或者 gnome-desktop-environment

4. 安装gnome下的声音支持。(首先要用alsa把声卡驱动起来)
apt-get install gnome-media gnome-audio esound
esound是gnome下的软件混音器。(安装后在gnome的桌面--首选项-->音效里面选择 启用软件混音器,重启。)

5. 安装必要的gnome管理工具或程序
apt-get install gksu gnome-utils gnome-system-tools file-roller gconf-editor gnome-system-monitor gnome-volume-manager

其中:
gksu是执行管理任务时 su或者sudo的。 gnome-utils是一些小工具(如:抓屏 printscreen键)
gnome-system-tools是一些管理工具 桌面-->系统管理里面的。
file-roller是归档管理器。
gnome-system-monitor是任务管理器。
gnome-volume-manager是卷管理器。管理本地磁盘的。

如果你喜欢gnome控制中心,那么
apt-get install gnome-control-center

6 、 安装登录管理器。
apt-get install gdm

7 、 把你安装时建立的那个用户加入sudoers
visudo
在 root ALL=(ALL) ALL 下面加入
%adm ALL=(ALL) ALL
然后执行 gpasswd -a username adm
如我的是 gpasswd -a oslive adm

8 、 安装字体,这里我们安装bitstream-vera 加 uming (ubuntu用的)。
当然你也可以安装WQY的点整字体(目前的Debian里的WQY字体是经过压缩的,所以可能会影响系统速度。)

apt-get install ttf-bitstream-vera ttf-arphic-uming

WQY点整字体: apt-get install xfonts-wqy


简单美化

1、 安装主题
apt-get install gnome-themes
如果你喜欢更多主题,apt-get install gnome-themes-extra
2、 安装一个简单的图标,apt-get install tango-icon-theme
Dropline gnome 的这个图标也不错,apt-get install gnome-icon-theme-dlg-neu
你也可以去www.gnome-look.org自己找一个你喜欢的。
3、 安装桌面背景 apt-get install gnome-backgrounds

然后可以到主题里面更改你喜欢的主题了,图标在主题细节里面。
4、我将在附件中上传一个主题,配合tango-icon-theme很好看。

到这里,gnome 安装完毕,你可以选择安装输入法了。

在 debian 下使用 sudo

1.切换到 root 用户下面,安装 sudo 包: apt-get install sudo

2.配置:visudo /etc/sudoers,内容如下:



# Host alias specification

Host_Alias LAN = 192.68.28.169

# User alias specification

User_Alias DEV = admin

# Cmnd alias specification

Cmnd_Alias
FILEUTILS = /bin/chown, /bin/chmod, /bin/chgrp, /bin/mount,
/bin/umount, /usr/bin/cdrecord

Cmnd_Alias DEBUTILS = /usr/bin/dpkg, /usr/bin/apt-get

Cmnd_Alias EDITORS = /bin/vi, /bin/vim

# User privilege specification

root ALL=(ALL) ALL

%adm ALL=(ALL) NOPASSWD: ALL   (这里如果
%adm ALL=(ALL) ALL,则使用sudo时要输入用户的密码)



3.Ctrl + x 选择 Y 保存(覆盖原文件)



4. 然后执行 gpasswd -a username adm

如我的是 gpasswd -a shine adm

5.切换到 shine 用户下,执行 sudo apt-get update 试试 :D,

Windows中的文件到Debian下换行显示^M

用vi打开文件

:%s/^M//g

回车,:x 就可以了

其中^M是先Ctrl + v 然后 Ctrl + m

debian学习笔记3——sudo的用法

为了日常使用安全,非必要时候不用root这个账户的习惯是非常重要的,可以用sudo这个来代替,这样不仅仅所有的配置文件都是当前用户的,连根目录也
是,但是最近发现,使用sudo也出现一个小问题。我们都知道linux下tab键的自动补全功能是非常强大的,可是我发现使用sudo以后,tab键就
变傻了。除了能补全路径以外,对命令完全没有作用,好在现在已经知道原因了。

在.bashrc这个文件里需要设定一下。
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profiles
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
#fi

这是最后的几行,把最后面三行前面的#去掉,然后重新登陆就可以拉,呵呵。

Debian:apt-get use proxy

1、#touch /etc/apt/apt.conf

#这个文件默认netinst安装是没有的,自己建一个就可以,加入一句话

Acquire::http::proxy "http://username:password@proxy_adress:port_number";

or

Acquire {

http::proxy "http://username:password@proxy_adress:port_number"

}



2、#export http_proxy=http://username:password@proxy_address:port_number

#这句可以加在${HOME}/.bashrc里,这样开机可以自动运行

然后apt-get update即可

测试

测试

\zx

\\\吃吃、c才、总裁
fasdf
asdf\c

csc

szxv