??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品免费福利久久,久久最新免费视频,精品综合久久久久久888蜜芽http://www.shnenglu.com/koson/category/12574.htmlzh-cnTue, 14 Sep 2010 21:21:47 GMTTue, 14 Sep 2010 21:21:47 GMT60XP下Virtualbox虚拟Ubuntu׃n文g夹设|(转)http://www.shnenglu.com/koson/archive/2010/09/15/126626.htmlkosonkosonTue, 14 Sep 2010 16:57:00 GMThttp://www.shnenglu.com/koson/archive/2010/09/15/126626.htmlhttp://www.shnenglu.com/koson/comments/126626.htmlhttp://www.shnenglu.com/koson/archive/2010/09/15/126626.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/126626.htmlhttp://www.shnenglu.com/koson/services/trackbacks/126626.html 

    1. 安装增强功能?Guest Additions)

    安装?u>ubuntu后,q行Ubuntuq登录。然后在VirtualBox的菜单里选择"讑֤(Devices)" -> "安装增强功能?Install Guest Additions)"?/p>

    你会发现在Ubuntu桌面上多Z个光盘图标,q张光盘默认被自动加载到了文件夹/media/cdom0。进入命令行l端Q输入:

    cd /media/cdom0

    sudo ./VboxLinuxAdditions.run

    开始安装工具包。安装完毕后会提C重启Ubuntu?/p>

    2. 讄׃n文g?/p>

    重启完成后点?讑֤(Devices)" -> ׃n文g?Shared Folders)菜单Q添加一个共享文件夹Q选项固定和时是指该文gҎ否是持久的。共享名可以d一个自己喜Ƣ的Q比?gongxiang"Q尽量用英文名U?/p>

    3. 挂蝲׃n文g?/p>

    重新q入虚拟UbuntuQ在命o行终端下输入Q?/p>

    sudo mkdir /mnt/shared

    sudo mount -t vboxsf gongxiang /mnt/shared

    其中"gongxiang"是之前创建的׃n文g夹的名字。OKQ现在Ubuntu和主机可以互传文件了?/p>

    假如您不x一ơ都手动挂蝲Q可以在/etc/fstab中添加一?/p>

    gongxiang /mnt/shared vboxsf rw,gid=100,uid=1000,auto 0 0

    q样p够自动挂载了?/p>

    4. 卸蝲的话使用下面的命令:

    sudo umount -f /mnt/shared

    注意Q?/p>

    ׃n文g夹的名称千万不要和挂载点的名U相同。比如,上面的挂载点?mnt/sharedQ如果共享文件夹的名字也是shared的话Q在挂蝲的时候就会出现如下的错误信息(?a >http://www.virtualbox.org/ticket/2265)Q?/p>

    /sbin/mount.vboxsf: mounting failed with the error: Protocol error

    原因分析可以看Tips on running Sun Virtualbox的Shared Folder on a Linux Guest节?/p>

koson 2010-09-15 00:57 发表评论
]]>
linux下tar gz bz2 tgz z{众多压~文件的解压ҎQ{Q?/title><link>http://www.shnenglu.com/koson/archive/2010/09/15/126625.html</link><dc:creator>koson</dc:creator><author>koson</author><pubDate>Tue, 14 Sep 2010 16:56:00 GMT</pubDate><guid>http://www.shnenglu.com/koson/archive/2010/09/15/126625.html</guid><wfw:comment>http://www.shnenglu.com/koson/comments/126625.html</wfw:comment><comments>http://www.shnenglu.com/koson/archive/2010/09/15/126625.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/koson/comments/commentRss/126625.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/koson/services/trackbacks/126625.html</trackback:ping><description><![CDATA[<p>在具体ȝ各类压羃文g之前呢,首先要弄清两个概念:打包和压~。打包是指将一大堆文g或目录什么的变成一个ȝ文gQ压~则是将一个大的文仉过一些压~算法变成一个小文g。ؓ什么要区分q两个概念呢Q其实这源于Linux中的很多压羃E序只能针对一个文件进行压~,q样当你惌压羃一大堆文时Q你得先借助另它的工具将q一大堆文g先打成一个包Q然后再原来的压羃E序q行压羃?br>  Linux下最常用的打包程序就是tar了,使用tarE序打出来的包我们常UCؓtar包,tar包文件的命o通常都是?tarl尾的。生成tar包后Q就可以用其它的E序来进行压~了Q所以首先就来讲讲tar命o的基本用法:<br>  tar命o的选项有很?用man tar可以查看?Q但常用的就那么几个选项Q下面来举例说明一下:<br>       # tar -cf all.tar *.jpg<br>  q条命o是将所?jpg的文件打成一个名为all.tar的包?c是表CZ生新的包Q?f指定包的文g名?br>       # tar -rf all.tar *.gif<br>  q条命o是将所?gif的文件增加到all.tar的包里面厅R?r是表C增加文件的意思?br>       # tar -uf all.tar logo.gif<br>  q条命o?更新原来tar包all.tar中logo.gif文gQ?u是表C更新文件的意思?br>       # tar -tf all.tar<br>  q条命o是列出all.tar包中所有文Ӟ-t是列出文件的意?br>       # tar -xf all.tar<br>  q条命o是解出all.tar包中所有文Ӟ-x是解开的意?br>       以上是tar的最基本的用法。ؓ了方便用户在打包解包的同时可以压~或解压文gQtar提供了一U特D的功能。这是tar可以在打包或解包的同时调用其它的压羃E序Q比如调用gzip、bzip2{?br>      1) tar调用gzip<br>       gzip是GNUl织开发的一个压~程序,.gzl尾的文件就是gzip压羃的结果。与gzip相对的解压程序gunzip。tar中?zq个参数来调用gzip。下面来举例说明一下:<br>       # tar -czf all.tar.gz *.jpg<br>  q条命o是将所?jpg的文件打成一个tar包,q且其用gzip压羃Q生成一个gzip压羃q的包,包名all.tar.gz<br>       # tar -xzf all.tar.gz<br>  q条命o是将上面产生的包解开?br>       2) tar调用bzip2<br>       bzip2是一个压~能力更强的压羃E序Q?bz2l尾的文件就是bzip2压羃的结果。与bzip2相对的解压程序是bunzip2。tar中?jq个参数来调用gzip。下面来举例说明一下:<br>       # tar -cjf all.tar.bz2 *.jpg<br>  q条命o是将所?jpg的文件打成一个tar包,q且其用bzip2压羃Q生成一个bzip2压羃q的包,包名为all.tar.bz2<br>       # tar -xjf all.tar.bz2<br>  q条命o是将上面产生的包解开?br>       3)tar调用compress<br>  compress也是一个压~程序,但是好象使用compress的h不如gzip和bzip2的h多?Zl尾的文件就是bzip2压羃的结果。与 compress相对的解压程序是uncompress。tar中?Zq个参数来调用compress。下面来举例说明一下:<br>       # tar -cZf all.tar.Z *.jpg<br>  q条命o是将所?jpg的文件打成一个tar包,q且其用compress压羃Q生成一个uncompress压羃q的包,包名为all.tar.Z<br>       # tar -xZf all.tar.Z<br>  q条命o是将上面产生的包解开<br>      有了上面的知识,你应该可以解开多种压羃文g了,下面对于tarpd的压~文<br>件作一个小l:<br>       #1)对于.tarl尾的文?br>       tar -xf all.tar<br>       2)对于.gzl尾的文?br>       gzip -d all.gz<br>  gunzip all.gz<br>      3)对于.tgz?tar.gzl尾的文?br>       tar -xzf all.tar.gz<br>  tar -xzf all.tgz<br>       4)对于.bz2l尾的文?br>       bzip2 -d all.bz2<br>  bunzip2 all.bz2<br>       5)对于tar.bz2l尾的文?br>       tar -xjf all.tar.bz2<br>       6)对于.Zl尾的文?br>       uncompress all.Z<br>       7)对于.tar.Zl尾的文?br>       tar -xZf all.tar.z<br>       另外对于Window下的常见压羃文g.zip?rarQLinux也有相应的方法来解压它们Q?br>       1)对于.zip<br>        linux下提供了zip和unzipE序Qzip是压~程序,unzip是解压程序。它们的?br>数选项很多Q这里只做简单介l,依旧举例说明一下其用法Q?br>       # zip all.zip *.jpg<br>  q条命o是将所?jpg的文件压~成一个zip?br>       # unzip all.zip<br>  q条命o是将all.zip中的所有文件解压出?br>      2)对于.rar<br> 要在linux下处?rar文gQ需要安装RAR for LinuxQ可以从|上下蝲Q但要记住,RAR for Linux不是免费的;可从<a target=_blank><u><font color=#006600>http://www.rarsoft.com/download.htm</font></u></a>下蝲RARfor Linux 3.2.<br>0Q然后安装:<br>       # tar -xzpvf rarlinux-3.2.0.tar.gz<br>  # cd rar<br>  # make<br>      q样安装好了,安装后就有了rar和unrarq两个程序,rar是压~程序,unrar是解压程序。它们的参数选项很多Q这里只做简单介l,依旧举例说明一下其用法Q?br>       # rar a all *.jpg<br>  q条命o是将所?jpg的文件压~成一个rar包,名ؓall.rarQ该E序会将.rar扩展名将自动附加到包名后?br>       # unrar e all.rar<br>  q条命o是将all.rar中的所有文件解压出?br>       到此Q我们已l介l过linux下的tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress?zip、unzip、rar、unrar{程式,你应该已l能够用它们对.tar?gz?tar.gz?tgz?bz2?tar.bz2?Z?tar.Z?zip?rarq?0U压~文件进行解压了Q以后应该不需要ؓ下蝲了一个Y件而不知道如何在Linux下解开而烦g。而且以上Ҏ对于Unix也基本有效?br>      本文介绍了linux下的压羃E式tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress?zip?unzip、rar、unrar{程式,以及如何使用它们?tar?gz?tar.gz?tgz?bz2?tar.bz2?Z? tar.Z?zip?rarq?0U压~文件进行操作?</p> <img src ="http://www.shnenglu.com/koson/aggbug/126625.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/koson/" target="_blank">koson</a> 2010-09-15 00:56 <a href="http://www.shnenglu.com/koson/archive/2010/09/15/126625.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> unix实际用户ID和有效用户ID解析http://www.shnenglu.com/koson/archive/2010/04/02/111461.htmlkosonkosonFri, 02 Apr 2010 12:11:00 GMThttp://www.shnenglu.com/koson/archive/2010/04/02/111461.htmlhttp://www.shnenglu.com/koson/comments/111461.htmlhttp://www.shnenglu.com/koson/archive/2010/04/02/111461.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/111461.htmlhttp://www.shnenglu.com/koson/services/trackbacks/111461.html今天在看APUEQ这两个问题很难理解QGOOGLE一下,有篇文章ȝ的不错,看了一下才明白透彻了?/p>

׃用户在UNIX下经怼遇到SUID、SGID的概念,而且SUID和SGID涉及到系l安全,所以用户也比较兛_q个问题。关于SUID?SGID的问题也l常有h提问Q但回答的h一般答得不够详l,加上曄回答q两个网友的问题Q还查了一些资料,军_整理成本文,以供大家参考。限于本人的水^问题Q文章中如果有不当之处,请广大网友指正?
一、UNIX下关于文件权限的表示Ҏ和解?

SUID ?Set User ID, SGID ?Set Group ID的意思?

UNIX下可以用ls -l 命o来看到文件的权限。用ls命o所得到的表C法的格式是cMq样的:-rwxr-xr-x 。下面解析一下格式所表示的意思。这U表C方法一共有十位Q?

9 8 7 6 5 4 3 2 1 0
- r w x r - x r - x

W?位表C文件类?可以为p、d、l、s、c、b?Q?

p表示命名道文g
d表示目录文g
l表示W号q接文g
-表示普通文?
s表示socket文g
c表示字符讑֤文g
b表示块设备文?

W?-6位?-3位?-0位分别表C文件所有者的权限Q同l用L权限Q其他用L权限Q其形式为rwxQ?

r表示可读Q可以读出文件的内容

w表示可写Q可以修Ҏ件的内容

x表示可执行,可运行这个程?

没有权限的位|用-表示

例子Q?

ls -l myfile昄为:

-rwxr-x--- 1 foo staff 7734 Apr 05 17:07 myfile

表示文gmyfile是普通文Ӟ文g的所有者是foo用户Q而foo用户属于staffl,文g只有1个硬q接Q长度是7734个字节,最后修Ҏ???7:07?

所有者fooҎ件有d执行权限Qstaffl的成员Ҏ件有d执行权限Q其他的用户对这个文件没有权限?

如果一个文件被讄了SUID或SGID位,会分别表现在所有者或同组用户的权限的可执行位上。例如:

1?rwsr-xr-x 表示SUID和所有者权限中可执行位被设|?

2?rwSr--r-- 表示SUID被设|,但所有者权限中可执行位没有被设|?

3?rwxr-sr-x 表示SGID和同l用h限中可执行位被设|?

4?rw-r-Sr-- 表示SGID被设|,但同l用h限中可执行位没有被社

其实在UNIX的实CQ文件权限用12个二q制位表C,如果该位|上的值是

1Q表C有相应的权限:

11 10 9 8 7 6 5 4 3 2 1 0
S G T r w x r w x r w x

W?1位ؓSUID位,W?0位ؓSGID位,W?位ؓsticky位,W?-0位对应于上面的三lrwx位?

11 10 9 8 7 6 5 4 3 2 1 0

上面?rwsr-xr-x的gؓQ?1 0 0 1 1 1 1 0 1 1 0 1

-rw-r-Sr--的gؓQ?0 1 0 1 1 0 1 0 0 1 0 0


l文件加SUID和SUID的命令如下:

chmod u+s filename 讄SUID?

chmod u-s filename LSUID讄

chmod g+s filename 讄SGID?

chmod g-s filename LSGID讄

另外一U方法是chmod命o用八q制表示Ҏ的设|。如果明白了前面?2位权限表C法也很单?

二、SUID和SGID的详l解?

׃SUID和SGID是在执行E序Q程序的可执行位被设|)时v作用Q而可执行位只Ҏ通文件和目录文g有意义,所以设|其他种cL件的SUID和SGID位是没有多大意义的?

首先讲普通文件的SUID和SGID的作用。例子:

如果普通文件myfile是属于foo用户的,是可执行的,现在没设SUID位,ls命o昄如下Q?

-rwxr-xr-x 1 foo staff 7734 Apr 05 17:07 myfileM用户都可以执行这个程序。UNIX的内核是Ҏ什么来定一个进E对资源的访问权限的呢?是这个进E的q行用户的(有效QIDQ包?user id和group id。用户可以用id命o来查到自q或其他用Luser id和group id?

除了一般的user id 和group id外,q有两个UC为effective 的idQ就是有效idQ上面的四个id表示为:uidQgidQeuidQegid。内怸要是Ҏeuid和egid来确定进E对资源的访问权限?

一个进E如果没有SUID或SGID位,则euid=uid egid=gidQ分别是q行q个E序的用Luid和gid。例如kevin用户的uid和gid分别?04?02Qfoo用户的uid和gid?200Q?01Qkevinq行myfileE序形成的进E的euid=uid=204Qegid=gid=202Q内核根据这些值来判断q程对资源访问的限制Q其实就是kevin用户对资源访问的权限Q和foo没关pR?

 


如果一个程序设|了SUIDQ则euid和egid变成被运行的E序的所有者的uid和gidQ例如kevin用户q行myfileQeuid=200Qegid=201Quid=204Qgid=202Q则q个q程h它的属主foo的资源访问权限?

SUID的作用就是这P让本来没有相应权限的用户q行q个E序Ӟ可以讉K他没有权限访问的资源。passwd是一个很鲜明的例子?

SUID的优先比SGID高,当一个可执行E序讄了SUIDQ则SGID会自动变成相应的egid?

下面讨论一个例子:

UNIXpȝ有一?dev/kmem的设备文Ӟ是一个字W设备文Ӟ里面存储了核心程序要讉K的数据,包括用户的口令。所以这个文件不能给一般的用户dQ权限设为:cr--r----- 1 root system 2, 1 May 25 1998 kmem

但ps{程序要读这个文Ӟ而ps的权限设|如下:

-r-xr-sr-x 1 bin system 59346 Apr 05 1998 ps

q是一个设|了SGID的程序,而ps的用hbinQ不是rootQ所以不能设|SUID来访问kmemQ但大家注意了,bin和root都属?systeml,而且ps讄了SGIDQ一般用h行psQ就会获得systeml用L权限Q而文件kmem的同l用L权限是可读,所以一般用h行ps没问题了。但有些Qؓ什么不把psE序讄为root用户的程序,然后讄SUID位,不也行吗Q这的确可以解决问题Q但实际中ؓ什么不q样做呢Q因为SGID的风险比SUID得多,所以出于系l安全的考虑Q应该尽量用SGID代替SUID的程序,如果可能的话。下面来说明一下SGID对目录的影响。SUID对目录没有媄响。如果一个目录设|了SGID位,那么如果M一个用户对q个目录有写权限的话Q他在这个目录所建立的文件的l都会自动{个目录的属主所在的l,而文件所有者不变,q是属于建立q个文g的用戗?


三、关于SUID和SGID的编E?

和SUID和SGID~程比较密切相关的有以下的头文g和函敎ͼ


#include

#include


uid_t getuid(void);


uid_t geteuid(void);


gid_t getgid (void);


gid_t getegid (void);


int setuid (uid_t UID);


int setruid (uid_t RUID);


int seteuid (uid_t EUID);


int setreuid (uid_t RUID,uid_t EUID);


int setgid (gid_t GID);


int setrgid (gid_t RGID);


int setegid (git_t EGID);


int setregid (gid_t RGID, gid_t EGID);


具体q些函数的说明在q里׃详细列出来了,要用到的可以用man查?

 

SUID/SGID :

假如你有文ga.txt

#ls -l a.txt

-rwxrwxrwx

#chmod 4777 a.txt

-rwsrwxrwx ======>注意s位置

#chmod 2777 a.txt

-rwxrwsrwx ======>注意s位置

#chmod 7777 a.txt

-rwsrwxswt ======>出现了t,t的作用在内存中尽量保存a.txt,节省pȝ再加载的旉.


现在再看前面讄 SUID/SGID作用:

#cd /sbin

#./lsusb

...

#su aaa(普通用?

$./lsusb

...

是不是现在显C出错?

$su

#chmod 4755 lsusb

#su aaa

$./lsusb


... 现在明白了吗Q本来是只有root用户才能执行的命令,加了SUID?普通用户就可以像root一L用,权限提升了。上面是对于文g来说的,对于目录也差不多Q?

目录的S属性得在该目录下创徏的Q何文件及子目录属于该目录所拥有的组Q目录的T属性得该目录的所有者及root才能删除该目录。还有对于s与SQ设|SUID/SGID需要有q行权限Q否则用ls -l后就会看到S,证明你所讄的SUID/SGID没有起作用?


Why we need suid,how do we use suid?


r -- 读访?


   w -- 写访?


   x -- 执行许可


   s -- SUID/SGID


   t -- sticky?


那么 suid/sgid是做什么的Q?Z么会有suid位呢Q?


要想明白q个Q先让我们看个问题:如果让每个用h改自q密码Q?


用户修改密码Q是通过q行命opasswd来实现的。最l必要修改/etc/passwd文gQ而passwd的文件的属性是Q?


#ls -l /etc/passwd


-rw-r--r-- 1 root root 2520 Jul 12 18:25 passwd


我们可以看到passwd文g只有对于root用户是可写的Q而对于所有的他用h说都是没有写权限的?那么一个普通的用户如何能够通过q行passwd命o修改q个passwd文g呢?


Z解决q个问题QSUID/SGID便应q而生。而且AT&T对它甌了专利?呵呵?


SUID和SGID是如何解册个问题呢Q?


首先Q我们要知道一点:q程在运行的时候,有一些属性,其中包括 实际用户ID,实际lID,有效用户ID,有效lID{?实际用户ID和实际组ID标识我们是谁Q谁在运行这个程?一般这2个字D在登陆时决定,在一个登陆会话期_ q些值基本上不改变?


而有效用户ID和有效组ID则决定了q程在运行时的权限。内核在军_q程是否有文件存取权限时Q是采用了进E的有效用户ID来进行判断的?


知道了这点,我们来看看SUID的解决途径Q?


当一个程序设|了为SUID位时Q内核就知道了运行这个程序的时候,应该认ؓ是文件的所有者在q行q个E序。即该程序运行的时候,有效用户ID是该E序的所有者。D个例子:


[root@sgrid5 bin]# ls -l passwd


-r-s--s--x 1 root root 16336 Feb 14 2003 passwd


虽然你以test登陆pȝQ但是当你输入passwd命o来更改密码的时候,׃passwd讄了SUID位,因此虽然q程的实际用户ID是test对应的IDQ但是进E的有效用户ID则是passwd文g的所有者root的ID,因此可以修改/etc/passwd文g?


让我们看另外一个例子?


ping命o应用q泛Q可以测试网l是否连接正常。ping在运行中是采用了ICMP协议Q需要发送ICMP报文。但是只有root用户才能建立ICMP报文Q如何解册个问题呢Q同P也是通过SUID位来解决?


[root@sgrid5 bin]# ls -l /bin/ping


-rwsr-sr-x 1 root root 28628 Jan 25 2003 /bin/ping


我们可以试一下,如果Lping的SUID位,再用普通用户去q行命oQ看会怎么栗?


[root@sgrid5 bin]#chmod u-s /bin/ping


[root@sgrid5 bin]# ls -l ping


-rwxr-xr-x 1 root root 28628 Jan 25 2003 ping


[root@sgrid5 bin]#su test


[test@sgrid5 bin]$ ping byhh.net


ping: icmp open socket: Operation not permitted


SUID虽然很好了解决了一些问题,但是同时也会带来一些安全隐患?


因ؓ讄?SUID 位的E序如果被攻?通过~冲区溢出等斚w),那么hacker可以拿到root权限?


因此在安全方面特别要注意那些讄了SUID的程序?


通过以下的命令可以找到系l上所有的讄了suid的文Ӟ


[root@sgrid5 /]# find / -perm -04000 -type f -ls


对于q里Z么是4000Q大家可以看一下前面的st_mode的各bit的意义就明白了?


在这些设|了suid的程序里Q如果用不上的,最好取消该E序的suid位?/p>


本文来自CSDN博客Q{载请标明出处Q?a >http://blog.csdn.net/jiean/archive/2009/01/02/3686207.aspx



koson 2010-04-02 20:11 发表评论
]]>
linux 后台q程理http://www.shnenglu.com/koson/archive/2010/04/01/111269.htmlkosonkosonThu, 01 Apr 2010 06:15:00 GMThttp://www.shnenglu.com/koson/archive/2010/04/01/111269.htmlhttp://www.shnenglu.com/koson/comments/111269.htmlhttp://www.shnenglu.com/koson/archive/2010/04/01/111269.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/111269.htmlhttp://www.shnenglu.com/koson/services/trackbacks/111269.html
fg、bg、jobs?amp;、ctrl + z都是跟系lQ务有关的Q虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的
一?amp; 最l常被用?br>   q个用在一个命令的最后,可以把这个命令放到后台执?br>二。ctrl + z
     可以一个正在前台执行的命o攑ֈ后台Qƈ且暂?br>三。jobs
     查看当前有多在后台q行的命?br>四。fg
     后C的命令调臛_台l运?br>   如果后台中有多个命oQ可以用 fg %jobnumber选中的命令调出,%jobnumber是通过jobs命o查到的后台正在执行的命o的序?不是pid)
五。bg
     一个在后台暂停的命令,变成l箋执行
   如果后台中有多个命oQ可以用bg %jobnumber选中的命令调出,%jobnumber是通过jobs命o查到的后台正在执行的命o的序?不是pid)
 
 

Linux下用Shell命o控制dJobs执行

下列命o可以用来操纵q程dQ?br>  ps 列出中正在运行的q程Q?br>  kill 发送信L一个或多个q程Q经常用来杀M个进E)Q?br>  jobs 列出当前shell环境中已启动的Q务状态,若未指定jobsidQ则昄所有活动的d状态信息;如果报告了一个Q务的l止(即Q务的状态被标记为Terminated)Qshell 从当前的shell环境已知的列表中删除d的进E标识;
  bg 进E搬到后台运行(BackgroundQ;
  fg 进E搬到前台运行(ForegroundQ;

  job转移到后台运?
  如果你经常在X囑Ş下工作,你可能有q样的经历:通过l端命oq行一个GUIE序QGUI界面出来了,但是你的l端q停留在原地Q你不能在shell中l执行其他命令了Q除非将GUIE序x?

  Z使程序执行后l端q能l箋接受命oQ你可以进E移到后台运行,使用如下命oq行E序Q?#假设要运行xmms

  $xmms &

  q样打开xmms后,l端的提C又回来了。现在xmms在后台运行着呢;但万一你运行程序时忘记使用“&”了,又不想重新执行;你可以先使用ctrl+z挂vE序Q然后敲入bg命oQ这L序就在后台l运行了?br>
  概念Q当前Q?

  如果后台的Q务号?个,[1],[2]Q如果当W一个后CQ务顺利执行完毕,W二个后CQ务还在执行中Ӟ当前d便会自动变成后台dL“[2]”的后CQ务。所以可以得Z点,卛_前Q务是会变动的。当用户输入“fg”?#8220;bg”?#8220;stop”{命令时Q如果不加Q何引P则所变动的均是当前Q务?br>
  察看jobs
  使用jobs或ps命o可以察看正在执行的jobs?

jobs命o执行的结果,Q表C是一个当前的作业Q减可是是一个当前作业之后的一个作业,jobs -l选项可显C所有Q务的PID,jobs的状态可以是running, stopped, Terminated,但是如果d被终止了QkillQ,shell 从当前的shell环境已知的列表中删除d的进E标识;也就是说Qjobs命o昄的是当前shell环境中所L后台正在q行或者被挂v的Q务信息;

  q程的挂?

  后台q程的挂P

  在solaris中通过stop命o执行Q通过jobs命o查看job?假设为num)Q然后执行stop %numQ?br>
  在redhat中,不存在stop命oQ可通过执行命okill -stop PIDQ将q程挂vQ?br>
  当要重新执行当前被挂LdӞ通过bg %num 卛_挂Ljob的状态由stopped改ؓrunningQ仍在后台执行;当需要改为在前台执行Ӟ执行命ofg %num卛_Q?br>
  前台q程的挂P

  ctrl+Z;

  q程的终?

  后台q程的终止:
  Ҏ一Q?br>  通过jobs命o查看jobP假设为numQ,然后执行kill %num

  Ҏ二:
  通过ps命o查看job的进E号QPIDQ假设ؓpidQ,然后执行kill pid

  前台q程的终止:

  ctrl+c

  kill的其他作?
  kill除了可以l止q程Q还能给q程发送其它信P使用kill -l 可以察看kill支持的信受?

  SIGTERM是不带参数时kill发送的信号Q意思是要进E终止运行,但执行与否还得看q程是否支持。如果进E还没有l止Q可以用kill -SIGKILL pidQ这是由内核来终止进E,q程不能监听q个信号?/div>


koson 2010-04-01 14:15 发表评论
]]>
ubuntu安装ssh服务http://www.shnenglu.com/koson/archive/2010/03/28/110749.htmlkosonkosonSun, 28 Mar 2010 10:45:00 GMThttp://www.shnenglu.com/koson/archive/2010/03/28/110749.htmlhttp://www.shnenglu.com/koson/comments/110749.htmlhttp://www.shnenglu.com/koson/archive/2010/03/28/110749.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/110749.htmlhttp://www.shnenglu.com/koson/services/trackbacks/110749.htmlubuntu默认q没有安装ssh服务Q如果通过ssh链接ubuntuQ需要自己手动安装ssh-server。判断是否安装ssh服务Q可以通过如下命oq行Q?/p>
  1. xjj@xjj-desktop:~$ ssh localhost  
  2. ssh: connect to host localhost port 22: Connection refused   

