• 早些时候在yeeyan上看到了一篇介绍Google Reader采用PubSubHubbub协议让人们更快的看到你订阅的blog更新和更快的把你分享的信息发布到订阅者的更新内容中。

    那什么是PubSubHubbub协议呢?简单来说PubSubHubbub是一个实时信息流的协议。PubSubHubbub通过全新的技术采集特定的信息,可以极大的缩短feed从发布到被客户端发现之间的时间。

    下面是Google自己的对PubSubHubbub简单介绍的PPT

     

     

  •        rar文件是在windows下面常用的压缩文件形式,因为合作的关系,我们经常会在合作伙伴的手中接到rar文件。由于平台的原因,我们没有winrar这个应用程序来解压。那怎么办呢? 我们都知道在linux下有一个unrar命令来解压rar文件。在Debian的软件库中有这样一个软件包:unrar-free。我们可以通过apt-get install unrar-free来安装这个软件。

           但是安装完后依然会有一些问题,那就是有些rar文件我们可以正常的解压,但是有些rar文件我们依然不能正常的解压了。我尝试过很多办法,比如以为是字符集的问题,尝试通过iconv来进行转码等等。依然是不行,后来一查unrar的版本,居然是0.0.1这么底的版本,尝试升级,发现已经是最新的版本了。看来不是软件版本的问题了,应该是软件本身的问题。我于是到winrar官网上看看有没有linux的版本。在donwload页果然看到了linux版本的下载。

           将rarlinux.tar.gz解压后,就可以直接使用里面的rar、unrar、rar_static命令了。

  • top:

    * A: PID        = Process Id
    * E: USER       = User Name
    * H: PR         = Priority
    * I: NI         = Nice value
    * O: VIRT       = Virtual Image (kb)
    * Q: RES        = Resident size (kb)
    * T: SHR        = Shared Mem size (kb)
    * W: S          = Process Status
    * K: %CPU       = CPU usage
    * N: %MEM       = Memory usage (RES)
    * M: TIME+      = CPU Time, hundredths
    b: PPID       = Parent Process Pid
    c: RUSER      = Real user name
    d: UID        = User Id
    f: GROUP      = Group Name
    g: TTY        = Controlling Tty
    j: P          = Last used cpu (SMP)
    p: SWAP       = Swapped size (kb)
    l: TIME       = CPU Time
    r: CODE       = Code size (kb)
    s: DATA       = Data+Stack size (kb)
    u: nFLT       = Page Fault count
    v: nDRT       = Dirty Pages count
    y: WCHAN      = Sleeping in Function
    z: Flags      = Task Flags <sched.h>
    * X: COMMAND    = Command name/line

    Flags field:
    0×00000001  PF_ALIGNWARN
    0×00000002  PF_STARTING
    0×00000004  PF_EXITING
    0×00000040  PF_FORKNOEXEC
    0×00000100  PF_SUPERPRIV
    0×00000200  PF_DUMPCORE
    0×00000400  PF_SIGNALED
    0×00000800  PF_MEMALLOC
    0×00002000  PF_FREE_PAGES (2.5)
    0×00008000  debug flag (2.5)
    0×00024000  special threads (2.5)
    0×001D0000  special states (2.5)
    0×00100000  PF_USEDFPU (thru 2.4)

    进程的优先级和nice级别
    进程优先级是一个决定进程被CPU执行优先顺序的参数,内核会根据需要调整这个值。Nice值是一个对优先权的限制。进程优先级的值不能低于nice值。(nice值越低优先级越高)
    进程优先级是无法去手动改变的,只有通过改变nice值去间接的调整进程优先级。如果一个进程运行的太慢了,你可以通过指定一个较低的nice值去为它分 配更多的CPU资源。当然,这意味着其他的一些进程将被分配更少的CPU资源,运行更慢一些。Linux支持nice值的范围是19(低优先级)到 -20(高优先级),默认的值是0。如果需要改变一个进程的nice值为负数(高优先级),必须使用su命令登陆到root用户。下面是一些调整nice 值的命令示例,
    以nice值-5开始程序xyz
    #nice –n -5 xyz

    改变已经运行的程序的nice值
    #renice level pid

    将pid为2500的进程的nice值改为10
    #renice 10 2500

    vmstat:

    ·process(procs)
    r:等待运行时间的进程数量
    b:处在不可中断睡眠状态的进程
    w:被交换出去但是仍然可以运行的进程,这个值是计算出来的
    ·memoryswpd:虚拟内存的数量
    free:空闲内存的数量
    buff:用做缓冲区的内存数量
    ·swap
    si:从硬盘交换来的数量
    so:交换到硬盘去的数量
    ·IO
    bi:向一个块设备输出的块数量
    bo:从一个块设备接受的块数量
    ·system
    in:每秒发生的中断数量, 包括时钟
    cs:每秒发生的context switches的数量
    ·cpu(整个cpu运行时间的百分比)
    us:非内核代码运行的时间(用户时间,包括nice时间)
    sy:内核代码运行的时间(系统时间)
    id:空闲时间,在Linux 2.5.41之前的内核版本中,这个值包括I/O等待时间;
    wa:等待I/O操作的时间,在Linux 2.5.41之前的内核版本中这个值为0

    iostat:

    %user:user level(应用)的CPU占用率情况
    %nice:加入nice优先级的user level的CPU占用率情况
    %sys:system level(内核)的CPU占用情况
    %idle:空闲的CPU资源情况

    Device:块设备名
    Tps:设备每秒进行传输的数量(每秒的I/O请求)。多个单独的I/O请求可以被组成一个传输操作,因为一个传输操作可以是不同的容量。
    Blk_read/s, Blk_wrtn/s:该设备每秒读写的块的数量。块可能为不同的容量。
    Blk_read, Blk_wrtn:自系统启动以来读写的块设备的总量。

    块可能为不同的容量。块的大小一般为1024、2048、4048byte。可通过tune2fs或dumpe2fs获得:
    # tune2fs -l /dev/hda1|grep ‘Block size’
    Block size:               4096
    # dumpe2fs -h /dev/hda1|grep ‘Block size’
    dumpe2fs 1.35 (28-Feb-2004)
    Block size:               4096

  • 下面的命令用来查看系统正在运行的东西。
    # top # 显示当前CPU处理的信息
    # mpstat 1 # 显示处理器相关的静态信息
    # vmstat 2 # 显示虚拟内存状态
    # iostat 2 # 显示I/O 信息
    # systat -vmstat 1 # BSD:汇总信息状态信息
    # systat -tcp 1 # BSD:显示TCP状态
    # systat -netstat 1 # BSD:活动的网络连接
    # systat -ifstat 1 # BSD:网络流量状态
    # systat -iostat 1 # BSD:CPU和硬盘的吞吐
    # tail -n 500 /var/log/messages # 最后500条内核、系统消息
    # tail /var/log/warn # 系统的警告信息
    相应的命令在sysstat软件包中。
  • 来源: Gentoo月报: 2008年8月31日

     使用lsof来查找正在使用中的文件和目录。

    你是否在删除文件或卸载装置时遇到过一些问题,即便你以root用户操作也解决不了?很有可能是因为设备挂载处的文件或文件夹正在被另一个用户或程序使用中。本期的心得技巧告诉你如何查找哪个用户或程序正在使用你要删除的文件或文件夹。

    首先安装lsof工具:

    代码 4.1: 安装lsof

    # emerge lsof

    lsof会列举出系统使用中的文件。一个使用中的文件可以是你正在使用其它程序编辑、阅读中的一个文件,也可以是你正在浏览的一个文件夹。下面举例说明如何在卸载设备时出现拒绝卸载的问题中使用lsof工具。比如拉里牛想把几天前装载的一个CD-ROM卸载了,当他试着操作时,得到了如下的错误信息:

    代码 4.2: 卸载一张CD

    # umount /mnt/cdromumount: /mnt/cdrom: device is busyumount: /mnt/cdrom: device is busy

    /mnt/cdrom正被使用中。由于拉里不记得是什么程序正在使用光驱,他运行了lsof,并得到如下提示:

    代码 4.3: 使用lsof

    # lsof | grep /mnt/cdrombash  6453   larry  cwd  DIR  7,0  2048  1856 /mnt/cdromsu    15774  root   cwd  DIR  7,0  2048  1856 /mnt/cdrom

    前两个字段标注的是进程名称和进程ID,第三个字段是进行的所有者,第四个是文件描述信息,之后的字段分别为文件类型、设备号、文件大小、节点号码,最后是文件名。文件描述信息也即文件类型,在这个实例中此处是cwd,或者当前工作目录。这表明用户larry在某处把自己的shell目录指向了/mnt/cdrom。由于拉里打开了很多shell程序,他决定缩小范围以查找可能占用设备的shell程序:

    代码 4.4: 检查shell

    # lsof -R | grep /mnt/tempbash  6453   6437   larry  cwd  DIR  7,0  2048  1856 /mnt/cdromsu    15774  6453   root   cwd  DIR  7,0  2048  1856 /mnt/cdrom

    此时多出现了一个字段,显示出了bashsu的父进程。正如你所看到的,subash的子进程。这可能意味着拉里在使/mnt/cdrom一直处于忙碌状态的那个bash会话中运行了su。接下来,拉里查找到bash的父进程:

    代码 4.5: 查找父进程

    # ps aux | grep 6437larry  6437  0.0  0.7  38880 24628 ?  S  Aug09  9:00 konsole [kdeinit] -session 10be696

    拉里使用Konsole做为他的终端程序。因此他知道必须在Konsole的其中一个窗口中寻找相应的bash会话。拉里运行pstree已找到可能的Konsole窗口:

    代码 4.6: 查找Konsole

    # pstree 6437konsole-+-bash---python---{python}        |-2*[bash]        |-bash---su---bash---pstree        |-2*[bash---su---bash]        |-bash---su---bash---vi        |-bash---ssh        `-bash---su---bash---man---sh---sh---less

    利用这些信息,拉里进一步缩小自己的推测范围,定位于第四个bash会话,该会话中运行了su。为使/mnt/cdrom不再处于忙碌状态,他退出了su终端并使用cd命令退出了/mnt/cdrom目录。

    lsof也可用于其他用途。例如,你可以用它来监控网络连接:

    代码 4.7: 监控网络连接

    # lsof -i TCP:22COMMAND  PID   USER   FD  TYPE  DEVICE SIZE NODE NAMEsshd    6094   root   3u  IPv4    9145      TCP *:ssh (LISTEN)ssh     9962 andrey   3u  IPv4 3489405      TCP larry.cow:35467>larry.bull:ssh (ESTABLISHED)

    此处我们看到了监听ssh连接的sshd服务和一个向外连接的ssh会话。

    lsof工具的/usr/share/lsof/scripts/文件夹下还有一些脚本。大部分脚本在如何更好地监视系统用户方面会对你有所帮助。

  • mldonkey是linux上很常用的p2p的软件。基本上所有的p2p协议都支持,不过默认是不开启bt的。

    其实,在mldonkey中开启bt和载入torrent都是很容易的事情。只需要在浏览器控制端的输入框中输入 startbt /home/***.torrent就可以了。

  • 来源:ownlinux

    似乎程序员们在编写程序的时候都比较喜欢留下自己的痕迹。因此在很多软件中都隐藏着彩蛋。当然 Ubuntu 的开发者们也在软件里留了一些彩蛋。下面就简单介绍一下 Ubuntu 中隐藏的彩蛋,很多彩蛋都在Ubuntu以前发布的版本里就已经遗留下来的。以下彩蛋在 Ubuntu 8.04 里测试均有效。

     

    APT是Debian/Ubuntu中的一大特色,在这之中却隐藏了不少的彩蛋

    用 man 查看 apt 的选项你会发现“本APT有着超级牛力”

     

    在终端里输入:

    ownlinux@ownlinux-laptop:~$ apt-get moo

    你会发现一个非羊非牛的出现在终端上面,难道就是代表GNU开源自由精神的“角马”?

     

    在终端里输入:

    aptitude moo

    aptitude -v moo

    aptitude -vv moo

    aptitude -vvv moo

    aptitude -vvvv moo

    aptitude -vvvvv moo

    aptitude -vvvvvv moo

    aptitude -vvvvvvv moo

    就会出现下图的所示的彩蛋

     

     

    ALT+F2 运行 free the fish

    你会发现有条小鱼从屏幕边游在桌面上来。你用鼠标点击它,它就会立刻躲起来

     

     

    Alt+F2 运行 gegls from outer space   一个“从外太空来的杀手 GEGLS”的游戏就会跳出来,用键盘的方向键来控制小鱼不要被中弹,当然你也可以敲键盘的空格键让小鱼发子弹进行反击。

     

     

    OpenOffice Writer 里输入 StarWriterTeam 按F3 ,你会弹出一张 Writer 开发团队成员的照片,而且在下面有一段E文。

     

     

    在终端中输入:

    zgrep "The.*Release" /usr/share/doc/dpkg/changelog.Debian.gz

    仿佛有很多隐藏的发行版,在顷刻之间就发布了,我处理掉图片上有一段“请用文明语”的话。

     

    简单地列举了一些 Ubuntu8.04 中的彩蛋。并不什么新的东东,因为很多彩蛋都是以前的发行版就有的。如果有文中没有涉及到的,欢迎各位网友在回复中提出来。

  • 来源: http://www.fruitie.cn/blog/2008/04/linux-distro-names-meaning/

    英文原文: http://hehe2.net/linux-general/etymology-of-a-distro/

     

    1. Ubuntu
    几乎所有Geek都知道Ubuntu名字的含义,下面的介绍谨防你是山顶洞人。Ubuntu.com定义是:“Ubuntu”是一个非洲词语,其含义是“人性地对待他人”,或者“我们是谁决定了我们是什么人”。Ubuntu发行版将Ubuntu精神带到了软件世界。
    2. PCLinuxOS
    跟前面差不多,三个词组合成一个词,PC+Linux+操作系统(Operating System)。PCLinuxOS拥有一个类似Windows的图形用户界面,努力使得用户迁移到Linux更加容易。因此使用了PC这个词(虽然PC 并不是由Windows一家独大,这里有点用词不当)。
    3. openSUSE
    openSUSE是由Novell和AMD赞助的一个SUSE社区项目。SUSE是“Software- und System-Entwicklung”(软件和系统开发)的德语缩写,但是也有人说这个名字是为了纪念计算机工程师Konrad Zuse。
    4. Fedora
    Fedora是由Red Hat赞助的社区Linux计划。名字“Fedora”由一种帽子名派生而来,帽子上有Red Hat的logo。
    5. Mandriva
    这个Linux发行版原本是Mandrake发行版,由MandrakeSoft负责维护,MandrakeSoft在与Hearst Corporation的法律纷争中失去了“Mandrake”这个名字。MandrakeSoft后来收购了Connectiva,结果是产生了合成词 “Mandriva”。
    6. Sabayon
    Sabayon是在Trentino产生的发行版。是意大利语,是一种意大利甜点的名字。Sabayon(或者叫Zabaglione)由蛋黄,糖和甜酒制成。
    7. Debian
    Debian第一次出现是在1998年由Ian Murdock介绍。Debian这个名字由他的女朋友(现在的妻子)Debra和他的名字Ian混合而成。
    8. Damn Small Linux
    Damn Small Linux是一款仅有50MB大小的超小型Linux发行版。故名。
    9. MEPIS
    根据MEPIS的原创者Warren Woodford的介绍,MEPIS一开始没有任何含义,他仅仅是通过一通错误的Skype连接结识了一个朋友,然后很喜欢人家的名字!
    10. FreeBSD
    FreeBSD确切地说不是一个Linux发行版,它更像是Linux的一个分支,并且在distrowatch上排名11。BSD是由加州大学伯克利分 校开发的Unix衍生物,BSD是伯克利软件发行版(Berkeley Software Distribution)的简称。FreeBSD是伯克利发行版的一个免费分支。
    11. CentOS
    CentOS基于Red Had Enterprise Linux (RHEL),基本含义是社区企业级操作系统(Community Enterprise Operating System)
    12. Dreamlinux
    Dreamlinux是基于Debian的巴西Linux发行版,类似于苹果OS X。我并不相信这个名字背后有个原因,只是简单的把梦和Linux加在一起,我想说明原意,对不起~
    13. Puppy Linux
    Puppy Linux是一个小型的live CD发行版,致力于易用性。这个版本由于叫做“Puppy”带来了福音。
    14. Kubuntu
    大概只是KDE + Ubuntu = Kubuntu。
    15. Zenwalk
    这个难死我了。浏览他们的网站时,我被告知“ever tried zen computing?”,所以Zen这部分是可以解释的,但是walk呢?logo是个海豚?海豚是walk?LOL。当我给JP Guillemin,这个版本的创建者发邮件,问他怎么解释的时候,他的回答同样费解。
    Hi,Zenwalk是在发音(和含义)上与Nextstep类似,这个著名的OS由Steve Job在被苹果炒掉之后所创建。
    Cheers。
    16. Slackware
    Slackware由Patrick Volkerding创建,Slackware本是一个私人项目,为了防止它成为一个正统的发行版,Patrick给它起名为“slack”。这里的slack引自Church of SubGenius(谢谢那些帮我指正的人)。
    17. Knoppix
    Knoppix是一个Debian的live CD版本,由Klaus Knopper开发,由他的名字命名。
    18. Gentoo
    Gentoo是一个源代码基础的发行版,含义是所有东西都平等地编译,使得其速度增快。这个特点也促使了它改名成为Gentoo(原来是叫Enoch),词义是游泳速度最快的企鹅。对了,我甚至说服我的一个朋友给她的猫起名“Gentoo”,多么可爱啊~
    19. Slax
    Slax是基于Slackware的live CD版本,故名。没有太多特殊的。继续。
    20. Sidux
    Sidux是基于Debian的不稳定分支,codename为“Sid”的版本而来的发行版,“Sid”得名于Toy Story中的Sid Phillips一角色,经常破坏她妹妹的玩具。你看,Geek生来就有幽默感。
    21. Ubuntu Studio
    Ubuntu Studio只是一个特殊的Ubuntu衍生版本,用于通用多媒体制作。
    22. PC-BSD
    PC-BSD是一个BSD分支的发行版。它的目标是使用图形化安装程序使得其易于安装,默认使用KDE使得其容易且立即可用,预装图形化用户界面,因此加入了PC前缀。
    23. Xubuntu
    这些Ubuntu衍生版本都有什么毛病?Xubuntu = XFCE + Ubuntu。下一个!
    24. Foresight
    Foresight是一个使用Conary为其包管理器的Linux发行版,它支持滚动升级,而不是像一般发行版一样每年发布两个大版本。例如,当妖精 1.0版将在下一个月内发布的时候,Foresight用户将会在一周之内得到它,但是Ubuntu用户则必须等到十月份(感谢来自Foresight IRC频道的pcutler的解释)。
    不管如何,有了Conary,Foresight可用立刻获取更新,不然你就要等另一个发行版本,很有格调。
    25. DesktopBSD
    网站上说:“DesktopBSD目标是成为一个稳定强大的桌面用户操作系统。”

    26. Red Hat
    这个名字有一个很有意思的故事。我留着让Red Hat合伙创建人Bob Young来解释。

     

     

       
    27. OpenGEU
    OpenGEU本来叫做Geubuntu,是一个基于Ubuntu的发行版,使用了GNOME和Enlightenment作为窗口控制器,字母“G”和“E”就是他们的组合。但是由于某些法律原因,改名成了OpenGEU。
    28. Elive
    这个版本同样是一个基于Debian的Live CD发行版本,使用Enlightenment作为窗口控制器。
    29. Freespire
    2005年8月的时候,偶然之间,基于Linspire源码的Live CD发行版来到了网上。不久就成了独立的发行版。Linspire同样有一个很有意思的故事在背后。Linspire开始叫做“Lindows”,但是一 些微软法律部门的坏小子认定“Lindows”侵犯了他们的“Windows”,决定诉诸法律。微软的案子并没有在法庭上解决,于是微软决定付给 Lindows两千万美元,让它改名为Linspire。
    30. Frugalware
    我找不到任何记录下来的原因。但是它有可能取自节俭哲学。根据Wikipedia解释:Frugality出现在信任系统的上下文中的时候,是一个人不信任的哲学,或者深信“专家”知识,常常来源于商业市场及企业集团领域,宣扬最了解经济,物质化或者个人的精神需求。
    31. Fluxbuntu
    又一个Ubuntu?只是另外一个使用Fluxbox作为窗口管理器的Ubuntu。
    32. Xandros
    Xandros来源于X Windows和Greek island Andros。
    33. TinyME
    TinyME是PCLinuxOS的轻量级版本。
    34. gOS
    gOS是一个高度集成了Google Apps的Ubuntu衍生版,如果你还没猜到,那么可以认为g代表Google,gOS含义“Good OS LLC”,是这个发行版支持公司的名字(感谢来自stumbleupon的konradc指出这一点)。
    35. Backtrack
    Backtrack是一个包含大量安全和分析工具的,用于安全测试和渗透检测的发行版。它的名字源于这样一个事实:“反跟踪”入侵者。

     

  • 现在网络上的视频网站相当多,视频也相当的丰富,很多人都有想把一些自己喜欢的视频收集起来的欲望。当然我们可以通过浏览器的书签或者del.icio.us来收藏,但是这样怎么也没有把视频下载到本地硬盘中,想什么时候看就什么时候看爽啊!

    那我们怎么来下载这些视频呢?比较传统的方法主要有这些:

    1)大海捞针式:查看网站的源码,在一堆代码中找可能是视频的代码,然后一个一个下载、试看。如果运气好的华,可能能够在这些下载文件中发现自己想要的视频。但是大多数的时候,是失败的。毕竟,站在视频网站的角度上看,他们肯定是要把视频文件的地址,隐藏的越深越好,就跟小时候捉迷藏一样。而且,这个你还需要一些html和javascript的功底,一般人还完不转。

    2)痴痴等待式:等待这些网站或者一些好心人开发下载视频的工具,一般这样的工具都比较傻瓜式,基本上都能够上手使用,也不需要什么基础和功底。不过,比较讨厌的是,一般网站自己开发的工具只是针对自己网站来开发的,那你的自由就被限制了,为了一棵树放弃了整个森林是一件很残忍的事情,需要很大的勇气才能做出这样的决定。至于好心人开发的软件,可能支持的网站能够多一些,但是在现在的网络环境中,谁又知道,这些软件中是否又包含了一些别有用心的代码呢?你能够放心使用吗?当然,我们再等等,等大家反馈的使用体验嘛。恩,很好,恭喜你!这说明你的耐心不是一般的好,而是相当的好,这个也是需要天赋和修养的。

    3)自己动手式:这个一般都是有着比较深厚的计算机功底的同志们才能干的活,每个人可能会有不同的方法。比如,可以使用网络协议分析来分析,我们访问一个视频网站时都发送和接受了些什么,自己伪造相应的http头和请求来获得视频文件的文件流,然后保存在本地某个目录下。恩,这个的确很好,既下载自己喜爱的视频,同时也锻炼了自己的能力。挺好!不过,这个一般人,可以没有这个实力。

    其实,我们有一个很简单的方法来下载这些视频,而且,对于现在所有的视频网站都是通用的。当然,前提还是有的,就是你使用的是firefox来浏览这些网站,同时你也安装的强大的firebug这个强大的firefox插件。如果你实现了上述的前提,那么我们就可以开始下载你喜欢的视频了。

    找到你要看的视频的页面,然后点右下角firebug的图标,然后点net,然后搜索flv,然后复制,然后就可以下载了。

    嘿嘿!怎么样?简单吧!如果,你有收集视频的爱好,那么现在就开始吧!

     update:

    刚才,有同事看了我的这篇文章,发现youtube的视频不能用这种方式来下载,其实youtube的下载的方法更多,有兴趣的可以看看这儿“23种方法下载YouTube视频”。(23种方法,看来树大还是招风啊)

    你可以选择一种自己感兴趣的方法来下载。

  •    wget还是挺强的,两条命令就可以下载页面中所有的链接了,不用你一条一条的另存了,而且还包括一些隐藏的也可以下载下来。如js文件和css文件

           命令如下:[wolf@dev wolfchina.bokee.com]$wget http://wolfchina.bokee.com/

    [wolf@dev wolfchina.bokee.com]$wget -i index.html -F -B http://wolfchina.bokee.com/


           参数的详细描述如下:-i file
            --input-file=file
                Read URLs from file, in which case no URLs need to be on the com-
                mand line.  If there are URLs both on the command line and in an
                input file, those on the command lines will be the first ones to be
                retrieved.  The file need not be an HTML document (but no harm if
                it is)---it is enough if the URLs are just listed sequentially.
     
                However, if you specify --force-html, the document will be regarded
                as html.  In that case you may have problems with relative links,
                which you can solve either by adding "" to the
                documents or by specifying --base=url on the command line.
     
     
      -F
            --force-html
                When input is read from a file, force it to be treated as an HTML
                file.  This enables you to retrieve relative links from existing
                HTML files on your local disk, by adding "" to
                HTML, or using the --base command-line option.
     
     -B URL
            --base=URL
                When used in conjunction with -F, prepends URL to relative links in
                the file specified by -i.
  •  Unix是IT世界仅存的几个神话之一,自1969年诞生以来,它就一直被人们使用着。它过去的历史,简直就像一个民族的历史。

       我们应该庆幸,全体的Unix使用者终于安全渡过了它成长中的阵痛。那些曾经被忽略的用户则开始安装最新的Unix。Unix不是一 个急功近利的奋斗者。要把Unix的执行效率和稳定性调整到最优状态,需要几个月的时间。它和硬件间令人难以捉摸的联系、众多的版本和补 钉都会让人生畏。Unix之所以能长久使用,是由于其强大的自我调整能力,可以承载任何负荷。它可以一直运行,直到机器的某个部件被烧毁 。

       很多人认为,免费Linux 对于多年来以昂贵著称的商业Unix操作系统是一种伤害。对于SCO和SGI而言,这的确不错,然而,对 于IBM、Sun 和HP来说,Linux则给Unix带来了复兴和繁荣。使用Linux作为教学工具,使大学里开始有大量的具有Unix管理能力及开发能力的大 学生和研究生。虽然Linux的知识不能直接应用于企业Unix系统,但是应用Linux的经验给企业级的应用培训打下了坚实的基础,同时也使人们 明白了为什么Linux不能代替Unix。商业Unix的开发、改进,尤其是错误的修正,都是由整个公司、整个生产线来保证的。

          
       我们 可以来看一看SGI Irix、IBM AIX、Compaq Tru64 Unix、Hewlett-Packard HP-UX、SCO UnixWare、Sun Solaris这6个Unix的变种,对它们有一 个新的认识。我们用10个应用程序测试这6个变种的表现。这10个应用程序是Oracle 8i 数据库、IBM WebSphere Application Server、Adobe FrameMaker 6、iPlanet Enterprise Web Server、Microsoft Internet Explorer、Sybase ASE、Lotus Domino、ChiliSoft ASP、Vitria BusinessWare和 SAP。各个应用程序的得分将可反映Unix的工作状况,最后给出一个总的得分来反映出各个系统在企业应用中的表现。这个得 分将反映出相应Unix变种的前景、新技术开发的步伐、软件的承载能力、帮助文档和支持的水平及其在市场上的地位等。

      SGI Irix
      目前状况:一般

      当前版本:Irix 6.5

      硬件平台:SGI MIPS 服务器和工作站

      遵循标准 :Unix 95

      优势:Irix可扩展到512个CPU和1TB的RAM,它可以达到惊人的服务器I/O处理能力,并且Irix在SGI上拥有高端和数字 媒体的市场。

      劣势:缓慢的MIPS CPU和在PC领域的失败;其兼容性和工具问题妨碍了其商业开发。

       前景展望:SGI 公司试图使其脱离MIPS处理器,并且其Irix OS也将移植到Intel PC、Windows和Linux。它们放弃了SGI现存的Irix用户。SGI在创建高速服务器 I/O子系统方面能力有限。这项服务是SGI的传统市场(电影和电视动画、医学和科学的可视化高端数字媒体),但是这个领域要想维持SGI还是 显得太小。

      我们可以看出,Irix已经只是在艰难维生。它的用户群将很有可能支持基于Linux或者其它操作系统的服务器。

      IBM AIX
      目前状况:好

      当前版本:AIX 5L

      硬件平台:IBM RS/6000和其它使用IBM Power 和 PowerPC系列处理器的系统,Intel AI-64版。

      遵循标准:Unix 98

      优势:强大、稳固的IBM 64位Power/PowerPC CPU;一个操作系统可用于整个RS6000生产线;Linux代码移植是一个标准选项;IBM的Visual Age Java 和C/C++工具非常利于开发。

      劣势:企业计划使用IA-64和Linux系统时需要考虑 RS/6000 和 AIX。

      前景展望:AIX 5L,代号“Montery 项目”,借鉴了 其它一些Unix,创建了一个通用的、高度兼容的操作环境。IBM想使其和Linux成为统一的操作系统,并且承诺将开发基于Intel的64位 CPU体系 结构的AIX。

      这不由得让人对IBM给AIX和RS/6000的承诺产生怀疑。不过AIX的用户不用担心,Linux或者Intel要达到IBM目前企业 级Unix 的标准,还要很长的时间。

      IBM有很多合作伙伴,但是IBM一般是不会通过改变自己的策略去取悦他们,所以,相信AIX将 会继续存在下去。

      Compaq Tru64 Unix
      目前状况:良

      当前版本:Tru64 Unix 5.1

      硬件平台 :Compaq Alpha 工作站和服务器

      遵循标准:Unix 95

       优势:Tru64使用的是强大、精巧的Carnegie-Mellon Mach内 核;对于中小型服务器而言,64位的Alpha CPU的利用率是最高的;它遵循Digital Equipment遗留下来的传统:能创建强大的、用户能够支付 得起的服务器系统。

      劣势:在Intel 的服务器市场上,Compaq缺乏经验和信誉;在Alpha用户中,Linux非常的流行;系统V中的 兼容性漏洞有时会使应用程序碰到困难。

       前景展望:Alpha 遵循一流的SPEC(Standard Performance Evaluation Corporation )标准,对于特定的时钟频率,它是最快的CPU。Compaq把名字由Digital Unix改为Tru64 Unix是为了强调Alpha芯片是真正的64位的家族。对 于Compaq来说,现在所要做的是要占领更大的服务器市场份额。

       Compaq在PC机上的声望对其似乎有害无益。与专有的Tru64相比 ,Linux和成熟的OpenVMS可能会更多地赢得企业的青睐。Intel则会毫无疑问地建议Compaq转去使用IA-64而不是Alpha。 Tru64 Unix在Alpha上 有上佳的表现,但是其前景还要等到IA-64推出时Compaq会有何举动才能定论。

      Hewlett-Packard HP-UX
      目前状况:好

      当前版本:HP-UX 11i

      硬件平台:HP 9000服务器

      遵循标准:Unix 95

       优势:HP在可靠 性和服务方面的声誉人所共知;HP-UX和一个丰富、实用的操作系统包一起推出,它包括Web server、C/C++、 Windows网络、 WAP (无线应用 协议) 服务、 Linux APIs、 iPlanet 目录服务器和 Veritas文件系统。

      劣势:相对于竞争者而言,HP PA-RISC体系结构在性能 上有待改进。

      前景展望:HP很少是第一或者是最快的,但是它在其Unix产品中捆绑了很多有价值的东西。就整体而言,HP-UX和 Linux非常的接近。时间将证明,企业工具和服务应该包括在一起。HP有真正的日志文件系统,这使HP-UX 11i表现不俗。

      可以相 信,一旦HP在性能上赶上其竞争对手并使其HP-UX顺应Unix 98,那么它将可以超过Sun和IBM。

      SCO UnixWare
      目前状况 :一般

      当前版本:UnixWare 7.1

      硬件平台:Intel PC工作站和服务器

      遵循标准:Unix 95

      优势:SCO是Unix System V源代码的所有者;UnixWare是最强大的,也是最完善的PC Unix;它有优秀的、价格合理的开发工具。

      劣势:近来开发停滞不前;销售上也受到了Linux和75美元的Solaris 8的强烈冲击;很多功能强大的应用程序,它都不支持。

       前景展望:因为持有Unix System V的源代码,所以UnixWare 7.1是我们所能看到的Unix中最正宗的Unix,并且SCO环境里有一些 很不错的工具和服务。然而,这并没有使SCO的情况有所好转。PC Unix的市场空间一直以来都非常的狭小。如今,Linux正在被公众所认可,而 Sun又将其Solaris 8猛降至75美元,显而易见,SCO将从原有的市场中被排挤出来。

      除非能够开发出一种强大的基于Web的应用服 务器,否则这位PC Unix的先驱将有可能消亡。

      Sun Microsystems Solaris
      目前状况:好

      当前版本: Solaris 8

      硬件平台:Sun Sparc、Intel PC工作站和服务器

      遵循标准:Unix 98

      优势:其光辉的市 场业绩使Solaris成为了事实上的Unix;Sparc和Intel版是同一个操作系统;对于基于Unix的商业应用系统,Solaris可以提供最广泛的支持。

      劣势:Sparc处理器的可伸缩性不如其竞争对手;具良好伸缩性的Sun系统以昂贵而著称;Solaris本身所带标准软件贫乏,而其可 选软件包又非常昂贵。

      前景展望:牢固的市场和及时的开发,使得Sun身处第一的位置,这个位置Sun一直在小心翼翼地保护着。 很简单,Solaris取得了领先的位置是因为Sun保证了所有的应用系统都可以在其上运行。

      Sun的顾客从它的训练有素的员工处获 益。它有优秀的业务咨询员。Sun对Solaris错误的修正也非常的快。此外Sun是Java的所有者。
  • 在linux下怎样查看文件分区类型?

    可以想象到肯定是使用和分区有关的命令和文件才能实现,我尝试了一下有如下几种(如果有什么不对和需要补充的请给我留言):

    1.使用fdisk命令
    fdisk /dev/hda
    进入fdisk的命令模式,你可以键入m来查看帮助信息
    键入p就可以查看hda这个设备的所有分区的文件类型了。
    可以键入q来退出fdisk的命令模式

    2.使用parted命令
    fdisk命令我们经常看到,但是这个命令我们却使用的很少(可能是我自己见识太少了;-)),其实这个命令也是挺强大的,基本上fdisk可以做的parted都可以做到。
    parted /dev/hda
    进入parted的命令模式,你可以键入help来查看帮助信息。
    键入print就可以查看hda这个设备的所有分区的文件类型了。
    可以键入quit来退出parted的命令模式


    下面是man parted的介绍

    PARTED(8) GNU Parted Manual PARTED(8)

    NAME
    GNU Parted - a partition manipulation program

    SYNOPSIS
    parted [options] [device [command [options...]...]]

    DESCRIPTION
    This manual page documents briefly the parted command. Complete docu-
    mentation is distributed with the package in GNU Info format; see
    below.

    parted is a disk partitioning and partition resizing program. It
    allows you to create, destroy, resize, move and copy ext2, ext3, linux-
    swap, FAT and FAT32 partitions. This is useful for creating space for
    new operating systems, reorganising disk usage, and copying data to new
    hard disks.

    OPTIONS
    -h, --help
    displays a help message.

    -i, --interactive
    where necessary, prompts for user intervention.

    -s, --script
    never prompts for user intervention.

    -v, --version
    displays the version.

    COMMANDS
    [device]
    The block device to partition.

    [command [options]]
    Specifies a command to parted. If no command is given, parted
    will give you a command prompt. Commands are:

    check partition
    does a simple check on partition.

    cp [source-device] source dest
    copies the source partition鈙 filesystem on source-device
    (or the current device if no other device was specified)
    to the dest partition on the current device.

    help [command]
    prints general help, or help on command if specified.

    mkfs partition fs-type
    make a filesystem fs-type on partition. fs-type can be
    one of "FAT", "ext2" or "linux-swap".

    mklabel label-type
    Creates a new disklabel (partition table) of label-type.
    label-type should be one of "bsd", "gpt", "loop", "mac",
    "mips", "msdos", "pc98" or "sun".

    mkpart part-type [fs-type] start end
    make a part-type partition with filesystem fs-type (if
    specified), beginning at start and ending at end (in
    megabytes). part-type should be one of "primary", "logi-
    cal" or "extended"

    mkpartfs part-type fs-type start end
    make a part-type partition with filesystem fs-type begin-
    ning at start and ending at end (in megabytes)

    move partition start end
    move partition to start at start and end at end. Note:
    move never changes the minor number

    name partition name
    set the name of partition to name. This option works only
    on Mac and PC98 disklabels. The name can be placed in
    quotes, if necessary

    print displays the partition table

    quit exits parted

    resize partition start end
    resize the filesystem on partition to start at start and
    end at end megabytes

    rm partition
    deletes partition

    select device
    choose device as the current device to edit. device
    should usually be a Linux hard disk device, but it can be
    a partition, software raid device or a LVM logical volume
    if that is necessary

    set partition flag state
    change the state of the flag on partition to state. Flags
    supported are: "boot", "root", "swap", "hidden", "raid",
    "lvm" and "lba". state should be either "on" or "off"

    REPORTING BUGS
    Report bugs to

    SEE ALSO
    fdisk(8), mkfs(8), The parted program is documented fully in the GNU
    partitioning software manual available via the Info system.

    AUTHOR
    This manual page was written by Timshel Knoll , for
    the Debian GNU/Linux system (but may be used by others).



    3.使用mount命令
    mount一般用来挂载分区的,其实它也可以用来查看分区类型的。
    mount --guess-fstype /dev/hda1
    但是这个每次只能查看一个分区

    4.使用df命令
    df本身就是用来查看分区信息的,但是如果你不加上参数,它是不会列出分区类型的。
    df -T
    加上-T这个参数,就可以列出所有系统挂载的分区的文件类型信息了

    5.查看配置文件
    当然你可通过查看配置文件来知道分区的文件类型。
    cat /etc/fstab
  • 每一个文件有所有者及组编号,set uid ;set gid可以改变用户对文件具有的权限:写和执行.
     
    setuid: 在执行时具有文件所有者的权限.
    setgid: 设置目录. 一个目录被标上setgid位,此目录下创建的文件继承该目录的属性.
    sticky bit: 该位可以理解为防删除位. 设置sticky bit位后,就算用户对目录具有写权限,但也只能添加文件而不能删除文件。


    如何设置:

    操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,
    1) chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效,U=用户)
    chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效,g=组名)
    chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对文件有效)

    2) 采用八进制方式. 这一组八进制数字三位的意义如下,
    abc
    a - setuid位, 如果该位为1, 则表示设置setuid
    b - setgid位, 如果该位为1, 则表示设置setgid
    c - sticky位, 如果该位为1, 则表示设置sticky

    设置后, 可以用 ls -l 来查看. 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
    如:

    rwsrw-r-- 表示有setuid标志 (rwxrw-r--:rwsrw-r--)
    rwxrwsrw- 表示有setgid标志 (rwxrwxrw-:rwxrwsrw-)
    rwxrw-rwt 表示有sticky标志 (rwxrw-rwx:rwxrw-rwt)
  • 2007-12-12

    BSD发展史 - [open source]

    BSD
  • 2007-12-12

    find技巧 - [open source]

    来源:wingger
    http://blog.chinaunix.net/article.php?articleId=2363&blogId=224
    http://blog.chinaunix.net/article.php?articleId=2366&blogId=224

    1、普通查询:

    find / -name httpd.conf //表明要求系统按照文件名查找;

    find /etc -name httpd.conf //在/etc目录查找

    find /etc -name '*srm*' //找到系统中所有包含有这3个字母的文件

    find / -amin -10 # 查找在系统中最后10分钟访问的文件
    find / -atime -2 # 查找在系统中最后48小时访问的文件
    find / -empty # 查找在系统中为空的文件或者文件夹
    find / -group cat # 查找在系统中属于 groupcat的文件
    find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
    find / -mtime -1 #查找在系统中最后24小时里修改过的文件
    find / -nouser #查找在系统中属于作废用户的文件
    find / -user fred #查找在系统中属于FRED这个用户的文件

    -amin n
    查找系统中最后N分钟访问的文件
    -atime n
    查找系统中最后n*24小时访问的文件
    -cmin n
    查找系统中最后N分钟被改变状态的文件
    -ctime n
    查找系统中最后n*24小时被改变状态的文件
    -empty
    查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
    -false
    查找系统中总是错误的文件
    -fstype type
    查找系统中存在于指定文件系统的文件,例如:ext2 .
    -gid n
    查找系统中文件数字组 ID 为 n的文件
    -group gname
    查找系统中文件属于gnam文件组,并且指定组和ID的文件


    2、无错误查找技巧:
    在Linux系统中“find”命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。但是普通用户使用“find”命令时也有可能遇到这样的问题,那就是Linux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有权限用“find”命令来查询这些目录或者文件。当普通用户使用“find”命令来查询这些文件目录是,往往会出现"Permissiondenied."(禁止访问)字样。系统将无法查询到你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,输入
    find / -name access_log 2>/dev/null

    这个方法是把查找错误提示转移到特定的目录中去。系统执行这个命令后,遇到错误的信息就直接输送到stderrstream 2 中,access_log 2就是表明系统将把错误信息输送到stderrstream 2中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这样查询到的错误信息将被转移了,不会再显示了。


    选项
    用途描述
    -daystart
    .测试系统从今天开始24小时以内的文件,用法类似-amin

    -depth
    使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容

    -follow
    遵循通配符链接方式查找; 另外,也可忽略通配符链接方式查询 。find命令则遵循通配符链接方式进行查找,除非你指定这个选项,否则一般情况下find命令将忽略通配符链接方式进行文件查找。

    -maxdepth levels
    在某个层次的目录中按照递减方法查找

    -maxdepth选项的作用就是限制find命令在目录中按照递减方式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样导致查找速度变慢,查找花费的时间过多。例如,我们要在当前(.)目录技巧子目录中查找一个名叫fred的文件,我们可以使用如下命令
    find . -maxdepth 2 -name fred

    假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查找很容易成功。假如,这个文件在./sub1/sub2/fred目录中,那么这个命令就无法查找到。因为前面已经给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的文件。这样做的目的就是为了让find命令更加精确的定位文件,如果你已经知道了某个文件大概所在的文件目录级数,那么加入-maxdepth n 就很快的能在指定目录中查找成功。

    -mount
    不在文件系统目录中查找, 用法类似 -xdev.

    -noleaf
    禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查找

    -version
    打印版本数字

    使用混合查找方式查找文件
    find命令可以使用混合查找的方法,例如我们想在/tmp目录中查找大于100000000字节并且在48小时内修改的某个文件,我们可以使用-and 来把两个查找选项链接起来组合成一个混合的查找方式。
    find /tmp -size +10000000c -and -mtime +2

    使用and ,or 分别表示“与”和“或”的关系。
    还有这样的例子,
    find / -user fred -or -user george

    我们可以解释为在/tmp目录中查找属于fred或者george这两个用户的文件。
    在find命令中还可以使用“非”的关系来查找文件,如果我们要在/tmp目录中查找所有不属于panda的文件,使用一个简单的
    find /tmp ! -user panda
    命令就可以解决了。很简单。

    查找并显示文件的方法
    查找到某个文件是我们的目的,我们更想知道查找到的文件的详细信息和属性,如果我们采取现查找文件,在使用LS命令来查看文件信息是相当繁琐的,现在我们也可以把这两个命令结合起来使用。
    find / -name "httpd.conf" -ls

    系统查找到httpd.conf文件后立即在屏幕上显示httpd.conf文件信息。
    12063 34 -rw-r--r-- 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/httpd.conf

    下面的表格就是一些常用的查找文件并显示文件信息的参数和使用方法
    选项
    用途描述
    -exec command;
    查找并执行命令
    -fprint file
    打印文件完整文件名
    -fprint0 file
    打印文件完整文件名包括空的文件
    -fprintf file format
    打印文件格式
    -ok command;
    给用户命令执行操作,根据用户的Y 确认输入执行
    -printf format
    打印文件格式
    -ls
    打印同种文件格式的文件.


    -help
    显示命令摘要
  •   今天去CU中浏览,看到了这个很好的小技巧,记录在终端的输入和输出!

            执行script -q tty.log后,就开始记录终端的输入输出信息,结束的时候按ctrl+D即可得到终端的内容文件tty.log

    另:
    man script

    mdoc warning: Empty input line #142
    SCRIPT(1)                 BSD General Commands Manual                SCRIPT(1)

    NAME
         script - make typescript of terminal session

    SYNOPSIS
         script [-a] [-f] [-q] [-t] [file]

    DESCRIPTION
         Script makes a typescript of everything printed on your terminal.  It is
         useful for students who need a hardcopy record of an interactive session
         as proof of an assignment, as the typescript file can be printed out
         later with lpr(1).

         If the argument file is given, script saves all dialogue in file.  If no
         file name is given, the typescript is saved in the file typescript.

         Options:

         -a      Append the output to file or typescript, retaining the prior con-
                 tents.

         -f      Flush output after each write. This is nice for telecooperation:
                 One person does 鈓kfifo foo; script -f foo?and another can
                 supervise real-time what is being done using 鈉at foo?

         -q      Be quiet.

         -t      Output timeing data to standard error. This data contains two
                 fields, separated by a space. The first field indicates how much
                 time elapsed since the previous output. The second field indi-
                 cates how many characters were output this time. This information
                 can be used to replay typescripts with realistic typing and out-
                 put delays.

         The script ends when the forked shell exits (a control-D to exit the
         Bourne shell (sh(1)), and exit, logout or control-d (if ignoreeof is not
         set) for the C-shell, csh(1)).

         Certain interactive commands, such as vi(1), create garbage in the type-
         script file.  Script works best with commands that do not manipulate the
         screen, the results are meant to emulate a hardcopy terminal.

    ENVIRONMENT
         The following environment variable is utilized by script:

         SHELL  If the variable SHELL exists, the shell forked by script will be
                that shell. If SHELL is not set, the Bourne shell is assumed.
                (Most shells set this variable automatically).

    SEE ALSO
         csh(1) (for the history mechanism), replay(1).

    HISTORY
         The script command appeared in 3.0BSD.

    BUGS
         Script places everything in the log file, including linefeeds and
         backspaces.  This is not what the naive user expects.

    Linux                            July 30, 2000                           Linux
  •   如果你想知道当前的Linux系统支持什么样的文件系统,可以在/Lib/modules/内核版本加发行商缩写/kernel/fs中查出当前系统所支持的文件系统种类。

          这里我们对最常用的几个文件系统的发展情况和优缺点作详细介绍:ext、ext2、ext3、jsf、xfs、ReiserFS。

    一、 ext

          ext是第一个专门为Linux的文件系统类型,叫做扩展文件系统。它在1992年4月完成的。它为Linux的发展取得了重要作用。但是在性能和兼容性上存在许多缺陷。现在已经很少使用了。

    二、 ext2

          ext2是为解决ext文件系统的缺陷而设计的可扩展的高性能的文件系统。又被称为二级扩展文件系统。它是在1993年发布的,设计者是Rey Card。ext2是Linux文件系统类型中使用最多的格式。并且在速度和CPU利用率上较突出,是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。Ext2 可以支持256字节的长文件名,其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关,在一般常见的Intel x86兼容处理器的系统中,簇最大为 4KB, 则单一文件大小上限为 2048GB, 而文件系统的容量上限为 6384GB。尽管Linux可以支持种类繁多的文件系统,但是2000年以前几乎所有的Linux发行版都用ext2作为默认的文件系统。 

          ext2的缺点:ext2的设计者主要考虑的是文件系统性能方面的问题。ext2在写入文件内容的同时并没有同时写入文件的meta-data(和文件有关的信息,例如:权限、所有者以及创建和访问时间)。换句话说,Linux先写入文件的内容,然后等到有空的时候才写入文件的meta-data。这样若出现写入文件内容之后但在写入文件的meta-data之前系统突然断电,就可能造成在文件系统就会处于不一致的状态。在一个有大量文件操作的系统中出现这种情况会导致很严重的后果。另外但由于目前核心 2.4 所能使用的单一分割区最大只有 2048GB,尽管文件系统的容量上限为 6384G但是实际上能使用的文件系统容量最多也只有 2048GB。

    三、 ext3

          ext3是由开放资源社区开发的日志文件系统,主要开发人员是Stephen tweedie。ext3被设计成是ext2的升级版本,尽可能地方便用户从ext2fs向ext3fs迁移。ext3在ext2的基础上加入了记录元数据的日志功能,努力保持向前和向后的兼容性。这个文件系统被称为ext2的下一个版本。也就是在保有目前 ext2 的格式之下再加上日志功能。ext3是一种日志式文件系统。日志式文件系统的优越性在于:由于文件系统都有快取层参与运作,如不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。因此每当系统要关机时,必须将其所有的文件系统全部卸下后才能进行关机。如果在文件系统尚未卸下前就关机 (如停电) 时,下次重开机后会造成文件系统的资料不一致,故这时必须做文件系统的重整工作,将不一致与错误的地方修复。然而,此一重整的工作是相当耗时的,特别是容量大的文件系统,而且也不能百分之百保证所有的资料都不会流失。故这在大型的伺服器上可能会造成问题。

          ext3的缺点:其最大的缺点是没有现代文件系统所具有的能提高文件数据处理速度和解压的高性能,另外使用ext3文件系统时要注意硬盘限额问题,在这个问题解决之前,不推荐在重要的企业应用上采用ext3+disk quota(磁盘配额)。  

    四、 jsf

          jsf提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的。jsf(Journaled File System Technology for Linux)的开发者包括AIX(IBM的Unix)的jsf的主要开发者。在AIX上,jfs已经经受住了考验。它是可靠、快速和容易使用的。2000年2月,ibm宣布在一个开放资源许可证下,移植linux版的JSF文件系统。JSFs也是一个有大量用户安装使用的企业级文件系统。它具有可伸缩性和健壮性,与非日志文件系统相比,它的优点是其快速重启能力:Jfs 能够在几秒或几分钟内就把文件系统恢复到一致状态。虽然 jsf 主要是为满足服务器(从单处理器系统到高级多处理器和群集系统)的高吞吐量和可靠性需求而设计的,jsf 还可用于想得到高性能和可靠性的客户机配置因为在系统崩溃时,jsf 能提供快速文件系统重启时间,所以它是因特网文件服务器的关键技术。使用数据库日志处理技术,jsf 能在几秒或几分钟之内把文件系统恢复到一致状态。而在非日志文件系统中,文件恢复可能花费几小时或几天。

          jsf的缺点:使用jsf日志文件系统,性能上会有一定损失,系统资源占用的比率也偏高。是因为当它保持一个日志时,系统需要写许多数据。

    五、ReiserFS

          ReiserFS的第一次公开亮相是在1997年7月23日,Hans Reiser把他的基于平衡树结构的ReiserFS文件系统在网上公布。ReiserFS 3.6.x(作为 Linux 2.4 一部分的版本)是由 Hans Reiser 和他的在Namesys 的开发组共同开发设计的。Hans 和他的组员们相信最好的文件系统是那些能够有助于创建独立的共享环境或者命名空间的文件系统,应用程序可以在其中更直接、有效和有力地相互作用。为了实现这一目标,文件系统就应该满足其使用者对性能和功能方面的需要。那样,使用者就能够继续直接地使用文件系统,而不必建造运行在文件系统之上(如数据库之类)的特殊目的层。ReiserFS 使用了特殊的优化 b* 平衡树(每个文件系统一个)来组织所有的文件系统数据。这为其自身提供了非常不错的性能改进,也能够减轻文件系统设计上的人为约束。例如,现在一个目录下可以容纳 ext00,000 个子目录。另一个使用 b* 树的好处就是 ReiserFS 能够像大多其它的下一代文件系统一样,根据需要动态地分配索引节,而不必在文件系统创建时建立固定的索引节。这有助于文件系统更灵活地适应其面临的各种存储需要,同时提供附加的空间有效率。

          Reiserfs被看作是一个更加激进和现代的文件系统。传统的UNIX文件系统是按盘块来进行空间分配的,对于目录和文件等的查找使用了简单的线性查找。这些设计在当时是合适的,但随着磁盘容量的增大和应用需求的增加,传统文件系统在存储效率,速度和功能上已显落后。在reiserfs的下一版reiser4中还提供了对事务的支持。在http://www.namesys.com/v4/v4.html 中有reiser4的介绍和一个简单的reiser4的性能测试。

          ReiserFS的缺点:ReiserFS一个最受人批评的缺点是每升级一个版本,都将要将磁盘重新格式化一次。你可以在http://www.namesys.com/ 网站了解关于 ReiserFS 的更多信息。

    六、Xfs

          xfs是一种非常优秀的日志文件系统,它是SGI公司设计的。xfs被称为业界最先进的、最具可升级性的文件系统技术。它是一个全64位,快速、稳固的日志文件系统,多年用于SGI的IRIX操作系统。sgi决定支持Linux社区,将关键的基本架构技术授权于Linux。它以开放资源形式发布了他们自己拥有的xfs的源代码,并开始进行移植。此工作进展得很快,目前已进入beta版阶段。作为一个64位文件系统,xfs可以支持超大数量的文件(9g×1gb,甚至更大的18g×1gb),可在大型 2d 和 3d 数据方面提供显著的性能。xfs有能力预测其它文件系统薄弱环节,同时xfs提供了在不妨碍性能的情况下增强可靠性和快速的事故恢复。SGI的xfs可为linux和开放资源社区带来的新特性有:可升级性:xfs被设计成可升级,以面对大多数的存储容量和i/o存储需求,可处理大型文件和包含巨大数量文件的大型目录,满足二十一世纪快速增长的磁盘需求。xfs有能力动态地为文件分配索引空间,使系统形成高效支持大数量文件的能力。在它的支持下,用户可使用1exabyte (1g×1gb) 大的文件,远远大于现在最大的文件系统。优秀的i/o 性能:典型的现代服务器使用大型的条带式磁盘阵列,以提供达数gb/秒的总带宽。xfs可以很好地满足I/O请求的大小和并发I/O请求的数量。 xfs可作为root文件系统,并被lilo支持.在NFS服务器上使用也没问题.支持软件磁盘阵列(RAID)和虚拟集群(LVM)。SGI最新发布xfs为 1.0.1版.(在:http://http://oss.sgi.com/projects/xfs/ 可以下载它)。

          xfs的缺点:由于xfs比较复杂,实施起来有一些难度,所以目前xfs主要应用于Linux企业应用的高端。

    其他文件系统简介:

          Minix:Llnux支持的第一个文件系统,对用户有很多限制而且性能低下。有些没有时间标记,其文件名最长l 4个字符。minix 文件系统最大的缺点是最大只能使用64M 的硬盘分区,所以在目前已经没有人使用它了。

          Xia:Minix文件系统修正后的版本。在一定程度上解决了文件名和文件系统大小的局限。但没有新的特色,目前很少有人使用。

          Msdos:msdos 是在Dos、Windows和某些OS/2 操作系统上使用的一种文件系统,其名称采用“8+3”的形式,即8个字符的文件名加上3个字符的扩展名。       

          umsdos:  Linux下的扩展msdos文件系统驱动,支持长文件名、所有者、允许权限、连接和设备文件。允许一个普通的msdo s文件系统用于Linux,而且无须为它建立单独的分区。

          iso9660:  标准CDROM文件系统,通用的Rock Ridge增强系统,允许长文件名。

          Vfat:vfat是Windows9x 和 Windows NT/2000下使用的一种Dos文件系统,其在 Dos 文件系统的基础上增加了对长文件名的支持。

          Nfs:  Sun公司推出的网络文件系统,允许多台计算机之间共享同一文件系统,易于从所有这些计算机上存取文件。

          Hpfs: High Performance File System(HPFS) 高性能文件系统(HPFS) HPFS是Microsoft的LAN Manager中的文件系统,同时也是IBM的LAN Server和OS/2的文件系统。HPFS能访问较大的硬盘驱动器,提供更多的组织特性并改善了文件系统的安全特性。

          Smb:smb是一种支持 Windows for workgroups、Windows NT 和Lan Manager的基于SMB协议的网络操作系统。

          Sysv: sysv文件系统实际上是System V/Coherent 在Linux平台上的文件系统。

          Ncpfs:ncpfs是一种Novell NetWare 使用的NCP协议的网络操作系统。

          Proc:proc是Linux 系统中作为一种伪文件系统出现的,它用来作为连接内核数据结构的界面。

          NTFS:微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。
  • 我们在使用tar解压缩包时有没有注意到,tar会将你使用tar压缩时的所以目录都压缩进去。
     这样解释大家可能不明白,这样我写一个例子看看就明白了!
     例1:
      我们一般会这样压缩一个包。
      tar zcvf /home/wolf_19/a.tar.gz /home/a/b/test/
     
      然后再解压。
      tar zxvf /home/wolf_19/test/a.tar.gz
     
     这样解压的时候会发现/home/wolf_19/test这个目录下又多了/home/a/b/test这么长的目录,但是我们实际上是只需要test这一个目录而已。那应该怎么办呢?
     
     比较常规的办法是先进入/home,然后在tar zcvf /home/wolf_19/a.tar.gz test/,但是这样来回的切换目录,比较麻烦。能不能一次到位了。
     
     其实tar这个命令已经给我们解决的办法了!
     
     GNU tar的官方资料:http://www.delorie.com/gnu/docs/tar/tar_98.html
     
     我们可以这样。
     
     例2:
      将上面的改为:
      tar zcvf /home/wolf_19/a.tar.gz -C /home/a/b test
     
     这样问题就解决了!