分享知识,共同进步

发布新日志

  • Defect Template and Writing Standard

    2008-09-03 22:53:50Top 3 Digest 3

     

    Upload a document about writing defect. Hope it is useful for you!o(∩_∩)o...

      

     

    This document gives a guideline for writing defect.

     

    All Defects Should Contain the Following:

    Defect ID

    Created by UrTracker system.

    Brief Descrīption

    Very short descrīption to identify the defect. 

    Severity

    Based on customers’ experience.

    How Found

    Ad-hoc

    scrīpt

    Status

    Generated manually in UrTracker.

    Date Submitted

    The time when defect is created.

    Closed Date

    Updated by system after defect closed

    Priority

    Based on Severity, Difficult to fix and so on.

    Build Version

    The build version when defect reported

    Detailed Descrīption

    ACTUAL RESULT:

    Describes the incorrect behavīor.

     

    EXPECTED RESULT:

    Describes the correct behavīor.

     

    STEPS:

    Describes how to reproduce the defect

     

    RECOVERY:

    Describes how to recover from error, etc.

     

    ADDITIONAL CHARACTERIZATION NOTES:

    Include whether defect is reproducible.

    The related info of the defect.

     

    ERROR INFORMATION:

    *Only include if applicable

     

    Test File/Test Case No.

    If defect found during scrīpted testing, type the scrīpt name here.

    Workaround

    Describes how to avoid defect

    Configuration

    The environment in which the defect occurs.

     

     

    This section is for AEM Planet project. It lists general guideline for writing a good defect.

     

     1.  An effective defect report usually has the following qualities:

    Consistency-----Write to a standard format (or template).

    Readable---------Easy to read and understand.

    Repeatable------Contains information needed to reproduce the problem.

    Clear---------------Do not include ambiguous or confusing information.

    Concise-----------Content is brief but comprehensive.

    Correct------------Do not include inaccurate information.

    Complete---------Do not miss critical information.

    Relevant----------Report contains relevant information needed to understand the problem.

    Focused----------Describes one specific problem.

     

    2. Useful tips for writing effective defect reports with the qualities listed above include:

    ----------Make wise decision on your own to collect required defect information in an efficient method.

    ----------Analyze the defect and just do necessary test verification that can provide valuable information.

    ----------In order to get more information related in a defect, you have to doing more verification. That means more test time and much more money. Remember doing effective testing to save money.     

    ----------Keep your target audience in mind when writing your defect report. For example, though the assigned engineer may be your primary target, someone else may be reassigned to resolve the problem and there may be a variety of other readers for this report.

    ----------Spend a few extra minutes writing your defect reports. You already spend a lot of valuable time finding defects. Make your time worthwhile so you can improve your chances of getting your defect fixed.

    ----------Reread the final report to make sure it makes sense and that you have captured all relevant information.

    ----------Have someone else review and provide feedback on your defect report.

    ----------Do not be judgmental about someone’s work or design in your defect report. Avoid words such as “why did you” or “this is a poor design”. This will not help the defect resolution process.

     

    3. Don’t use ambiguous words and sentence in the defect, for example:

    ----------Doesn’t work.

    ----------Can’t be installed.

    ----------An error/unexpected box pops up.

    ----------The roll bar cannot be moved.

     

    4. Brief Descrīption--------is the most important part in the defect. A good one-line summary will help everyone quickly understand a problem while at the same time will uniquely identify a problem. A one-line summary is similar to a newspaper headline.

    ----------It should be concise. It is not the step list.

    ----------Don’t begin with the Verb, or the Adverbial Modifier.

    ----------Don’t contain the unnecessary information. For example, if you found a defect on OS 9x. But in fact, this defect also occurs on other OS, such as OS 2K, XP, please don’t contain OS 9x in the Brief Descrīption.

     

    Examples:

    ----------Language in the first row has a strange format in the supported language list. (What does the word “Strange” mean? What kind of symptom is strange?)

    ----------The Minimal Install does not include any section of Build. (“any section” here doesn’t make any sense.)

     

    5.  Steps:

    ----------Use action words to start describing a step.

    ----------Don’t list too many steps. It is better if the steps are less than 8 steps.

    ----------Don’t confuse the steps and the actual result.

    ----------Use short sentence to instead of long sentence.

     

    6. Actual Result:

    ----------If the defect contains different symptom with the same defects, we prefer to submit separate defects with different symptom.

    ----------Don’t confuse the actual result and expected result.

    ----------Do not be judgmental about someone’s work or design. Don’t use the subjective word.

    ----------Actual Result should also be concise.

     

    7. Expected Result:

    ----------Make the expected result that defined in spec and the expected result that you think that should be as different.  

    ----------Do not be judgmental about someone’s work or design. Don’t use the subjective word.

     

    8.  Additional Information------Additional Information maybe different with different kind of defects. The basic rule for providing the additional information is trying our best to help the developer to get the root cause of the defect. Any information may help the developer get the root cause of the defect should be listed here.

    ----------Does the defect also occur on other OS?

    ----------Is the defect related to the different Browser configuration?

    ----------Is there any workaround?

    ----------What’s the reproduce rate?

     

    9.  Attachment------Screenshot is helpful for developer to identify the defect, especially the complex defect.

    ----------Don’t include unnecessary margin with the screenshot.

    ----------The screenshot should be clear enough.

    ----------It’s better to use the Red color to point out the error area, with clear comment. The comment should also use highlight color, such as red color, 12 size font.

    ----------The screenshot should be saved as .JPG format instead of .BMP format.

      

    10. Configuration-----We should provide the special configuration information based on special defects. Configuration information includes but is not limited to: Browser, Application, PC H/W, Build, and OS version.

     

     

  • 软件测试书籍----Effective Software Testing

    2008-07-24 23:39:52Top 1 Digest 3

     

    感觉这本书不错,值得推荐大家看看,有些细节的东西还是要上升到理论的层次才能理解的更深刻的。

  • 【翻页功能】的测试用例

    2010-08-09 17:42:27

    【翻页功能】的测试用例

    朋友的记录:
      翻页功能我们常碰到的一般有以下几个功能: 
      1、首页、上一页、下一页、尾页。 
      2、总页数,当前页数 
      3、指定跳转页 
      4、指定每页显示条数 

      当然,有一些是少于多少页,全部以数字的形式显示,多于多少页后,才出现下一页的控件。本文暂且用以上四点来做为通用的用例来设计吧。 

      对于1翻页链接或按钮的测试,主要要检查的测试点有: 
      1、有无数据时控件的显示情况 
      2、在首页时,首页和上一页是否能点击 
      3、在尾页时,下一页和尾页是否能点击 
      4、在非首页和非尾页时,四个按钮功能是否正确 
      5、翻页后,列表中的记录是否仍按照指定的排序列进行了排序 

      对于2总页数,当前页数,主要要检查的测试点有: 
      1、总页数是否等于总的记录数/指定每页条数 
      2、当前页数是否正确 

      对于3指定跳转页,主要要检查的测试点有: 
      1、是否能正常跳转到指定的页数 
      2、输入的跳转页数非法时的处理 

      对于4指定每页显示条数,主要要检查的测试点有: 
      1、是否有默认的指定每页显示条数 
      2、指定每页的条数后,列表显示的记录数,页数是否正确 
      3、输入的每页条数非法时的处理 

      分析完上面的测试点,应该可以进行用例的设计了。 
      step 1: 列表无记录   
      expect: 1、四个翻页控件变灰不可点击 
               2、列表有相应的无数据信息提示 
               3、不可指定页数 
               4、不可指定跳转页 
               5、总页数显示为0 
               6、当前页数显示为0 

      step 2: 列表的记录数 <= 指定的每页显示条数 
      expect: 1、四个翻页控件变灰不可点击 
               2、总页数显示为1 
               3、当前页数显示为1 

        step 3: 列表的记录数>指定的每页显示条数 
      expect: 1、默认在首页,当前页数为1               
               2、列表的数据按照指定的排序列正确排序 
               3、记录数与数据库相符 
               4、总页数=记录数/指定的每页显示条数 

      step 4: 列表的记录数 > 指定的每页显示条数,在首页 
      expect: 1、首页变灰不可点击 
               2、上一页变灰不可点击 
               3、下一页可点击,从(每页指定条数+1)条记录开始显示,当前页数+1 
               4、尾页可点击,显示最后页的记录 

      step 5: 列表的记录数 > 指定的每页显示条数,在中间的某页 
      expect: 1、首页可点击,显示1到每页指定条数的记录 
               2、上一页可点击,显示上一页的记录 
               3、下一页可点击,从后一页的记录 
               4、尾页可点击,显示最后页的记录 
               5、列表的数据按照指定的排序列正确排序 
               6、当前页数为所在页 

      step 6:列表的记录数 > 指定的每页显示条数,在尾页 
      expect: 1、首页可点击,显示1到每页指定条数的记录 
               2、上一页可点击,显示上一页的记录 
               3、下一页变灰不可点击 
               4、尾页变灰不可点击 
               5、列表的数据按照指定的排序列正确排序 
               6、当前页数为最后一页的页数 

      step 7:输入每页显示条数为正整数 
      expect: 1、每页显示条数更新成指定的条数 
               2、超过指定的条数的记录分页显示 
               3、总页数更新成列表的记录数/每页显示条数 

      step 8:输入每页显示条数为0 
      expect: 1、提示“每页显示条数必须为大于1的整数” 
               2、提示后每页显示条数恢复为上次生效的条数 

      step 9:输入每页显示条数为负数 
      expect: 1、提示每页显示条数必须为大于1的整数 
               2、提示后每页显示条数恢复为上次生效的条数 

      step 10:输入每页显示条数长度超过数据库指定的长度<<<maxlen>>> 
      expect: 1、提示每页显示条数不能超过<<<maxlen>>>位 
               2、提示后每页显示条数恢复为上次生效的条数 

      step 11:输入每页显示条数为字符串,如中文翻页数 
      expect: 1、提示每页显示条数必须为大于1的整数 
               2、提示后每页显示条数恢复为上次生效的条数 

      step 12:输入每页显示条数为特殊字符,如% 
      expect: 1、提示每页显示条数必须为大于1的整数 
               2、提示后每页显示条数恢复为上次生效的条数 

      step 13:输入每页显示条数为html字符串,如<br> 
      expect: 1、提示每页显示条数必须为大于1的整数 
               2、提示后每页显示条数恢复为上次生效的条数 

      step 14:输入跳转的页数为存在的页数 
      expect: 1、正确跳转到指定的页数 

      step 15:输入跳转的页数不存在或非法值 
      expect: 1、跳转的页数值置为1,显示第一页的数据 
      以上的用例是将总页数,当前页数都揉进了翻页控件的测试用例中了。
     
    ------------一位高人的补充
    补充点自己的看发:
    1.要看具体的需求,本文提供的只是一个比较常用的测试设计,学东西应该是取其精华才对.比如STEP12就有不值得取的地方("提示":以什么做提示呢?AJAX方式的,JS形式的等等情况,所以要看需求来)
    2.该用力设计并没有写明去验证数据库.对于分页的操作个人认为应该充分测试数据库情况.
    3.网络差造成重复提交怎么办?怎么处理?数据完整性可是必须的哦!!!!! 
     
     
  • 企业级项目开发:究竟距离我们有多远?

    2010-08-09 09:05:26

    企业级项目开发:究竟距离我们有多远?
        一直以来,我们都在不停得做项目,赶项目。相信从大家开始做项目到现在,做过了很多大大小小的项目,或多或少也有让自己很引以为豪的成功了的项目。大家回头想想,我们的项目一般是怎么做出来的!每个公司有不同的做法,但是起码在有些方面还是差不多的。本篇的议题如下:

        1 . 项目开发的现状

        2. 什么是企业级项目

        1 . 项目开发的现状

        一直以来,我们都在不停得做项目,赶项目。相信从大家开始做项目到现在,做过了很多大大小小的项目,或多或少也有让自己很引以为豪的成功了的项目。大家回头想想,我们的项目一般是怎么做出来的!每个公司有不同的做法,但是起码在有些方面还是差不多的。

        每次项目到来,几次会议之后,项目就开始了,开始分配人员,开始分析一些从客户那里拿来的需求,然后一些骨干的开发人员就开始为项目搭架子。于是一个项目就算是进行起来了。谈到了为项目搭架子,专业点说就是做架构了,说是做架构,其实就是把项目按照惯例分割为几个逻辑层,至于说这个架构好不好,有什么风险,是否可以适应以后的变化,采用的技术的风险和可行性分析,这些很少考虑,原因很简单:一般的都是这么开发的,应该没有什么大的问题。确实,很多的项目也确实是这样的开发的,而且很多也成功了。这些无可厚非,至于说什么标准不标准,是否遵循了什么开发的原则,没有多少人在乎,不管怎样,项目是成功了。

        项目开发中,很多的原则我们是很清楚:什么单一职责,依赖反转,什么可测试性,维护性.....很多时候,在coding的时候,这些原创反倒成了多余,项目最后成为了功能代码的堆积,特别是在赶项目的过程中,代码堆积的效果就更加明显了:只要把功能搞定,其他的以后再说。可以往往这个“以后再说”就成为了“永不再说”。这个也无可厚非。

        就这样,一年又一年,开发项目,做项目,赶项目。而且很多人对做软件开发没有什么兴趣了:原本以为软件开发是一种高智商的活动,现在发觉有点像是体力活。一年一年,我们为一个个不同的客户开发出一个个不同的系统。

        相信很多公司也常常提出很多很“诱人”的口号:通过做大量的项目,积累和开发通用组件,组件越多,以后开发就是仅仅只是堆积木了....但是真正的项目中,客户不停在催,上头也在催,最后就没有人顾及什么通用不通用了。项目开发是越做越累,相信这也是很多开发人员转行和转型的原因之一吧。

        2. 什么是企业级项目

        企业级项目是什么? 为一个企业,机构,客户公司开发的项目就算得上是企业级项目了吗?一个很大的项目就是企业级项目吗?一个小的项目就算不上是企业级项目?

        其实,一直以来,我个人也对什么是“企业级”的概念不是很清晰。只是天天是在这么说。

        说到企业级项目,随着而来的有很多概念:企业级架构,企业级开发。

        但是不管怎么说:企业级这个概念和项目的大小是没有什么很大的关系的,甚至可以说是几乎没有什么关系。

        其实企业级项目其实就是一带着一种“企业级”的思想来做项目。

        在文章中的第一部分,我们到了现在我们做项目的方式:代码的功能“堆积”。通过这种堆积出来的代码就仅仅只是用于这一个项目,对于以后其他的项目几乎是没有什么用处的,也就说代码的重用行不够,而且往往在一个项目中,很多的代码都是杂七杂八的,很多相似的功能都是各自搞出一套代码。诸如之类的问题,导致项目越做越累,很多美丽的口号化为泡沫。

        企业级的项目起码有以下几个特征:

        稳定性
        灵活性
        隔离性
        重用性
        维护性
        相信这些特性大家都不陌生,这些特性我就不具体的解析,大家都清楚。说了这些多,可能大家认为我说的是废话,屁话,但是有一点可以说的:现在我们开发项目确实很多的时候忽略了这些东西,因为这个忽略,确实使得项目项目的开发加快,但是从长期的来看,项目开发还是越来越累的。如果在开发的时候,每次带着一点点这样的思考,尽量写出符合那些特性的代码,慢慢的,一种“企业级的心智”就慢慢出来了,一个很类似的比喻:在项目中,遇到了一个很难的技术问题,我们往往花很多的时间来攻克,最后终于搞定。确实这个攻克的过程我们从思维上可以这样分析:我们思维和问题的答案之间隔了一道墙,我们一次次的尝试各种解决方案去攻克问题的时候,我们的思维一次次的在撞击这道墙,最后墙被撞破,我们也得到了问题的解决方案。

        同理,我们在项目中带着“企业级”思维,我们就在一点点的撞击那道“墙”,最后的结果就是:通用的功能被封装为了通用的组件,为以后的项目的留下积累。

        这里我不是说教,本人的“企业级的心智”也没有,但是因为带着这个思想作项目,个人认为思想有了提升,而且还真的得到了不少通用的组件,虽然说组件善待完善,但是已经有了些甜头。

  • 前车之鉴 软件项目评估失败的十个原因

    2010-08-09 08:59:34

    前车之鉴 软件项目评估失败的十个原因

      回想一下你已经完成的网络和软件项目,当初估算了多长时间和多少费用?有多少估算是准确的?IT项目几乎都会超出预期,也意味着大部分软件项目的估算都是失败的,这是为什么呢?原因有很多,本文仅列举其中10个重要的原因。

      1、项目范围边界未确定好

      当你对项目尚不了解的情况下,你是如何估算项目需要的时间的?很难找出一位客户可以准确地说出他们的系统应该如何运行。

      我参与的每一个大型项目几乎无一例外都要求系统具有“灵活性”,换句话说就是,客户希望系统能处理将来需要处理的一切,但他们也说不清究竟需要什么功能,因此,“灵活性”本质上不是系统需求,因为它是一个模糊的概念。

      2、开发时间由非程序员估算

      如果你不是程序员,不要私自猜测开发需要的时间,如果项目经理象写小说那样虚构估算,项目注定会失去控制,开发时间的估算应该听取程序员的意见。

      3、开发人员的估算太过乐观

      开发人员估算时间一般都只考虑了编码需要的时间,另外,每个人的开发速度和效率都不一样,许多开发人员在估算开发时间时都过于乐观,他们往往会忽略掉诸如项目管理,需求整理,讨论,缺勤,电脑问题等因素。

      4、没有充分解剖项目

      对于一个独立的功能,如果估算的开发时间超过了一周就要小心了,象这样的功能应该进一步细分,这样开发人员可以更详细地分析更复杂的问题。

      5、估算多少时间就使用多少时间

      给一个程序员5天时间让他完成一个任务,他就一定会用5天时间,软件开发是可以无级变速的,任何代码都可以进行改善,如果开发人员只花了3天就完成了任务,他们会用剩下的时间来调整代码或干脆做其它事情。

      遗憾的是,这将会导致估算时间成为开发所需的最小时间,实际交付时间只能被进一步推迟。

      6、开发人员多!=开发速度快

      一个需要耗时100天的项目不可能用100个开发人员1天就完成了,开发人员越多只会导致项目复杂性呈指数级增长。

      7、项目范围变更

      这可能是每个开发人员感觉最头疼的问题,有时是应客户的要求对功能进行修改或添加,有时会是CEO一时兴起,觉得某个功能很酷就要求加上或修改。

      8、估算被固定

      估算应是一个持续的过程,应随系统的开发进度不断更新,程序员往往会认为他们能够弥补逝去的时间,但却很少有人真正做到。

      9、遗忘了测试时间

      要让开发人员自己测试自己的代码是不现实的,他们知道代码是如何工作的,因此会潜意识地使用一个特殊的测试方法,通常,测试和调试时间需要占到开发时间的50%。

      10、估算得太死

      非程序员很少能体会到软件开发的复杂性,因此很少有项目计划不被迫延后,影响项目进展的因素很多,估算时如果不预留部分机动时间,最终只会是一个失败的估算。

      开发延迟会导致代价高昂的连锁反应,遗憾的是,出了问题大家都喜欢将责任归咎于底层的程序员,这样下去对以后的项目也会不利,因为程序员会吃一盏长一智,下一次他们要么拒绝提供估算时间,要么会夸大开发时间。

      不知道你现在的项目是否处于失控的状态,谈谈你对项目估算失败的其它原因吧!

    英文原文链接:http://www.sitepoint.com/blogs/2010/07/29/10-reasons-why-software-project-estimates-fail/

  • 63个国外优秀测试网站地址

    2010-08-05 18:29:19


    63个国外优秀测试网站地址
    http://bdonline.sqe.com/ 一个关于网站测试方面的网页,对这方面感兴趣的人可以参考
    http://citeseer.nj.nec.com/ 一个丰富的电子书库,内容很多,而且提供著作的相关文档参考和下载,是作者非常推荐的一个资料参考网站
    http://groups.yahoo.com/group/LoadRunner 性能测试工具LoadRunner的一个论坛
    http://groups.yahoo.com/grorp/testing-paperannou-nce/messages 提供网站上当前发布的软件测试资料列表
    http://satc.gsfc.nasa.gov/homepage.html 软件保证中心是美国国家航天局(NASA)投资设立的一个软件可靠性和安全性研究中心,研究包括了度量、工具、风险等各个方面
    http://seg.iit.nrc.ca/English/index.html 加拿大的一个研究软件工程质量方面的组织,可以提供研究论文的下载
    http://sepo.nosc.mil/ 内容来自美国SAN DIEGO的软件工程机构(Sofrware Engineering Process Office)主页,包括软件工程知识方面的资料
    http://www.asq.org/ 是世界上最大的一个质量团体组织之一,有着比较丰富的论文资源,不过是收费的
    http://www.automated-testing.com/ 一个自动化软件测试和自然语言处理研究页面,属于个人网页,上面有些资源可供下载
    http://www.benchmarkresources.com/ 提供有关标杆方面的资料,也有一些其它软件测试方面的资料
    http://www.betasoft.com/ 包含一些流行测试工具的介绍、下载和讨论,还提供测试方面的资料
    http://www.brunel.ac.uk/~csstmmh2/vast/home.html VASTT研究组织,主要从事通过切片技术、测试技术和转换技术来验证和分析系统,对这方面技术感兴趣的人是可以在这里参考一些研究的项目及相关的一些主题信息
    http://www.cc.gatech.edu/aristotle/ Aristole研究组织,研究软件系统分析、测试和维护等方面的技术,在测试方面的研究包括了回归测试、测试套最小化、面向对象软件测试等内容,该网站有丰富的论文资源可供下载
    http://www.computer.org/ IEEE是世界上最悠久,也是在最大的计算机社会团体,它的电子图书馆拥有众多计算机方面的论文资料,是研究计算机方面的一个重要资源参考来源
    http://www.cs.colostate.edu/testing/ 可靠性研究网站,有一些可靠性方面的论文资料
    http://www.cs.york.ac.uk/testsig/ 约克大学的测试专业兴趣研究组网页,有比较丰富的资料下载,内容涵盖了测试的多个方面,包括测试自动化、测试数据生成、面向对象软件测试、验证确认过程等
    http://www.csr.ncl.ac.uk/index.html 学校里面的一个软件可靠性研究中心,提供有关软件可靠性研究方面的一些信息和资料,对这方面感兴趣的人可以参考
    http://www.dcs.shef.ac.uk/research/groups/vt/ 学校里的一个验证和测试研究机构,有一些相关项目和论文可供参考
    http://www.esi.es/en/main/ ESI(欧洲软件组织),提供包括CMM评估方面的各种服务
    http://www.europeindia.org/cd02/index.htm 一个可靠性研究网站,有可靠性方面的一些资料提供参考
    http://www.fortest.org.uk/ 一个测试研究网站,研究包括了静态测试技术(如模型检查、理论证明)和动态测试(如测试自动化、特定缺陷的检查、测试有效性分析等)
    http://www.grove.co.uk/ 一个有关软件测试和咨询机构的网站,有一些测试方面的课程和资料供下载
    http://www.hq.nasa.gov/office/codeq/relpract/prcls-23.htm NASA可靠性设计实践资料
    http://www.io.com/~wazmo/ Bret Pettichord的主页,他的一个热点测试页面连接非常有价值,从中可以获得相当大的测试资料,很有价值
    http://www.iso.ch/iso/en/ISOOnline.frontpage 国际标准化组织,提供包括ISO标准系统方面的各类参考资料
    http://www.isse.gmu.edu/faculty/ofut/classes/ 821-ootest/papers.html 提供面向对象和基于构架的测试方面著作下载,对这方面感兴趣的读者可以参考该网站,肯定有价值
    http://www.ivv.nasa.gov/ NASA设立的独立验证和确认机构,该机构提出了软件开发的全面验证和确认,在此可以获得这方面的研究资料
    http://www.kaner.com/ 著名的测试专家Cem Kanner的主页,里面有许多关于测试的专题文章,相信对大家都有用。Cem Kanner关于测试的最著名的书要算Testing Software,这本书已成为一个测试人员的标准参考书
    http://www.library.cmu.edu/Re-search/Engineer- ingAndSciences/CS+ECE/index.html 卡耐基梅陇大学网上图书馆,在这里你可以获得有关计算机方面各类论文资料,内容极其庞大,是研究软件测试不可获取的资料来源之一
    http://www.loadtester.com/ 一个性能测试方面的网站,提供有关性能测试、性能监控等方面的资源,包括论文、论坛以及一些相关链接
    http://www.mareinig.ch/mt/index.html 关于软件工程和应用开发领域的各种免费的实践知识、时事信息和资料文件下载,包括了测试方面的内容
    http://www.mtsu.ceu/-storm/ 软件测试在线资源,包括提供目前有哪些人在研究测试,测试工具列表连接,测试会议,测试新闻和讨论,软件测试文学(包括各种测试杂志,测试报告),各种测试研究组织等内容
    http://www.psqtcomference.com/ 实用软件质量技术和实用软件测试技术国际学术会议宣传网站,每年都会举行两次
    http://www.qacity.com/front.htm 测试工程师资源网站,包含各种测试技术及相关资料下载
    http://www.qaforums.com/ 关于软件质量保证方面的一个论坛,需要注册
    http://www.qaiusa.com/ QAI是一个提供质量保证方面咨询的国际著名机构,提供各种质量和测试方面证书认证
    http://www.qualitytree.com/ 一个测试咨询提供商,有一些测试可供下载,有几篇关于缺陷管理方面的文章值得参考
    http://www.rational.com/ IBM Rational的官方网站,可以在这里寻找测试方面的工具信息。IBM Rational提供测试方面一系列的工具,比较全面
    http://rexblackconsulting.com/Pages/publicat-ions.htm
    Rex Black的个人主页,有一些测试和测试管理方面的资料可供下载
    http://www.riceconsulting.com/ 一个测试咨询提供商,有一些测试资料可供下载,但不多
    http://www.satisfice.com/ 包含James Bach关于软件测试和过程方面的很多论文,尤其在启发式测试策略方面值得参考
    http://www.satisfice.com/seminars.shtml 一个黑盒软件测试方面的研讨会,主要由测试专家Cem Kanar和James Bach组织,有一些值得下载的资料
    http://www.sdmagazine.com/ 软件开发杂志,经常会有一些关于测试方面好的论文资料,同时还包括了项目和过程改进方面的课题,并且定期会有一些关于质量和测试方面的问题讨论
    http://www.sei.cmu.edu/ 著名的软件工程组织,承担美国国防部众多软件工程研究项目,在这里你可以获俄各类关于工程质量和测试方面的资料。该网站提供强有力的搜索功能,可以快速检索到你想要的论文资料,并且可以免费下载
    http://www.soft.com/Institute/HotList/ 提供了网上软件质量热点连接,包括:专业团体组织连接、教育机构连接、商业咨询公司连接、质量相关技术会议连接、各类测试技术专题连接等
    http://www.soft.com/News/QTN-Online/ 质量技术时事,提供有关测试质量方面的一些时事介绍信息,对于关心测试和质量发展的人士来说是很有价值的
    http://www.softwaredioxide.com/ 包括软件工程(CMM,CMMI,项目管理)软件测试等方面的资源
    http://www.softwareqatest.com/ 软件质量/测试资源中心。该中心提供了常见的有关测试方面的FAQ资料,各质量/测试网站介绍,各质量/测试工具介绍,各质量/策划书籍介绍以及与测试相关的工作网站介绍
    http://www.softwaretestinginstitute.com/ 一个软件测试机构,提供软件质量/测试方面的调查分析,测试计划模板,测试WWW的技术,如何获得测试证书的指导,测试方面书籍介绍,并且提供了一个测试论坛
    http://www.sqatester.com/index.htm 一个包含各种测试和质量保证方面的技术网站,提供咨询和培训服务,并有一些测试人员社团组织,特色内容是缺陷处理方面的技术
    http://www.sqe.com/ 一个软件质量工程服务性网站,组织软件测试自动化、STAR-EASE、STARWEST等方面的测试学术会议,并提供一些相关信息资料和课程服务
    http://www.stickyminds.com/ 提供关于软件测试和质量保证方面的当前发展信息资料,论文等资源
    http://www.stqemagazine.com/ 软件策划和质量工程杂志,经常有一些好的论文供下载,不过数量较少,更多地需要通过订购获得,内容还是很有价值的
    http://www.tantara.ab.ca/ 软件质量方面的一个咨询网站,有过程改进方面的一些资料提供
    http://www.tcse.org/ IEEE的一个软件工程技术委员会,提供技术论文下载,并有一个功能强大的分类下载搜索功能,可以搜索到测试类型、测试管理、 测试分析等各方面资料
    http://www.testing.com/ 测试技术专家Brain Marick的主页,包含了Marick 研究的一些资料和论文,该网页提供了测试模式方面的资料,值得研究。总之,如果对测试实践感兴趣,该网站一定不能错过
    http://www.testingcenter.com/ 有一些测试方面的课程体系,有一些价值
    http://www.testingconferences.com/asiastar/home 著名的AsiaStar测试国际学术会议官方网站,感兴趣的人一定不能错过
    http://www.testingstuff.com/ Kerry Zallar的个人主页,提供一些有关培训、工具、会议、论文方面的参考信息
    http://www-sqi.cit.gu.edu.au/ 软件质量机构,有一些技术资料可以供下载,包括软件产品质量模型、再工程、软件质量改进等

    欢迎转载此文,转载时请注明文章来源:文斯测试技术研究中心 http://blog.csdn.net/vincetest
  • 好产品的简洁之道

    2010-08-05 09:13:24

    好产品的简洁之道
    MG Siegler曾写过一篇博文《Keep It Simple, Stupid》,为我们分享了“简洁意味着优雅,引领产品走向成功;复杂表现出臃肿,导致产品走向失败”的观点,个人网站《想飞的翅膀》的楼主笑炊(网名)对此文进行了翻译,现转载于此,供大学借鉴学习:
    做好产品的Kiss原则:Keep it simple,Stupid
    每当我审视创业公司的时候,脑海里总冒出这句话。很多创业公司似乎想同时做好一百件事情,这通常是个坏主意。据我观察,多数公司都失败于想做的事情太复杂。
    表面上看,为用户提供更多的选择,让他们决定用什么,怎么用,似乎没有问题。但是做一个决定对用户就相当于设置一个障碍,通常用户也做不了什么英明的决定,笨用户多了去了。或许他们需要一个学习的过程,渴望被正确地引导。
    拿Twitter举个例子吧,你可以用140个字说正在做什么,就这么简单。但它很快就超越了这种简单的概念,创始人当时也未必想象地到。和别人通信,链接到精彩的文章,即时新闻报道,这些都超出了“你正在做什么”的概念。
    Twitter产生之初,很多人说这个服务太愚蠢了。即便是这样,他们也承认,Twitter把一件事情做地很简洁。运营过程中,很多用户打电话到Twitter,要求增加这样那样的功能,这事我也干过,Twitter并没有满足所有的用户,界面始终保持简洁,哦,也可能是他们没有足够的工程师。
    有趣的是,这件事引起了第3方开发者的兴趣,大伙开始踊跃为它开发新功能,围绕Twitter的整个生态系统逐步建立。这个几年前被人斥为愚蠢的服务, 现在正和Facebook一起,深入地影响着互联网。
    现在我们来说说Facebook,几年前,我开始使用Facebook,而不是Myspace,也是因为它的简洁、优雅。随后,Facebook高速增长,更多的功能陆续被开发出来,它也开始变得无比复杂。
    我坚持认为,Facebook的设计之所以引起用户不满,皆因复杂所致。想用好Facebook太难了,为了一个似乎微不足道的变化,你不得不花大量的精力适应和学习,这违背了Facebook的核心价值观:利用网络获知朋友的近况。许多用户离开了Facebook,我一点也不意外。
    某种程度上说,Windows也是因复杂走向失败的例子,即便一个使用计算机多年的老手,想玩转Windows操作系统,也极为不易。Windows陷入了不停地为产品添加新功能的怪圈,新功能满足了部分用户的需求,整个系统却越来越臃肿、难用。更糟糕的是,Microsoft开始推出不同的操作系统版本,谁也说不清它们之间的区别是什么。
    如果你想添加新功能,Gmail在对Lab上的处理可能是个很好的例子,与其面向所有用户推出新功能,Gmail把Lab作为新功能的可选项,这样当用户不喜欢Lab的时候,可以轻易地关掉它。
    让我们重新回到简洁的主题,简洁通常意味着优雅。再举个例子,Twitter的客户端很多,用过Tweetie的用户都会领会到简洁的魅力,它不会把我的Flickr和Facebook 新鲜事推送过来,相反,只把一件事做到了最好:展示Twitter的信息流。
    再次回到Facebook,它也意识到这一点,开始简化设计,生活流竭力做到和Twitter一样简洁,然而你看到的只是表象。真正的问题在于,Facebook的背后有一系列复杂的社区规则和关系,导致它很难做到真正的简洁,你可以按下图尝试下它的新鲜事设置。
    最近我关注的另一个应用是Foursquare,为什么关注它?可能因为身边的朋友都在使用,那么他们又为什么使用呢?因为它很简洁。使用FourSquare的iPhone App时,在某个地方签到只需要点击两次。
    为什么用户喜欢Digg?它也很简洁,你可以提交感兴趣的内容,或者给文章投个票,再懒的话仅仅阅读就行了。
    对多数初创公司来说,你能用一句话说清楚你的服务能做什么吗?让我们试一下:
    Google:搜索你想要的;
    Facebook:和你的朋友保持联系;
    Twitter:说说你在做什么;
    FourSquare:报告你现在的位置。
    下一个?你有什么想法么?
    原文链接:http://techcrunch.com/2009/04/28/keep-it-simple-stupid/
    译文链接:http://www.mobilefocus.net/?p=444

  • Web应用成功构建的十项黄金法则

    2010-08-04 19:52:20

    Web应用成功构建的十项黄金法则

     

    此文译自Fred Wilson 2010年2月在迈阿密举行的Web未来应用的年会上的演讲,以下是演讲内容:

      谢谢,大家好,很高兴能够来到迈阿密。昨晚我从纽约抵达的时候还很冷,地上都是积雪,但是现在这里却很温暖很舒服,非常高兴能够来到这里。

      演说前,Carsonified有人提议希望我能够列出构建成功web应用的十项法则,我想了想:“好吧,我都不知道是否能控制在是个”。不过,我现在已经列出来了并打算今天分享给大家。这些都是源自我十五年来对web应用投资实践所得的经验,包含了我所学到的,如哪些实践方式有效而哪些实践方式无效等等。

      我用过很多的web应用,对于我们来说,我们的投资方式都是非常直接的。在投资前我们很清楚什么样的应用是我们感兴趣的,如果这产品我们不感兴趣,那我们就会直接告诉项目的负责人这不是我们想要的,相反,我们就会采纳这个产品。紧接着如果发现产品和我们产生共鸣,那么我们就会尝试去了解他。一旦这个产品,以及对应的服务和项目团队都非常吸引我们,那么我们就会去投资。

      这十项是我一直在web应用中寻找的。我敢肯定在座的一定有人会不同意我的观点,但是这确确实实是对于优秀的web应用来说是不可或缺的。因此,今天的主题就是:“构建成功web应用的十项黄金法则”。

      1.速度

    1

      首先,我相信速度是最为重要的,对于一个web应用来说,速度快是所有特征中最重要的。如果你的应用很慢,人们是不会去用它的,这个在主流用户(一般用户)中要比高级用户更加来的显而易见。我认为对于高级用户来说,他们有的时候很能理解构建一个非常快速的应用背后的挑战和苦难,所以当他们面对速度缓慢的应用的时候,或许他们还能忍受。但就以我的妻子和孩子来说,他们是我认为的主流用户(一般用户),一旦某个应用速度慢了,他们不会耐心地等下去了,而是立马放弃使用。

      我觉得web应用速度必须要快,如果慢了,后果是显而易见的。我们公司(风险投资公司)的每一个投资的项目在Pingdom(网站性能测试服务站点)上都有记录,我们每周都会去看。我们发现,但凡有公司投资的应用陷入困境(出现性能问题,速度变慢了),这些应用通常也不会有快速的发展势头。这个真实有力的证据证实了“速度优于功能,速度是最重要的”这一事实,对于一个web应用来说,速度快不是一个优点,而是一项要求。

      2.即时效用

    1

      “即时效用”的意思就是说服务(其实就是web应用,因为web应用多数就是提供服务)对你来说是实时有帮助的(简单实用,并且具有实时性)。如果你构建一个服务,然后用户要想使用他不得不花上一个小时的时间完成如下流程:配置服务,启动它,导入联系人,做许许多多和数据有关的事情。那我想绝大部分人会放弃使用。服务必须要对用户来说是即时可用的,而这一点被很多人所忽视.

      利用许多技巧可以使得你能够快速让你的应用达到这种即时效用,举个比较适当的例子:当你构建一个信息服务的时候,一开始甚至长期你都可以在网络上的其他地方爬取比较受欢迎的信息作为你自己的服务。但是有一点,你一定要给用户即时的有帮助的信息。

      另一个例子是:当Google大概4,5年前发布Google Video的时候,差不多同一时间YouTube也发布了同样的服务。如果你在上传一个视频到Google Video,之后你得到了一个消息说:“一个星期后你的视频将会被播放出来”。当然了,这样的方式显然不是很好。而相比,YouTube提供了在线实时的编码工作,你可以立马看到你上传的视频。这就是我想要说的关于即时效用的东西。

      3.软件即是媒介

    1

      关于这点我有很多想说的.我的观点是现在的软件即是媒介。特别是消费者软件,当人们使用你软件的时候就如同接触各种媒介一样。这里我所说的媒介是指诸如杂志,新闻,电视节目等传统媒介。比如”纽约时报”和“华尔街日报”;“浮华世界”(一本杂志)和“时尚”(时尚杂志);FOXNews和CNN,每一种媒介都有自己的特点,都有不同于其他媒介的独一无二的态度和坚持。

      同传统的媒介一样,我认为现在的软件也要有自己的个性特点,发出自己的声音,表达自己的态度。有些看上去诸如“Fail Whale(失败鲸)”(twitter宕机时候的提示图案)很“傻乎乎”的东西,其实也是一种个性化的东西。虽然对于Twitter用户来说宕机这件事难免有些尴尬,但人们仍会穿着”Fail Whale”的衣服在街上行走,这至少证明了一点: 这个服务背后有属于自己的特点,它提供了一种媒介,用同一种声音将人们联系在一起.这就是我想要说的.这一点对于web应用来说是非常重要的.  


      4. 少即是多

    1

      “少即是多”,这一点我深信不疑,尤其在你构建应用初期.而后你可以慢慢地增强你网站的功能.以Facebook为例, 如今在他它的服务中提供了20到30种不同的核心功能.但是,在它刚刚起步的时候他的应用却非常的简单好用.我想这就是一个好的应用所必须具备的.

      公司对Delicious的投资是我最满意的投资之一.我喜欢它的简单,Delicious的功能很少,但是却很强大.人们一天要用五次甚至十次,而且天天都用.这些服务虽然涉及面很窄,但是对用户非常有用,时刻都要用到它.他们非常的强大并且对你有很大的帮助,与此同时我认为他们的快速,简单,易用做得非常的好,给你提供了一个很好的平台.

      5.可编程

    1

      对于web应用开发者而言,我觉得这一点本身无需多说. 但是我认为非常的关键,非常的重要.能够让其他人通过某种方式在你的应用基础上构建其他的应用或者在你应用基础上添加其他的东西是非常重要的!这就意味着开放(你应用的)API,并且在我看来是可读写的API. Delicious的创始人两三年前和我说如果API不是可读写的,那就不算是开放API.这个已经在我们公司内部形成了一个信条了.我们认为如果API只是可读的,那么它和RSS没什么区别.

      不是所有我们投资的应用都开放了可读写API,但我们始终尝试着鼓励并且说服他们这样做.可编程性最为重要的一点是,人们能够通过这个能够令你的应用更有价值,给你的应用注入更大的能量,为你的应用带来更多的用户,更多的数据以及更多的财富. 或许2,3年前,我们还会投资不具备高可编程性的web应用,但在今天我们肯定不会这么做了,因为如同速度一样,可编程性对于成功的web应用也是必不可少的.

      6.个性化

    1

      个性化对于用户来说是非常有意义的,就好像我前面一张ppt提到的,你要让第三方的开发者乃至用户都为你的应用注入他们的“能量”,他们在你的应用中注入越多的他们个性化的东西,他们就会对你的应用更加有归属感和拥有感,这很有可能会成为你推动市场的重要力量。个性化你的应用是非常重要的,方式也有很多,比如可以让用户自定义背景,上传头像,添加自定义的内容等等等等,这些都能让用户就对你的应用产生归属感。

      当然了,个性化难免也会带来一些问题。之前我和一个原Last.fm的女员工聊天的时候,她告诉我他们社区用户都感觉他们就是网站的主人,是他们在负责这个网站,于是就导致了这样的问题:每次网站有了改动,就会在论坛上看到成千上百的留言。我认为这是一件好事情,因为这就意味着人们非常关注你的网站,你的应用。

      这对于我们投资的一些公司来说的确也是一个头疼的问题。比如,当我们投资的一家公司:Meetup (需要翻墙)上个星期在它站点的页面上作了些改动之后,就有许许多多关于这件事情的评论,当然了,大部分都是骂声(持反对意见)。对于这些评论,积极回应也好,完全不予以理会也罢,完全由你自己确定。但是从某个层面上来看,这确实是件非常好的事情,因为这恰恰说明了人们在关注你的应用,他们花费了他们的时间和精力在你的应用上面。

      7. RESTful(计算机领域专业名词)

    1

      我不确定我用这个词是否准确。我想在座的大部分都应该知道什么是REST(REpresentational State Transfer的简称)。它是一个软件架构中提出的一个观点即:任何事物都应该有详细的定义。但是我这里所指的REST则有些许不同,甚至有点使用不当,但是不管怎么样我仍然觉得还是讲得通的,还是挺有道理的。

      软件架构中的REST指的是你的每资源都有一个可被访问的URL来表示,这个是在软件架构层面的。但是我对他的定义则有些古怪,我所谓的REST是指整个应用层面,其中所有的资源都有一个URL,而且是一个非常简洁,容易理解的URL。

      好比Twitter在3,4个月前发布的Twitter list,如果你去某人的twitter页面,单击了“lists”这个链接,你就会看到类似于“twitter.com/fredwilson/list/….”这样的URL,这个URL就表示了我twitter上的所有的list。整个Twitter应用都是以这样的方式来构建的,它上面所有的资源都是以简单易懂的URL来直接表示的。你可以拿到这个URL,然后通过email或者其他方式发送到互联网上。

      Google将会搜索到这个URL,它能够让别人发现你的应用并且直接访问到你应用中原本要从首页通过很多次交互才能访问到的内容。我认为那些不以这种方式构建web应用的人都犯了一个很大的错误。就好像现在非常流行的LinkedIn,它在这方面就做的非常的糟糕。

      以上就是我想要说的关于RESTFUL的东西,尽管有些怪异,但是我认为对于成功的web应用来说的确是非常重要的。


      8. 让你的应用更容易被人发现

    1

      这张ppt和上一张ppt有点像。当你刚刚构建好你的应用的时候,它就好像是一堆稻草上的一根针。世界上存在着说不上成千上万吧,至少也有成千上百的应用和你类似,那么怎么样才能让人们发现你的应用呢?基于这一点,我认为,你要做的就是搜索引擎优化。对于优化,你不仅仅要知道其规则更要清楚如何去优化。你的应用必须要让Google能够很容易的发现。

      不仅如此,你的应用也应该很容易被社会媒体所发现。现如今,就传播能力而言,社会媒体如同搜索引擎一样重要。就好像病毒一样。First Round Capital的创始人,同时也是我的同事,Josh Kopelman发表了一遍很好的博文,那篇博文的标题大致是:“我们需要注入病毒”。大致意思是说,他们构建的web应用根本没人使用,于是他就和他的团队说:“我们注入些病毒进去”。当然了,你不能这么做。但是你的应用就应该自始至终都应该是很容易被人发现,可传播能力很强的。产品本身就应该是面向互联网,搜索引擎,社会媒体的。这就是我所说的如何让你的应用更容易被人发现。

      9.简洁

    1

      我认为,简洁意味着你应用的页面不要太拥挤。你的页面应该让人一目了然,任何页面都不要放置太多的功能点在上面,要让用户一看就能知道是干什么的,怎么用。

      在我刚开始做这张ppt的时候,想把一些应用的截图放上去,感觉这样会比较好。但是后来想想这并不好,于是我就放了这些肥皂上去了。但是之前在这个位置我放的是Tumblr(需要翻墙)的登陆界面的截图,截图如下:

      当你进入Tumblr的登陆界面的时候,它整个页面上就只有两个巨大的输入框,用来输入用户名和密码,非常简洁直白,我非常喜欢。用户非常清楚这个页面是干嘛的以及如何使用。这点非常重要,很多人都低估了这种简洁性的价值,总觉得页面上的功能越多越好。

      10.趣味性

    1

      最后一点,同样重要的是娱乐化。我们合广投资公司(Union Square Ventures)有6个关键词(类似学校的校训之类的),有一个碰巧和我说的这一点吻合。这六个关键词是:移动化、社会化、全球化、娱乐化、智能化,第六个我忘记了。不管怎么样,这些都是和我们的web应用有关的东西,而其中娱乐化就是我想要说的。

      之前有人说我放一个空的场地只有积水的图片作为背景不好,但是我这么做是有原因的。这张ppt上的图片是旧金山的南方公园。在这个滑梯的上面只有一小块地方,但是就在这一小块地方上诞生了Twitter:那是一个春天,有天中午4,5个来自一家名叫Odeo的公司的员工来到这个公园讨论他们要构建的新的项目,最后就在这个滑梯上方的那一小块平台上,想到了Twitter。这就是为什么我要放这张图的原因。

      总之,对于web应用来说,娱乐化是非常重要的.游戏互动性是指你可以用他来引导用户做一些事情.举个不是web apps的例子吧,一款具有良好互动性的名叫Weight Watchers的游戏,它的良好互动性体现在。你可以在这个游戏中建立一个目标,然后去努力完成这个目标,同时,你可以将你的目标公布出来,当你达到目标之后会获得一些奖励。就是这一游戏互动性得Weight Watchers非常的成功。

      不同的应用可以提供不同的游戏互动性,比如linkedIn,我有些朋友在这上面就喜欢在上面结识更多的朋友,就好像人们在Twitter上就想让更多人来follow自己,或者自己去follow更多的人一样。这是所说的就是另外一种游戏互动性了。

      Foursquare则有很多的游戏元素:诸如状态,徽章之类的来衡量作为为对本地信息的挖掘的能力强弱。你的应用没有必要和Foursquare一样做的这么明显,但是我想说的是你的应用需要娱乐化。因为这样,它会让用户觉得你的应用很有趣。

      Greg,能把屏幕切换到我的blog吗?我周日的时候把这篇演讲ppt发布到了我的blog上面,地址是:www.avc.com,这就是这篇文章“构建成功web应用的十项法则”。你往下翻就会发现有许许多多的留言,一共有171条。之前有一些内容大家争论了3,4天关于是否除了这十条还有别的更重要的十条,是否你对这真的感兴趣;是否拟对你刚刚构建的应用仔细考量过,是否你这十条包含了全部的关键点。当然了,在留言中至少还提到了5,6点非常关键的,比如:隐私性,易用性,品牌性等应该被列入其中,但是我被要求只能列出10个,于是就只能压缩成了10个了。

  • Sql server中时间函数用法详解

    2010-07-27 18:41:26

    SQL中的时间函数非常有用,特别是在我们进行初始赋值、复杂查询的时候,就显得特别方便。

    1、获得系统当前时间

    select getdate() 

     

    2、DateName ( datepart , date )返回表示指定日期的指定日期部分的字符串。

    --今天是2009-2-24--星期二

    SELECT DATENAME(yeargetdate()) AS 'Year Name' --------返回:2009

    SELECT DATENAME(monthgetdate()) AS 'Month Name'  --------返回:02

    SELECT DATENAME(weekday, getdate()) AS 'Weekday Name'------返回:星期二

     

    3、DATEADD (datepart , number, date ),在向指定日期加上一段时间的基础上,返回新的 datetime 值。

    select DateAdd(MM,2,'2008-8-8'--------------返回:2008-10-08 00:00:00.000

    select DateAdd(dd,2,'2008-8-8'--------------返回:2008-08-10 00:00:00.000

    select dateadd(hh,-1,getdate()) --------------返回:2009-02-23 12:46:46.450,返回前一个小时的时间

     

    4、DATEDIFF ( date-part, date-expression-1, date-expression-2 )  返回两个日期之间的间隔。

      此函数计算两个指定日期之间日期部分的数目。结果为日期部分中等于(date2 - date1)的有符号的整数值。

     

    SELECT datediff( hour, '4:00AM''5:50AM' )---------------------------返回: 1

    SELECT datediffmonth'1987/05/02''1995/11/15' )------------------返回: 102

    SELECT datediffday'00:00''23:59' )------------------------------返回:0

    SELECT datediffday,  '1999/07/19 00:00',  '1999/07/23 23:59' )------返回:4

    SELECT datediffmonth'1999/07/19''1999/07/23' )------------------返回:0

    SELECT datediffmonth'1999/07/19''1999/08/23' )------------------返回:1

     

     实例:查询当天更新的数据

     

    select * from tableName where datediff(dd,F_EditTime,getdate())=0

     

     

    5、DATEPART datepart ,date )返回代表指定日期的指定日期部分的整数。

    --今天是2009-2-24 星期二
    SELECT DATEPART(year,getdate()) as 'Year'    --------返回:2009

    SELECT DATEPART(month,getdate()) as 'Month'   ---------返回:2

    SELECT DATEPART(weekday,getdate()) as 'Weekday' ---------返回:3,如:Sunday = 1、Saturday = 7

    SELECT DAY(getdate())             -----------------------返回:24

     

    备注:DAY、MONTH、和 YEAR 函数分别是 DATEPART(dddate)、DATEPART(mmdate)、和 DATEPART(yydate) 的同义词。

     

    附录:datepart

    日期部分缩写
    Yearyy, yyyy
    quarterqq, q
    Monthmm, m
    dayofyeardy, y
    Daydd, d
    Weekwk, ww
    Hourhh
    minutemi, n
    secondss, s
    millisecondms

  • 虚假的测试繁荣

    2009-05-21 20:09:06

    原文请见:

    http://www.7dtest.com/bbs/thread-1952-1-1.html
    测试7刊-7点测试论坛出品-第六期

    有几个文章大概的题目如:
    软件测试行业缺口多少多少万、
    软件测试人员比博士还值钱、
    软件测试越老越吃香、
    软件测试是金饭碗、

    等等等等。

    以下是我的一些个人看法。

    1.        行业
    我们都知道媒体的报到都是因为一些利益驱动的,并不是为了良心和行业的良性发展,要是从工作的角度来说,我觉得他们很到位,但是少了一点,就是社会责任心。做为一个有良知的知识分子,我觉得应该说点事实,不要把一个本来挺好的行业最后糟蹋的不像样子。做为一个软件测试从业人员(我从一毕业就开始做软件测试),我觉得这些都不靠谱。
    在我的记忆中,跟测试同行聊天时,软件测试行业的缺口是一个所谓的牛人被媒体采访时问到的。但是这个牛人,自己也没有做过统计,于是乎,两眼一转,把心一横,在我不知道别人也不可能知道的心态下说出了这么一个数据:大概30万吧。实际上,这个数据没有经过任何公开的媒体调查(如果调查了后,就是这个数据,我觉得还有点借鉴意义)。结果就被一些写手们越扯越大。反正写错了,也没人打屁股,要写就要引人眼球,可劲的造吧。这种鼓吹的结果就是让一群人很盲目的进入了这个行业,结果发现根本不是那么一回事。于是经常看到有人问,我什么什么经历,转测试行不行呀?就有些人很不负责任的回答:只要努力,就行!我靠,也不想想,人家那么多年的其他行业的经验,为什么还要转测试呀?工资也不见得就高(这个问题稍后细说),也不见得轻松,上升空间也不见得有原来的行业多,干吗要鼓励人家换这个行业呀?(排除有些人骨子里就喜欢测试这个行业的。另:大部分人工作还是工作,并不是当成事业来做的,所以谈不上对哪个行业有非常深的兴趣)。
    所以在选择这个行业的时候,还是需要理智的思考的,曾经有一个朋友,工作大概四五年了,做过:网管、保安、保险推销等等的工作,技术基本没有积累。问我:我能不能转行做测试?我问了他一些基本的计算机知识和测试的基本知识,我说:你还是别转了,不如做点其他的事情。不过我也说了,我只是提个你不要转的建议,你要是非想转,我也可以告诉你要学什么。在很多情况下,我觉得更理性的思考才说出建议和决定比较合理,不要以为有了一份心就什么都有了,两码事。因为人的激情是有时间间隔的。
    测试人员的素质要求。可能是因为我进入了这个行业,老是有人在说这个行业的人需要什么样的技术和素质。大多数的都会提到一个字眼:浮躁。就是测试人员切忌浮躁。我晕,什么人不忌浮躁呀?这是对人的基本素质要求,而不是对测试行业的人的素质要求。可能有人说了,测试嘛,要细心,浮躁了就不能细心了。这种说法貌似合理了。但是,这绝不是测试人员的核心要求。极端一些说(因为极端的假设可以让问题更清晰),如果一个人只有细心,你是测试招聘人员,你会招吗?那这里就涉及到另一个问题了:就是要有技术。什么是技术呢?测试行业什么是技术呢?突然有这个问题似乎让人不知道怎么回答,有一种满肚子都是话突然之间倒不出来的感觉。于是,冷静一会,这种喜欢吹嘘的人就会摆出一堆话来:测试理论呀、测试方法呀、测试工具呀、测试流程呀等等等不都是技术吗?在我有限的知识体系里,个人觉得,这些都不是技术,只是测试人员应该有的常识。测试工具的使用只是测试人员应该掌握的技巧。

    2.        薪水
    薪水的诱惑。我看到过很多次说软件测试行业薪水如何如何高?XX出来不是八千就是五千的。还有人说,软件测试行业是IT中最高薪的行业,越老越值钱!我个人觉得软件测试行业绝对不是常青树。也不可能越老越值钱。现在做软件测试,找工作的人,一堆一堆的。好好看看这个市场,它不是缺少要做软件测试的人,而是缺少有经验的人。并且一般的经验,也不值什么钱。工作三四年(甚至更多)的人,5-6千的人,大有人在,而不是像有些广告上说的,这个行业进来就是万儿八千的。以为是找BUG是捡钱玩呀?我遇到的做测试的,工作十年左右的,也不过是在万元左右。人家这么多年都是白混的呀?在软件测试行业,从纯技术的角度来说:能拿到2万/月的人,很少很少。(请不要以某个个例来反驳,因为个例没有意义)。有些人挤破的头皮进外企。从大局来看(仅个人观点),外企在国内就没有真正把技术拿进来过(这里应该说大部分,不能一棍子全打了),所做的也无非是些边边角角的苦力活。所以外包才有市场,才会发展起来。几乎我认识的所有的测试行业的人都说外包没有技术含量,国内的外企难道不像外包吗?只是形式不同罢了。就拿中国的某些制造业来说,也有一部分属于这种状况,结果金融风暴来了,人家倒了,你也倒了。曾经有不止两个在软件业混了十几年的人跟我说:中国没有什么技术(我知道这句话有失偏颇,但它反应了一些现状)。再回到软件测试这个行业,首先,我认为刚毕业的大学生,不要指望一下子能爬多高。走的不稳总有一天摔倒。如果家里特有钱,像我一华为的同学跟我说的,那里有开着奔驰去上班的,一个月拿几千块钱的。人家那是自我实现追求。而我们大部分的人,还是老老实实的,想想这一生应该怎么过,才能买得起房子,买得起个二十万以下的车吧。软件测试从业人员,自己把自己一辈子能赚的钱都算算。你这一辈子的闲钱能达到十万吗?你敢乱花乱玩吗? 你没有先消费后还贷吗?这是时尚,还是不得已而为之?是你的能力不足,还是这个行业已经限制了你的上限?就算是你到了级别,有多少人可以到副总?有多少人是技术总监?就算你是技术总监,又有多少公司的技术总监一年超过30W?我出来工作两三年之后,就有人说,我的工资涨的飞快。我个人在想,这些钱,还不够我的生活。因为我也要买房,买车,生儿育女,赡养老人。有没有想过这些事情,如果全压在你和你老婆(老公)身上的时候,多少的薪水够用的?有人也说了,有钱就过有钱人的生活,没钱就过没钱人的生活,反正过穷富不是一样过吗?一辈子很快就过去了。这种说法是无奈还是满足现状?说的时候心酸吗?看着自己的孩子和别人的孩子上的不一样的学校。玩的游戏没有人家玩的好,你什么感觉?就告诉自己,我的能力只能是这样了吗?选择一个行业,你就要知道,这个行业的薪水段在什么样的层次,就像一个同事跟我说的:一个片警拿一个包出去赌钱,里面都是几百万的人民币。你是不是遗憾自己选错了行呢?当然不能这样对比对吧。因为我们靠自己的能力,吃自己的饭。呵呵,这么对比一下就是要看这个文章的人想清楚,你想拿多少工资?这个行业能给你的只有这么多,你自己选择去吧。当然,也要看清楚的是,这个行业,比出去在大太阳下搬砖强多了。
    好吧,薪水暂时靠一段落。

    3.        技术
    技术,真实认真做软件测试的人应该有这样一种感觉。软件测试不容易做。它需要的知识太多了。如果仅玩数据库,只要把oracle搞的特别精通,我想一年工资二十万应该没有什么问题吧。但是软件测试行业是你要把好几种工具和语言都玩精通可能才值那么多钱。就拿性能测试来说吧(因为这一块是我一直做的,拿来打比方应该偏差不会太大),你只会性能测试工具就敢出去要万元/月以上的工资了吗?你敢要,谁愿意给呀?别以为自己可以是根葱了,其实还没发芽。我们都知道,在软件测试行业的JD一般都是:OS/network/DB/tools/applications/middleware、还有一些语言呀,脚本(脚本也是一种语言这里分开一下)呀,都包括的,就算不全包括,也要有一部分。你得懂呀?不懂全部,你得懂几个吧?你不懂,有人懂呀。那工作机会不就没了吗?怎么办呢?学吧。每天晚上搞到一两点,死劲的玩这些东西,大概找工作的时候,可以跟人侃了。我这个也会了那个也会了。但是呢,不能问深。因为学的广嘛。所以哪有时间细细的琢磨呢。所以问深了就晕了。人家一看,唉,这个人不求甚解,算了吧。也许很巧合,面试了一家公司,人家问的,也都被你忽悠上来了。总算找一工作。也是刷了好多人的。要是能把上面所说的每个东西,都玩了个精通,那出去找工作,问什么会什么,太牛B了。但是公司毛了,这样的人,我们能养得起吗?这种情况很少出现,我们就不去说它了。还要说软件测试行业。其实我们也知道,软件测试行业,在要求广泛的同时,也开始慢慢细化。越来越强调专向发展的人。所以,在进入这个行业的人,不要指望能把所有的公司JD都拿得下来,你只需要考虑是不是能满足其中一两种就可以了。并且仅这一两种也大概够你玩个十多二十年的。到那时,你已经不值钱了,因为还有一堆堆的年轻人在嗷嗷的叫着找这类的工作。国内工作到四十岁的技术人员,还有纯干技术的吗?(当然是有的,这里我说的是大部分情况下)我也有纯技术做了一二十年的同事,他自己也说他这种现象不正常。(这个和国家的福利待遇等都有关系,我这里不再展开说了。)

    4.        追逐

    追逐,如果从现在的大学生失业率来看的话,进入这个尚末成熟的软件测试行业,不见得是件坏事,因为乱世出英雄嘛。当然,在出英雄的前提下,就会有些怀才不遇的人很快的被糊里糊涂地砍倒在战场上。所以进入这个战场,就做好看清流弹的准备。不要报怨,认真的走好自己的路,不要和别人对比,因为不成熟的市场是没有什么可比性的。技术路线和泡沫市场的路线差距还是很大的。当然IT的技术路线和传统工业的技术路线差距也是很大的。我们基本上也算是产业工人的一部分,但是,我们并不是越老越值钱,如果不尽快在自己老到被人推倒在沙滩上之前赶紧找到自己的位置,相信在自己没有可利用的价值之后,很快就被淘汰。一个人被利用并不悲哀,悲哀的是没有可利用的价值。从比较职场的语言来说,我们之所以有工作,是因为老板们或者领导们认为我们还可用,想拿的工资更多,就让领导们觉得我们还有更多可用的地方。所以,尽量的去追逐那些在市场上看来有价值的知识,从而让自己的打工路,更平坦。(如果不想打工的话,那就追逐当老板应该有的知识。)不过,要注意这条路上,重点要知道自己追逐的是什么,而不是随大潮,看着别人玩什么自己也玩什么。很快那些大众型的知识都不值钱了(IT的更新也是很快的),所以要找准自己的位置。

    谨以此文,描述个人对测试行业的看法。如果打击到某些人或某类人,请见谅。

  • touch命令

    2009-05-15 18:00:07

    名字
    touch - 修改文件的时间戳记.  
    总览
    touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名)...
    被废弃的版本:
    touch [-acm][ugly_time] file(文件)...

    GNU版本:
    touch [-acfm] [-r file(参照文件)] [-t decimtime(时间值)] [-d time(时间值)] [--time={atime,access,use,mtime,modify}] [--date=time] [--reference=file] [--no-create] [--help] [--version] [--] file(文件)...  

    用法描述
    touch 修改每个指定文件 file 的存取(access)和/或修改(modification)时间戳记.除非使用-r或-t选项,这些时间戳记都将修改为当前的时间.使用-r选项时,这些戳记将按照文件 ref_file 的时间戳记来修改(即变得和ref_file时间戳记值相同).使用-t选项,则这些戳记将按照给定的时间值 time 进行修改.同时使用或同时不使用选项-a和-m,存取和修改两个戳记都将被更改.若只使用选项-a,则只修改存取戳记.同样,只使用选项-m,则只修改修改戳记.若要修改戳记的文件尚不存在,除非使用-c选项,touch 将创建它(作为空文件,并赋予0666的模式且受umask值的限制).  
    POSIX标准定义的选项
    -a
    修改文件 file 的存取时间.
    -c
    不创建文件 file.
    -m
    修改文件 file file

    -r ref_file
    将参照文件 ref_file 相应的时间戳记的数值作为指定文件 file 时间戳记的新值.
    -t time
    使用指定的时间值 time 作为指定文件 file 相应时间戳记的新值.此处的 time 规定为如下形式的十进制数∶

    [[CC]YY]MMDDhhmm[.SS]


    这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch 将把年数CCYY限定在1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时间.由于系统的限制,早于1970年1月1日的时间是错误的.
     
    POSIX标准的细节
    已被废弃的touch版本使用时会出现模棱两可的情况: ugly_time 到底是时间值还是文件名?由于此种版本尚未提供-r或-t选项,所以使用时至少要有两个命令行参数,作为时间值, ugly_time 必须为第一个参数.这里的 ugly_time 是一个形为MMDDhhmm[yy]的八位或十位整数.其中,yy是介于69--99之间表示1969--1999之间某一年的两位数,如果不给,表示当前这一年.  
    GNU版本的细节
    如果第一个指定文件 file 的名子从形式上说是选项 -t 的有效参数,并且没有给出选项 -d, -r 或 -t -t
    数,也没有给`--'选项,那么这个文件名将被解释成时间值.

    一般情况下,利用 touch 修改文件的时间戳记时要求用户时该文件的所有者.除非只是把文件的存取和修改两种时间戳记修改为当前的时刻,这种情况只要求用户拥有对该文件`写'的权利就行了.  

    GNU版本选项用法简介
    -a, --time=atime, --time=access, --time=use
    只修改存取时间.
    -c, --no-create
    如果要修改的文件不存在,此选项使touch不去创建它.
    -d, --date=time
    使用时间值 time 代替指定文件的戳记值.可以包含月份名,时区名以及`am'和 `pm'等等.
    -f
    此选项用于兼容BSD版本的 touch(1).
    -m, --time=mtime, --time=modify
    只修改修改时间.
    -r file, --reference=file
    使用参照文件 file 的时间戳记值修改指定文件的时间戳记.
    -t decimtime
    这里时间值 decimtime 的格式为MMDDhhmm[[CC]YY][.ss] 从左至右分别是月份,日期,小时,分钟,可选的世纪和年,以及可选的秒. touch 将用这组数值修改指定文件的时间戳记.请注意,这个格式与POSIX标准所规定的格式并不一样.
     
    GNU版本通用选项
    --help
    使程序在标准输出上显示该程序的用法信息.
    --version
    使程序在标准输出上打印其版本信息.
     
    GNU版本通用选项
    --help
    使程序在标准输出上显示该程序的用法信息.
    --version
    使程序在标准输出上打印其版本信息.
    --
    用于使程序终止对选项的解析.
     
    运行环境
    环境变量TZ一般用来表明所给时刻是哪个时区的.而环境变量LANG, LC_ALL, LC_CTYPE 和 LC_MESSAGES还是一般情况下的意义.  
    遵循
    GNU版touch的-t选项的参数所用格式并不符合POSIX标准1003.2的描述.  
    用法实例
    如果文件foo并不存在,那么命令`touch foo'将创建它,并把最后的修改时间改到现在的时刻.这一特点经常用来引导 make 的执行.  
    注意
    这篇说明描述了fileutils-4.0程序包中的 touch. 其它版本的touch可能与此有稍许不同.对本文的修正和增补请致信aeb@cwi.nl.程序缺陷请向fileutils-bugs@gnu.ai.mit.edu报告?

  • unix常用命令

    2009-05-15 18:00:07

    unix常用命令

    a. 关於档案/目录处理的指令:

    1. ls
    这是最基本的档案指令。 ls 的意义为 "list",也就是将某一个目录或是

    某一个档案的内容显示出来。


    如果你在下 ls 指令後头没有跟著任何的档名,它将会显示出目前目录中所

    有档案。


    也可以在 ls 後面加上所要察看的目录名称或档案的名称,如


    % ls /home2/X11R5

    % ls first

    ls
    有一些特别的参数,可以给予使用者更多有关的资讯,如下
    :

    -a :
    UNIX 中若一个目录或档案名字的第一个字元为 "." , 则使用
    ls
    将不会显示出这个档案的名字,我们称此类档案为隐藏档。如
    tcsh
    的初设档 .tcshrc;如果我们要察看这类档案,则必须加上参数 -a


    -l :
    这个参数代表使用 ls 的长( long )格式,可以显示更多的资讯,

    如档案存取权,档案拥有者( owner ),档案大小,档案最後更新

    日期,甚而 symbolic link 的档案是 link 那一个档等等。如下


    % ls -l

    drwx--x--x 2 jjtseng 512 Aug 8 05:08 18
    drwx--x--x 2 jjtseng 512 Aug 8 22:00 19
    -rw------- 1 jjtseng 566 Aug 8 05:28 makefile

    2. cp
    cp
    这个指令的意义是复制("COPY") , 也就是将一个或多个档案复制成另

    一个档案或者是将其复制到另一个目录去。


    cp
    的用法如下
    :

    cp f1 f2 :
    将档名为 f1 的档案复制一份为档名为 f2 的档案。

    cp f1 f2 f3 ... dir :
    将档案 f1 f2 f3 ... 都以相同的档名复制一

    份放到目录 dir 里面。

    cp -r dir1 dir2 :
    dir1 的全部内容全部复制到 dir2 里面。


    cp
    也有一些参数,如下
    :

    -i :
    此参数是当已有档名为 f2 的档案时,若迳自使用 cp 将会将原来
    f2
    的内容掩盖过去,因此在要盖过之前必须先询问使用者一下。如使用者

    的回答是y(yes)才执行复制的动作。


    -r :
    此参数是用来做递回复制用,可将一整颗子树都复制到另一个

    目录中。


    3. mv
    mv
    的意义为 move , 主要是将一档案改名或换至另一个目录。如同 cp ,它也有

    三种格式
    :

    mv f1 f2 :
    将档名为 f1 的档案变更成档名为 f2 的档案。

    mv dir1 dir2 :
    将档名为 dir1 的目录变更成档名为 dir2 的目录。

    mv f1 f2 f3 ... dir :
    将档案 f1 f2 f3 ... 都移至目录 dir 里面。


    mv
    的参数有两个,-f -i , 其中 -i 的意义与 cp 中的相同,均是
    interactive
    询问之意。而 -f 为强迫( force ) , 就是不管有没有同名的档案,反正我就是要

    搬过去,所有其他的参数遇到 -f 均会失效。


    4. rm
    rm
    的意义是 remove ,也就是用来杀掉一个档案的指令。在 UNIX 中一

    个被杀掉的档案除非是系统恰好有做备份,否则是无法像 DOS 里面一样还能够救回

    来的。所以在做 rm 动作的时候使用者应该要特别小心。


    rm
    的格式如下
    :

    rm f1 f2 f3 .....

    rm 的参数比较常用的有几个: -f , -i ,
    -r

    -f :
    将会使得系统在删除时,不提出任何警告讯息。

    -i :
    在除去档案之前均会询问是否真要除去。

    -r :
    递回式的删除。


    小心不要随便使用 rm -rf , 否则有一天你会"欲哭无泪
    "......

    5. mkdir
    mkdir
    是一个让使用者建立一个目录的指令。你可以在一个目录底下使用

    midir
    建立一个子目录,使用的方法如下
    :

    mkdir dirname1 [ dirname2 ... ]

    如此你就可以建立一个或多个目录。


    6. chdir ( cd )
    这是让使用者用来转移工作目录用的。

    chdir
    的用法如下
    :

    chdir dirname

    如此你就可以将目前的目录转移到 dirname 这一个目录去。

    或使用 "chdir .." 来转移到上一层目录。


    7. rmdir
    相对於 mkdir rmdir 是用来将一个"空的"目录杀掉的。如果一个目录下面

    没有任何档案,你就可以用 rmdir 指令将其除去。rmdir 的使用法如下
    :

    rmdir dirname1 [ dirname2 .... ]

    如果一个目录底下有其他的档案, rmdir 将无法将这个目录杀掉,除非使用

    rm
    指令的 -r 选项。


    8. pwd
    pwd
    会将目前目录的路径( path )显示出来,例如
    :

    9. cat/more/less
    以上三个指令均为察看档案内容的指令。cat 的意义是猫....不不不,是

    concatenate
    ,在字典上的意思是"连结,串成锁状"( 语出资工电子

    词典 cdict ),其实就是把档案的内容显示出来的意思。 cat 有许多奇怪

    的参数,较常为人所使用的是 -n 参数,也就是把显示出来的内容加上行

    号。 cat 的用法如下
    :

    cat [-n] :
    自标准输入读进内容,你可以用 pipe 将别的程式的输出转向

    cat .
    cat [-n] filename :
    filename 的内容读进来,显示在标准输出上。


    问题在於 cat 它是不会停下来的,因此并不好用( 试想如果一个萤幕二十

    四行,而一个档案四百行,cat 一出来将会劈哩啪啦不断的卷上去,使用者

    很难据此得到他们所需的资讯。) 所以才有人又写了 more 出来。


    more ,
    跟据蔡文能老师的说法是"再多一点就好"more 可以将所观察的档案

    跟据终端机的形态一页页的显示出来,再根据使用者的要求换页或卷行。如果

    使用者要在某一个档案中搜寻一个特定的字串,则按 / 然後跟著打所要搜寻

    的单字即可进行搜寻。more 也可以找得到。more 的使用法如下
    :

    more filename

    如果你在使用中觉得已经看到了所要看的部份,可以按´离开 more 的使用。

    在使用中按´亦可以使用编辑器来编辑所观看的档案。


    less
    的用法与 more 极类似,原先它就是为了弥补 more 只能往前方卷页的缺

    点而设计。 less 的用法如下
    :

    less filename

    其与 more 不同的是它可以按 y 来往上卷一行,并且可以用"?"来往回搜寻你所

    要找的单字。


    10. chmod
    chmod
    为变更档案模式用( change mode ) . 这个指令是用来更改档案的存取模

    ( access mode )。在 UNIX 一个档案上有可读(r)可写(w)可执行(x)三种模式
    ,
    分别针对该档案的拥有者( onwer )、同群者( group member )( 你可以
    ls -lg
    来观看某一档案的所属的 group ),以及其他人( other )。一个档案如果改成可

    执行模式则系统就将其视为一个可执行档,而一个目录的可执行模式代表使用者

    有进入该目录之权利。chmod 就是用来变更一些档案的模式,其使用方式如下
    :

    chmod [ -fR ] mode filename ...

    其参数的意义如下
    :

    -f Force. chmod
    不会理会失败的动作。

    -R Recurive.
    会将所有子树下的所有子目录及档案改为你所要改成的模式。


    mode
    可以为一个三位或四位的八进位数字,来表示对某些对象的存取权。详情

    可参阅 chmod(1) manual page 中有关 Absolute Modes 的说明。


    或是用一个字串来表示,请参考 chmod(1) 的说明。

    b.
    关於 Process 处理的指令
    :

    1. ps
    ps
    是用来显示目前你的 process 或系统 processes 的状况。

    以下列出比较常用的参数
    :

    其选项说明如下
    :
    -a
    列出包括其他 users process 状况。

    -u
    显示 user - oriented process 状况 。

    -x
    显示包括没有 terminal 控制的 process 状况。

    -w
    使用较宽的显示模式来显示 process 状况 。


    我们可以经由 ps 取得目前 processes 的状况,如 pid , running state 等。


    2. kill
    kill
    指令的用途是送一个 signal 给某一个 process 。因为大部份送的都是

    用来杀掉 process SIGKILL SIGHUP ,因此称为 kill kill 的用法

    :

    kill [ -SIGNAL ] pid ...
    kill -l

    SIGNAL
    为一个 singal 的数字,从 0 31 ,其中 9 SIGKILL ,也就是一

    般用来杀掉一些无法正常 terminate 的讯号。其馀讯号的用途可参考
    sigvec(2)
    中对 signal 的说明。


    你也可以用 kill -l 来察看可代替 signal 号码的数目字。kill 的详细情形

    请参阅 man kill


    c.
    关於字串处理的指令
    :

    1. echo
    echo
    是用来显示一字串在终端机上。□ echo -n 则是当显示完之後不会有跳行的动作。



    2. grep/fgrep
    grep
    为一过滤器,它可自一个或多个档案中过滤出具有某个字串的行,或是

    自标准输入过滤出具有某个字串的行。


    fgrep
    可将欲过滤的一群字串放在某一个档案中,然後使用 fgrep 将包含有

    属於这一群字串的行过滤出来。


    grep
    fgrep 的用法如下
    :

    grep [-nv] match_pattern file1 file2 ....
    fgrep [-nv] -f pattern_file file1 file2 ....

    -n
    把所找到的行在行前加上行号列出

    -v
    把不包含 match_pattern 的行列出

    match_pattern
    所要搜寻的字串

    -f
    pattern_file 存放所要搜寻的字串


    d.
    网路上查询状况的指令
    :

    1. man
    man
    是手册 ( manual ) 的意思。 UNIX 提供线上辅助( on-line help )的功能,

    man
    就是用来让使用者在使用时查询指令、系统呼叫、标准程式库函式、各种表

    格等的使用所用的。man 的用法如下
    :

    man [-M path] [[section] title ] .....
    man [-M path] -k keyword ...

    -M path man
    所需要的 manual database 的路径。

    我们也可以用设定环境变数 MANPATH 的方式来取代 -M 选项。

    title
    这是所要查询的目的物。

    section
    为一个数字表示 manual 的分类,通常 1 代表可执行指令,

    2
    代表系统呼叫( system call ) 3 代表标准函数,等等。


    像下面 man 查询的片段
    :

    SEE ALSO
    apropos(1), cat(1V), col(1V), eqn(1), lpr(1), more(1),
    nroff(1), refer(1), tbl(1), troff(1), vgrind(1), vtroff(1),
    whatis(1), eqnchar(7), man(7), catman(8)

    我们如要参考 eqnchar(7) 的资料,则我们就输入 man 7 eqnchar

    便能取得我们所要的辅助讯息。

    -k keyword
    用来将含有这项 keyword title 列出来。


    man
    UNIX 上是一项非常重要的指令,我们在本讲义中所述之用法均仅只是一

    个大家比较常用的用法以及简单的说明,真正详细的用法与说明还是要请你使用

    man
    来得到。


    2. who
    who
    指令是用来查询目前有那些人在线上。


    3. w
    w
    指令是用来查询目前有那些人在线上,同时显示出那些人目前的工作。


    4. ku
    ku
    可以用来搜寻整个网路上的 user ,不像 w who 只是针对 local host

    查询. 而且 ku 提供让使用者建立搜寻特定使用者名单的功能。你可以建立一个档

    information-file 以条列的方式存放你的朋友的资料,再建立一个档案

    hosts-file
    来指定搜寻的机器名称。 ku 的指令格式可由 ku -h 得到。


    e.
    网路指令
    :

    UNIX
    提供网路的连接,使得你可以在各个不同的机器上做一些特殊的事情,如

    你可以在系上的 iris 图形工作站上做图形的处理,在系上的 Sun 上读 News

    甚至到学校的计中去找别系的同学 talk 。这些工作可以利用 UNIX 的网路指

    令,在你的位子上连到各个不同的机器上工作。如此一来,即使你在寝室,也能

    轻易的连至系上或计中来工作,不用像以前的人必须泡在冷冰冰的机房面。


    这些网路的指令如下所述
    :

    1. rlogin
    rsh
    rlogin
    的意义是 remote login , 也就是经由网路到另外一部机器 login

    rlogin
    的格式是
    :

    rlogin host [ -l username ]

    选项 -l username 是当你在远方的机器上的 username local host 不同的

    时後,必须输入的选项,否则 rlogin 将会假设你在那边的 username
    local
    host
    相同,然後在第一次 login 时必然会发生错误。


    rsh
    是在远方的机器上执行某些指令,而把结果传回 local host rsh 的格式

    如下
    :

    rsh host [ -l username ] [ command ]

    如同 rlogin 的参数 -l username , rsh -l username 也是指定
    remote host
    username 。而 command 则是要在 remote host 上执行的指令。如果没有

    指定 command ,则 rsh 会去执行 rlogin ,如同直接执行 rlogin


    不过 rsh 在执行的时候并不会像一般的 login 程序一样还会问你 password ,

    是如果你没有设定 trust table , remote host 将不会接受你的 request


    rsh
    须要在每个可能会做为 remote host 的机器上设定一个档案,称为 .rhosts

    这个档案每一行分为两个部份,第一个是允许 login hostname , 第二个部份

    则是允许 login username 。例如,在 ccsun7.csie.nctu.edu.tw 上头你的

    username
    ysjuang , 而你的 home 下面的 .rhost 有以下的一行
    :

    ccsun6.cc.nctu.edu.tw u8217529

    则在 ccsun6.cc.nctu.edu.tw 机器上的 user u8217529 就可以用以下的方法来

    执行 rsh 程式
    :

    % rsh ccsun7.csie.nctu.edu.tw -l ysjuang cat mbox

    ysjuang ccsun7.csie.nctu.edu.tw 上的 mbox 档案内容显示在
    local host
    ccsun6.cc.nctu.edu.tw
    上。


    而如果 .rhost 有这样的一行,则 ccsun6.cc.nctu.edu.tw 上的
    user u8217529
    将可以不用输入 password 而直接经由 rsh rlogin login

    ccsun7.csie.nctu.edu.tw
    来。


    注意
    :

    .rhost
    是一个设定可以信任的人 login 的表格,因此如果设定不当将会让

    不法之徒有可以乘机侵入系统的机会。 如果你阅读 man 5 rhosts ,将会

    发现你可以在第一栏用 + 来取代任何 hostname ,第二栏用 + 来取代任何

    username


    如一般 user 喜欢偷懒利用 " + username " 来代替列一长串 hostname

    但是这样将会使得即使有一台 PC 上跑 UNIX user 有与你相同的

    username ,
    也可以得到你的 trust 而侵入你的系统。这样容易造成系统

    安全上的危险。因此本系禁止使用这样子的方式写你的 .rhost 档,如果

    发现将予以停机直到你找中心的工作人员将其改正为止。 同理,如果你的

    第二个栏位为 + ,如" hostname + " ,则你是允许在某一部机器上的"所有
    "
    user
    可以不用经由输入 password 来进入你的帐号,是壹种更危险的行为。

    所以请自行小心。


    2. telnet
    telnet
    是一个提供 user 经由网路连到 remote host

    telnet
    的 格式如下
    :

    telnet [ hostname | ip-address ] [ port ]

    hostname
    为一个像 ccsun1 或是 ccsun1.cc.nctu.edu.tw name address

    ip-address
    则为一个由四个小於 255 的数字组成的 ip address ,如
    ccsun1
    ip-address 140.113.17.173 ccsun1.cc.nctu.edu.tw
    ip-address
    140.113.4.11 。你可以利用 telnet ccsun1 telnet 140.113.17.173

    连到 ccsun1


    port
    为一些特殊的程式所提供给外界的沟通点,如资工系的 MUD server 便

    提供一些 port user 由这些 port 进入 MUD 程式。详情请参阅
    telnet(1)
    的说明。



    3. ftp
    ftp
    的意义是 File Transfer Program ,是一个很常应用在网路档案传输的

    程式。ftp 的格式如下
    :

    ftp [ hostname | ip-address ]

    其中 hostname | ip-address 的意义跟 telnet 中的相同。


    在进入 ftp 之後,如果与 remote host 连接上了,它将会询问你
    username
    与密码,如果输入对了就可以开始进行档案传输。


    ftp 中有许多的命令,详细的使用方式请参考 ftp(1) ,这里仅列出较常

    用的
    cd , lcd , mkdir , put , mput , get , mget , binary , ascii ,
    prompt , help
    quit 的使用方式。


    ascii
    将传输模式设为 ascii 模式。通常用於传送文字档。


    binary
    将传输模式设为 binary 模式,通常用於传送执行档,压缩档与影像

    档等。

    cd remote-directory
    remote host 上的工作目录改变。


    lcd [ directory ]
    更改 local host 的工作目录。


    ls [ remote-directory ] [ local-file ]
    列出 remote host 上的档案。


    get remote-file [ local-file ]
    取得远方的档案。


    mget remote-files
    可使用通用字元一次取得多个档案。


    put local-file [ remote-file]
    local host 的档案送到 remote host


    mput local-files
    可使用通用字元一次将多个档案放到 remote host 上。


    help [ command ]
    线上辅助指令。


    mkdir directory-name
    remote host 造一个目录。


    prompt
    更改交谈模式,若为 on 则在 mput mget 时每作一个档案之传

    输时均会询问。


    quit/bye
    离开
    ftp .

    利用 ftp ,我们便可以在不同的机器上将所需要的资料做转移,某些特别的

    机器更存放大量的资料以供各地的使用者抓取,本校较著名的
    ftp server
    NCTUCCCA 与系上的 ftp.csie.nctu.edu.tw 。这些 ftp server 均有提

    供一个 user 称为 anonymous ,一般的"外来客"可以利用这个 username

    得该 server 的公共资料。不过 anonymous 在询问 password 时是要求使用

    anonymous
    的使用者输入其 email address,以往有许多台湾的使用者在使用

    国外的 ftp server 时并没有按照人家的要求输入其 email address,而仅是

    随便打一些字串,引起许多 internet user 和管理者的不满,对台湾的使用

    者的风评变得很差,因此遵循各 ftp server 的使用规则也是一件相当重要的事。


    f.
    关於通讯用的指令
    :

    1. write
    这个指令是提供使用者传送讯息给另一个使用者,使用方式
    :
    write username [tty]

    2. talk/ytalk/cytalk/ctalk
    UNIX
    专用的交谈程式。会将萤幕分隔开为你的区域和交谈对象的区域,

    同时也可和不同机器的使用者交谈。使用方式
    :

    talk username[@host] [tty]

    3. mesg
    选择是否接受他人的 messege , 若为 messege no 则他人的 messege 将无法

    传送给你,同时他也无法干扰你的工作。使用方法
    :

    mesg [-n|-y]

    4. mail/elm
    在网路上的 email 程式,可经由此程式将信件 mail 给他人。使用方式
    :

    mail [username]
    mail -f mailboxfile

    如有信件,则直接键入 mail 可以读取你的
    mail .

    elm
    提供较 mail 更为方便的介面,而且可做线上的 alias . 你可以进入
    elm
    使用上下左右键来选读取的信件,并可按 h 取得线上的 help 文件。


    使用方式
    :

    elm [usernmae]
    elm -f mailboxfile

    g.
    编译器
    ( Compiler ):

    Compiler
    的用处在於将你所撰写的程式翻译成一个可执行档案。在资工系常

    用的程式语言是 C , pascal , FORTRAN 等。你可以先写好一个 C
    Pascal
    FORTRAN 的原始程式档,再用这些 compiler 将其翻成可执行档。你可以

    用这个方法来制造你自己的特殊指令。


    1. cc/gcc (C Compiler)
    /usr/bin/cc
    /usr/local/bin/gcc

    语法
    : cc [ -o execfile ] source
    gcc [ -o execfile ] source

    execfile
    是你所希望的执行档的名称,如果没有加上 -o 选项编译出来的可

    执行档会以 a.out 做为档名。 source 为一个以 .c 做为结尾的 C 程式档。

    请参阅 cc(1) 的说明。


    2. pc (Pascal Compiler)
    /usr/local/bin/pc

    语法
    : pc [ -o execfile ] source

    execfile
    是你所希望的执行档的名称,如果没有加上 -o 选项编译出来的可

    执行档会以 a.out 做为档名。 source 为一个以 .p 做为结尾的 Pascal

    式档。 请参阅 /net/home5/lang/man pc(1) 的说明。


    3. f77 (Fortran Compiler)
    /net/home5/lang/f77

    语法
    : f77 [ -o execfile ] source

    execfile
    是你所希望的执行档的名称,如果没有加上 -o 选项编译出来的可

    执行档会以 a.out 做为档名。 source 为一个以 .p 做为结尾的 FORTRAN

    式档。


    h.
    有关列印的指令
    :

    以下为印表所会用到的指令,在本系的印表机有 lp1 , lp2 ( 点矩阵印表机 )

    lw , sp , ps , compaq (
    雷射印表机 ),供使用者使用。


    1. lpr
    lpr
    为用来将一个档案印至列表机的指令。


    用法
    :
    lpr -P[ printer ] file1 file2 file3 ....


    lpr -P[ printer ] < file1

    例子
    :
    lpr -Plp1 hello.c hello.lst hello.map
    lpr -Plp1 < hello.c

    前者以参数输入所要印出的档案内容,後者列印标准输入档案
    ( standard input )
    的内容,因已将 hello.c 转向到标准输入,故会印出 hello.c 的档案内容。


    2. lpq
    lpq
    是用来观察 printer queue 上的 Jobs


    用法
    :
    lpq -P[ printer ]


    3. lprm
    lprm
    是用来取消列印要求的指令。 通常我们有时会印错,或是误送非文字档

    资料至 printer , 此时就必须利用 lprm 取消列印 request ,以免造成资源

    的浪费。


    用法
    :
    lprm -P[ printer ] [ Jobs id | username ]

    lprm
    用来清除 printer queue 中的 Jobs , 如果你使用 Job Id 作为参数,则

    它将此 Job printer queue 清除,如果你用 username作为参数,则它将此
    queue
    中所有 Owner 为此 username Jobs 清除。

    i.
    更改个人使用资料
    :
    1. passwd
    passwd
    是用来更改你的使用密码,用法为
    :
    passwd [ username ]
    在使用 passwd 的时候,它会先问你的旧密码,然後询问两次要更改的密码,确定

    无误後才将你的密码改掉。

    2. chsh
    chsh
    是提供使用者更换 login shell 的指令,你可经由此更换自己使用的 shell

     

    GNU
       GNU
    GNU's Not Unix的缩写。
       
    它的目标是在UNIX系统基础上,建立一个可自由发布和可移植的完善的Unix类操作系统。因开始实施GNU项目时,当时还没有多少高质量的自由软件可供项目使用。所以,为GNU项目做出贡献的人们先从系统的应用软件和工具入手。它的系统核心是HURD,但是由于LINUX的提前出现,让许多人认为,HURD没有必要再开发下去,用LINUXGNU的核心就很理想了。

    FSF
       FSF
    Free Software Foundation的缩写,即自由软件基金会
       
    十几年前,世界级的顶尖程序员Richard Stallman提出了一个伟大的信念:计算机系统应该对用户开放,软件应该自由使用。在他的倡导下,掀起了开发自由软件的运动热潮。1984年,Richard Stallman的努力得到了麻省理工学院的正式支持。后来他就成立了自由软件基金会这个倡导自由软件的组织。
       
    该组织的主要项目是GNU,一个自由发布和可移植的类UNIX系统。

    CPL
       GPL
    General Public License的缩写,即通用公共许可证
       
    这是为了能够规范自由软件,由自由软件基金会(FSF)提出,并制定成文的一种不同于传统的软件许可证。它的核心思想就是保证任何人可以共享和修改自由软件,有权取得、修得、修改和重新发布自由软件的源代码。这使得自由软件总的费用相当低廉,而且在使用Internet的情况下是免费的。
       
    该条款还规定自由软件的衍生作品必须以GPL作为它重新发布的许可证。这一规定保证了自由软件及其衍生作品继续保持自由状态。也就是说防止了不法分子将自由软件更改后注册自己的版权。
       
    而且通用公共许可证还容许销售自由软件。也就是说,自由软件本身是免费的,但销售公司可以从销售中收取一定的服务费用。这为公司介入自由软件事业敞开了大门。同时公司的介入弥补了自由软件的不足,对推动自由软件应用起了很大的作用。就象Red Hat公司在发布LINUX的过程中不断壮大,同时也大大促进了LINUX的发展。
       
    正是这个条款的合理制订,使得自由软件事业得以全面发展。可以说,自由软件之所以有今天的成就,CPL功不可没。

    A

    帐户名称(Account Name 等同于登录标识、用户标识或用户名。是指派给 UNIX/Linux 系统上用户的名称。可以在系统上对多个用户设置唯一的帐户名称,每个用户具有不同的访问(权限)级别。在安装完 Linux 之后,帐户名称由超级用户(Superuser)或 root 操作员指派。

    AfterStep
    用户界面(窗口管理器)之一,AfterStep 使得 Linux 的外观很象 NeXTSTEP,而且还有些增强功能。要获取更多关于 AfterStep 的信息,请访问 www.afterstep.org。(另请参阅“Enlightenment”、“GNOME”、“KDE”和“X Window 系统”。)

    Awk
    AhoWeinberger Kernighan 一种编程语言,因其模式匹配语法而特别有用,通常用于数据检索和数据转换。一个 GNU 版本称为 Gawk

    APM
    (高级电源管理,Advanced Power Management 一种工业标准,它允许系统处理器和各个组件进入省电模式,包括挂起、睡眠和关机。APM 软件对于移动设备尤为重要,因为它节省了电池电量。

    附加符号(Append Symbol 两个键盘字符 > 查看(269) 评论(0) 收藏 分享 管理

  • unix常用命令

    2009-05-15 18:00:07

    a. 关於档案/目录处理的指令:

    1. ls
    这是最基本的档案指令。 ls 的意义为 "list",也就是将某一个目录或是

    某一个档案的内容显示出来。


    如果你在下 ls 指令後头没有跟著任何的档名,它将会显示出目前目录中所

    有档案。


    也可以在 ls 後面加上所要察看的目录名称或档案的名称,如


    % ls /home2/X11R5

    % ls first

    ls
    有一些特别的参数,可以给予使用者更多有关的资讯,如下
    :

    -a :
    UNIX 中若一个目录或档案名字的第一个字元为 "." , 则使用
    ls
    将不会显示出这个档案的名字,我们称此类档案为隐藏档。如
    tcsh
    的初设档 .tcshrc;如果我们要察看这类档案,则必须加上参数 -a


    -l :
    这个参数代表使用 ls 的长( long )格式,可以显示更多的资讯,

    如档案存取权,档案拥有者( owner ),档案大小,档案最後更新

    日期,甚而 symbolic link 的档案是 link 那一个档等等。如下


    % ls -l

    drwx--x--x 2 jjtseng 512 Aug 8 05:08 18
    drwx--x--x 2 jjtseng 512 Aug 8 22:00 19
    -rw------- 1 jjtseng 566 Aug 8 05:28 makefile

    2. cp
    cp
    这个指令的意义是复制("COPY") , 也就是将一个或多个档案复制成另

    一个档案或者是将其复制到另一个目录去。


    cp
    的用法如下
    :

    cp f1 f2 :
    将档名为 f1 的档案复制一份为档名为 f2 的档案。

    cp f1 f2 f3 ... dir :
    将档案 f1 f2 f3 ... 都以相同的档名复制一

    份放到目录 dir 里面。

    cp -r dir1 dir2 :
    dir1 的全部内容全部复制到 dir2 里面。


    cp
    也有一些参数,如下
    :

    -i :
    此参数是当已有档名为 f2 的档案时,若迳自使用 cp 将会将原来
    f2
    的内容掩盖过去,因此在要盖过之前必须先询问使用者一下。如使用者

    的回答是y(yes)才执行复制的动作。


    -r :
    此参数是用来做递回复制用,可将一整颗子树都复制到另一个

    目录中。


    3. mv
    mv
    的意义为 move , 主要是将一档案改名或换至另一个目录。如同 cp ,它也有

    三种格式
    :

    mv f1 f2 :
    将档名为 f1 的档案变更成档名为 f2 的档案。

    mv dir1 dir2 :
    将档名为 dir1 的目录变更成档名为 dir2 的目录。

    mv f1 f2 f3 ... dir :
    将档案 f1 f2 f3 ... 都移至目录 dir 里面。


    mv
    的参数有两个,-f -i , 其中 -i 的意义与 cp 中的相同,均是
    interactive
    询问之意。而 -f 为强迫( force ) , 就是不管有没有同名的档案,反正我就是要

    搬过去,所有其他的参数遇到 -f 均会失效。


    4. rm
    rm
    的意义是 remove ,也就是用来杀掉一个档案的指令。在 UNIX 中一

    个被杀掉的档案除非是系统恰好有做备份,否则是无法像 DOS 里面一样还能够救回

    来的。所以在做 rm 动作的时候使用者应该要特别小心。


    rm
    的格式如下
    :

    rm f1 f2 f3 .....

    rm 的参数比较常用的有几个: -f , -i ,
    -r

    -f :
    将会使得系统在删除时,不提出任何警告讯息。

    -i :
    在除去档案之前均会询问是否真要除去。

    -r :
    递回式的删除。


    小心不要随便使用 rm -rf , 否则有一天你会"欲哭无泪
    "......

    5. mkdir
    mkdir
    是一个让使用者建立一个目录的指令。你可以在一个目录底下使用

    midir
    建立一个子目录,使用的方法如下
    :

    mkdir dirname1 [ dirname2 ... ]

    如此你就可以建立一个或多个目录。


    6. chdir ( cd )
    这是让使用者用来转移工作目录用的。

    chdir
    的用法如下
    :

    chdir dirname

    如此你就可以将目前的目录转移到 dirname 这一个目录去。

    或使用 "chdir .." 来转移到上一层目录。


    7. rmdir
    相对於 mkdir rmdir 是用来将一个"空的"目录杀掉的。如果一个目录下面

    没有任何档案,你就可以用 rmdir 指令将其除去。rmdir 的使用法如下
    :

    rmdir dirname1 [ dirname2 .... ]

    如果一个目录底下有其他的档案, rmdir 将无法将这个目录杀掉,除非使用

    rm
    指令的 -r 选项。


    8. pwd
    pwd
    会将目前目录的路径( path )显示出来,例如
    :

    9. cat/more/less
    以上三个指令均为察看档案内容的指令。cat 的意义是猫....不不不,是

    concatenate
    ,在字典上的意思是"连结,串成锁状"( 语出资工电子

    词典 cdict ),其实就是把档案的内容显示出来的意思。 cat 有许多奇怪

    的参数,较常为人所使用的是 -n 参数,也就是把显示出来的内容加上行

    号。 cat 的用法如下
    :

    cat [-n] :
    自标准输入读进内容,你可以用 pipe 将别的程式的输出转向

    cat .
    cat [-n] filename :
    filename 的内容读进来,显示在标准输出上。


    问题在於 cat 它是不会停下来的,因此并不好用( 试想如果一个萤幕二十

    四行,而一个档案四百行,cat 一出来将会劈哩啪啦不断的卷上去,使用者

    很难据此得到他们所需的资讯。) 所以才有人又写了 more 出来。


    more ,
    跟据蔡文能老师的说法是"再多一点就好"more 可以将所观察的档案

    跟据终端机的形态一页页的显示出来,再根据使用者的要求换页或卷行。如果

    使用者要在某一个档案中搜寻一个特定的字串,则按 / 然後跟著打所要搜寻

    的单字即可进行搜寻。more 也可以找得到。more 的使用法如下
    :

    more filename

    如果你在使用中觉得已经看到了所要看的部份,可以按´离开 more 的使用。

    在使用中按´亦可以使用编辑器来编辑所观看的档案。


    less
    的用法与 more 极类似,原先它就是为了弥补 more 只能往前方卷页的缺

    点而设计。 less 的用法如下
    :

    less filename

    其与 more 不同的是它可以按 y 来往上卷一行,并且可以用"?"来往回搜寻你所

    要找的单字。


    10. chmod
    chmod
    为变更档案模式用( change mode ) . 这个指令是用来更改档案的存取模

    ( access mode )。在 UNIX 一个档案上有可读(r)可写(w)可执行(x)三种模式
    ,
    分别针对该档案的拥有者( onwer )、同群者( group member )( 你可以
    ls -lg
    来观看某一档案的所属的 group ),以及其他人( other )。一个档案如果改成可

    执行模式则系统就将其视为一个可执行档,而一个目录的可执行模式代表使用者

    有进入该目录之权利。chmod 就是用来变更一些档案的模式,其使用方式如下
    :

    chmod [ -fR ] mode filename ...

    其参数的意义如下
    :

    -f Force. chmod
    不会理会失败的动作。

    -R Recurive.
    会将所有子树下的所有子目录及档案改为你所要改成的模式。


    mode
    可以为一个三位或四位的八进位数字,来表示对某些对象的存取权。详情

    可参阅 chmod(1) manual page 中有关 Absolute Modes 的说明。


    或是用一个字串来表示,请参考 chmod(1) 的说明。

    b.
    关於 Process 处理的指令
    :

    1. ps
    ps
    是用来显示目前你的 process 或系统 processes 的状况。

    以下列出比较常用的参数
    :

    其选项说明如下
    :
    -a
    列出包括其他 users process 状况。

    -u
    显示 user - oriented process 状况 。

    -x
    显示包括没有 terminal 控制的 process 状况。

    -w
    使用较宽的显示模式来显示 process 状况 。


    我们可以经由 ps 取得目前 processes 的状况,如 pid , running state 等。


    2. kill
    kill
    指令的用途是送一个 signal 给某一个 process 。因为大部份送的都是

    用来杀掉 process SIGKILL SIGHUP ,因此称为 kill kill 的用法

    :

    kill [ -SIGNAL ] pid ...
    kill -l

    SIGNAL
    为一个 singal 的数字,从 0 31 ,其中 9 SIGKILL ,也就是一

    般用来杀掉一些无法正常 terminate 的讯号。其馀讯号的用途可参考
    sigvec(2)
    中对 signal 的说明。


    你也可以用 kill -l 来察看可代替 signal 号码的数目字。kill 的详细情形

    请参阅 man kill


    c.
    关於字串处理的指令
    :

    1. echo
    echo
    是用来显示一字串在终端机上。□ echo -n 则是当显示完之後不会有跳行的动作。



    2. grep/fgrep
    grep
    为一过滤器,它可自一个或多个档案中过滤出具有某个字串的行,或是

    自标准输入过滤出具有某个字串的行。


    fgrep
    可将欲过滤的一群字串放在某一个档案中,然後使用 fgrep 将包含有

    属於这一群字串的行过滤出来。


    grep
    fgrep 的用法如下
    :

    grep [-nv] match_pattern file1 file2 ....
    fgrep [-nv] -f pattern_file file1 file2 ....

    -n
    把所找到的行在行前加上行号列出

    -v
    把不包含 match_pattern 的行列出

    match_pattern
    所要搜寻的字串

    -f
    pattern_file 存放所要搜寻的字串


    d.
    网路上查询状况的指令
    :

    1. man
    man
    是手册 ( manual ) 的意思。 UNIX 提供线上辅助( on-line help )的功能,

    man
    就是用来让使用者在使用时查询指令、系统呼叫、标准程式库函式、各种表

    格等的使用所用的。man 的用法如下
    :

    man [-M path] [[section] title ] .....
    man [-M path] -k keyword ...

    -M path man
    所需要的 manual database 的路径。

    我们也可以用设定环境变数 MANPATH 的方式来取代 -M 选项。

    title
    这是所要查询的目的物。

    section
    为一个数字表示 manual 的分类,通常 1 代表可执行指令,

    2
    代表系统呼叫( system call ) 3 代表标准函数,等等。


    像下面 man 查询的片段
    :

    SEE ALSO
    apropos(1), cat(1V), col(1V), eqn(1), lpr(1), more(1),
    nroff(1), refer(1), tbl(1), troff(1), vgrind(1), vtroff(1),
    whatis(1), eqnchar(7), man(7), catman(8)

    我们如要参考 eqnchar(7) 的资料,则我们就输入 man 7 eqnchar

    便能取得我们所要的辅助讯息。

    -k keyword
    用来将含有这项 keyword title 列出来。


    man
    UNIX 上是一项非常重要的指令,我们在本讲义中所述之用法均仅只是一

    个大家比较常用的用法以及简单的说明,真正详细的用法与说明还是要请你使用

    man
    来得到。


    2. who
    who
    指令是用来查询目前有那些人在线上。


    3. w
    w
    指令是用来查询目前有那些人在线上,同时显示出那些人目前的工作。


    4. ku
    ku
    可以用来搜寻整个网路上的 user ,不像 w who 只是针对 local host

    查询. 而且 ku 提供让使用者建立搜寻特定使用者名单的功能。你可以建立一个档

    information-file 以条列的方式存放你的朋友的资料,再建立一个档案

    hosts-file
    来指定搜寻的机器名称。 ku 的指令格式可由 ku -h 得到。


    e.
    网路指令
    :

    UNIX
    提供网路的连接,使得你可以在各个不同的机器上做一些特殊的事情,如

    你可以在系上的 iris 图形工作站上做图形的处理,在系上的 Sun 上读 News

    甚至到学校的计中去找别系的同学 talk 。这些工作可以利用 UNIX 的网路指

    令,在你的位子上连到各个不同的机器上工作。如此一来,即使你在寝室,也能

    轻易的连至系上或计中来工作,不用像以前的人必须泡在冷冰冰的机房面。


    这些网路的指令如下所述
    :

    1. rlogin
    rsh
    rlogin
    的意义是 remote login , 也就是经由网路到另外一部机器 login

    rlogin
    的格式是
    :

    rlogin host [ -l username ]

    选项 -l username 是当你在远方的机器上的 username local host 不同的

    时後,必须输入的选项,否则 rlogin 将会假设你在那边的 username
    local
    host
    相同,然後在第一次 login 时必然会发生错误。


    rsh
    是在远方的机器上执行某些指令,而把结果传回 local host rsh 的格式

    如下
    :

    rsh host [ -l username ] [ command ]

    如同 rlogin 的参数 -l username , rsh -l username 也是指定
    remote host
    username 。而 command 则是要在 remote host 上执行的指令。如果没有

    指定 command ,则 rsh 会去执行 rlogin ,如同直接执行 rlogin


    不过 rsh 在执行的时候并不会像一般的 login 程序一样还会问你 password ,

    是如果你没有设定 trust table , remote host 将不会接受你的 request


    rsh
    须要在每个可能会做为 remote host 的机器上设定一个档案,称为 .rhosts

    这个档案每一行分为两个部份,第一个是允许 login hostname , 第二个部份

    则是允许 login username 。例如,在 ccsun7.csie.nctu.edu.tw 上头你的

    username
    ysjuang , 而你的 home 下面的 .rhost 有以下的一行
    :

    ccsun6.cc.nctu.edu.tw u8217529

    则在 ccsun6.cc.nctu.edu.tw 机器上的 user u8217529 就可以用以下的方法来

    执行 rsh 程式
    :

    % rsh ccsun7.csie.nctu.edu.tw -l ysjuang cat mbox

    ysjuang ccsun7.csie.nctu.edu.tw 上的 mbox 档案内容显示在
    local host
    ccsun6.cc.nctu.edu.tw
    上。


    而如果 .rhost 有这样的一行,则 ccsun6.cc.nctu.edu.tw 上的
    user u8217529
    将可以不用输入 password 而直接经由 rsh rlogin login

    ccsun7.csie.nctu.edu.tw
    来。


    注意
    :

    .rhost
    是一个设定可以信任的人 login 的表格,因此如果设定不当将会让

    不法之徒有可以乘机侵入系统的机会。 如果你阅读 man 5 rhosts ,将会

    发现你可以在第一栏用 + 来取代任何 hostname ,第二栏用 + 来取代任何

    username


    如一般 user 喜欢偷懒利用 " + username " 来代替列一长串 hostname

    但是这样将会使得即使有一台 PC 上跑 UNIX user 有与你相同的

    username ,
    也可以得到你的 trust 而侵入你的系统。这样容易造成系统

    安全上的危险。因此本系禁止使用这样子的方式写你的 .rhost 档,如果

    发现将予以停机直到你找中心的工作人员将其改正为止。 同理,如果你的

    第二个栏位为 + ,如" hostname + " ,则你是允许在某一部机器上的"所有
    "
    user
    可以不用经由输入 password 来进入你的帐号,是壹种更危险的行为。

    所以请自行小心。


    2. telnet
    telnet
    是一个提供 user 经由网路连到 remote host

    telnet
    的 格式如下
    :

    telnet [ hostname | ip-address ] [ port ]

    hostname
    为一个像 ccsun1 或是 ccsun1.cc.nctu.edu.tw name address

    ip-address
    则为一个由四个小於 255 的数字组成的 ip address ,如
    ccsun1
    ip-address 140.113.17.173 ccsun1.cc.nctu.edu.tw
    ip-address
    140.113.4.11 。你可以利用 telnet ccsun1 telnet 140.113.17.173

    连到 ccsun1


    port
    为一些特殊的程式所提供给外界的沟通点,如资工系的 MUD server 便

    提供一些 port user 由这些 port 进入 MUD 程式。详情请参阅
    telnet(1)
    的说明。



    3. ftp
    ftp
    的意义是 File Transfer Program ,是一个很常应用在网路档案传输的

    程式。ftp 的格式如下
    :

    ftp [ hostname | ip-address ]

    其中 hostname | ip-address 的意义跟 telnet 中的相同。


    在进入 ftp 之後,如果与 remote host 连接上了,它将会询问你
    username
    与密码,如果输入对了就可以开始进行档案传输。


    ftp 中有许多的命令,详细的使用方式请参考 ftp(1) ,这里仅列出较常

    用的
    cd , lcd , mkdir , put , mput , get , mget , binary , ascii ,
    prompt , help
    quit 的使用方式。


    ascii
    将传输模式设为 ascii 模式。通常用於传送文字档。


    binary
    将传输模式设为 binary 模式,通常用於传送执行档,压缩档与影像

    档等。

    cd remote-directory
    remote host 上的工作目录改变。


    lcd [ directory ]
    更改 local host 的工作目录。


    ls [ remote-directory ] [ local-file ]
    列出 remote host 上的档案。


    get remote-file [ local-file ]
    取得远方的档案。


    mget remote-files
    可使用通用字元一次取得多个档案。


    put local-file [ remote-file]
    local host 的档案送到 remote host


    mput local-files
    可使用通用字元一次将多个档案放到 remote host 上。


    help [ command ]
    线上辅助指令。


    mkdir directory-name
    remote host 造一个目录。


    prompt
    更改交谈模式,若为 on 则在 mput mget 时每作一个档案之传

    输时均会询问。


    quit/bye
    离开
    ftp .

    利用 ftp ,我们便可以在不同的机器上将所需要的资料做转移,某些特别的

    机器更存放大量的资料以供各地的使用者抓取,本校较著名的
    ftp server
    NCTUCCCA 与系上的 ftp.csie.nctu.edu.tw 。这些 ftp server 均有提

    供一个 user 称为 anonymous ,一般的"外来客"可以利用这个 username

    得该 server 的公共资料。不过 anonymous 在询问 password 时是要求使用

    anonymous
    的使用者输入其 email address,以往有许多台湾的使用者在使用

    国外的 ftp server 时并没有按照人家的要求输入其 email address,而仅是

    随便打一些字串,引起许多 internet user 和管理者的不满,对台湾的使用

    者的风评变得很差,因此遵循各 ftp server 的使用规则也是一件相当重要的事。


    f.
    关於通讯用的指令
    :

    1. write
    这个指令是提供使用者传送讯息给另一个使用者,使用方式
    :
    write username [tty]

    2. talk/ytalk/cytalk/ctalk
    UNIX
    专用的交谈程式。会将萤幕分隔开为你的区域和交谈对象的区域,

    同时也可和不同机器的使用者交谈。使用方式
    :

    talk username[@host] [tty]

    3. mesg
    选择是否接受他人的 messege , 若为 messege no 则他人的 messege 将无法

    传送给你,同时他也无法干扰你的工作。使用方法
    :

    mesg [-n|-y]

    4. mail/elm
    在网路上的 email 程式,可经由此程式将信件 mail 给他人。使用方式
    :

    mail [username]
    mail -f mailboxfile

    如有信件,则直接键入 mail 可以读取你的
    mail .

    elm
    提供较 mail 更为方便的介面,而且可做线上的 alias . 你可以进入
    elm
    使用上下左右键来选读取的信件,并可按 h 取得线上的 help 文件。


    使用方式
    :

    elm [usernmae]
    elm -f mailboxfile

    g.
    编译器
    ( Compiler ):

    Compiler
    的用处在於将你所撰写的程式翻译成一个可执行档案。在资工系常

    用的程式语言是 C , pascal , FORTRAN 等。你可以先写好一个 C
    Pascal
    FORTRAN 的原始程式档,再用这些 compiler 将其翻成可执行档。你可以

    用这个方法来制造你自己的特殊指令。


    1. cc/gcc (C Compiler)
    /usr/bin/cc
    /usr/local/bin/gcc

    语法
    : cc [ -o execfile ] source
    gcc [ -o execfile ] source

    execfile
    是你所希望的执行档的名称,如果没有加上 -o 选项编译出来的可

    执行档会以 a.out 做为档名。 source 为一个以 .c 做为结尾的 C 程式档。

    请参阅 cc(1) 的说明。


    2. pc (Pascal Compiler)
    /usr/local/bin/pc

    语法
    : pc [ -o execfile ] source

    execfile
    是你所希望的执行档的名称,如果没有加上 -o 选项编译出来的可

    执行档会以 a.out 做为档名。 source 为一个以 .p 做为结尾的 Pascal

    式档。 请参阅 /net/home5/lang/man pc(1) 的说明。


    3. f77 (Fortran Compiler)
    /net/home5/lang/f77

    语法
    : f77 [ -o execfile ] source

    execfile
    是你所希望的执行档的名称,如果没有加上 -o 选项编译出来的可

    执行档会以 a.out 做为档名。 source 为一个以 .p 做为结尾的 FORTRAN

    式档。


    h.
    有关列印的指令
    :

    以下为印表所会用到的指令,在本系的印表机有 lp1 , lp2 ( 点矩阵印表机 )

    lw , sp , ps , compaq (
    雷射印表机 ),供使用者使用。


    1. lpr
    lpr
    为用来将一个档案印至列表机的指令。


    用法
    :
    lpr -P[ printer ] file1 file2 file3 ....


    lpr -P[ printer ] < file1

    例子
    :
    lpr -Plp1 hello.c hello.lst hello.map
    lpr -Plp1 < hello.c

    前者以参数输入所要印出的档案内容,後者列印标准输入档案
    ( standard input )
    的内容,因已将 hello.c 转向到标准输入,故会印出 hello.c 的档案内容。


    2. lpq
    lpq
    是用来观察 printer queue 上的 Jobs


    用法
    :
    lpq -P[ printer ]


    3. lprm
    lprm
    是用来取消列印要求的指令。 通常我们有时会印错,或是误送非文字档

    资料至 printer , 此时就必须利用 lprm 取消列印 request ,以免造成资源

    的浪费。


    用法
    :
    lprm -P[ printer ] [ Jobs id | username ]

    lprm
    用来清除 printer queue 中的 Jobs , 如果你使用 Job Id 作为参数,则

    它将此 Job printer queue 清除,如果你用 username作为参数,则它将此
    queue
    中所有 Owner 为此 username Jobs 清除。

    i.
    更改个人使用资料
    :
    1. passwd
    passwd
    是用来更改你的使用密码,用法为
    :
    passwd [ username ]
    在使用 passwd 的时候,它会先问你的旧密码,然後询问两次要更改的密码,确定

    无误後才将你的密码改掉。

    2. chsh
    chsh
    是提供使用者更换 login shell 的指令,你可经由此更换自己使用的 shell

     

    GNU
       GNU
    GNU's Not Unix的缩写。
       
    它的目标是在UNIX系统基础上,建立一个可自由发布和可移植的完善的Unix类操作系统。因开始实施GNU项目时,当时还没有多少高质量的自由软件可供项目使用。所以,为GNU项目做出贡献的人们先从系统的应用软件和工具入手。它的系统核心是HURD,但是由于LINUX的提前出现,让许多人认为,HURD没有必要再开发下去,用LINUXGNU的核心就很理想了。

    FSF
       FSF
    Free Software Foundation的缩写,即自由软件基金会
       
    十几年前,世界级的顶尖程序员Richard Stallman提出了一个伟大的信念:计算机系统应该对用户开放,软件应该自由使用。在他的倡导下,掀起了开发自由软件的运动热潮。1984年,Richard Stallman的努力得到了麻省理工学院的正式支持。后来他就成立了自由软件基金会这个倡导自由软件的组织。
       
    该组织的主要项目是GNU,一个自由发布和可移植的类UNIX系统。

    CPL
       GPL
    General Public License的缩写,即通用公共许可证
       
    这是为了能够规范自由软件,由自由软件基金会(FSF)提出,并制定成文的一种不同于传统的软件许可证。它的核心思想就是保证任何人可以共享和修改自由软件,有权取得、修得、修改和重新发布自由软件的源代码。这使得自由软件总的费用相当低廉,而且在使用Internet的情况下是免费的。
       
    该条款还规定自由软件的衍生作品必须以GPL作为它重新发布的许可证。这一规定保证了自由软件及其衍生作品继续保持自由状态。也就是说防止了不法分子将自由软件更改后注册自己的版权。
       
    而且通用公共许可证还容许销售自由软件。也就是说,自由软件本身是免费的,但销售公司可以从销售中收取一定的服务费用。这为公司介入自由软件事业敞开了大门。同时公司的介入弥补了自由软件的不足,对推动自由软件应用起了很大的作用。就象Red Hat公司在发布LINUX的过程中不断壮大,同时也大大促进了LINUX的发展。
       
    正是这个条款的合理制订,使得自由软件事业得以全面发展。可以说,自由软件之所以有今天的成就,CPL功不可没。

    A

    帐户名称(Account Name 等同于登录标识、用户标识或用户名。是指派给 UNIX/Linux 系统上用户的名称。可以在系统上对多个用户设置唯一的帐户名称,每个用户具有不同的访问(权限)级别。在安装完 Linux 之后,帐户名称由超级用户(Superuser)或 root 操作员指派。

    AfterStep
    用户界面(窗口管理器)之一,AfterStep 使得 Linux 的外观很象 NeXTSTEP,而且还有些增强功能。要获取更多关于 AfterStep 的信息,请访问 www.afterstep.org。(另请参阅“Enlightenment”、“GNOME”、“KDE”和“X Window 系统”。)

    Awk
    AhoWeinberger Kernighan 一种编程语言,因其模式匹配语法而特别有用,通常用于数据检索和数据转换。一个 GNU 版本称为 Gawk

    APM
    (高级电源管理,Advanced Power Management 一种工业标准,它允许系统处理器和各个组件进入省电模式,包括挂起、睡眠和关机。APM 软件对于移动设备尤为重要,因为它节省了电池电量。

    附加符号(Append Symbol 两个键盘字符 >(也就是 >>)。通常用它将命令的输出发送到文

  • UNIX系统操作命令大全

    2009-05-15 18:00:07

     

    第一章 登录和退出
      用户在登录前,首先要向系统管理员申请一个用户注册名,不论用户从哪台计
    算机登录到ITPNET上都将访问相同的文件系统。
    1.1 登录
    当屏幕上出现Login提示符时,用户可以输入自己的用户注册名,并按回车键。
    若有口令,系统将提示用户输入密码,并按回车键,口令输入正确后,用户登录成
    功。这时,屏幕上会显示出一些信息和命令提示符。如:
    Login: guest [Enter]
    passwd: ****** [Enter]
    sun%
    注: 用户名要用小写字母输入,UNIX系统区分大小写字母。
    1.2 退出
    当用户准备退出自己的计算机帐号时,可在系统示符下输入logout或exit或按
    [Ctrl-D]。当屏幕出现Login时,用户可以安全地离开计算机了。如:
    sun% logout [Enter]
    Login:
    1.3 修改口令
    为了防止他人使用自己的帐号,在你首次登录后,请用passwd命令修改只有本
    人知道的保密口令,口令通常由此可6到8个字母数字组成。如:
    sun% passwd [Enter]
    Old Passwd: ******
    New Passwd: ******
    Retype New Passwd: ******
    注:当你退出系统再次登录时,就要使用新的口令。

     

    第二章 目录操作命令
    2.1 显示目录
    命令:pwd(print working directory)
    格式:pwd
    功能:显示出用户当前工作目录的全路径名。
    例如:% pwd
    2.2 建立目录
    命令:mkdir(make directory)
    格式:mkdir directory_name
    功能:建立新目录
    例如:% mkdir directory
    2.3 改变目录
    命令:cd(change directory)
    格式:cd directory_name
    功能:改变当前工作目录
    注释:目录名选项有:
    (1) 目录名,转到当前目录下的子目录。
    (2) .. 表示转到当前目录的父目录。
    (3) / 表示转到根目录。
    (4) 没有选项时,转到用户的主目录。
    例如:% cd directory
    2.4 删除目录
    命令:rmdir (remove directory)
    格式:rmdir directory_name
    功能:删除不存在文件的子目录名。
    注释:
    (1) 删除子目录时,要求被删除的目录中不存在文件或子目录,否则无法删除。
    (2) 若被删除的目录中有文件或子目录,请参考命令rm -r directory_name。
    例如:% rmdir directory
    UNIX系统操作命令大全(第三章  3.1---3.12)

    第三章 文件操作命令

    3.1 列出文件目录

    命令:ls (list)

    格式:ls [option] directory_name

    功能:列出指定目录中的文件名和子目录名。当无子目录名时,列出当前目录

    中的文件名和子目录名。

    选项:-a列出所有文件,包括以点开头的隐含文件。

    -l按长格式列出文件名,包括文件类型标识,权限,链接数,文件主名,

    文件组名,字节数,日期。

    -r列出包括子目录下所有文件

    -g在长格式中给出用户组的标识。

    -t安文件生成日期排序。

    例如:% ls -la

    3.2 显示文件内容

    命令:cat (catenae)

    格式:cat filename

    功能:显示出文件的内容。

    注释:当文件内容在屏幕上滚动显示时,可按Ctrl+S键屏幕滚暂停,按Ctrl+Q

    键继续显示。

    例如:% cat filename

    3.3 按屏幕显示文件内容

    命令:more

    格式:more filename

    功能:按屏幕一屏一屏显示出文件内容

    选项:

    注释:在屏幕显示过程中有功能键。空格键 继续下一屏的输出;回车键 看下

    一行的输出;q键 跳出more状态;/字符串 查旬字符串所在处;a键 返

    回到上一屏。

    例如:% more filename

    3.4 分页显示文件内容

    命令:pg (page)

    格式:pg [option] filename

    功能:分页显示指定文件的内容。在显示一页文件时,最后一行将显示等待用

    户输入指令。可输入的指令有如下选项。

    选项:h 显示pg命令中可使用的帮助(help)命令。

    q 退出pg命令。

    [return] 显示下一页正文。

    1 显示正文的下一行

    [Space] 显示下一页

    d/[Ctrl-D] 将屏幕滚动半屏。

    n 显示pg命令行中说明的下一个文件。

    p 显示pg命令行中说明的前一个文件。

    % 显示正文当前页的前面一页。

    /pattern 在文件中向前搜索指定的字符模式。

    ?pattern 在文件中向后搜索指定的字符模式。

    注释:当pg命令显示到文件的末尾时,显示一个文件结束信息EOF(end of file)。

    例如:% pg filename

    3.5 读文件

    命令:view

    格式:view filename

    功能:只能读出文件内容。

    注释:此命令不能对读出的原文件进行写操作。若对原文件进行了修改,可利

    用命令“:w newfilename”将修改后的文件写到新文件中。

    例如:% view filename

    3.6 显示文件头部

    命令:head

    格式:head [option] filename

    功能:显示文件的头部

    选项:缺省 显示文件的头10行。

    -i 显示文件的开始 i行。

    例如:% head filename

    3.7 显示文件尾部

    命令:tail

    格式:tail [option] filename

    功能:显示文件的尾部

    选项:缺省 显示文件的末10行。

    -i 显示文件最后 i行。

    +i 从文件的第i行开始显示。

    例如:% tail filename

    3.8 显示格式化的文件内容

    命令:pr (print)

    格式:pr filename

    功能:在屏幕上显示格式化的文件内容,即印出每页66行的文本文件,包括5

    行页头和5行页尾。页头包括两行空行,一行含有文件的时间、文件名

    和页号,另外两行为空行。页尾为5行空行。

    例如:% pr filename

    3.9 拷贝文件

    命令:cp (copy)

    格式:cp [option] filename1 filename2

    cp [option] filename... directory

    cp -r directory1 directon2

    功能:把一个文件的全部内容拷贝到另一个文件,也可将一个或多个文件拷贝

    到另一个目录中。

    选项:-i 按提示进行拷贝文件。

    -p 按原文件日期进行拷贝。

    -r 对子目录下所有文件进行拷贝。

    注释:当filename1拷贝到filename2时,若filename2已经存在,则filename2

    的内容将被filename1覆盖。

    例如:% cp filename1 filename2

    3.10移动文件或文件改名

    命令:mv (move)

    格式:mv filename1 filename2

    mv filename... direction

    mv direction1 direction2

    功能:改变文件或目录的名子,或把一些文件移到另一目录下。

    注释:当filename1更名为filename2时,若filename2已经存在,则filename2

    的内容将被filename1覆盖

    例如:% mv filename1 filename2

    3.11删除文件

    命令:rm (remove)

    格式:rm filename

    rm -r direction

    功能:删除指定的文件或一个目录中的文件。

    注释:用-r选项时,将删除指定目录的所用文件,包括目录名。

    例如:% rm filename

    3.12链接文件

    命令:ln (link)

    格式:ln [option] filename linkname

    ln [option] directory pathname

    功能:为文件或目录建立一个链。其中,filename和directory是源文件名和

    源目录名;linkname和pathname分别表示与源文件或源目录名相链接的

    文件或目录。

    选项:-s 为文件或目录建立符号链接。

    注释:链接的目地在于,对一个文件或目录赋予两个以上的名字,使其可以出

    现在不同的目录中,既可以使文件或目录共享,又可以节省磁盘空间。

    例如:% ln -s filename linkname

    UNIX系统操作命令大全(第三章  3.12---3.28)

    3.13改变文件读取权限

    命令:chmod (change mode)

    格式:chmod {u|g|o|a}{+|-|=}{r|w|x} filename

    chmod [who][op][mode] directory

    功能:改变文件的读写和执行权限。有符号法和八进制数字法。

    选项:(1)符号法:

    u (user) 表示用户本人。

    g (group) 表示同组用户。

    o (oher) 表示其他用户。

    a (all) 表示所有用户。

    + 用于给予指定用户的许可权限。

    - 用于取消指定用户的许可权限。

    = 将所许可的权限赋给文件。

    r (read) 读许可,表示可以拷贝该文件或目录的内容。

    w (write) 写许可,表示可以修改该文件或目录的内容。

    x (execute)执行许可,表示可以执行该文件或进入目录。

    (2)八进制数字法:

    此方法用三位八进制数作任选项,每位数字分别表示用户本人、同组用

    户、其他用户的权限,其中:

    4 (100) 表示可读。

    2 (010) 表示可写。

    1 (001) 表示可执行。

    注释:

    例如:% chmod a+rx filename

    让所有用户可以读和执行文件filename。

    % chmod go-rx filename

    取消同组和其他用户的读和执行文件filename的权限。

    % chmod 741 filename

    让本人可读写执行、同组用户可读、其他用户可执行文件filename。

     

    3.14改变文件所有权

    命令:chown (change owner)

    格式:chown username filename

    chown -R username directory

    功能:改变文件或目录的所有权。

    选项:-R 将改变目录中所有文件及目录的拥有者。

    注释:只有文件的主人和超级用户才能改变文件的所有权。

    例如:% chown username filename

    3.15寻找文件

    命令:find

    格式:find pathname [option] expression

    功能:在所给的路经名下寻找符合表达式相匹配的文件。

    选项:-name 表示文件名

    -user 用户名,选取该用户所属的文件

    -group 组名,选取该用户组属的文件

    -mtime n 选取n天内被修改的文件

    -newer fn 选取比文件名为fn更晚修改的文件

    注释:

    例如:% find . -name '*abc*' -print

    3.16搜索文件中匹配符

    命令:grep

    格式:grep [option] pattern filenames

    功能:逐行搜索所指定的文件或标准输入,并显示匹配模式的每一行。

    选项:-v 找出模式失配的行

    -c 统计匹配行的数量

    -n 显示匹配模式的每一行

    注释:

    例如:% ps -aux | grep R

    3.17比较文件不同

    命令:diff (difference)

    格式:diff filename1 filename2

    功能:显示两文件的不同之处。

    选项:

    注释:

    例如:% diff file1 file2

    3.18比较文件

    命令:cmp (compare)

    格式:cmp [-l] [-s] filename1 filename2

    功能:显示比较两文件不同处的信息

    选项:-l 给出两文件不同的字节数

    -s 不显示两文件的不同处,给出比较结果

    注释:

    例如:% cmp file1 file2

    3.19比较文件共同处

    命令:comm (common)

    格式:comm [-123] filename1 filename2

    功能:选择或拒绝比较两文件出现的共同行

    选项:-1 不显示第1列

    -2 不显示第2列

    -3 不显示第3列

    注释:输出三列,第一列表示在file1中出现的行,第二列表示在file2中出现

    的行,第三列表示在file1和file2中共同出现的行。

    例如:% comm file1 file2

    3.20排序文件

    命令:sort

    格式:sort [option] filename

    功能:将制定的文件按要求排序

    选项:-r 按字母倒排序

    -n 按数字的值从笑到大排序

    -r 按当前排序规则逆序排序

    -f 不区分大小写排序

    -d 按典型顺序排序

    注释:选项缺省时按ascii码顺序排序

    例如:% sort -nr file

    3.21压缩文件

    命令:compress

    格式:compress [option] filename

    功能:压缩文件。

    选项:-f 强制压缩

    -v 压缩时显示压缩百分比

    注释:

    例如:% comproess files

    3.22解缩文件

    命令:uncompress

    zcat

    格式:compress [option] filename

    zcat filename

    功能:展开或显示压缩文件。

    选项:-c 不改变文件写到标准输出

    注释:zcat命令相当于uncompress -c

    例如:% uncomproess files.Z

    3.23显示文件类型

    命令:file

    格式:file filename ...

    功能:按文件内容来推测文件类型,如text,ascii,C,executable,core。

    选项:

    注释:

    例如:% file *

    3.24建立档案文件

    命令:tar (tape archive)

    格式:tar [option] tarfile filename

    功能:建立文件的存档或读存档文件。

    选项:-c 建立一个新的档案文件

    -x 从档案文件中读取文件

    -v 显示处理文件的信息

    -f 指定档案文件名,缺省时为磁带机即/dev/rmt/0

    -t 列出存档文件的信息

    注释:

    例如:% tar cvf tarfile .

    % tar xvf tarfile

    % tar tvf tarfile

    3.25磁带拷贝文件

    命令:dd

    格式:dd [option=value]

    功能:用磁带机转换或拷贝文件。

    选项:if=name 指定输入文件名

    of=name 指定输出文件名

    ibs=n 指定输入文件块大小为n字节(缺省为512字节)

    obs=n 指定输出文件块大小为n字节(缺省为512字节)

    注释:

    例如:% dd if=filename f=/dev/rmt/0

    % dd if=/dev/rmt/0 f=filename ibs=1024

    3.26修改文件日期

    命令:touch

    格式:touch filenae

    功能:改变文件的日期,不对文件的内容做改动,若文件不存在则建立新文件。

    选项:

    注释:

    例如:% touch file

    3.27统计文件字数

    命令:wc (word characters)

    格式:wc [option] filename

    功能:统计文件中的文件行数、字数和字符数。

    选项:-l 统计文件的行数

    -w 统计文件的字数

    -c 统计文件的字符数

    注释:若缺省文件名则指标准输入

    例如:% wc file

    3.28检查拼写

    命令:spell (spelling)

    格式:spell [option] filename ...

    功能:检查文件中的拼写错误

    选项:-b 按英国拼法检查

    -v 显示字面上不在拼法字典上的词

    -x 显示每一个可能合理的词根

    注释:

    例如:% spell file

     

    UNIX系统操作命令大全(第四章)

    第四章 有关状态信息命令

    4.1显示当前注册的用户

    命令:w

    格式:w [option] [username]

    功能:显示当前正在使用系统的用户名、注册时间和当前执行的命令。

    选项:-h 不显示起始行

    -s 按短格式显示

    -l 按长格式显示(缺省设置)

    注释:

    例如:% w

    4.2 显示都谁登录到机器上

    命令:who

    格式:who

    功能:显示当前正在系统中的所有用户名字,使用终端设备号,注册时间。

    例如:% who

    4.3 显示当前终端上的用户名

    命令:whoami

    格式:whoami

    功能:显示出当前终端上使用的用户。

    例如:% whoami

    4.4 确定命令位置

    命令:whereis

    格式:whereis command

    功能:确定一个命令的二进制行码、源码及联机手册所在的位置。

    选项:

    注释:

    例如:% whereis ls

    4.5 查找非标准命令

    命令:which

    格式:which command

    功能:查找非标准命令,即使用别名或系统中标准命令集之外的命令。

    选项:

    注释:

    例如:% which ls

    4.6 显示日期

    命令:date

    格式:date

    功能:显示或设置日期和时间。

    选项:

    注释:只有超级用户有权设置日期。

    例如:% date

    4.7 显示日历

    命令:cal (calendar)

    格式:cal [month] year

    功能:显示某年内指定的日历

    选项:

    注释:

    例如:% cal 1998

    4.8 计算命令执行时间

    命令:time

    格式:time [command]

    功能:计算程序或命令在执行其间所用的时间。

    选项:

    注释:计算出的时间为:real是命令在系统驻留的总时间,user是命令消耗CPU

    的时间,sys是命令I/O所开销的时间。

    例如:% time myprog

    4.9 查询帐目

    命令:acseek (account seek)

    格式:acseek [-d n] [-m usersname]

    功能:查询本月的用户帐目。

    选项:-d n

    -m username

    注释:若没有选项,则显示本人当月的帐单。

    例如:% acseek

    4.10显示用户标识

    命令:id

    格式:id [option] [user]

    功能:显示用户标识及用户所属的所有组。

    选项:-a 显示用户名、用户标识及用户所属的所有组

    注释:

    例如:% id username

    4.11显示主机标识

    命令:hostid

    格式:hostid

    功能:显示主机的唯一标识,是被用来限时软件的使用权限,不可改变。

    选项:

    注释:

    例如:% hostid

    4.12显示主机名

    命令:hostname

    格式:hostname

    功能:显示或设置主机名。

    选项:

    注释:只有超级用户才能设置主机名。

    例如:% hostname

    4.13显示进程

    命令:ps

    格式:ps [option]

    功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。

    选项:-a 列出当前系统中所有进程的信息

    -l 显示一个长列表

    -e 显示当前运行的每一个进程信息

    -f 显示一个完整的列表

    注释:

    例如:% ps -ef

    4.14显示磁盘空间

    命令:df (disk free)

    格式:df [option]

    功能:显示磁盘空间的使用情况,包括文件系统安装的目录名、块设备名、总

    字节数、已用字节数、剩余字节数占用百分比。

    选项:-i 显示已用和未用的字节数

    -k 显示磁盘空间的使用信息

    注释:

    例如:% df -k

    4.15显示文件盘空间

    命令:du (disk usage)

    格式:du [option] [filename]

    功能:显示目录或文件所占磁盘空间大小

    选项:-a 显示所有文件的大小

    -s 显示制定目录所占磁盘大小

    注释:

    例如:% du

    4.16显示盘空间限制

    命令:quota

    格式:quota -v [username]

    功能:显示用户的磁盘空间限制和使用情况。包扩盘空间的限额和已使用数,

    允许建立的节点数限额和使用节点数。

    选项:-v 查看用户在系统中的盘空间

    注释:只有超级用户可以显示任何用户的使用情况,用edquota命令可修改。

    例如:% quota -v

    4.17显示终端选项

    命令:stty

    格式:stty [option]

    功能:显示或设置终端的任选项。

    选项:-a 显示所有设置情况

    -g 显示当前设置

    注释:

    例如:% stty -a

    4.18显示终端名

    命令:tty

    格式:tty

    功能:显示终端名

    选项:

    注释:

    例如:% tty

    4.19回忆命令

    命令:history

    格式:history

    功能:帮助用户回忆执行过的命令。

    选项:

    注释:

    例如:% history

    4.20联机帮助手册

    命令:man (manual)

    格式:man command_name

    功能:显示参考手册,提供联机帮助信息。

    选项:

    注释:-k 按制定关键字查询有关命令

    例如:% man tar

    4.21建立别名

    命令:alias

    格式:alias newname name

    功能:用户可以将常用的命令用自己习惯的名称来重新命名。

    选项:

    注释:

    例如:% alias dir 'ls -F'

    UNIX系统操作命令大全(第五章)

     

    第五章 网络命令

    5.1显示网络地址

    命令:arp

    格式:arp hostname

    功能:显示系统当前访问的远程住机名、IP地址和硬件地址。

    选项:-a

    注释:

    例如:% arp -a

    5.2 显示用户信息

    命令:finger

    格式:finger username

    功能:显示网上用户使用机器的情况,包括用户何时登录和最后一次注册记录。

    选项:

    注释:

    例如:% finger username

    5.3 网上对话

    命令:talk

    格式:talk username

    功能:在网上与另一用户进行对话。

    选项:

    注释:对话时系统把终端分为上下两部分,上半部显示自己键入信息,下半部

    显示对方用户键入的信息。键入delete或Ctrl+C则结束对话。

    例如:% talk username

    5.4 允许或拒绝接受信息

    命令:mesg (message)

    格式:mesg [n/y]

    功能:允许或拒绝其它用户向自己所用的终端发送信息。

    选项:n 拒绝其它用户向自己所用的终端写信息

    y 允许其它用户向自己所用的终端写信息(缺省值)

    注释:

    例如:% mesg n

    5.5 给其他用户写信息

    命令:write

    格式:write username [ttyname]

    功能:给其他用户的终端写信息。

    选项:

    注释:若对方没有拒绝,两用户可进行交谈,键入EOF或Ctrl+C则结束对话。

    例如:write username

    5.6 测试网路

    命令:ping

    格式:ping hostname

    功能:向网络上的主机发送ICMP ECHO REQUEST信息包,检测网络是否畅通。

    选项:

    注释:被测试的主机名可用IP地址。当丢包率为(100% packet loss)则说明

    当前网络不通。

    例如:% ping hostsname

    5.7 远程shell命令

    命令:rsh (remote shell)

    格式:rsh hostsname command

    功能:在本地机执行远程主机的shell命令。

    选项:

    注释:

    例如:% rsh hostname who

    5.8 远程拷贝文件

    命令:rcp (remote copy)

    格式:rcp [-r] file newfile

    功能:拷贝远程主机上的文件。

    选项:-r 拷贝目录

    注释:

    例如:% rcp hostname:/tmp/file .

    5.9 远程注册

    命令:rlogin (remote login)

    格式:rlogin hostname [-l username]

    功能:注册到远程主机上。

    选项:-l username 注册到另一用户

    注释:要有用户口令才能注册。

    例如:% rlogin hostname

    5.10 远程登录

    命令:telnet

    格式:telnet hostname

    功能:远程登录到网上其它主机。

    选项:

    注释:支持不同的操作系统。

    例如:% telnet bbs.tsinghua.edu.cn

    5.11文件传输

    命令:ftp (file transfer program)

    格式:ftp hostname

    功能:网络文件传输及远程操作。

    选项:ftp命令:

    ?/help ftp的联机帮助

    open hostname 打开制定的远程机

    cd [dirname] 进入远程机的目录

    lcd [dirname] 设置本地机的目录

    dir/ls 显示远程的目录文件

    binary 以二进制方式进行传输

    get/mget 从远程机取一个或多个文件

    put/mput 向远程机送一个或多个文件

    prompt 打开或关闭多个文件传送时的交互提示

    close 关闭与远程机的连接

    quit 退出ftp

    注释:

    例如:% ftp hostname

    5.12显示到网络主机的路经

    命令:traceroute

    格式:traceroute hostname

    功能:显示本机到达某一网络主机所经的路经和使用的时间。

    选项:

    注释:

    例如:% traceroute hostname

    UNIX系统操作命令大全(第六、七章)

    第六章 Mail命令

    6.1 发送或接受电子邮件

    命令:mail/Mail/mailx

    格式:mail username (发送)

    mail [option] (接受)

    功能:向网上用户发送或接受电子邮件。

    选项:-r 邮件按先进先出顺序排序。缺省时为后进先出顺序排序

    -q 中断mail后不改变信箱内容

    -p 显示mail每份邮件,不显示提示信息

    -f 从邮件格式文件中读邮件

    注释:mail命令:

    ? 显示mail帮助命令

    h 邮件标题列表

    p 显示当前邮件

    n 显示下一邮件

    r [uers] 给发信人或用户回信

    s [file] 将邮件保存到文件中,保存标题信息

    w [file] 将邮件写到文件中,不保存标题信息

    d [n] 删除当前邮件或第n封邮件

    q 将未删除的邮件存入mbox文件,并退出mail

    x 所有邮件不作修改,退出mail

    例如:% mail -s "Subjet ..." username < messages

    6.2 显示邮件队列

    命令:mailq

    格式:mailq

    功能:查看正在发送或接收邮件的排队情况。

    选项:

    注释:此命令一般在系统或网络不同时使用。

    例如:% mailq

    6.3 邮件操作命令

    命令:pine

    格式:pine

    功能:对自己邮件操作的程序。

    选项:

    注释:此操作是在菜单提示下进行。

    例如:% pine

     

    第七章 运行程序命令

    7.1 按时间执行命令

    命令:at/batch

    格式:at [option] [time] [data] [file]

    功能:在制定的时间执行命令或命令文件。

    选项:-r 取消以前用at命令提交的作业

    -l 显示用at命令提交的所有作业状态和作业号

    注释:

    例如:at 0030 Jan 20 myfile

    7.2 参数回至标准输出

    命令:echo

    格式:echo [-n] [arguments]

    功能:将参数即字符串至标准输出即显示器

    选项:-n 不向标准输出回送换行符

    注释:

    例如:echo *

    7.3 复制至文件

    命令:tee

    格式:tee [option] filename

    功能:至标准输出的同时复制至文件

    选项:-a 输出时附加到文件中

    -i 不理采中断

    注释:

    例如:% who | tee file

    7.4 给程序优先级

    命令:nice

    格式:nice [-n] command

    功能:以低的优先级运行程序或命令。

    选项:-n 为优先级0-20从高到低

    注释:

    例如:nice -5 progame

    7.5 终止进程

    命令:kill

    格式:kill [option] pid

    功能:向指定的进程送信号或终止进程。

    选项:-9 强行终止进程

    -17 将进程挂起

    -19 将挂起的进程激活

    注释:pid标示进程号,可由ps命令得到。

    例如:% kill -9 pid

    7.6 进程睡眠

    命令:sleep

    格式:sleep time

    功能:使当前正在执行的进程在规定的时间内处于睡眠。

    选项:

    注释:time为进程将睡眠的时间,以秒为单位。

    例如:% sleep time

    7.7 显示作业状态

    命令:jobs

    格式:jobs [-l]

    功能:显示当前作业的状态

    选项:-l 长列表显示作业状态,包括所有者、作业号、终端和状态。

    注释:作业状态为 +表示最近被停止的作业,-表示先前的作业,exit 1表示

    退出的作业,job# done表示已完成的作业。

    例如:% jobs

    7.8 前台作业

    命令:fg

    格式:fg job#

    功能:将指定作业号的作业转入前台运行。job#表示作业号。

    选项:

    注释:

    例如:% fg job#

    7.9 后台作业

    命令:bg/&

    格式:bg job#

    command &

    功能:将指定作业号的作业或命令推到后台运行。

    选项:

    注释:

    例如:% bg job#

    7.10挂起作业

    命令:stop

    格式:stop job#

    功能:将指定作业号的后台作业挂起.

    选项:

    注释:

    例如:% stop job#

    UNIX系统操作命令大全(第八章 )

    第八章 程序编译执行命令

    8.1 C程序编译

    命令:cc

    格式:cc [option] filename

    功能:编译或链接指定的C文件。

    选项:-o 指定输出文件名,缺省时为a.out

    -c 只编译,产生.o的目标文件

    -g 产生用于符号测试的执行文件

    -lm 进行连接cc数学库

    -O 进行代码的一般优化

    -O2 二级优化

    注释:C编译器参考手册可用命令man cc查看。

    例如:% cc -o test test.c

    8.2 C++程序编译

    命令:CC

    格式:CC [option] filename

    功能:编译或链接指定的C++文件。

    选项:同C编译选项

    注释:C++编译器参考手册可用命令man CC查看。

    例如:% CC -O2 test.cc

    8.3 FORTRAN77程序编译

    命令:f77

    格式:f77 [option] filename

    功能:编译或链接指定的Fortran文件

    选项:-o 指定输出文件名,缺省时为a.out

    -c 只编译,产生.o的目标文件

    -g 产生用于符号测试的执行文件

    -O0 不进行代码优化

    -O1 尽快进行代码优化

    -O2 二级优化

    -O3 三级优化

    注释:FORTRAN77编译器参考手册可用命令man f77查看

    例如:% f77 -c test.f

    8.4 FORTRAN90程序编译

    命令:f90

    格式:f90 [option] filename

    功能:编译或链接指定的Fortran90文件

    选项:同FORTRAN77编译选项

    注释:FORTRAN90编译器参考手册可用命令man f90查看

    例如:% f90 -O -o test test.f

    8.5 GNU程序编译

    命令:gcc (GNU C)

    g++/c++ (GNU C++)

    g77 (GNU FORTRAN77)

    格式:gcc [option] filename

    g++ [option] filename

    g77 [option] filename

    功能:编译或链接指定的编译文件。

    选项:-o 指定输出文件名,缺省时为a.out

    -c 只编译,产生.o的目标文件

    -O 进行代码的一般优化

    -O2 二级优化

    注释:GNU编译器参考手册可进入emacs中info菜单下查看。

    例如:% gcc -o test test.c

    8.6 运行文件

    格式:a.out

    filename

    功能:源程序经编译后产生目标代码文件,放在a.out文件或指定输出文件名。

  • unix系统信息查看

    2009-05-15 18:00:07

    简述
    本节介绍了一些查看系统信息和监测系统资源与性能的工具,使用性能监测工具对当前系统有一个基本的了解,并根据收集到的信息选择其他相应的工具,进一步分离出性能瓶颈和寻找解决办法。本节根据查看系统信息、磁盘使用和I/O监测、CPU和内存监测、网络监测进行分类,介绍几种性能监测工具和监测手段,供大家在日常工作中选择参考。
     
     
    目录
    一、系统信息查看
    1、查看系统版本号的几个命令
    2、如何在Solaris下获取内存大小
    3、如何在Solaris下获取CPU速率
     
    二、磁盘使用和I/O监测
    1、检查磁盘使用状况工具df、du
    2、iostat 监视磁盘命令
     
    三、CPU和内存使用监测
    1、用vmstat监测CPU和内存,vmstat列出的属性详解
    2、prstat给出CPU和内存使用情况的动态注解
    3、mpstat命令报告每个处理器的统计信息
    4、proc工具报告某单独进程属性
    5、pmap命令报告单独进程的内存空间布局情况
    6、使用ps命令获取进程的内存、CPU利用状况及排序
    7、uptime和w命令查看过去15分钟内系统的负载情况
    8、使用top工具监测性能
    9、如何增加交换空间
     
    四、检查网络性能工具
    1、snoop诊断网络报文工具
    2、nfsstat监测NFS系统
    3、netstat监测网络接口
    4、Solaris下如何知道哪个进程使用了哪个端口
    5、ping 诊断网络连接和阻塞问题
    6、ipcs显示与内部进程通信有关的统计信息
    7、traceroute显示路由到目的地主机的报文,诊断网络拥堵
    8、route get ip获取通过的网关
     
     
     
     
    内容
    一、系统信息查看
    ========================================================================
    1、查看系统版本号的几个命令
     
    1)看版本号
    # uname -a
    SunOS sunserver1 5.8 Generic_108528-13 sun4u sparc SUNW,Sun-Fire-280R
     
    2)看kernel版本号
    # showrev
    Hostname: sunserver1
    Hostid: 8318005d
    Release: 5.8
    Kernel architecture: sun4u
    Application architecture: sparc
    Hardware provider: Sun_Microsystems
    Domain:
    Kernel version: SunOS 5.8 Generic 108528-19 January 2003
    相关命令:
    #hostid
    #hostname
     
    3)看安装的补丁id
    #showrev –p
     
    4)看是否安装了某个补丁
    #pkginfo |grep XXXXX
    ========================================================================
    2、如何在Solaris下获取内存大小
     
    有以下几个命令供参考:
    /usr/platform/`uname -m`/sbin/prtdiag -v | grep Memory
    prtconf -v | grep Memory
    如果装了GNU top,也可以直接用top命令看到。
    ========================================================================
    3、如何在Solaris下获取CPU速率
     
    有以下几个命令供参考:
    # psrinfo -v
    # psrinfo | grep on-line | wc -l 简单给出CPU数目
    # /usr/platform/`uname -i`/sbin/prtdiag -v
    # /usr/platform/`uname -m`/sbin/prtdiag -v
    # /usr/bin/netstat -k cpu_info0
    ========================================================================
     
     
    二、磁盘使用和I/O监测
    ========================================================================
    1、检查磁盘使用状况工具df、du
    df列出文件系统的块大小,及使用情况
    # df
    /                  (/dev/dsk/c0t0d0s0 ):  745246 块   667064 文件
    /proc              (/proc             ):       0 块     7816 文件
    /dev/fd            (fd                ):       0 块        0 文件
    /etc/mnttab        (mnttab            ):       0 块        0 文件
    /var/run           (swap              ): 1227264 块    54271 文件
    /tmp               (swap              ): 1227264 块    54271 文件
    /space             (/dev/dsk/c0t0d0s3 ): 2023574 块  1470851 文件
     
    df –k以字节列出系统使用情况
    # df -k
    文件系统              千字节    用了    可用 容量      挂接在
    /dev/dsk/c0t0d0s0    6191949 5819326  310704    95%    /
    /proc                      0       0       0     0%    /proc
    fd                         0       0       0     0%    /dev/fd
    mnttab                     0       0       0     0%    /etc/mnttab
    swap                  488768       0  488768     0%    /var/run
    swap                  490240    1472  488768     1%    /tmp
    /dev/dsk/c0t0d0s3    12530787 11518984  886496    93%    /space
     
    列出某一目录所在的设备使用情况
    # df -k /slli
    文件系统              千字节    用了    可用 容量      挂接在
    /dev/dsk/c0t0d0s0    6191949 5819326  310704    95%    /
     
    du列出某一目录的使用大小
    # du -s /export/home
    852690  /export/home
     
    # du -ks /export/home
    426345  /export/home
     
    列出某一目录下所有子目录及文件的大小
    # du /opt
    8       /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing/plaf/windo
    10      /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing/plaf
    12      /opt/SUNWebnfs/JFileChooser-patch/com/sun/java/swing
    14      /opt/SUNWebnfs/JFileChooser-patch/com/sun/java
    16      /opt/SUNWebnfs/JFileChooser-patch/com/sun
    18                     /opt/SUNWebnfs/JFileChooser-patch/com
    … …
     
    ========================================================================
    2、iostat 监视磁盘命令
     
    iostat命令报告磁盘的使用情况。表格中的每一行代表一个磁盘的活动信息。常用的选项有这些:
     
    参数n    按cXtYdZ格式指定磁盘。
    # iostat -n 2
       tty       c0t0d0         fd0          c0t2d0          cpu
     tin tout kps tps serv  kps tps serv  kps tps serv   us sy wt id
       0   16 476  23    7    0   0    0    0   0    0    2  2 10 86
       0   97 170  22   11    0   0    0    0   0    0    0  3  0 97
       0   33  24   3    1    0   0    0    0   0    0    0  0  0 100
       0   34  12   2    1    0   0    0    0   0    0    0  0  0 100
       0   34   0   0    0    0   0    0    0   0    0    0  0  0 100
     
    参数x   报告扩展统计信息。
    # iostat -x
                      extended device statistics
    device       r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b
    dad0        21.2    1.4  465.4   10.9  0.0  0.1    6.5   0  12
    fd0          0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
    sd0          0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
     
    参数z   这个选项在Solaris 8操作环境中是新的。它使得在采样间隔中没有磁盘活动的那些行被省略掉,这样可以让输出简短一些并且突出那些有活动的磁盘。
    # iostat -z 2
       tty        dad0          fd0           sd0            cpu
     tin tout kps tps serv  kps tps serv  kps tps serv   us sy wt id
       0   16 476  23    7    0   0    0    0   0    0    2  2 10 86
       0   97  12   1    7    0   0    0    0   0    0    0  0  0 100
     
    参数p和P 报告分区前(per-partition)的I/O统计信息,当察看内存交换设备的时候有用。
    # iostat -p 2
       tty        dad0         dad0,a        dad0,b        dad0,c          cpu
     tin tout kps tps serv  kps tps serv  kps tps serv  kps tps serv   us sy wt id
       0   16 476  23    7    1   0   28    0   0   27    0   0    0    2  2 10 86
       0  117  12   1    1    0   0    0    0   0    0    0   0    0    0  0  0 100
     
    参数E  对于找出产生错误的磁盘有用。
    # iostat -nE
    c0t0d0          Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
    Model: ST320011A        Revision: 3.19     Serial No: 3HT3XQ9X
    Size: 20.02GB <20019879936 bytes>
    Media Error: 0 Device Not Ready: 0  No Device: 0 Recoverable: 0
    Illegal Request: 0
    c0t2d0          Soft Errors: 0 Hard Errors: 2 Transport Errors: 0
    Vendor: LG       Product: CD-ROM CRD-8483B Revision: 1.02 Serial No:
    Size: 18446744073.71GB <-1 bytes>
    Media Error: 0 Device Not Ready: 2 No Device: 0 Recoverable: 0
    Illegal Request: 0 Predictive Failure Analysis: 0
     
     
    此外,对于磁盘镜像,可能也会影响到一些I/O性能。
    ========================================================================
     
     
    三、CPU和内存使用监测
    ========================================================================
    1、用vmstat监测CPU和内存,vmstat列出的是些什么属性?
     
    # vmstat 2
     procs     memory            page            disk          faults      cpu
     r b w   swap  free  re  mf pi po fr de sr 1m 1m 1m 2m   in   sy   cs us sy id
     0 0 0 5235888 387408 20 135 10 2  1  0  0  0  0  0  0  170  599  286  0  2 98
     0 0 0 5192424 506360 2   4  0  0  0  0  0  0  0  0  0  152   67  173  0  0 100
     0 0 0 5192424 506360 0   0  0  0  0  0  0  0  0  0  0  149  138  175  0  0 99
     0 0 0 5192424 506360 0   0  0  0  0  0  0  0  0  0  0  131   36  146  0  0 100
     0 0 0 5192424 506360 0   0  0  0  0  0  0  0  0  0  0  156   45  161  0  0 100
     0 0 0 5192424 506360 0   0  0  0  0  0  0  0  0  0  0  157  101  172  0  0 100
     
    vmstat各项:
    procs:
    r-->在运行队列中等待的进程数
    b-->在等待io的进程数
    w-->可以进入运行队列但被替换的进程
    memoy
    swap-->现时可用的交换内存(k表示)
    free-->空闲的内存(k表示)
    pages
    re--》回收的页面
    mf--》非严重错误的页面
    pi--》进入页面数(k表示)
    po--》出页面数(k表示)
    fr--》空余的页面数(k表示)
    de--》提前读入的页面中的未命中数
    sr--》通过时钟算法扫描的页面
    disk 显示每秒的磁盘操作。 s表示scsi盘,0表示盘号
    fault 显示每秒的中断数
    in--》设备中断
    sy--》系统中断
    cy--》cpu交换
    cpu 表示cpu的使用状态
    cs--》用户进程使用的时间
    sy--》系统进程使用的时间
    id--》cpu空闲的时间
    如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
    如果pi,po 长期不等于0,表示内存不足。
    如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。
     
     
    CPU能力不足的例子。
    # vmstat 15
    procs   memory  page   disk   faults  cpu
    r b w swap free re mf pi po fr de sr m0 m1 m2 m3 in sy cs us sy id
    45 0 0 2887216 182104 3 707 449 6 455 0 80 2 6 1 0 1531 5797 983 61 30 9
    58 0 0 2831312 46408 5 983 582 56 3211 0 492 0 0 0 0 1413 4797 1027 69 31 0
    55 0 0 2830944 56064 2 649 656 3 806 0 121 0 0 0 0 1441 4627 989 69 31 0
    57 0 0 2827704 48760 4 818 723 6 800 0 121 0 0 1 0 1606 4316 1160 66 34 0
    56 0 0 2824712 47512 6 857 604 56 1736 0 261 0 0 1 0 1584 4939 1086 68 32 0
    58 0 0 2813400 47056 7 856 673 33 2374 0 355 0 0 0 0 1676 5112 1114 70 30 0
    60 1 0 2816712 49464 7 861 720 6 731 0 110 7 0 3 0 2329 6131 1067 64 36 0
    58 0 0 2817552 48392 4 585 521 0 996 0 146 0 0 0 0 1357 6724 1059 71 29 0
     
    在"procs"下面标着"r"的一列是等待获得CPU的进程运行队列中的进程数。"id"列是CPU空闲时间。这台机器没有足够的CPU资源以满足进程运行的需要,这可以从它的大部分CPU时间花在用户空间里看出来(看"us"列)。
     
    这种情况解决办法,增加更多的CPU,或者,配合使用其他相关工具查出资源耗费较多的进程,对应用程序的代码作性能分析,看是否可以优化。
     
    vmstat中的"fr"列确实反映了空闲并且没有被页面缓存所使用的内存。使用-p选项,给出更准确的页面调度行为细节。
     
    为了确定是否有内存不足的情况存在,同时检查 ("sr",也就是扫描率)和交换分区的磁盘I/O流量(用iostat -P)。如果大量的I/O活动由文件系统产生并且需要运行页面扫描程序为I/O释放页面,"sr"列会有比较大的数值。
     
    保存如何正常运转的样例。这样可以很容易地收集和保存每月的性能数据进行比较,如 vmstat, mpstat, iostat
     
    ========================================================================
    2、prstat给出CPU和内存使用情况的一个动态注解
     
    示例:
    #prstat -cvm的输出结果非常有用。
     
    ========================================================================
    3、mpstat命令报告每个处理器的统计信息
     
    mpstat命令报告每个处理器的统计信息,表格中的每一行代表一个处理器的活动情况。
    #  mpstat 5
    CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
      0    3  19    0   451  327  300   11    0    0    0   322    2   2  10  86
      0    1   0    0   405  303  258    3    0    0    0   176    0   0   0 100
      0    0 134    0   711  456  559   21    0    0    0   622    9   8  34  49
      0    2  28    0   644  434  703  143    0    0    0  1392   28  12  15  45
      0    0  23    0   624  412  478   35    0    0    0   941   10  18  14  57
     
    mpstat可以确定每一个CPU都在花时间做什么:比如,分配给系统、用户、等待、空闲时间、系统调用、锁竞争、中断、错误、交叉调用。
    mpstat的"wt"列表明等待时间过多。 用户任务花时间太长。 作为你积极的维护计划的一部分,检查/var/adm/messages中有没有比如磁盘重试之类的硬件问题或者有没有额外的消息产生也是很有价值的。
     
    大百科CPU 100%案例:
    大百科SUN系统经常报CPU 100%,CPU占用最高的进程有时竟然是一些僵尸进程,杀掉后CPU立刻降下来,在/var/adm/messages中疯狂报如下信息:
    Mar  3 16:45:15 dbksvr unix: [ID 340762 kern.notice] from Memory Module 1901
    Mar  3 16:45:15 dbksvr unix: [ID 221138 kern.notice]  CONSIDER REPLACING THE MEMORY MODULE.
    Mar  3 16:45:15 dbksvr unix: [ID 547813 kern.notice] Multiple Softerrors:
    Mar  3 16:45:15 dbksvr unix: [ID 356634 kern.notice] 256 Intermittent, 0 Persistent, and 0 Sticky Softerrors accumulated
    怀疑时硬件内存条问题,当事务量小时,内存用不到这条有问题的,当事务量大时,开始使用此有问题的内存造成死锁,CPU高居100%.
     
    ========================================================================
    4、proc工具报告进程属性
     
    proc是一个利用/proc的特性来报告比如这样一些进程属性的实用工具:
    1)pstack -调用栈
    2)pfiles -打开的文件描述符列表
    3)pldd -正在运行中的进程使用的动态链接库的列表
     
     
    示例:
    #ps -ef
    root  1838     1  0   3月 03 ?        0:00 /usr/sbin/syslogd
    root  1479     1  0   3月 03 ?        0:01 ocfserv
    … …
     
    # pstack 1838
    1838:   /usr/sbin/syslogd
    -----------------  lwp# 1 / thread# 12  --------------------
     ff217ac8 poll     (ff03bd0c, 1, ffffffff)
      ff15b35c poll     (c, ff174780, 1, 2a8c8, 2b164, fe401000) + 34
      ff15bc08 _thread_start (0, 0, 0, 0, 0, 0) + 40
    -----------------  lwp# 2 / thread# 2  --------------------
    … …
     
    # ptree 1838
    1933  /usr/dt/bin/dtlogin -daemon
      6359  /usr/dt/bin/dtlogin -daemon
        6380  /bin/ksh /usr/dt/bin/Xsession
    6390       /usr/openwin/bin/fbconsole
    … …
     
    # pfiles 1838
    1838:   /usr/sbin/syslogd
      Current rlimit: 1024 file descriptors
       0: S_IFCHR mode:0600 dev:136,0 ino:749016 uid:0 gid:3 rdev:97,0
          O_WRONLY|O_APPEND
       1: S_IFCHR mode:0666 dev:136,0 ino:749009 uid:0 gid:3 rdev:13,2
          O_RDONLY|O_LARGEFILE
     … …
     
    # pldd 1838
    1838:   /usr/sbin/syslogd
    /usr/lib/libnsl.so.1
    /usr/lib/libpthread.so.1
    /usr/lib/libdoor.so.1
    /usr/lib/libc.so.1
    … …
     
    ========================================================================
    5、pmap命令报告单独进程的内存空间布局情况
     
    对于单独的进程,pmap命令报告单独进程的内存空间布局情况(-x选项比较有用)。
    示例:
    #ps –ef|grep httpd
        root  1158     1  0   3月 03 ?        0:00 /opt/IBMHTTPD/bin/httpd
      daemon  1064  1063  0   3月 03 ?        0:00 /usr/lib/ab2/dweb/sunos5
    tpd /usr/lib/ab2/dweb/data
      nobody  1704  1158  0   3月 03 ?        0:00 /opt/IBMHTTPD/bin/httpd
      nobody  1705  1158  0   3月 03 ?        0:00 /opt/IBMHTTPD/bin/httpd
    … …
     
    #pmap –x 1710
    1710:   /opt/IBMHTTPD/bin/httpd
    00010000    584K read/exec         /opt/IBMHTTPD/bin/httpd
    000B0000     40K read/write/exec   /opt/IBMHTTPD/bin/httpd
    000BA000    208K read/write/exec     [ heap ]
    FECA0000     24K read/exec         /usr/lib/nss_files.so.1
    FECB6000      8K read/write/exec   /usr/lib/nss_files.so.1
    FECC0000    368K read/write/shared   [ anon ]
    FED20000    136K read/exec         /opt/WebSphere/AppServer/bin/libascommon.so
    … …
    ========================================================================
    6、使用ps命令获取进程的内存、CPU利用状况及排序
     
    ps命令显示正在运行进程某一时刻的相关数据,使用ps命令获取进程的内存、CPU利用状况。用这些命令可以看到使用CPU和内存最多的进程:
     
    1)# ps -eo pid,pcpu,args | sort +1n
    CPU百分比
     
    2)# ps -eo pid,vsz,args | sort +1n
    K字节的虚拟内存
     
    3)# /usr/ucb/ps -aux |more
    # /usr/ucb/ps -aux | head
    输出被排序,使用CPU和内存最多的进程排在上面。
     
    注意:/usr/bin/ps和/usr/ucb/ps时两个不同的工具。
    /usr/ucb/ps中,stat列显示了各进程的状态:
    R 进程可运行
    s 睡眠,不可中断
    S 睡眠
    I 空闲
    T 停挂
    H 挂起
    W 被换出到磁盘上
                       进程超过了内存的软限制
    + 带有一个控制端的进程领导者
    N 进程在优先级降低的情况下运行
    < 进程在优先级升高情况下运行
    ========================================================================
    7、uptime和w命令查看过去15分钟内系统的负载情况
     
    uptime 可以很开的制导系统一运行了多长时间,以及在过去15分钟内系统的负载情况。W命令(谁在系统中)和uptime相似,第一行给出了uptime的信息,后面给出用户信息。
    示例:
    # uptime
     下午 2点54分  运行 7 天 16 分钟  7 users,  平均负载:0.02, 0.06, 0.06
     
    # w
     下午 2点54分  运行 7 天 16 分钟  7 users,  平均负载:0.02, 0.06, 0.06
    用户名   终端号           登入时间  闲置   JCPU   PCPU  执行命令
    root     console      周五上午10点 3天   3:11     27  /usr/dt/bin/dtexec
    root     pts/11       周五上午11点 3天                -sh
    root     pts/13       周五上午11点 3天                -sh
    root     pts/15       下午 1点21分  1:07              telnet 162.105.183.8
    root     pts/12       周二上午11点     9  13:00       tcsh
     
    ========================================================================
    8、使用top工具监测性能
     
    top是第三方软件,需要另外安装,Solaris 8的top安装版本在sunserver1的/SoftWare下。top列出消耗CPU最多的15个进程,并不断更新。
     
    1)top命令有几个参数选项,仅介绍以下几种,其他的请参考文档:
    I   不显示空闲进程
    d count  更新结果count次退出,缺省无限大,ctl+c或ctl+d退出
    d time  连续两次刷新时间间隔,缺省5秒
    U username 只显示属于用户username的进程
     
    示例:
    # top
    列出消耗CPU最多的15个所有进程
     
    # top -I
    last pid:  8671;  load averages:  0.02,  0.02,  0.03                   17:28:1
    112 processes: 108 sleeping, 2 zombie, 1 stopped, 1 on cpu
    CPU states: 99.8% idle,  0.0% user,  0.2% kernel,  0.0% iowait,  0.0% swap
    Memory: 512M real, 162M free, 274M swap in use, 599M swap free
     
       PID USERNAME THR PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
      8671 root       1  59    0 2624K 1656K cpu      0:00  0.27% top
      6358 root       1  59    0   30M   21M sleep    7:42  0.03% Xsun
      8670 oracle     1  59    0  105M   80M sleep    0:00  0.03% oracle
      8669 oracle     4  59    0 9536K 5496K sleep    0:00  0.02% sqlplus
      1270 root      13  58    0   39M   17M sleep    2:04  0.02% java
     
     
    # top -U oracle
    last pid:  8673;  load averages:  0.02,  0.02,  0.03                   17:29:40
    112 processes: 108 sleeping, 2 zombie, 1 stopped, 1 on cpu
    CPU states: 99.8% idle,  0.0% user,  0.2% kernel,  0.0% iowait,  0.0% swap
    Memory: 512M real, 162M free, 274M swap in use, 599M swap free
     
       PID USERNAME THR PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
      2294 oracle     1  48    0  105M   78M sleep    0:09  0.00% oracle
      2306 oracle     1  52    0   12M 6664K sleep    0:07  0.00% tnslsnr
      2292 oracle    11  59    0  107M   76M sleep    0:06  0.00% oracle
      8425 oracle    11  58    0  108M   84M sleep    0:01  0.00% oracle
      2288 oracle    29  59    0  108M   77M sleep    0:01  0.00% oracle
    … …
    仅列出oracle用户的进程
     
    2)和top一起使用交互命令
    d 改变显示数,如开始使用top –d 命令显示,按d可以改变显示数
    n 改变显示的进程数
    s 改变刷新的时间间隔
    k 杀掉指定的PID
    I或i 切换是否显示空闲进程
    ========================================================================
    9、 如何增加交换空间
     
    安装完系统后无法改变分区大小,但是可以增加/删除交换文件,效果类似交换分区。下列命令在根目录下创建一个500MB的交换文件,名为swapfile
    # mkfile 500m /swapfile
     
    使之生效
    # swap -a /swapfile
    现在你有了额外的500MB交换空间,为了每次重启后依旧有效,编辑/etc/vfstab文件,增加如下行
    /swapfile - - swap - no –
     
    # swap -l
    这里"-l"意味着"list",显示所有交换空间。仔细阅读"swap"和"mkfile"的手册页。
     
    ========================================================================
     
     
     
     
    四、检查网络性能工具
    ========================================================================
    1、snoop诊断网络报文工具
     
    snoop捕获并显示诊断网络问题发出的网络报文
    示例:
    # snoop
    # snoop –r |grep 162.105.183.49
    此命令锁定某一ip传输过来的所有网络报文,可以捕获输入和回显,甚至口令的明码,很恐怖吧:)
    ========================================================================
    2、nfsstat监测NFS系统
     
    nfsstat显示了客户机和服务器的NFS统计信息,包括超时、重传、等待错误及有关cache命中和失效的信息。可以判断是否是NFS造成网络性能下降。
    示例:
    # nfsstat |more
     
    参见nfsstat的帮助文档和参数。
    ========================================================================
    3、netstat监测网络接口
     
    1)# netstat –a
    显示关于internet协议套接字状态的统计结果
     
    2)# netstat –i 2
    显示关于网络接口的统计结果,此命令很重要。2为间隔时间参数,可调。
    # netstat -i 2
        input   lo0:1     output           input  (Total)    output
    packets errs  packets errs  colls  packets errs  packets errs  colls
    0       0     0       0     0      3505609 0     3263609 1     35792
    0       0     0       0     0      8       0     5       0     0
    0       0     0       0     0      18      0     12      0     0
     
    3)# netstat –n
    缺省时netstat将地址解析成主机名,使用n选项,取消解析使用ip地址
     
    4)# netstat –r
    显示主机的路由表
    # netstat -r
    Routing Table: IPv4
      Destination           Gateway           Flags  Ref   Use   Interface
    -------------------- -------------------- ----- ----- ------ ---------
    clusternode2-priv    clusternode2-priv     UGH      1      0
    172.16.194.4         clusternode1-priv     U        1      8  qfe2:2
    172.16.0.128         172.16.0.129          U        1      8  qfe2
    172.16.1.0           172.16.1.1            U        1      8  qfe0
    162.105.183.0        sunserver1            U        1     24  eri0
    162.105.183.0        sunserver             U        1      0  eri0:1
    172.16.193.0         localhost             U        1      0  lo0
    224.0.0.0            sunserver1            U        1      0  eri0
    default              162.105.183.1         UG       1     10
    localhost            localhost             UH       1      0  lo0
     
    5)# netstat –s
    显示各协议的统计信息。
     
    6)# netstat -s -P tcp
    查香tcp协议的统计量
     
    7)# netstat -na -P tcp
    查看哪些端口是打开的
    ========================================================================
    4、Solaris下如何知道哪个进程使用了哪个端口
     
    netstat -na -P tcp查看哪些端口是打开的,但它没有报告是哪个进程打开的。附件ps9000脚本可以列出每个打开的端口被哪个进程使用。Root身份可以查看所有进程,其他身份可以查看本用户的进程。
     
    ========================================================================
    5、ping 诊断网络连接和阻塞问题
     
    1)ping ip
    示例:
    # ping 162.105.183.15
    162.105.183.15 is alive
     
    2)ping –s [ip] 一直ping 某个地址,按ctl+c或d终止,类似于win下的-t选项
    示例:
    # ping –s 162.105.183.8
     
    3)ping -p [port] [ip] 检查某个端口
    示例:
    # ping –p 7001 162.105.183.12
    162.105.183.12 is alive
    # ping 9001 162.105.183.12
    ping: bad timeout: 162.105.183.12
     
    4)ping –a ip
    示例:
    # ping –a 162.105.183.49
    162.105.183.49 (162.105.183.49) is alive
    ========================================================================
    6、ipcs显示与内部进程通信有关的统计信息
     
    示例:
    # ipcs
    IPC status from <running system> as of 2003年03月10日 星期一 16时58分11秒 CST
    T         ID      KEY        MODE        OWNER    GROUP
    Message Queues:
    q          0   0x2e781d5  --rw-r--r--     root     root
    q          1   0x2e781d2  -Rr---w--w-     root     root
    Shared Memory:
    m          0   0x50000e7e --rw-r--r--     root     root
    m        201   0x4c0002d0 --rw-rw-r--   lanman      sys
    m          2   0xd961604c --rw-r-----   oracle oinstall
    Semaphores:
    s     196608   0xbaa9a0cc --ra-r-----   oracle oinstall
    s          1   0xbaa9a0cd --ra-r-----   oracle oinstall
    s          2   0xbaa9a0ce --ra-r-----   oracle oinstall
    ========================================================================
    7、traceroute显示路由到目的地主机的报文,用于诊断网络拥堵
     
    traceroute ip
    示例:
    # traceroute www.pku.edu.cn
    traceroute to rock.pku.edu.cn (162.105.129.12), 30 hops max, 40 byte packets
     1  162.105.183.1 (162.105.183.1)  0.916 ms  0.772 ms  0.705 ms
     2  162.105.170.1 (162.105.170.1)  1.262 ms  1.144 ms  1.131 ms
     3  162.105.162.126 (162.105.162.126)  1.934 ms  1.304 ms  1.135 ms
     4  * * *
     5  * * *
    ========================================================================
    8、route get ip获取通过的网关
     
    # route get www.sina.com.cn
       route to: sina37-34.sina.com.cn
    destination: default
           mask: default
        gateway: 162.105.183.1
      interface: hme0
          flags: <UP,GATEWAY,DONE,STATIC>
     recvpipe  sendpipe  ssthresh    rtt,ms rttvar,ms  hopcount      mtu     expire
           0         0         0         0         0         0      1500         0

     

  • 两个重要的.profile文件

    2009-05-15 18:00:07

    两个重要的profile文件
    UNIX/Xenix系统中有两个对用户而言必不可少的文件——etc目录下的profile文件和
    用户主目录($HOME)下的.profile文件。前者是系统文件,对系统下全体用户起作用,后者是
    用户自己的"私人"文件。
    这两个文件的功能类似于DOS系统下的Autoexec.bat文件,不同之处在于Autoexec.bat
    件可以为空,而这两个文件内容不仅不能为空,而且必须存在。它们在用户登录(Login注册)
    ,被系统自动执行,为用户设置工作环境,若使用得当,可发挥强大作用。

    etc
    目录下的profile文件是每一个用户登录时,操作系统首先执行的文件,然后再将控制
    权交给用户主目录下的.profile文件,当系统给出主提示符($PS1),用户就可以开始自己的
    工作了。以上全过程对用户而言是透明的。
    /etc/profile
    文件的主要功能包括:显示UNIX/Xenix版本信息或者系统专用应用程序的
    提示信息,设置掩码(umask),对终端和邮箱(mail box)进行处理,对非root用户禁止使用news命令等。
    因为/etc/profile文件的作用范围是全体用户,所以非共性的设置应放在用户自己的.profile文件中。下面就详细讲述.profile文件。
    .profile
    是隐含文件,普通的列目录命令(llslf,ls-l)显示不出该文件。UNIX/Xenix系统所有隐藏文件前都有"."符。
    显示UNIX/Xenix系统中的隐含文件属性用以下命令:
    $l - a
    原始的.profile文件是系统管理员使用Sysadmsh命令或mkdev user命令创建用户时,

    统为该用户自动生成的,用户可使用vi编辑该文件为自己所用。.profile文件产生的效用直
    至用户退出系统后才消失,而当用户重新登录时,又开始发挥作用。
    设置终端类型
    用户使用UNIX/Xenix系统时可能会遇到这样一个现象:每次登录后,系统会要求用户敲入
    终端类型,然后在用户输入相应信息后,才给出提示符。这是为什么呢?
    原来在原始.profile文件中有这样一个语句
    :
    eval ‘test -m ansi:ansi -m:${TERM:ansi}-r -s -Q’
    该语句的作用是要求用户敲入所使用终端的类型并进行测试。

    如果我们在.profile文件中加入以下命令:
    TERM=terminal-name
    TERM
    变量指明终端类型。

    :TERM=vt100,并且注释掉eval语句。这样处理以后,用户再注册时,就无需敲入终端类
    型了。
    定义PATH变量
    该变量类似于DOS系统的PATH变量,其格式如下:
    PATH=$PATH:$HOME/bin:/usr/informix/bin:.
    说明
    :

    1.
    该语句未尾的"·"表示当前路径,不可缺少
    ;

    2.
    不同路径间用":"隔开
    ;

    3.$PATH
    是系统中提供的默认变量,其初始值为
    /bin:/usr/bin;

    4.
    路径的顺序是很重要的,前后次序不宜随便颠倒。比如用户自编了一个与系统命

    令同名的可执行文件,并将其放在$HOME,并且打算使用这个命令而不是系统提供的同
    名命令,那么PATH应设置为:
    PATH=$HOME/bin:$PATH:/usr/informix/bin:.
    因为,若不同路径下有相同的命令或可执行文件,则以第一个路径下的为准。这时
    ,SHEL
    L
    先搜索$HOME/bin路径,发现其下的这个可执行文件,就为用户调用,而不会再运行/bin或者

    /usr/bin
    下的标准同名命令了。
    设置提示符
    用户可以将PS1(主提示符)PS2(辅助提示符)改为更受欢迎的形式。通常情况下,以超
    级用户登录时,主提示符为"#",其它用户为"$",PS2一般为"<"。修改提示符的方法如下:
    格式
    :PS1="$LOGNAME> "
    说明:将主提示符由默认值改为用户注册名。

    使用stty命令重设终端配置

    1.
    对数据传输方式进行设置
    :对奇偶校验位、波特率(bps)大小、停止位位数进行重新设置。

    2.
    字符处理
    1:stty nl
    系统只接受字符作为换行符。

    2:stty-nl
    系统以(RETURN)字符做为换行符。

    3:stty echo
    置击键后屏幕回显。

    4:stty-echo
    置击键后,屏幕无显示方式。


    3.
    特殊键定义
    1:
    stty erase escape #
    置抹除键(erase)escape

    重置抹除键键值,缺省值为"#"
    2:
    stty kill delete #
    置删行符(kill)delete

    重置删行符,缺省值为"@"
    3:
    stty eof ctrl-D #
    置文件结束符(eof)ctr-D

    重置文件结束符。
    4:
    stty intr ctrl-C #
    中断键可中止系统中绝大多数前台进程,是很重要的终端参数

    重置终端中断键为ctrl-C键。

    4.
    其它常用stty命令
    1:stty sane ctrl-J
    若终端功能发生紊乱,可用该命令来重置终端设置,使之恢复其出厂参数。该命令以
    "ct
    rl-J"
    作为行结束符,因为在终端参数紊乱的情况下,RETURN键的功能很可能已经失效,
    ctr
    l-J
    命令是系统提供的强行回车键,在绝大多数情况下不会失效。

    2:stty -a
    该命令可以显示出终端的所有参数。

    以上stty命令是UNIX系统提供的,可随时使用,用户可据自己的需要在.profile文件中设
    定。
    用户自定义SHELL变量
    用户自定义SHELL变量是很有用的,使用情况也很广泛。其功能有些类似于C语言的宏定
    (#define)。最常见的情况是将自己常去的而且很深的路径自定义为一个固定变量,放在.
    profile
    文件中。

    :ML=/usr/work/source/firstml/secoudml
    这时,若用户在主提示符($PS1)下键入
    :
    $>cd $ML
    $>pwd #
    显示当前路径

    屏幕显示当前路径为:/usr/work/source/firstml/secondml
    需注意的是:无论使用SHELL专用变量还是自定义变量,均需在变量(大写拼写)前加上"$
    "
    符。并且,在定义完所有变量后,需在.profile中使用export语句,它的作用是将变量设置在

    SHELL
    环境中,以在任意路径下使用。
    :export SHELL ML TERM PATH MAIL PS1
    使用Shell内部命令

    用户可在.profile文件内使用SHELL内部命令和操作系统命令,Shell常用命令见下表。
    @@28173000.GIF;
    1@@
    .profile
    文件在Client/Server结构中的应用
    <

  • 2008测试工具排名

    2009-05-15 17:35:39

    IT168 专稿】

        几乎毫无悬念地,HP的几大测试工具LoadRunnerQuickTest ProfessionalTestDirector for Quality Center又一次夺冠,在STP杂志的年度测试工具投票中,这几个工具连续4年占据首位。(关于2007年测试员的工具选择排名,请参见:http://blog.csdn.net/Testing_is_believing/archive/2007/12/17/1944221.aspx

        这对于初学软件测试的朋友们而言,不得不说是一件好事,因为他们可以坚持学习一样工具,避免在选择哪个测试工具来学习时过于彷徨和迷茫。

        金奖获得者——LoadRunner

        LoadRunner再次成为测试人员最喜爱的测试工具。

        LoadRunner是一款优秀的压力和性能测试工具,可以模拟成千上万的并发操作,对应用系统、Web ServiceWeb服务器、数据库等进行压力和性能测试,兼容WindowUnix

        HP20076月对其进行了重大的升级,增强了对Web2.0技术的支持。

        数据/测试性能类

        LoadRunner当仁不让,File-AIDSQL Data Generator紧随其后。

        LoadRunner的核心模块是VuGenVirtual User generator),VuGen可用于创建脚本实现测试用例的模拟,脚本可进行参数化以适应不同的场景需要,关联(correlation)和错误处理(error handling)的能力都非常强。Controller模块用于运行脚本、模拟大量的并发用户,而Analysis模块则用于分析和生成性能测试报告。

        紧随其后的是CompuwareFile-AIDRed GateSQL Data GeneratorFile-AID是一个企业级的数据管理工具,测试人员可以利用它来快速地构建测试数据环境,支持mainframesMVSDB2和分布系统。

        Red GateSQL Data Generator替代IntelVtune Performance Analyzer的位置,是一颗璀璨的新星,宣称可以在一杯咖啡的时间内,为10个表格创建2百万行数据。

        功能测试类

        QTP再度领衔主演,Rational Functional TesterSilkTest锐气不减。

        QTPWindows平台下出色的自动化功能测试和回归测试工具,基于GUI的录制和回放测试,加上VBScript,测试人员可以轻易控制和操纵程序界面对象,创建自动化测试用例。

        新版本的QTP在团队协作能力方面有所增强,拥有新的对象库管理和函数库共享能力,还添加了关键字管理、通过拖放构建测试步骤、输出XML格式的报告,还有新的、更为精准的调试器,都让QTP成为当仁不让的王者。(关于QTP9.5新特性的介绍,请参见:http://tech.it168.com/softtest/2008-07-08/200807081020854.shtml

        IBMRational Functional TesterBorlandSilk Test替代了ParasoftSOAtestCompuwareOptimal Quality Management的位置。

        Rational Functional Tester的特点是,除了自身的脚本开发环境外,还支持两种开发环境:Eclipse 框架中的 JavaMicrosoft Visual Studio中的Visual Basic.NETSilkTest同样是一款不错的自动化功能测试和回归测试工具,支持C/S结构的Java.NETWEB

        静态/动态代码分析类

        Rational Software Analyzer Developer Edition接班,TPTPDevInspect上位。

        随着IBM08年推出JazzRational Software Analyzer Deverloper Edition接过PurifyPlus的班,成为代码分析工具类的佼佼者,能具捕捉内存泄漏、分析应用程序性能、代码覆盖率等,支持广泛的编程语言,包括C/C++Java.NETVBVC++,支持LinuxUnixWindows平台。

        Eclipse Test and Performance Tools PlatformTPTP)和HPDevInspect替代了CompuwareDevPartner StudioParasoftJtest的位置。EclipseTPTP在新版本中添加了不少的新特性。2007年底HP收购了SPI DynamicsDevInspect在自动化安全测试方面拥有很强的优势。

        测试/QA管理类

        QC为王,SilkCentral Test Manager保持不败,Optim Test Data Management Solution晋身。

        TestDirector for Quality Center包括需求管理、测试计划、测试执行和缺陷管理模块,全面管理了测试过程,成为测试人员最喜欢的测试管理工具。

        TestDirector基于WEB的管理模式,允许测试人员和项目经理收集需求、设计和安排手工与自动化的测试、分析测试结果、生成图文并茂的测试报告,并且能与HP的其他功能测试工具WinRunnerQTP紧密结合。

        20062月,Borland收购了SegueSilkCentral Test ManagerVMWare Lab Manager整合在一起用于简化跨平台的测试,还可管理Junit/Nunit等第三方的测试框架。

        作为IBM的测试数据管理和应用程序质量改进方案,Optim Test Data Management Solution允许测试人员指定覆盖率标准、创建错误和边界条件、模拟产品环境等,支持PeopleSoftSiebel等企业应用,支持IBMMicrosoftOralceSybase等厂家的数据库,支持LinuxUninxWindows等平台。

        缺陷/问题管理类

        QC大而全,VSTS新进,Bugzilla略显老态。

        上次,HPTestDirector for Quality CenterMozillaBugzilla并列第一;这次,Bugzilla被无情地挤到第三,新进者不是谁,正是微软的Visual Studio Team Edition for Software Testers

        由于TestDirector for Quality Center包括了需求管理、测试计划、测试执行和缺陷管理四大模块,因此也就包揽了测试/QA管理类和缺陷/问题管理类的双重头奖。TestDirector for Quality Center中的缺陷跟踪模块能自动地检查缺陷数据库中的相似问题,避免录入新BUG时的重复现象。另外,它对缺陷的图表分析和统计能力可以辅助管理层决定产品发布日期、判断产品质量趋势。

        相对而言,Visual Studio Team Edition for Software Testers则是一个新进者,与Team Fundation结合起来,可以做到缺陷/问题跟踪自动化。这个工具还可以对Web应用程序和Web站点进行功能和压力测试。

        1998年,最早版本的Bugzilla是由Terry WeissmanTcl写的,后来他觉得用其他语言写可能会更吸引人,因此决定移植到Perl,就成了Bugzilla2.0。在20004月的时候,项目移交给Tara Herenandez,有了更多的开发者参与,包括现在的Dave Miller

    压力/性能测试类

        LoadRunner蝉联,Rational Performance TesterSilkPerformer紧追不舍。

        VuGen的能力确实非常强,支持对广泛的协议的录制和编辑。对于Web/HTTP协议,测试人员可以选择让LoadRunner产生URL模式或者是HTML模式的脚本。

        Performance TesterIBMTivoli管理环境整合,可以使用最小的硬件资源来产生大量的并发用户测试。

        SilkPerformer可以在没有license的限制下模拟数千个并发用户。可以通过插件在Eclipse中创建测试。SilkPerformer还有一个SOA版本。

        SOA/Web Services测试类

        Rational Tester for SOA Quality大放异彩,LoadRunner无缘三甲。

        SOA/Web Services测试类,上一次的冠军LoadRunner居然无缘三甲,取而代之的是IBMRational Tester for SOA Quality

        如果你的应用依赖于别人的Web Service,你不能掉以轻心。例如,如果你的程序依赖一个信用卡认证服务,那么你如何确保在购物旺季时不会出现"黑色星期五"呢?利用Tester for SOA Quality,你可以模拟成千上万的用户访问和使用这个Web Service,并且在尝试执行成百上千的事务时观察你的程序的运行情况。

        HPQTPParasoftSOA Quality Solution也是测试人员所喜爱的SOA/Web Services测试工具。SOA Quality Solution把公司的多层工作流方法融合到测试和QA中,可以在SOA层做强制政策一致性检查;端到端的测试和业务逻辑或事务模拟;支持回归测试、安全渗透测试、压力和性能测试。

        安全测试类

        Rational AppScan击败WebInspect,晋身超级保镖,力保软件安全。

        收购了Watchfire之后,IBMAppScan成为一款优秀的自动化安全审计工具。针对AJAXFlash等应用Web2.0技术的中小型业务应用系统,IBM08年十月发布了AppScan Express版本。

        HPAssessment Management平台是一个自动化的、集中控制的WEB安全扫描和测试平台,它让分布式的团队通过一个仪表板样式的界面访问和纠正安全漏洞。

        WebInspect20071月的时候,被完全重写过,性能和各项技术兼容性有了很大的提高。据称WebInspect7.5更进一步地改进了AJAX漏洞的审计能力,对Windows Vista的支持也得到了增强。

        测试自动化类

        QTP稳居第一,Business Process Testing新面孔登场。

        QTP再次夺冠。QTP通过插件架构来支持扩展,默认支持ActiveX ControlWebVB插件。

        CompuwareTestPartner是一个自动化的GUI功能测试工具,采用VBA作为脚本开发语言,测试人员还可以采用"Visual Navigator"的方式来创建测试脚本。

        HPBusiness Process Testing是一个新面孔,据称该工具的目的是为了让业务人员可以创建和执行手工的或自动化的测试,不需要任何的编程技巧。能自动化测试过程和文档创建过程,提高测试的可维护性。

        SCM/Build管理类

        VSS历史悠久,Subversion开源雄风。

        Sourcesafe最早由One Tree Software开发,在上世纪90年代发布了3.1版本,微软当时的SCM工具是Delta,并不怎么出名。微软收购了16位的SourceSafe并于1995年发布了一个32位的Visual SourceSafe 4.0版本,10年后VSS2005年才出现。

        Subversion在开源社区中很流行,在2000年的时候由CollabNet发起。构建自动化工具Electric Clound089月的时候发布了ElectricCommander3.0版本,新版本可以与EclipseVisual Studio整合,ElectricCommander支持各种各样的脚本语言,包括BashperlPythonTcl,支持AccuRevClearCasePerforceSubversionSynergySCM工具。

        嵌入式/移动设备测试类

        Rational Test RealTimeC++TEST击败,挤出三甲位置。

        ParasoftC++Test是一款优秀的C++代码分析和审查工具,同时也是一款代码分析、回归测试和自动化单元测试工具。Parasoft为嵌入式程序提供了相应的版本,支持EclipseVisual Studio,也可以批处理执行。

        紧随其后的是QualiSystemsTestShellCoverityPreventQualiSystemsTestShell包括计划、构建、执行和控制测试、分析结果等功能,其核心TestShell Foundation是一个可提供扩展架构以满足测试组织增长需求的引擎和数据库。CoverityPrevent是一款CC++Java代码的扫描和查错工具。

        .NET测试类

        Team System上升,LoadRunner下降,Parasoft Test被替换。

        微软的Visual Studio Team System Edition for Software Tester由上次的第二名上升到第一位。Visual Studio Team System Edition for Software Tester支持.NET应用程序的性能和压力测试,还支持代码分析、代码覆盖率。

        LoadRunner8.0后添加了对.NET语言的支持,使用LoadRunner"Microsoft.NET"协议可以创建.NET Vuser脚本,模拟.NET客户端程序的各种操作。

        LoadRunner9.0中,可以选择"Microsoft.NET"协议来录制和创建.NET程序的Vuser脚本。VuGen支持在应用层协议上录制.NET应用程序,允许测试员创建Vuser脚本模拟.NET客户端程序的操作。VuGen把所有客户端的动作录制成相应的方法和类,并用C#VB.NET来创建脚本。VuGen支持.NET RemotingADO.NETEnterprise ServicesWCFWindows Communication Foundation)程序的录制和脚本创建。

        CompuwareDevPartner Studio除了提供C/C++Java版本外,也提供了.NET版本。DevPartner分析代码的质量和复杂度,并且能检测内存泄漏,代码效率和代码覆盖率。

        Java测试类

        LoadRunner连续3年斩获,Junit稳居单元测试老大。

        LoadRunner在压力测试过程中使用监视器来收集性能数据,可用的监视器包括虚拟用户、事务完成率、网络响应、Web和数据库服务器响应和资源使用等。

        有人说Junit是单元测试框架的祖父级人物,2007年,Junit跨过了第10个年头,此时,它的子孙后代已经遍天下,Junit被移植到了各种语言平台,包括:C#Nunit)、C++CPPUnit)、FortranfUnit)、PerlTest::ClassTest::Unit)、PHPPHPUnit)和PythonPyUnit),甚至还有JavaScript版本的JSUnit10年间,Junit被下载超过2百万次。

        EclipseTets and Performance Tools Platform(TPTP) 089月升级到了4.5.1版本,支持Java1.6,修正了大量的BUG

        整合测试/性能套件类

        VSTS夺冠,HP Performance Center屈居第二,TestComplete低价制胜。

        上次的冠军HPPerformance CenterVSTS击败。Visual Studio Team Edition for Software Tester成为测试人员最喜爱的整合测试/性能套件类工具,并且测试人员都在热切地期待预计2010年发布的Visual Studio Team System,代号"Rosario"。据称,微软将添加更多的ALM功能到该工具中,并且会与Office Project Server整合在一起。

        HPPerformance Center组合了LoadRunner的所有功能、测试资产和人力资源管理功能,测试执行过程可以被跟踪、编辑和计划。

        AutomatedQATestComplete是一款价廉物美的自动化测试工具,支持WEB.NETJavaFlash等应用程序,而且可以进行基于HTTP协议的压力测试。

        低价商业测试工具类

        Software Planner更上一层楼。

        价格低于$500的商业测试工具中,Software Planner从上次的第二名上升到第一位。Software Planner是一个基于Web的项目计划工具,使用任务链接来组织任务,防止一个任务在另外一个任务未结束之前就开始。

        MindreefSOAPscope是一个测试基于SOAP的应用程序的工具。SOAPscope让团队可以创建、测试、发布Web服务和SOA组件,自动化面向XML的任务。

        Shunra Virtual Enterprise创建了一个虚拟网络,可以用于模拟应用程序测试环境,让测试人员检查应用程序在不同网络条件和环境下的性能和用户体验。

        免费测试工具类

        TPTP击败BugzillaJunit持平,Bugzilla第三。

        TPTP的核心部件包括测试编辑、执行、监视、跟踪和分析、日志分析,支持嵌入式系统、独立应用程序和企业级应用系统、高性能计算系统。

        Junit如此受欢迎,以至大家在说话的时候把这个名称当作动词来用,例如"确保你在签入之前Junit一下你的代码"

        07年,Bugzilla9年前的2.0版本后发布了重要的3.0版本,其中主要的增强包括性能方面、Web Services接口等。

        新手最佳解决方案类

        测试资源少,工具选择更重要。

        如果把少于5年历史的公司定义为"新手"的话,VMLogixLabManager是最适合这类公司的工具。LabManager 支持微软和VMWare的虚拟系统,LabManager3.508年五月发布,添加对Citrix XenServer4.1的支持。

        FortifyDefender是上次的冠军,这次,它的新产品Fortify 360居第二位。Fortify 360瞄准软件开发生命周期领域,可以在开发的各个阶段对漏洞进行检测识别、区分优先级、修补。

        BluePrintRequirements Center聚焦协作,通过协作在代码开发前就定义清楚、确认清楚需求,让需求清晰化、可视化。

     

  • set命令

    2009-05-15 17:35:39

    用set命令可以设置各种shell选项或者列出shell变量.单个选项设置常用的特性.在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性,不带任何参数的set命令将显示shell的全部变量.除非遇到非法的选项,否则set总是返回ture.

    当shell被调用时,可以列出全部的选项.当前的选项集列在$-中.在option参数被处理后,其他的参数被赋值到位置参数中($1,$2,...,$n)

    set [--abefhkmnptuvxldCHP] [-o option name] [arguments ...]

    选项 说明
    -a 自动向已经修改的变量或为导出后序命令的变量作出标志
    -b 不是在原提示符之前,而是立即引发终止后台任务的状态表表
    -e 如果命令带非零值返回,立即退出
    -f 禁止带扩展名的路径
    -h 定义函数时,定位和存储函数命令,当函数被执行时,通常查询函数命令
    -k 所有的关键词参数,而不只是那些命令名前的关键词参数,被放在环境命令中
    -m 监视器模式,启动任务控制.此选项默认支持系统shell交互.后台进程以单独的进程组运行,在每次完成任务时显示包含退出的状态行
    -n 读取命令但不执行命令.通常监查shell脚本的句法错误.交互shell被忽略
    -o option-name 选项名可以是下列之一:
    选项 说明
    allexport 同-a选项
    braceexpand shell执行花括号扩展,在默认情况下起作用
    emacs 使用emacs风格命令行编辑接口.除非shell以-noline-editing选项启动,否则当shell交互时,通过默认启动该选项
    errexit 同-e选项
    histexpand 同-H选项
    ignoreeof 其结果是好像shell命令IGNOREEOF=10被执行
    interactive 允许单词前带#号,以使得在交互shell中忽略命令行的全部字符-commands
    monitor 同-m选项
    noclobber 同-C选项
    noexec 同-n选项
    noglob 同-f选项
    nohash 同-d选项
    notify 同-b选项
    nounset 同-u选项
    physical 同-p选项
    posix 改变BASH属性以匹配标准,默认操作不同于POSIX1003.2标准
    verbose 同-v选项
    vi 使用vi风格的命令行编辑器
    XTRACE 同-x选项,如果没有给出选项名,显示当前选项值
    -p 打开特权模式(在此模式,$ENV文件被处理,不能从环境中继承
    shell函数.如果是有效用户ID而不是实用户组则自动启动.关闭此选项将使得有效用户和组IDs设置实用户和组IDs)
    -t 在读取命令并执行之后退出
    -u 当执行参数括展时,把非设置变量作为错误处理(如果扩展企图出现在非设置变量中,shell显示错误信息.如果不是交互式,则带非凌值退出)
    -v 输入行被读取时,显示shell输入行
    -x 在每个简单命令被扩展之后,显示PS4扩展值,之后是要执行的命令。打开shell的跟踪选项,从set -x执行的地方开始,对以后执行的所有命令,shell会在完成名替换、变量替换、命令替换和输入输出重定向后把命令显示在标准错误上,被跟踪的命令前面加上了加号。跟踪命令直到使用关闭命令set +x为止结束。
    -l 保存和恢复绑定在命令中的名称
    -d 禁止执行查找散列命令(通常,命令被保存在散列表中,一旦被找到就不再继续查找)
    -C 效果好像是执行了noclobber=shell命令
    -H 使用!风格的历史替代(当shell交互时,在默认情况下,此选项有效)
    -P 如果设置此参数,当执行改变目录命令cd时,不遵循符号链接,而是使用实际的目录
    如果在选项后没有参数,不设置位置参数.否则,即使一些参数以a选项开始,也要把位置参数设置为argument- 结束选项的信号,将引发其余的参数被赋值到位置参数中(-x和-v选项被关闭.如果没有argument,位置参数将保留未改变的参数)

  • Office Outlook设置在服务器上保存副本

    2008-09-10 20:35:15

    当您检索 POP3 (POP3:用来从 Internet 电子邮件服务器检索电子邮件的常用协议。) 电子邮件帐户中的电子邮件时,默认情况下,在邮件被下载到计算机后将被从电子邮件服务器上删除。对于许多人而言,这不会造成什么问题。

    但是,如果您需要从多台计算机上查收电子邮件,一定要将 Outlook 配置为不删除电子邮件服务器上的邮件。对于那些想在工作时检查其家庭 Internet 服务提供商 (ISP) (ISP:一种以提供 Internet 接入,使用诸如电子邮件、聊天室或万维网为业的企业。有些 ISP 是跨国的,在许多地方提供接入服务,而其他服务商则局限在一个特定地区内。) 的电子邮件帐户并将邮件下载到家庭计算机上以便永久储存的用户而言,该方案最为常见。

    将邮件保留在电子邮件服务器上时,可以采取多种方式来删除邮件。要做出选择,您需要考虑有关电子邮件使用情况的若干因素,如:您希望经过多长时间才能从多台计算机上访问邮件,电子邮件服务器管理员设定的存储限制等。如果超出存储限制,您可能无法接收新邮件,或者需要缴纳额外的费用。通常情况下,最好将一台计算机保留为默认设置,这样它就不会在电子邮件服务器上保存电子邮件。当您使用该计算机检索电子邮件时,邮件被下载后将从电子邮件服务器上删除。如果不想这样做,Outlook 允许您选择在服务器上保留电子邮件的时间长度。

    1. “工具”菜单上,单击“电子邮件帐户”
    2. 单击“查看或更改现有电子邮件帐户”,然后单击“下一步”
    3. 选择您的 ISP 帐户,然后单击“更改”
    4. 单击“其他设置”
    5. 单击“高级”选项卡,然后在“传递”下,选中“在服务器上保留邮件的副本”复选框。

      “Internet 电子邮件设置”对话框

    6. 选择以下选项之一:
      • x 天后删除服务器上的邮件副本   电子邮件被下载到您的计算机上,但是仍将在电子邮件服务器上保留指定的天数。对于那些需要在工作时阅读其邮件,但是又想将它们下载到家庭计算机上以便永久保存的用户,这是最常用的设置。我们建议您选择能够满足需要的最少天数。在电子邮件服务器上保留邮件的时间越长,超过邮箱大小限额的风险就越大。
      • 删除“已删除邮件”时,同时删除服务器上的副本   电子邮件被下载到您的计算机上,但是仍然无限期地保留在电子邮件服务器上,直到您删除 Outlook 中的邮件并清空“已删除的邮件”文件夹。只删除邮件不会从电子邮件服务器上将其删除。

      如果不选中上述任一复选框,邮件将无限期地保留在服务器上。最终您将超过邮箱限额,除非您从另一台将 Outlook 配置为删除电子邮件服务器上的邮件的计算机连接到电子邮件服务器。

    7. 单击“确定”,然后单击“完成”

    有关在多台计算机上使用 POP3 电子邮件帐户的详细信息,请参见本文的“请参阅”部分。

  • 测试中需要提交的文档

    2008-07-24 21:37:56

    测试中需要提交的文档大概有:

    测试计划

    测试用例

    缺陷模板

    测试总结报告

    用户说明书

    测试流程

    风险控制

     

    应该还是有其他的,一时想不起来了。郁闷,昨天跟老大说了有很多要提交,今天就不记得要提交哪些了。

211/212>
Open Toolbar