如上所C,表示没有q没有安装,可以通过apt安装Q命令如下:

  1. xjj@xjj-desktop:~$ sudo apt-get install openssh-server  

pȝ自动进行安装,安装完成以后Q先启动服务Q?/p>

  1. xjj@xjj-desktop:~$ sudo /etc/init.d/ssh start  

 

启动后,可以通过如下命o查看服务是否正确启动

  1. xjj@xjj-desktop:~$ ps -e|grep ssh  
  2.  6212 ?        00:00:00 sshd  

 


如上表示启动ok。注意,ssh默认的端口是22Q可以更改端口,更改后先stopQ?br> 然后start可以了。改配置?etc/ssh/sshd_config下,如下所C?/p>

Java代码
  1. xjj@xjj-desktop:~$ vi /etc/ssh/sshd_config  
  2. # Package generated configuration file  
  3. # See the sshd(8) manpage for details  
  4. # What ports, IPs and protocols we listen for  
  5. Port 22  

 


最后,应该是连接的时候了。请看如下命令:

Java代码
xjj@xjj-desktop:~$ ssh exceljava@192.168.158.129

koson 2010-03-28 18:45 发表评论
]]>
linux java1.6 安装 http://www.shnenglu.com/koson/archive/2010/03/27/110672.htmlkosonkosonSat, 27 Mar 2010 05:31:00 GMThttp://www.shnenglu.com/koson/archive/2010/03/27/110672.htmlhttp://www.shnenglu.com/koson/comments/110672.htmlhttp://www.shnenglu.com/koson/archive/2010/03/27/110672.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/110672.htmlhttp://www.shnenglu.com/koson/services/trackbacks/110672.html


JDK安装配置

 1、下载jdkQ本例用jdk-6u18-linux-i586.bin
    下蝲面Q?a >http://java.sun.com/javase/downloads/index.jsp

 2、jdk-6u18-linux-i586.bin h执行权限
    chmod +x jdk-6u18-linux-i586.bin

 3、安装jdk (Ҏ提示一步步安装)
    ./jdk-6u18-linux-i586.bin
    看到 安装E序在询问您是否守许可协议面 ,回R,I格都可?看完协议.
    出现一行字QDo you aggree to the above license terms? [yes or no]
    安装E序在问您是否愿意遵守刚才看q的许可协议。当然要同意了,输入"y" ?"yes" 回R?/p>

 4、增加JAVA_HOME环境变量
   [root@test src]# vi /etc/profile 
   在最后面增加Q?br>   #set java environment
    export JAVA_HOME=/usr/java/jdk1.6.0_18
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    export JAVA_HOME CLASSPATH PATH
   保存退?br>   注释Q?br>   JAVA_HOME指明JDK安装路径Q就是刚才安装时所选择的\径,此\径下包括libQbinQjre{文件夹Q此变量最好设|,因ؓ以后q行tomcatQEclipse{都需要依靠此变量Q?
   PATH使得pȝ可以在Q何\径下识别java命oQ设为:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
      CLASSPATH为java加蝲c?class or lib)路径Q只有类在classpath中,java命o才能识别Q设为:.:%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)
特别注意Q◆环境变量值的l尾没有MW号Q不同g间用Q隔开Qunix中用:Q?
          ◆CLASSPATH变量g?表示当前目录?

 5?使得刚刚d到环境变量生效:
    [root@test src]# source /etc/profile

 6?q入 /usr/bin/目录
        #cd /usr/bin
        #ln -s -f /usr/java/jdk1.6.0_18/jre/bin/java
        #ln -s -f /usr/java/jdk1.6.0_18/bin/javac

 7、在命o行输?br>     #java -version
      屏幕输出:
    java version "1.6.0_18"
    Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
    Java HotSpot(TM) Server VM (build 16.0-b13, mixed mode)

 8?试安装情况Q?br>    新徏Test.java:

    public class Test
    {    
    public static void main(String[] args)
    {     
    System.out.println("Hello,Welcome to Linux World!");    
    } 
    }

   在终端用cd命oq入Test.java目录,然后输入
    javac Test.java
    java Test
    若输?br>    Hello,Welcome to Linux World!
    则表明配|成?



koson 2010-03-27 13:31 发表评论
]]>
sl410无线上网解决办法http://www.shnenglu.com/koson/archive/2010/03/24/110455.htmlkosonkosonWed, 24 Mar 2010 07:21:00 GMThttp://www.shnenglu.com/koson/archive/2010/03/24/110455.htmlhttp://www.shnenglu.com/koson/comments/110455.htmlhttp://www.shnenglu.com/koson/archive/2010/03/24/110455.html#Feedback1http://www.shnenglu.com/koson/comments/commentRss/110455.htmlhttp://www.shnenglu.com/koson/services/trackbacks/110455.html

koson 2010-03-24 15:21 发表评论
]]>
win7Qubuntu双系l删除ubuntuhttp://www.shnenglu.com/koson/archive/2010/03/24/110433.htmlkosonkosonWed, 24 Mar 2010 06:00:00 GMThttp://www.shnenglu.com/koson/archive/2010/03/24/110433.htmlhttp://www.shnenglu.com/koson/comments/110433.htmlhttp://www.shnenglu.com/koson/archive/2010/03/24/110433.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/110433.htmlhttp://www.shnenglu.com/koson/services/trackbacks/110433.html如果直接在win7里面删除ubuntu所在的分区Q则׃grub也被删除了,D无法引导win7,可以使用安装光盘在dos命o下执行fdisk /mbr修复引导区,下面说说没有安装光盘之类的进入dos的解军_法?br>下蝲mbrfix.exe,复制到c盘根目录下,在cmd里面q行mbrfix /dirve 0 fixmbr /yes, 如果出现error:5,则右击mbrfix.exe选择属性将mbrfix的兼Ҏ改Z理员n份运行?br>然后重启一遍,到win7下面在磁盘管理里面将ubuntu所占用的分区删除即可?/p>

koson 2010-03-24 14:00 发表评论
]]>
gdb基本使用http://www.shnenglu.com/koson/archive/2010/03/14/109661.htmlkosonkosonSun, 14 Mar 2010 04:45:00 GMThttp://www.shnenglu.com/koson/archive/2010/03/14/109661.htmlhttp://www.shnenglu.com/koson/comments/109661.htmlhttp://www.shnenglu.com/koson/archive/2010/03/14/109661.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/109661.htmlhttp://www.shnenglu.com/koson/services/trackbacks/109661.html
  当程序出错ƈ产生core ?br>
  快速定位出错函数的办法

  gdb E序?core文g?一般是core,也可能是core.xxxx)

  调试E序使用的键

  r run q行.E序q没有运行前使用

  c cuntinue l箋q行。运行中断后l箋q行

  q 退?br>
  kill l止调试的程?br>
  h help 帮助

  <tab> 命o补全功能

  step 跟入函数

  next 不跟入函?br>
  b breakpoint 讄断点?br>
  用法:

  b 函数?Ҏ函数q行中断

  b 文g?行号 Ҏ文g中指定行中断.如果是当前文Ӟ那么文g名与:号可?br>
  省略

  看当前断Ҏ使用info break.止断点disable 断点?删除delete 断点?

  l list 列出代码行。一ơ列10 行。连接用list会滚动昄. 也可以在list 后面

  跟上 文g?行号

  watch 观察一个变量的倹{每ơ中断时都会昄q个变量的?br>
  p print 打印一个变量的倹{与watch不同的是print只显CZ?br>
  q里在顺便说说如何改变一?value. 当你下指?p 的时?例如你用 p b,

  q时候你会看?b ?value, 也就是上面的 $1 = 15.

  你也同样可以?p 来改变一?value, 例如下指?p b = 100 试试?

  q时候你会发? b ?value 变?100 了:$1 = 100.

  |上抄录

  基本的用方法简?br>
  前言

  E序代码中的错误可分为数c,除了最Ҏ除错的语法错误,~译E序会告诉你错误所在外Q大部分的错误都可以归类为执行时错误。GDB 的功能便是寻找执行时错误。如果没有除错程序,我们只能在程序中加入输出变量值的指o来了解程序执行的状态。有?GDB 除错E序Q我们可以设定在M地方停止E序的执行,然后可以随意视变量值及更动变量Qƈ逐行执行E序?br>
  一个除错程序执行的程通常是这LQ?br>
  1. q入除错E序q指定可执行文g?br>
  2. 指定E序代码所在目录?br>
  3. 讑֮断点后执行程序?br>
  4. E序于断点中断后Q可?(1)视程序执行状态;视变量值或变更变量?(2) 逐步执行E序Q或是全速执行程序到下一个断Ҏ是到E序l束为止?br>
  5. d除错E序?br>
  以下分Z列数分别介l:

  1. q入 GDB 及指定可执行?br>
  2. 指定E序代码所在目录及视程序代?br>
  3. 断点的设定与清除

  4. 全速及逐步执行E序

  5. 视及更改变量?br>
  6. 视程序执行状?br>
  7. d Core 文g信息

  q入 GDB 及指定可执行档:

  1. q入 GDB q读入可执行?(档名?'PROGRAM')Q准备进行除错?br>
  gdb PROGRAM

  指定E序代码所在目录及视程序代?br>
  1. 增加目录 DIR 到收ȝ序代码的目录列表 (如果你的E序代码和可执行档放在同一个目录下Q就不须指定E序代码所在目录?Q?br>
  (gdb) directory DIR

  2. 视程序代码,格式计有Q?br>
  (gdb) list => 昄目前执行E序代码前后各五行的E序代码Q或是显CZ上次 list 之后的程序代?br>
  (gdb) list function => 昄该程序开始处前后五行的程序代码?br>
  (gdb) list - =>上次昄E序代码的前面的十行?br>
  断点的设定与清除

  1. 讑֮断点(指o?breakQ可写ؓ (b)Q格式计有:

  (gdb) break filename.c:30 => ?filename.c 的第三十行处停止执行?br>
  (gdb) break function => 在进?function 时中断程序的执行?br>
  (gdb) break filename.c:function => 在程序代码档 filename.c 中的函数 function 处设定断炏V?br>
  (gdb) break => 在下一个将被执行的命o讑֮断点?br>
  (gdb) break ... if cond => 只有?cond 成立的时候才中断。cond M C 语言的语法写成?br>
  2. 昄各个断点的信息?br>
  (gdb) info break

  3. 清除断点(命o?clear)Q格式同 break 。例?:

  (gdb) clear filename.c:30

  4. 清除断点QNUM 是在 info break 昄出来的断点编受?br>
  (gdb) delete NUM

  全速及逐步执行E序

  1. 从程序开头全速执行程序,直到遇到断点或是E序执行完毕为止?br>
  (gdb) run

  2. 在程序被中断后,全速执行程序到下一个断Ҏ是程序结束ؓ?(continue 指o可简写ؓ c)?br>
  (gdb) continue

  3. 执行一行程? 若呼叫函? 则将该包含该函数E序代码视ؓ一行程?(next 指o可简写ؓ n)?br>
  (gdb) next

  4. 执行一行程? 若呼叫函? 则进入函数逐行执行 (step 指o可简写ؓ s)?br>
  (gdb) step

  5. 执行一行程序,若此时程序是?for/while/do loop 循环的最后一行,则一直执行到循环l束后的W一行程序后停止 (until 指o可简写ؓ u)?br>
  (gdb) until

  6. 执行现行E序到回C一层程序ؓ止?br>
  (gdb) finish

  视及更改变量?br>
  1. print 叙述Q显C叙述执行的结?(print 指o可简写ؓ p)。如

  (gdb) print a => 昄 a 变量的内?

  (gdb) print sizeof(a) => 昄 a 变量的长?

  2. display 叙述Q在每个断点或是每执行一步时昄该叙q倹{如

  (gdb) display a

  3. 更改变量|

  (gdb) print (a=10) => 变?a 的D定ؓ 10.

  视程序执行状?br>
  1. 查看E序执行到此Ӟ是经q哪些函数呼叫的E序 (backtrace 指o可简写ؓ bt)Q也是查看函数呼叫堆栈?br>
  (gdb) backtrace

  d Core 文g信息

  1. d PROGRAM ?PROGRAM.CORE 档,可检?Core Dump 时程序变量值及E序程状??br>
  gdb PROGRAM core

  说明Q?core' 档案是由 PROGRAM 档执行后Q遇?Core Dump 时生的 Core 檔檔名。如果你q需要该 Core 档,我们你将该档案档名更改ؓ PROGRAM.core。在输入上述命o后,你可以用 GDB 提供的检视变量g及检视程序执行状态来dE序 Core Dump 时的状态?

koson 2010-03-14 12:45 发表评论
]]>
unix文gpȝ中的软链接、硬链接 文g复制的区?/title><link>http://www.shnenglu.com/koson/archive/2010/03/12/109490.html</link><dc:creator>koson</dc:creator><author>koson</author><pubDate>Fri, 12 Mar 2010 02:48:00 GMT</pubDate><guid>http://www.shnenglu.com/koson/archive/2010/03/12/109490.html</guid><wfw:comment>http://www.shnenglu.com/koson/comments/109490.html</wfw:comment><comments>http://www.shnenglu.com/koson/archive/2010/03/12/109490.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/koson/comments/commentRss/109490.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/koson/services/trackbacks/109490.html</trackback:ping><description><![CDATA[<table style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" border=0 cellSpacing=0 cellPadding=0 width="100%"> <tbody> <tr> <td height=25 align=middle></strong></font><br></td> </tr> <tr> <td bgColor=#d2dee2 height=1></td> </tr> <tr> <td bgColor=#ffffff height=1></td> </tr> <tr> <td align=middle> <table style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" border=0 cellSpacing=0 cellPadding=0 width="100%"> <tbody> <tr> <td width="100%"> <div style="MARGIN: 15px" id=art width="100%"> <div style="MARGIN: 15px" id=art> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>ȝ如下Q?/font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>链接:在磁盘上有一份内容一L文g产生Q但不改变文件的Inode,也就是与原文件共用Inode,</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>软链接:不在</font></font><font class=f14><font color=#000000>盘上有一份内容一L文g产生()Q但产生新的Inode,</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>文g复制Q生新的文件内容,q且使用新的Inode.</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>单的说Y链接相当于快h式?/font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>一张粗p的图:<br></font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>文ga <-- bQ文件a的Y链接Q?                文ga           <br></font></font></p>     |                                                   |<br>    |                                                   |<br> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>inode                                       inode <-- bQ文件a的硬链接Q?br></font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>|                                             |<br></font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>盘                                         盘</font></font></p> <p style="TEXT-INDENT: 2em"><br></p> <p style="TEXT-INDENT: 2em"></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>文ga ------------->copy          b(复制文gaQ?          <br></font></font></p>     |                                       |<br>    |                                       |<br> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>inode                             inode <br></font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>|                                  |<br></font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>盘                               盘</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000><br></font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>链接是一U在׃n文g和访问它的用L若干目录之间徏立联pȝ一U方法。Linux中包括两U链接:链?Hard Link)和Y链接(Soft Link),软链接又UCؓW号链接QSymbolic linkQ?</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000><strong>一、硬链接</strong> </font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>链接说白了是一个指针,指向文g索引节点Q系lƈ不ؓ它重新分配inode。可以用:ln命o来徏立硬链接。语? </font></font></p> <center><ccid_nobr></ccid_nobr> <table border=1 cellSpacing=0 borderColorLight=#000000 borderColorDark=#ffffff cellPadding=2 width=400 align=center> <tbody> <tr> <td style="FONT-SIZE: 9pt" class=code bgColor=#e6e6e6> <pre><ccid_code>ln [options] existingfile newfile<br>ln[options] existingfile-list directory</ccid_code></pre> </td> </tr> </tbody> </table> </center> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>用法: W一U??#8221;existingfile”创徏链?文g名ؓ”newfile”。第二种:?#8221;directory”目录??”existingfile-list”中包含的所有文件创Z个同名的链接。常用可选[options] –f 无论”newfile”存在与否,都创建链接?n 如果”newfile”已存?׃创徏链接?</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>下面举一些例? </font></font></p> <center><ccid_nobr></ccid_nobr> <table border=1 cellSpacing=0 borderColorLight=#000000 borderColorDark=#ffffff cellPadding=2 width=400 align=center> <tbody> <tr> <td style="FONT-SIZE: 9pt" class=code bgColor=#e6e6e6> <pre><ccid_code>$ ls –il<br>13058 -rwx - - - - - - 1 longcheng longcheng 48 8?5 16:38 file1<br>13059 -rwx - - - - - - 1 longcheng longcheng 57 8?5 16:40 file2<br>$ ln file2 file2hard<br>$ ls –il<br>13058 -rwx - - - - - - 1 longcheng longcheng 48 8?5 16:38 file1<br>13059 -rwx - - - - - - 2 longcheng longcheng 57 8?5 16:40 file2<br>13059 -rwx - - - - - - 2 longcheng longcheng 57 8?5 16:40 file2hard</ccid_code></pre> </td> </tr> </tbody> </table> </center> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>注意在创建链接前,file1 昄的链接数目ؓ1,创徏链接?1)file1和file1hard的链接数目都变ؓ2;(2) file1和file1hard在inodeh一L(3) file1和file1hard昄的文件大也是一栗可见进行了ln命o的操作结果:file1和file1hard是同一个文件的两个名字Q它们具有同L索引节点号和文g属性,建立文gfile1的硬链接Q就是ؓfile1的文件烦引节点在当前目录上徏立一个新指针。如下图,你可以删除其中Q何一?如rm file2 ,每次只会删除一个指? </font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>链接数同时减一,只有所有指向文件内容的指针,也即链接数减?Ӟ内核才会把文件内容从盘上删除。当前目录逻辑l构Q?不好意思图没有昄出来)?</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>q可以在不同目录Q但同一文gpȝ中徏立文件的链接。设file1、file2在目?home/longcheng/dir1中,下面的命令,?home/longcheng中徏立file2的硬链接?</font></font></p> <center><ccid_nobr></ccid_nobr> <table border=1 cellSpacing=0 borderColorLight=#000000 borderColorDark=#ffffff cellPadding=2 width=400 align=center> <tbody> <tr> <td style="FONT-SIZE: 9pt" class=code bgColor=#e6e6e6> <pre><ccid_code>ln file2 /home/longcheng/file2hard</ccid_code></pre> </td> </tr> </tbody> </table> </center> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>下面的程序,是将dir1目录中所有文Ӟ在目录dir2中徏立硬链接 </font></font></p> <center><ccid_nobr></ccid_nobr> <table border=1 cellSpacing=0 borderColorLight=#000000 borderColorDark=#ffffff cellPadding=2 width=400 align=center> <tbody> <tr> <td style="FONT-SIZE: 9pt" class=code bgColor=#e6e6e6> <pre><ccid_code>$mkdir dir2<br>$ln /home/longcheng/dir1/* /home/longcheng/dir2</ccid_code></pre> </td> </tr> </tbody> </table> </center> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>如果使用?ln –f existingfile newfile,如果newfile已经存在Q则无论原来newfile是什么文Ӟ只用当前用户对它有写权限Qnewfile成为exisitngfile的硬链接文g?</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>管链接节省空_也是Linuxpȝ整合文gpȝ的传l方式,但是存在一下不之处:Q?Q不可以在不同文件系l的文g间徏立链接(2Q只有超U用h可以为目录创建硬链接。虽然很多树上说root用户可以创徏Q但是笔者在学习q程中发现即使是root用户也不能创建,我的pȝ是RedhatQ内?2.4?.6都试q,在其他系l中不知道是不是可以?</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000><strong>二、Y链接Q符号链接)</strong> </font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>软链接克服了链接的不Q没有Q何文件系l的限制QQ何用户可以创建指向目录的W号链接。因而现在更为广泛用,它具有更大的灉|性,甚至可以跨越不同机器、不同网l对文gq行链接?</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>建立软链接,只要在ln后面加上选项 –sQ下面D个例?</font></font></p> <center><ccid_nobr></ccid_nobr> <table border=1 cellSpacing=0 borderColorLight=#000000 borderColorDark=#ffffff cellPadding=2 width=400 align=center> <tbody> <tr> <td style="FONT-SIZE: 9pt" class=code bgColor=#e6e6e6> <pre><ccid_code>$ ls -il<br>13058 -rwx - - - - - - 1 longcheng longcheng 48 8?5 16:38 file1<br>13059 -rwx - - - - - - 2 longcheng longcheng 57 8?5 16:40 file2<br>13059 -rwx - - - - - - 2 longcheng longcheng 57 8?5 16:40 file2hard<br>$ln –s file1 file1soft<br>$ls -il<br>13058 -rwx - - - - - - 1 longcheng longcheng 48 8?5 16:38 file1<br>13059 -rwx - - - - - - 2 longcheng longcheng 57 8?5 16:40 file2<br>13059 -rwx - - - - - - 2 longcheng longcheng 57 8?5 16:40 file2hard<br>13061 lrwxrwxrwx 1 longcheng longcheng 5 8?5 16:58 file1soft->file1</ccid_code></pre> </td> </tr> </tbody> </table> </center> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>从上面链接后的结果可以看出来软链接与链接,区别不仅仅是在概念上Q在实现上也是不同的。区别:链接原文gQ链接文件公用一个inodeP说明他们是同一个文Ӟ而Y链接原文Ӟ链接文g拥有不同的inodeP表明他们是两个不同的文gQ在文g属性上软链接明写Z是链接文Ӟ而硬链接没有写出来,因ؓ在本质上链接文件和原文件是完全q等关系Q链接数目是不一LQY链接的链接数目不会增加;文g大小是不一LQ硬链接文g昄的大是跟原文g是一LQ这用强调,因ؓ是等同的嘛,而这里Y链接昄的大与原文件就不同了,file1大小?8BQ而file1soft?BQ这里面?实际上就?#8220;file1”的大?</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>MQ徏立Y链接是建立了一个新文g。当讉K链接文gӞpȝ׃发现他是个链接文Ӟ它读取链接文件找到真正要讉K的文件?</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>在不同系l之间徏立Y链接、对目录建立链接Q这里就不D例了Q读者可以自己去试Q我也是在不断实践中学习的?</font></font></p> <p style="TEXT-INDENT: 2em"><font class=f14><font color=#000000>当然软链接也有硬链接没有的缺点,因ؓ链接文g包含有原文g的\径信息,所以当原文件从一个目录下Ud其他目录中,再访问链接文Ӟpȝ找不到了,而硬链接没有这个缺P你想怎么Ud怎么U;q有它要pȝ分配额外的空间用于徏立新的烦引节点和保存原文件的路径。补充一下:可以通过symlink来查看链接文Ӟ可以?man symlink来学习?/font></font></p> <p style="TEXT-INDENT: 2em"></p> <p style="TEXT-INDENT: 2em"></p> <font class=f14><strong>索引节点、硬q接和连接计?</strong><br><br><strong>索引节点inodeQ?/strong> <br><br>引用Q?em>Linux为每个文件分配一个称为烦引节点的LinodeQ可以将inode单理解成一个指针,它永q指向本文g的具体存储位|。系l是通过索引节点(而不是文件名)来定位每一个文件?/em><br><br><br>例如Q?<br><br>假设我们在硬盘当前目录下建立了一个名为mytext文本文gQ其内容只有一行: <br><br> <pre>This is my file.</pre> <br><br> <pre>1、当然这行文字一定是存储在磁盘数据区某个具体位置?物理上要通过头受柱面号和扇区号来描qͼ在本例中假设分别??0?0)?<br><br><br><br>2、假讑օinode?62457Q那么系l通过一D|准程序,p这个inode转换成存放此文g的具体物理地址(1头?0柱面?0扇区Q,最l读出文件的内容Q?#8220;This is my file.” <br><br><br><br>3、所以inode是指向一个文件数据区的指针号码,一个inode对应着pȝ中唯一的一片物理数据区Q而位于两个不同物理数据区的文件必定分别对应着两个不同的inodeL?/pre> <br><br><strong>文g拯命o与硬链接的区别:</strong> <br><br> <pre># cp /home/zyd/mytext newfile</pre> <br><br>在当前工作目录徏立了一个新文gnewfileQ其实际操作主要包括如下三步Q?<br><br>引用Q?em>1、在当前目录中增加一个目录项Q其文g名域填入newfileQƈ分配了一个新的inodeQ假设是262456?<br>2、将原文??头?0柱面?0扇区)的内容复制了一份到新的I闲物理?假设?头?0柱面?1扇区)?<br>3、填写一些其他关键信息,使系l通过q些信息及inodeL可以完成物理地址的{换?</em><br><br><br>所以文件复制要分配新的inode和新的数据区Q虽然两个文件的内容是一L?<br><br><br><strong>连接hardlinkQ?/strong> <br><br>引用Q?em>我们实际使用文g时一般是通过文g名来引用的。通过上面的讨论,我们知道Q?<br><br>1个inodeL肯定和一片完全属于一个文件的数据Z一对应。那么一个文件系l中两个或更多个不同的文件名能否对应同一个文件呢Q答案是肯定的?<br><br>我们知道inodeL是记录在文g名对应的目录中的,我们可以使两个或多个文g的目录项h相同的inode|实际上就使它们对应着同一个文件?<br><br>有几个目录项h相同的inodeP我们pq个文g有几个硬q接(hardlink)Q?<br><br>对于普通文Ӟls -l命o的连接计数count域的数值就是本文g拥有的硬q接数。硬q接可以通过ln命o建立Q?/em><br><br><br>例如Q?<br><br> <pre># ln /home/zyd/mytext hardlink_mytext</pre> <br><br>徏立了一个新的文件hardlink_mytextQ这个文件的inode同样?62457。徏立硬q接实际上只是增加了一个目录项Q但q复制文件数据区Q原文g的数据区׃个文件共享。这一斚w能够节约大量盘I间Q同时可以保证两个文件能同步更新?<br><br> <pre>'ls -il'可以昄文g的inode(在下面最左边)Q?<br><br><br><br>262456 -rw-rw-r-- 1 zyd zyd 17 Nov 3 14:52 newfile <br><br>262457 -rw-rw-r-- 2 zyd zyd 17 Nov 3 14:50 hardlink_mytext <br><br>262457 -rw-rw-r-- 2 zyd zyd 17 Nov 3 14:50 mytext</pre> <br><br><br><strong>q接计数countQ?/strong> <br><br>前面我们介绍了,文g的连接计数域表明本系l中共有几个文g目录的inode和本文g相同Q也是本文件共有几个硬q接。如上面的例子中hardlink_mytext和mytext文g的count值都??<br><br>那么对于目录Q其count域的含义是什么呢Q目录的count同样表示共有多少个目录项指向此目录,不过要详l说明必进一步解释VFS文gpȝ的结构,为简单v见,只要q样理解p了:(count-2){于本目录包含的直接子目录数(是只包括儿子,不包括孙子啦Q??<br><br> <pre>例如Q如果一个目?abc的count域ؓ5Q那?abc目录一定包?个子目录?/pre> <br><br><br>引用Q?em>q一步说明: <br><br>连接文件实际上q不是一U新的文件类型,两个文g互ؓҎ的硬q接。它们应该都是普通文?谁能告诉我:其它cd的文件可以硬q接吗?)。两个文仉了名U或/和文件目录不同外Q其它部分完全相同,更改了一个文Ӟ另一个的文g长度、内宏V更Ҏ间等都将相应发生变化Q更改了一个文件的权限?modeQ另一个也会发生同L变化?</em><br><br><br>引用Q?em>注意q接计数字段countQ互为硬q接的两个文件的count值都?Q表明有两个inode指向同一文g的inode?<br><br>当我们删除其中一个文件时Q系l首先将(count-1)->;countQ如果结果是Ӟ将其目录项和数据区都删除,否则只将本目录项删除Q数据区仍然保留Q仍然可以通过另外的文件名讉K。根据这个特性,可以通过为重要的文g建立连接的Ҏ来防止其被误删除?</em><br><br><br>一个文件系l允许的inode节点数是有限的,如果文g数量太多Q即使每个文仉?字节的空文gQ系l最l也会因点空间耗尽而不能再创徏文g。所以当发现不能建立文g旉先要考虑盘数据区是否还有空?可通过du命o)Q其ơ还得检查节点空间?<br><br>引用Q?em>互ؓ连接的多个文g必须位于同一个文件系l上。根讑֤及Q何一个需要mount才能挂接q来的分区、Y盘、NFS、光q都是一?独立的文件系l,每个文gpȝ有一个相应的讑֤P不同文gpȝ中具有相同inode节点的文仉没有M联系。系l则通过讑֤号和inodeLl合 唯一定一个文件?</em><br><br><br>Linux之所以能支持多种文gpȝQ其实是׃Linux提供了一个虚拟文件系lVFSQVFS作ؓ实际文gpȝ的上层YӞ掩盖了实际文件系l底层的具体l构差异Qؓpȝ讉K位于不同文gpȝ的文件提供了一个统一的接 口?<br><br>实际上许多文件系lƈ不具备inodel构Q其目录l构也和以上的讨Z同,但通过VFSQ系l均为其提供了虚拟一致的inode和目录项l构?<br><br>所以,'ls -il'命o实际昄的inode应该是VFS inodeQ也是_inode是存在于内存中的数据l构Q而不一定是实际的硬盘结构?<br><br>但ؓLinux量n定做的ext2文gpȝ具备实际的inode和连接型目录结构,所以,对于ext2文gpȝQ可以认为我们上面讨论的关于连接的概念是完全正的?/font> </div> </div> </td> </tr> </tbody> </table> <p style="LINE-HEIGHT: 150%; MARGIN: 5px"></p> </td> </tr> <tr> <td height=25> <font color=#000099><strong>原文地址</strong></font> <a target=_blank><u><font color=#0066cc>http://blog.chinaunix.net/u2/86586/showart_1679890.html</font></u></a> </td> </tr> </tbody> </table> <img src ="http://www.shnenglu.com/koson/aggbug/109490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/koson/" target="_blank">koson</a> 2010-03-12 10:48 <a href="http://www.shnenglu.com/koson/archive/2010/03/12/109490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>不带~存的I/O和标?带缓存的)I/Ohttp://www.shnenglu.com/koson/archive/2010/03/10/109373.htmlkosonkosonWed, 10 Mar 2010 09:41:00 GMThttp://www.shnenglu.com/koson/archive/2010/03/10/109373.htmlhttp://www.shnenglu.com/koson/comments/109373.htmlhttp://www.shnenglu.com/koson/archive/2010/03/10/109373.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/109373.htmlhttp://www.shnenglu.com/koson/services/trackbacks/109373.html先来看看不带~存的I/O和标?带缓存的)I/O都有那些
不带~存的I/O:       read,write,open......
标准(带缓存的)I/O: fgets,fread,fwrite.....

q里使用两个对应的函数进行比较:
ssize_t write(int filedes, const void *buff, size_t nbytes)
size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *fp)

上面的buff和ptr都是指应用程序自׃用的bufferQ实际上当需要对文gq行写操作时Q都会先写到内核所讄~冲存储器。如果该~存未满Q则q不其排入输出队列Q直到缓存写满或者内核再ơ需要重C用此~存时才其排入盘I/O输入队列Q再q行实际的I/O操作Q也是此时才把数据真正写到盘Q这U技术叫延迟写?/p>

如果我们直接用非~存I/O对内核的~冲行读写,会生许多管理不善而造成的麻烦(如一ơ性写入过多,或多ơ系l调用导致的效率低下Q?/p>

标准(带缓存的)I/O为我们解决了q些问题Q它处理很多l节Q如~冲区分配,以优化长度执行I/O{,更便于我们用?/p>

׃标准(带缓存的)I/O在系l调用的上一层多加了一个缓冲区Q也因此引入了流的概念,在UNIX/Linux下表CZؓFILE*Qƈ不限于UNIX/LinuxQANSI C都有FILE的概念)QFILE实际上包含了为管理流所需要的所有信息:实际I/O的文件描q符Q指向流~存的指针(标准I/O~存Q由malloc分配Q又UCؓ用户态进E空间的~存Q区别于内核所讄~存Q,~存长度Q当前在~存中的字节敎ͼ出错标志{?/p>

因此可知Q?strong>不带~存的I/OҎ件描q符操作Q带~存的标准I/O是针Ҏ?/strong>?/p>

标准I/OҎ个I/O自动进行缓存管理(标准I/O函数通常调用malloc来分配缓存)。它提供了三U类型的~存Q?br>      1) 全缓存。当填满标准I/O~存后才执行I/O操作。磁盘上的文仉常是全~存的?br>      2) 行缓存。当输入输出遇到新行W或~存满时Q才由标准I/O库执行实际I/O操作。stdin、stdout通常是行~存的?br>      3) 无缓存。相当于read、write了。stderr通常是无~存的,因ؓ它必d快输出?/p>

一般而言Q由pȝ选择~存的长度,q自动分配。标准I/O库在关闭的时候自动释攄存。另外,也可以用函数fflush()流所有未写的数据送入Q刷斎ͼ到内核(内核~冲区)Qfsync()所有内核缓冲区的数据写到文Ӟ盘Q?/strong>?/p>

在标准I/O库中也有引入~存理而带来的~点--效率问题。例如当使用每次一行函数fgets和fputsӞ通常需要复制两ơ数据:一ơ是在内核和标准I/O~存之间Q当调用read和writeӞQ第二次是在标准I/O~存Q通常pȝ分配和管理)和用L序中的行~存Qfgets的参数就需要一个用戯~存指针Q之间?/p>

koson 2010-03-10 17:41 发表评论
]]>
讄vim语法高亮昄和自动羃q?/title><link>http://www.shnenglu.com/koson/archive/2010/03/05/108972.html</link><dc:creator>koson</dc:creator><author>koson</author><pubDate>Fri, 05 Mar 2010 08:02:00 GMT</pubDate><guid>http://www.shnenglu.com/koson/archive/2010/03/05/108972.html</guid><wfw:comment>http://www.shnenglu.com/koson/comments/108972.html</wfw:comment><comments>http://www.shnenglu.com/koson/archive/2010/03/05/108972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/koson/comments/commentRss/108972.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/koson/services/trackbacks/108972.html</trackback:ping><description><![CDATA[<table style="border-collapse: collapse; word-wrap: break-word;" width="100%" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td height="25" align="center"><font style="font-size: 14pt;" color="#02368d"><strong>讄vim语法高亮昄和自动羃q?/strong></font><br> </td> </tr> <tr> <td height="1" bgcolor="#d2dee2"><br></td> </tr> <tr> <td height="1" bgcolor="#ffffff"><br></td> </tr> <tr> <td align="center"> <table style="border-collapse: collapse; word-wrap: break-word;" width="100%" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td width="100%"> <div class="nz3tnl3" id="art" width="100%" style="margin: 15px;"> 1、配|文件的位置<br>     在目?/etc/ 下面Q有个名为vimrc的文Ӟq是pȝ中公qvim配置文gQ对所有用户都有效。而在每个用户的主目录下,都可以自己徏立私有的配置文gQ命名ؓQ?#8220;.vimrc”。例如,/root目录下,通常已经存在一?vimrc文g?br>  <br> 2、设|语法高亮显C?br> 1) 打开vimrcQ添加以下语句来使得语法高亮昄Q?br>    <span style="color: #ff0102;"> syntax on</span><br> 2) 如果此时语法q是没有高亮昄Q那么在/etc目录下的profile文g中添加以下语句:<br>    <span style="color: #ff0102;"> export TERM=xterm-color</span><br> 3、设|Windows风格的C/C++自动~进Q添加以下set语句到vimrc中)<br>               1Q不讨论制表Wؓ8q是?较好Q这里设|(软)制表W宽度ؓ4Q?br>                             <span style="color: #ff0102;">set tabstop=4</span><br style="color: #ff0102;"> <span style="color: #ff0102;">                            set softtabstop=4</span><br>               2Q设|羃q的I格Cؓ4<br>                           <span style="color: #ff0102;">set shiftwidth=4</span><br>               3Q设|自动羃q:x行的~进g上一行相{;使用 noautoindent 取消讄Q?br> <span style="color: #ff0102;">set autoindent</span><br>               4Q设|?C/C++ 语言的自动羃q方式:<br>                           <span style="color: #ff0102;">set cindent</span><br>               5Q设|C/C++语言的具体羃q方式(以我的windows风格ZQ:<br>                           <span style="color: #ff0102;">set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s</span><br>               6Q如果想在左侧显C文本的行号Q可以用以下语句Q?br>                           <span style="color: #ff0102;">set nu</span><br>               7Q最后,如果没有下列语句Q就加上吧:<br> <span style="color: #ff0102;">if &term=="xterm"</span><br style="color: #ff0102;"> <span style="color: #ff0102;">    set t_Co=8</span><br style="color: #ff0102;"> <span style="color: #ff0102;">    set t_Sb=^[[4%dm</span><br style="color: #ff0102;"> <span style="color: #ff0102;">    set t_Sf=^[[3%dm</span><br style="color: #ff0102;"> <span style="color: #ff0102;">endif<br> <br> <span style="color: #000102;">PSQ?br> 自动~进有两个选项:  <br> 代码:<br>     <span style="color: #ff0102;">set autoindent </span><br style="color: #ff0102;"> <span style="color: #ff0102;">    set cindent</span><br>    <br>  autoindent 是自动~进的意思,当你在输入状态用回R键插入一个新行,或者在 normal 状态用 o 或?O 插入一个新行时Qautoindent 会自动地当前行的羃q拷贝到新行Q也是"自动寚w”Q当然了Q如果你在新行没有输入Q何字W,那么q个~进自动删除?<br>  <br>  cindent ׃同了Q它会按?C 语言的语法,自动地调整羃q的长度Q比如,当你输入了半条语句然后回车时Q羃q会自动增加一?TABSTOP |当你键入了一个右花括hQ会自动减少一?TABSTOP 倹{?/span></span> </div> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table><img src ="http://www.shnenglu.com/koson/aggbug/108972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/koson/" target="_blank">koson</a> 2010-03-05 16:02 <a href="http://www.shnenglu.com/koson/archive/2010/03/05/108972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装 vim http://www.shnenglu.com/koson/archive/2010/03/05/108950.htmlkosonkosonFri, 05 Mar 2010 04:15:00 GMThttp://www.shnenglu.com/koson/archive/2010/03/05/108950.htmlhttp://www.shnenglu.com/koson/comments/108950.htmlhttp://www.shnenglu.com/koson/archive/2010/03/05/108950.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/108950.htmlhttp://www.shnenglu.com/koson/services/trackbacks/108950.htmlq入src 目录
./configure Q如果提C缺终端库Q则要先安装ncurses,sudo apt-get install libncurses5-dev,q里安装可能会出C赖关pd的版本不寚w题,原因可能是自己更改了/etc/apt/sources.list文gq更斎ͼ解决办法是将sources.listq原成原来的文gQƈ重新执行updateQ然后再安装)
make && make install




koson 2010-03-05 12:15 发表评论
]]>
更新?/title><link>http://www.shnenglu.com/koson/archive/2010/03/05/108945.html</link><dc:creator>koson</dc:creator><author>koson</author><pubDate>Fri, 05 Mar 2010 03:14:00 GMT</pubDate><guid>http://www.shnenglu.com/koson/archive/2010/03/05/108945.html</guid><wfw:comment>http://www.shnenglu.com/koson/comments/108945.html</wfw:comment><comments>http://www.shnenglu.com/koson/archive/2010/03/05/108945.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/koson/comments/commentRss/108945.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/koson/services/trackbacks/108945.html</trackback:ping><description><![CDATA[在终端执行以下命令(W一条是备䆾现有服务器列表,W二条是使用Gedit~辑Q?<br> sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup<br> sudo gedit /etc/apt/sources.list<br> 从下面各服务器列表内容中选择一D|换文件中的所有内?br> 保存~辑好的文gQ执行以下命令更新?<br> sudo apt-get update<br> sudo apt-get dist-upgrade<br><font face="楷体_GB2312" size="4" color="#00ff00">以下是ubuntu 9.10 教育|的?</font> <p><font face="楷体_GB2312" size="4" color="#00ff00">deb </font><a ><font face="楷体_GB2312" size="4" color="#00ff00">http://Ubuntu.uestc.edu.cn/ubuntu/</font></a><font face="楷体_GB2312" size="4" color="#00ff00"> karmic main restricted universe multiverse<br> deb </font><a ><font face="楷体_GB2312" size="4" color="#00ff00">http://Ubuntu.uestc.edu.cn/ubuntu/</font></a><font face="楷体_GB2312" size="4" color="#00ff00"> karmic-backports main restricted universe multiverse<br> deb </font><a ><font face="楷体_GB2312" size="4" color="#00ff00">http://Ubuntu.uestc.edu.cn/ubuntu/</font></a><font face="楷体_GB2312" size="4" color="#00ff00"> karmic-proposed main restricted universe multiverse<br> deb </font><a ><font face="楷体_GB2312" size="4" color="#00ff00">http://Ubuntu.uestc.edu.cn/ubuntu/</font></a><font face="楷体_GB2312" size="4" color="#00ff00"> karmic-security main restricted universe multiverse<br> deb </font><a ><font face="楷体_GB2312" size="4" color="#00ff00">http://Ubuntu.uestc.edu.cn/ubuntu/</font></a><font face="楷体_GB2312" size="4" color="#00ff00"> karmic-updates main restricted universe multiverse<br> deb-src </font><a ><font face="楷体_GB2312" size="4" color="#00ff00">http://Ubuntu.uestc.edu.cn/ubuntu/</font></a><font face="楷体_GB2312" size="4" color="#00ff00"> karmic main restricted universe multiverse<br> deb-src </font><a ><font face="楷体_GB2312" size="4" color="#00ff00">http://Ubuntu.uestc.edu.cn/ubuntu/</font></a><font face="楷体_GB2312" size="4" color="#00ff00"> karmic-backports main restricted universe multiverse<br> deb-src </font><a ><font face="楷体_GB2312" size="4" color="#00ff00">http://Ubuntu.uestc.edu.cn/ubuntu/</font></a><font face="楷体_GB2312" size="4" color="#00ff00"> karmic-proposed main restricted universe multiverse<br> deb-src </font><a ><font face="楷体_GB2312" size="4" color="#00ff00">http://Ubuntu.uestc.edu.cn/ubuntu/</font></a><font face="楷体_GB2312" size="4" color="#00ff00"> karmic-security main restricted universe multiverse<br> deb-src </font><a ><font face="楷体_GB2312" size="4" color="#00ff00">http://Ubuntu.uestc.edu.cn/ubuntu/</font></a><font face="楷体_GB2312" size="4" color="#00ff00"> karmic-updates main restricted universe multiverse</font></p> <p><br></p> <br><img src ="http://www.shnenglu.com/koson/aggbug/108945.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/koson/" target="_blank">koson</a> 2010-03-05 11:14 <a href="http://www.shnenglu.com/koson/archive/2010/03/05/108945.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux ?rar 安装使用http://www.shnenglu.com/koson/archive/2010/03/05/108935.htmlkosonkosonFri, 05 Mar 2010 02:21:00 GMThttp://www.shnenglu.com/koson/archive/2010/03/05/108935.htmlhttp://www.shnenglu.com/koson/comments/108935.htmlhttp://www.shnenglu.com/koson/archive/2010/03/05/108935.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/108935.htmlhttp://www.shnenglu.com/koson/services/trackbacks/108935.html解压 tar -zxvf rarlinux-3.9.2.tar.gz
安装make install

使用Q?br>可以使用帮助命o或者查看man文档了解一下rar命o的用法。以下ؓ本h译的帮助文档,׃本hp水^有限Q错误之处敬h出?br>
$ rar --help

用法:     rar <命o> -<选项 1> -<选项 N> <压羃档案> <文g...>
               <@文g列表...> <解压~\径\>

<命o>
  a             d文g到压~档?br>  c             d压羃档案注释(注释的大最大不能超q?2000字节)
  cf            d文g备注Q?当?v'参数时显C文件备注,最大不能超q?2767字节Q?br>  ch            改变压羃档案参数
  cw            向指定文件写入档案备?br>  d             从档案中删除文g
  e             解压~文件到当前目录(不创ZQ何子目录)
  f             h档案中的文g(更新q些文g自它们被打包之后产生的变化,不在压羃档案中增加新?
  i[par]=<str>  在档案中查找特定字符
  k             锁定档案(M试图改变压羃档案中内容的命o都会被忽?
  l[t,b]        列出档案[technical, bare]
  m[f]          Ud到压~档案中[只针Ҏ件]
  p             打印文g到标准输?br>  r             修补压羃档案
  rc            重徏丢失的分?br>  rn            重命名压~档案中的文?br>  rr[N]         d数据恢复记录
  rv[N]         创徏恢复?br>  s[name|-]     压羃档案与SFX(自解压文?之间的{?br>  t             试压羃档案文g
  u             更新压羃档案中的文g
  v[t,b]        列出压羃档案的详l信息[technical,bare]
  x             解压~到完整路径

<选项>
  -             停止寚w项的扫?br>  ad            q加档案名称到目标\?br>  ag[format]    使用当前数据生成压羃档案?br>  ap<path>      在档案内部设|\?br>  as            同步档案内目?br>  av            讄认证?只有注册版提供此功能)
  av-           关闭认证?br>  c-            关闭备注昄
  cfg-          关闭d讄
  cl            转换名称为小写字?br>  cu            转换名称为大写字?br>  df            压羃后删除原文g
  dh            打开׃n文g
  ds            关闭针对于稳固档案的名称排序
  dw            压羃后擦除文?br>  e[+]<attr>    讄文g排除与包含属?br>  ed            不添加空目录
  en            不设|档案结束块
  ep            名称中不包含路径
  ep1           名称中不包含基本文g目录
  ep3           展开路径到完整包含的驱动器名
  f             h文g
  hp[password]  加密文g数据和文件头?br>  id[c,d,p,q]   关闭消息
  ierr          发送所有消息到标准错误输出
  ilog[name]    记录错误日志到文件中(只有注册版提供此功能)
  inul          关闭所有消?br>  isnd          打开声音
  k             锁定压羃档案
  kb            保持被解压过的已损坏的文?br>  m<0..5>       讄压羃{(0-存储...3-默认...5-最?
  mc<par>       讄高压羃参数
  md<size>      Dictionary size in KB (64,128,256,512,1024,2048,4096 or A-G)
  ms[ext;ext]   存储指定的文件类?br>  n<file>       仅包含指定的文g
  n@            从标准输入读取文件名到包含内容中
  n@<list>      在指定列表文件中包含文g
  o[+|-]        讄重写模式
  ol            替文件保存符可接作?br>  or            自动重命名文?br>  ow            保存zd储文件的拥有者与组
  p[password]   讄密码
  p-            不询问密?br>  r             对子目录q行递归操作
  r0            仅用通配W名U对子目录进行递归操作
  rr[N]         d数据恢复记录
  rv[N]         创徏恢复
  s[<N>,v[-],e] 创徏E_档案压羃
  s-            关闭E_档案压羃
  sc<chr>[obj]  讄指定的字W串
  sfx[name]     创徏SFX档案
  si[name]      从标准输入读取数?br>  sl<size>      处理文g的大小于指定的?br>  sm<size>      处理文g的大大于指定的?br>  t             压羃后测试文?br>  ta<date>      处理修改日期为指定日期之后的文gQ?lt;date>格式: YYYYMMDDHHMMSS
  tb<date>      处理修改日期为指定日期之前的文gQ?lt;date>格式: YYYYMMDDHHMMSS
  tk            保持档案最初的旉
  tl            讄档案旉为据现在最q的文g旉
  tn<time>      处理比指定时间新的文?br>  to<time>      处理比指定时间旧的文?br>  ts<m,c,a>[N]  保存或存储文件时?修改,创徏,讉K)
  u             更新文g
  v             创徏自动大小的卷或列出所有卷
  v<size>[k,b]  创徏指定大小的卷size=<size>*1000 [*1024, *1]
  ver[n]        文g版本控制
  vn            使用旧的卷命名体p?br>  vp            在每个卷之前暂停
  w<path>       指定工作目录
  x<file>       排除指定文g
  x@            排除从标准输入中d的文件名U?br>  x@<list>      从指定列表文件中指定要排除的文g
  y             讑֮所有回{ؓyes
  z[file]       从文件中d压羃档案的备?/td>


注意Qrar?lt;命o>部分不带"-"P只有<选项>部分?-"Pq一Ҏ意一下?br>
? 1Q添加文件或目录到压~档案中Q用a命o。例如把文gfiles1d到abc.rar中,使用a或m命o,a命o把file1文gd? abc.rar档案中保持原有的file1文g不变Qm命oUdfile1文g到file1.rar档案?压羃完成后会删除原有的file1文gQ注 意:m命o只针Ҏ件进行操?
$rar a abc.rar file1

? 明:如果此时abc.rar档案不存在,会自行创建abc.rar文档案,如果abc.rar档案已经存在Q则file1文g压羃qabc.rar档案 中,若abc.rar档案中已存在一个file1文gQ则会更新file1文g。ƈ且原有的file1文g依然存在于当前目录下Q若要将file1文gU? 动到file1.rar中请使用m命oQ对于目录同样可以进行此操作?br>注意Q如果只输入"rar a file1.rar"命o,而没有接文g名或目录名的话,会将当前目录下所有的文g和文件夹压羃qfile1.rar文档中。这点要注意一下?br>
?Q解压羃abc.rar档案中的内容Q可以用e或x命o,假设abc.rar目录中有一个名为file1的文件和一个名为test的目录,test目录中有一个名为file2的文Ӟ
$rar e abc.rar

说明Q用e命oQ会abc.rar中的file1文gq同test目录下的file2文g解压到当前目录。如果想保持abc.rar目录中的目录l构请用x命o?br>
$rar x abc.rar

说明Q此时会file1文g和test目录解压到当前文件夹?br>
?Qؓ整个压羃文gd注释
$rar c abc.rar

说明Q输入该命o后,屏幕最下方会显C?br>
Processing archive test.
rarReading comment from stdin

q有一个光标在闪烁Q从光标闪烁的位|输入注释信息,输入完了按下Ctrl+Dl束输入

?:为压~文件中的单个文件添加注释,使用cf命o。假如现在要为abc.rar档案中的file1文gd注释
$rar ch abc.rar file1

此时屏幕最下方会显C?br>
Reading comment for abc.rar : file1 from stdin

从光标闪烁出输入惌为file1d的注释,Ctrl+Dl束输入

?:把整个档案的注释写入C个文件中Q用cw命o。加入要abc.rar的注释写入到test.txt文g?br>
$rar cw abc.rar test.txt

? 明:如果当前目录下不存在名ؓtest.txt的文Ӟ则会自行创徏一个名为test.txt的文Ӟq将abc.rar的注释写入到text.txt? 件中Q如果当前目录中已经存在一个名为text.txt的文Ӟ则会提示你是否覆盖已l存在的文gQ如果选择Yes或者All,则会清空test.txt 中原有的内容Q然后将abc.rar的注释内容写入到text.txt文g中?br>
?Q删除压~档案中的文件或目录Q用d命o。例如要删除abc.rar档案中的file1文g?br>
$rar d abc.rar file1

说明Q该命o删除abc.rar档案中的file1文gQ对于目录同h效?br>
以上为常用的压羃与解压羃命oQ?lt;选项>部分的用不再进行介l了Q请大家自己试一下吧?br>
解压~命令unrar的用:

$unrar --help

用法:     unrar <command> -<switch 1> -<switch N> <archive> <files...>
               <@listfiles...> <path_to_extract\>

<命o>
  e             解压文g到当前目?br>   l[t,b]        列出压羃文档信息[technical, bare]
  p             打印文g到标准输?br>   t             试压羃我俄?br>   v[t,b]        列出压羃文档的详l信息[technical,bare]
  x             解压文g到完整\?/td>


以下?lt;选项>部分Q略厅R?br>
unrar的命令和rarh同样的效果,可以看出unrar只包含了rar的一部分命o而已Q因此用rar可以完成所有操作?br>


koson 2010-03-05 10:21 发表评论
]]>
Ubuntu 9.10中安装五W输入法http://www.shnenglu.com/koson/archive/2010/03/03/108808.htmlkosonkosonWed, 03 Mar 2010 08:43:00 GMThttp://www.shnenglu.com/koson/archive/2010/03/03/108808.htmlhttp://www.shnenglu.com/koson/comments/108808.htmlhttp://www.shnenglu.com/koson/archive/2010/03/03/108808.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/108808.htmlhttp://www.shnenglu.com/koson/services/trackbacks/108808.html׃Ubuntu 9.10自带的是ibusQ默认没有安装五W,需要手动安装。安装步骤如下:

        1、下?/span> ibus-table-wubi-1.2.0.20090715.tar.gz ?/span>

        2、解压后q入目录序执行以下命oQ?/span>

                ./configure

                make

        3、在此目录下会生成一个table目录Q里面有个文件叫wubi86.db

                sudo cp wubi86.db /usr/share/ibus-table/tables

        4、重启ibusQ再把五W?6dq去。就可以了?/span>

转自http://blog.csdn.net/hgd250/archive/2009/11/26/4875711.aspx



koson 2010-03-03 16:43 发表评论
]]>
文本 ~己辑器 vi 基础http://www.shnenglu.com/koson/archive/2010/03/03/108796.htmlkosonkosonWed, 03 Mar 2010 07:30:00 GMThttp://www.shnenglu.com/koson/archive/2010/03/03/108796.htmlhttp://www.shnenglu.com/koson/comments/108796.htmlhttp://www.shnenglu.com/koson/archive/2010/03/03/108796.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/108796.htmlhttp://www.shnenglu.com/koson/services/trackbacks/108796.html文g~辑?vi

作者:北南南北
来自Q?/strong>LinuxSir.Org
摘要Q?/strong>vi ~辑器是最常用的文档创建和~辑工具Q初学者应该学会简单应用vi Q学会在vi 中做单的修改、删除、插入、搜索及替换作业Q如果您是新手,不妨看看本文Q或许这文档能让您在最短的旉内学会vi的简单操作;

目录


+++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++


1、关于文本编辑器Q?br>

文本~辑器有很多Q比如图形模式的gedit、kwrite、OpenOffice ... ... Q文本模式下的编辑器有vi、vimQvi的增强版本)和nano ... ... vi和vim是我们在Linux中最常用的编辑器。我们有必要介绍一下viQvimQ最单的用法Q以让Linux入门U用户在最短的旉内学会用它?/p>

nano 工具和DOS操作pȝ下的edit操作怼Q用简单,我们不作介绍了,如果您有兴趣Q不妨尝试一下;


2、vi ~辑器;

Z么要学会单应用vi

vi或vim是Linux最基本的文本编辑工Pvi或vim虽然没有囑Ş界面~辑器那L鼠标的简单操作,但vi~辑器在pȝ理、服务器理 中,永远不是囑Ş界面的编辑器能比的。当您没有安装X-windows桌面环境或桌面环境崩溃时Q我们仍需要字W模式下的编辑器viQ?/p>

vi或vim ~辑器在创徏和编辑简单文档最高效的工P


3、vi ~辑器的使用ҎQ?br>


3.1 如何调用vi Q?br>

[root@localhost ~]# vi  filename
~
~
~
~
~
~
~
~


3.2 vi 的三U命令模式;

CommandQ命令)模式Q用于输入命令;
InsertQ插入)模式Q用于插入文本;
VisualQ可视)模式Q用于视化的的高亮ƈ选定正文Q?/code>


3.3 文g的保存和退出;

Command 模式是vi或vim的默认模式,如果我们处于其它命o模式Ӟ要通过ESC键切换过来?/p>

当我们按ESC键后Q接着再输?hQvi会在屏幕的最下方{待我们输入命oQ?/p>

:w  保存Q?br>:w  filename 另存为filenameQ?br>:wq! 保存退出;
:wq! filename 注:以filename为文件名保存后退出;
:q! 不保存退出;
:x 应该是保存ƈ退?Q功能和:wq!相同


3.4 光标UdQ?br>

当我们按ESCq入Command模式后,我们可以用下面的一些键位来Ud光标Q?/p>

j 向下Ud一行;
k 向上Ud一行;

h 向左Ud一个字W;
l 向右Ud一个字W;

ctrl+b  向上Ud一屏;
ctrl+f  向下Ud一屏;

向上头    向上UdQ?br>向下头    向下UdQ?br>向左头    向左UdQ?br>向右头    向右UdQ?/code>

我们~辑一个文件时Q对?j、k、l和h键,q能在这些动作命令的前面加上数字Q比?3jQ表C向下移?行?/p>


3.5 插入模式Q文本的插入Q;

i  在光标之前插入;
a  在光标之后插入;

I 在光标所在行的行首插入;
A  在光标所在行的行末插入;

o  在光标所在的行的上面插入一行;
O  在光标所在的行的下面插入一行;

s  删除光标后的一个字W,然后q入插入模式Q?br>S  删除光标所在的行,然后q入插入模式Q?/code>


3.6 文本内容的删除操作;

x 一个字W;
#x 删除几个字符Q?表示数字Q比?xQ?br>dw 删除一个单词;
#dw 删除几个单词Q?用数字表C,比如3dw表示删除三个单词Q?br>dd 删除一行;
#dd 删除多个行,#代表数字Q比?dd 表示删除光标行及光标的下两行Q?br>d$ 删除光标到行内容Q?br>
J 清除光标所处的行与上一行之间的I格Q把光标行和上一行接在一P


3.7 恢复修改及恢复删除操作;

u  撤消修改或删除操作;

按ESC键返回CommandQ命令)模式Q然后按u键来撤消删除以前的删除或修改Q如果您x消多个以前的修改或删除操作,h多按几次u。这和Word的撤消操作没有太大的区别Q?/p>


3.8 可视模式Q?br>

在最新的Linux发行版本中,vi提供了可视模式,因ؓq个功能是vim才有的。如果您用的vi没有q个功能Q就换成vim有了。打开可视模式Q按ESC键,然后按vp入可视模式;

可视模式为我们提供了极ؓ友好的选取文本范围Q以高亮昄Q在屏幕的最下方昄有;

-- 可视 --  

?br>
--VISUAL--

如图Q?/strong>

q入可视模式Q我们就可以用前面所说的命o行模式中的光标移动指令,可以q行文本范围的选取?/p>

选取文本范围有何用?

我们可以Ҏ部䆾删除作业Q按d键就删除了我们选中的内宏V?br> 选中内容后,我们按ypC复Ӟ按d表示删除Q?/p>

值得一提是的删除的同时Q也表示复制。我们返回到命o模式Q然后移动光标到某个位置Q然后按shift+p键,把刚才删除的内容脓上了。我们先在这里提一句,在后文,我们q得详细说说?/p>

退出可视模式,q是用ESC键;


3.9 复制和粘帖的操作Q?br>

其实删除也带有剪切的意思,当我们删除文字时Q可以把光标Ud到某处,然后按shift+p键就把内容脓在原处,然后再移动光标到某处Q然后再按p或shift+p又能贴上Q?/p>

p 在光标之后粘帖;
shift+p 在光标之前粘?/code>

来D一例:

比如我们x一个文档的W三行复制下来,然后帖到W五行的后面Q我们应该怎么做呢Q?/p>

有两U方法;

W一U方法:

先把W三行删除,把光标移动到W三行处Q然后用dd动作Q接着再按一下shift+p键。这样就把刚才删除的W三行帖在原处了?/p>

接着我们再用k键移动光标到W五行,然后再按一下p键,q样把W三行的内容又帖到第五行的后面了Q?/p>

W二U方法;

q入可视模式Q按ESC键,然后按v键。移动鼠标指针,选中W三行的内容Q然后按y键复Ӟ再移动指针到W五行,最后按p键;

所以复制和_脓操作Q是命o模式、插入模式及可视模式的综合运用;我们要学会各U模式之间的切换Q要常用ESC键;更ؓ重要的学会在命o模式下移动光标;


3.10 关于行号Q?br>

有时我们配置一个程序运行时Q会出现配置文gX行出现错?。这时我们要用到行号相关的操作;


为所有内Ҏ加行P

按ESC键,然后输入Q?/p>

:set number

光标所处位|?/strong>

在屏q的右下角,有类似如下的Q?/p>

         57,8          27%

在这之中Q?7表示W?7行,8表示W?个字W;


3.11 查找和替换功能;


3.11.1 查找Q?br>

首先Q我们要q入ESC键,q入命o模式Q我们输??p入查找模式了Q?/p>

/SEARCH  注:正向查找Q按n键把光标UdC一个符合条件的地方Q?br>?SEARCH  注:反向查找Q按shift+n 键,把光标移动到下一个符合条件的

举一例:比如我想在一个文件中扑ֈswap单词Q我应该如下做;

首先按ESC键,q入命o模式Q然后输入;

/swap
?br>?swap


3.11.2 替换Q?br>

按ESC键进入命令模式;

:s /SEARCH/REPLACE/g  注:把当前光标所处的行中的SEARCH单词Q替换成REPLACEQƈ把所有SEARCH高亮昄Q?br>:%s /SEARCH/REPLACE  注:把文档中所有SEARCH替换成REPLACEQ?br>:#,# s /SEARCH/REPLACE/g  注:Q号表示数字Q表CZ多少行到多少行,把SEARCH替换成REPLACEQ?/code>

注:在这之中Qg表示全局查找Q我们注意到Q就是没有替换的地方Q也会把SEARCH高亮昄Q?/p>

举例说明Q?/strong>

比如我们有一文档要修改Q?/p>

我们把光标所在的行,把所有单词theQ替换成THEQ应该是Q?/p>

:s /the/THE/g

我们把整文档的所有的the都替换成THEQ应该是Q?

:%s /the/THE

我们仅仅是把W?行到W?0行中的theQ替换成THEQ应该是Q?/p>

:1,10  s /the/THE/g


4、关于本文;

我写本文的目的是让新手在最短的旉内用vi或vim创徏、编辑和修改文gQ所以说q篇文档q不是大而全的vi手册。如果把vi所有的功能都说全了Q至得写一本千늚手册Q本也没有涉及更为高U的vi用法。如果想了解的更多,h找man和helpQ?/p>


5、后讎ͼ

到目前ؓ止,关于目录和文件的操作Q我写过有几了Q从文g和目录的创徏、删除、复制到属性操作,最后到文g修改{系列文档。这些文档都是有相关性的Q如果把q些相关性的文档qv来,是一个整体知识块。我们只有掌握了q些知识Q才能实现文件系l的理?/p>

在以后我会写什么内容呢Q?Q?可能会补充一下文件的查找Q其实以前有cM文档Q到时我ȝ一下,贴出来给大家看看p了?/p>

下一步是准备|络基础文档中,|络基础比较重要Q这是我计划的下一个重炏V。。。。。。?/p>


6、参考文档;

man vi 和vi --help



koson 2010-03-03 15:30 发表评论
]]>
linux firefox 安装flash player 10http://www.shnenglu.com/koson/archive/2010/03/03/108770.htmlkosonkosonWed, 03 Mar 2010 05:02:00 GMThttp://www.shnenglu.com/koson/archive/2010/03/03/108770.htmlhttp://www.shnenglu.com/koson/comments/108770.htmlhttp://www.shnenglu.com/koson/archive/2010/03/03/108770.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/108770.htmlhttp://www.shnenglu.com/koson/services/trackbacks/108770.htmlADOBE的网站下载install_flash_player_10_linux.tar.gz

解压,命o为:tar -zxvf install_flash_player_10_linux.tar.gz

     得到libflashplayer.so文g?br>


复制libflashplayer.so到火狐浏览器插g文g夹下Q?/font>

    命o? sudo cp libflashplayer.so /usr/lib/mozilla/plugins    \*此目录可能根据火狐不同的版本有所不同Q大家可以先去lib下面 搜烦一下mozilla*\

libflashplayer.so 复制q去之后Q重启firefox ?它就会提C有更新了?/p>

用firefox 播放flash时出Cؕ码解冻I

sudo vim /etc/fonts/conf.d/49-sansserif.conf

?br>

    <edit name="family" mode="append_last">
<string>sans-serif</string>

</edit>
红色部分改?lt;string>sans</string>


koson 2010-03-03 13:02 发表评论
]]>
LAMP 配置http://www.shnenglu.com/koson/archive/2009/12/17/103433.htmlkosonkosonThu, 17 Dec 2009 14:36:00 GMThttp://www.shnenglu.com/koson/archive/2009/12/17/103433.htmlhttp://www.shnenglu.com/koson/comments/103433.htmlhttp://www.shnenglu.com/koson/archive/2009/12/17/103433.html#Feedback0http://www.shnenglu.com/koson/comments/commentRss/103433.htmlhttp://www.shnenglu.com/koson/services/trackbacks/103433.html1. 首先安装SSH
sudo apt-get install ssh
2.安装MySQL(虽然现在最新版?.1Q但是还只能?.0版本)
sudo apt-get install mysql-server-5.0
3.安装Apache
sudo apt-get install apache2
4.安装PHP
sudo apt-get install php5 libapache2-mod-php5
5.重启Apache
sudo /etc/init.d/apache2 restart
6.安装phpMyAdmin
sudo apt-get install phpmyadmin
安装完成之后。在览器地址栏输入http://localhost/phpmyadminq不能打开数据库管?span class="t_tag" onclick="function onclick() { tagshow(event) }" style="line-height: 21px; ">界面?br>?var/www/的目录下q没有phpmyadminq个文g夏V?br>原来phpmyadmin默认是安装在/usr/share/phpmyadmi里面的?br>q是你就需要在/var/www里面Z个对应的软连接,或者直接把phpmyadmin目录拯q去?br>输入命oQ?br>cd /var/www/
sudo ln -s /usr/share/phpmyadmin
在浏览器地址栏再ơ输入http://localhost/phpmyadmin/q是可以打开了?br>另一U方法:安装LAMP
在新立得软g包管理器中选择 ~辑Q-使用d分组标记软g?br>在打开的窗口中Q?N?LAMP SERVER 然后定
在主H口?点击U钯的对?nbsp;应用 按钮
好了Q接下来是{新立得自动下蝲完毕q安装完成?br>中间会有一ơ提C入mysql的root用户密码
二、测?br>1. 试Apache
输入Qhttp://localhost/看是否出现It works字样
2. 试MySQL
输入Qsudo netstat -tap | grep mysql
可以看到cM下面的行Q?br>tcp 0 0 localhost.localdomain:mysql *:* LISTEN -
如果服务器不能正常运行,您可以通过下列命o启动它: sudo /etc/init.d/mysql restart
3. 试PHP
Ubuntu Apache的根目录位于/var/www?br>在里面添加一个测试文件test.php文gQ内?br><?php
phpinfo();
?>
览器重输入http://localhost/test.php


koson 2009-12-17 22:36 发表评论
]]>
9999Ʒŷþþþþ| ˾þۺӰԺ| һþۺ³³ŷһ | Ʒþþþþһ| ҹƷþþþþþ| žžþþƷ| þþþùƷ鶹ARӰԺ| ƷVIDEOSSEXþ÷| Ʒ۲ӰԺþ| 2021þþƷ| þɫһ| þþþþþۺۺϺݺ| þۺɫ֮þۺ| һþۺ³³ŷһ | þwww˳ɾƷ㽶| ҹƷþþþþþС˵| þĻȫ | ӰɫۺϾþ| ޾Ʒtvþþþ| ŷպþĻ| ۺϾƷ㽶þ| ۺϾþþþ| þþƷһ| þùAVJUST鶹| þ99Ʒþþþ| ƷþþĻ| 99Ʒþþþþþ| þùƷþ| ձþĻ| þþŷղ| ˾þô߽ӰԺ95| ھƷ˾þþþø| þۺϾɫۺϾƷ| þ¶ݺɫ| ҹþþþƷӰԺ| ٸŮþۺɫ| þԭۺ| Ʒþþþþþþ | ձ޿һþ | 㽶þþþ | ޳ɫWWWþվ|