精华内容
下载资源
问答
  • 这是学习笔记第1833篇文章首先做个背景说明,我工作重点内容是MySQL方向,说MySQL问题不是说MySQL不行,而是希望通过一种开放方式来讨论,同时也不是说...
        

    这是学习笔记的第 1833篇文章

    首先做个背景说明,我的工作重点内容是MySQL方向,说MySQL的问题不是说MySQL不行,而是希望通过一种开放的方式来讨论,同时也不是说MySQL欠缺的地方,就一定需要参考其他数据库方向的。

    当然在这篇之后,我会再写一些MySQL独有的一些亮点特性。

    首先,我觉得有几个地方是MySQL待改进的,待改进不意味着要添加,也需要做减法,我觉这些应该是明确不会大力支持的:

    1. event的支持问题

    2. 存储过程,触发器

    3. 分区表

    本意是希望能够在应用设计中做出合理的取舍,不要什么都在数据库层面来做。应用透明了,数据库层不透明,一动就出问题。 而且这些从MySQL的适用场景来说,本身就是一些硬性的限制和瓶颈。

    其次我觉得下面的一些点是MySQL待改进的地方。

    • 网络服务不支持多端口

      我们使用习惯了可能就不会有疑问了,但是如果跳出来看这个现象就会发现其实本身这一块是比较薄的需求,能够支持多端口也就意味着我们的服务也可以做到不同粒度的访问控制了。

    • MySQL的角色配置不明确

      在Oracle,Redis里面,数据库会有一个明确的属性Role,在MySQL里面可能和它的扩展性设计有关,是没有这样一个明确的定义的,目前我们通过应用层把MySQL的角色定义为Master,Slave,Relay,SingleDB,其中Relay和Single是Master和Slave之间的两种状态,如果能够支持Master或者Slave,其实这一块的处理方式也会简单许多,使用show processlist,show slave hosts,show slave status的方式还是比较繁琐,因为信息监测通常都是单向的,如果能够通过属性或者配置的方式得到一个统一的信息是很不错的体验。

    • 主从数据延迟的改进空间

      MySQL在Slave端的从库延迟如果要完全参考seconds_behind_master是会出问题的,这一块pt是有另外一种设计思路,在这个参数的使用上,其实目前也是一种临界状态,可以和同步模式下的一些差异来有所区别。

    • binlog的状态信息不够丰富

      如果使用show binary logs看待一些binlog的状态,其实会发现里面明显少了一类信息,那就是时间戳,有了时间戳的信息,其实是很容易鉴别出一些数据量的增长情况的,目前来看,要筛选不同时间段的binlog信息,只能通过系统层面来看了。 

    • 优化器比较薄弱

      优化器的部分是MySQL近些年改进的一个重点,相比于原来确实改进了不少了。不过相比来说,还是比较脆弱的,新一些的版本有了一些新增的hints。

    • server_id太死板

      MySQL的server_id配置其实限制蛮大,需要指定格式,并在长度范围以内,如果能够支持类似域名的方式或者更具有系统属性的值对于server_id的管理会更加清晰,所以除非一些大厂会明确的定义server_id的算法,其实对很多公司的使用都是默认使用端口或者端口和IP的简单数据计算,通过结果要反推出原本的一些信息是很难的。

    • 等待模型还处在初级阶段

        MySQL监控层一直想做的一个指标是类似DB time的一个东西,这个指标的含义是能够标识数据库服务的整体负载量,因为目前通过业务巡检的建设,发现通过QPS,TPS,连接数,刷页频率等指标单一去统计是很难以去界定负载的一个整体情况的,而Oracle的设计思想是等待模型,在MySQL层面还在初步的建设阶段,我看好后期的sys schema,是一个很亮点的部分。

    • 执行计划信息比较粗

      MySQL的执行计划信息是比较简略的,相比于一些商业数据库的执行计划信息,会少很多的参考数据辅助,在分析问题的时候还是会有一些瓶颈。后期的一个改进是和JSON对接,在本身的信息采集和分析上还是有不小的空间。

    • 统计信息粒度和直方图

      直方图是对于执行计划输出信息的准确度的一个体现方式,这块在8.0有了这个特性,在统计信息的粒度上也可以持续发力。

    • 数据增量刷新

      如果要对MySQL表的数据做增量刷新,数据库层是本身不提供这样一套平滑的方案的,当然有其他第三方的方案或者是使用触发器等方式实现,在这个地方,MySQL的实现思路其实和Oracle不同,但是设计思路是类似的,都是空间换时间。

    • mysql的redo用途改进

           MySQL的redo对很多同学感觉是比较低调,它从来不会“出差”,只负责底层的数据写入,保证异常恢复,redo的使用在有些大公司有了明确的用途,对于数据复制还是大有帮助,物理的和逻辑的还是差别大了。

    • 没有快照,问题诊断可参考信息太少

      在性能优化的时候,总是会发现MySQL能够提供的原始信息比较少,如果监控信息不全面,我们是没法完全定位到一个指定时间段的负载明细,行业也有第三方的一些实现,不过效果还是很受限。

    展开全文
  • 2.拓展1:想要soup到某个元素,且该元素对应class中含有多个值,我们可以根据class中元素出现规律,找到共性出现元素去编写soup中内容。 例如 想soup中class可以找到相关规律,发现想找元...

    代码编写思路:

    学习知识点:

    1.class=a b(a假设是字体-宋体,b是颜色-蓝色;class中可以同时有两个参数a,b(宋体+蓝色),两者用空格隔开即可)

    2.拓展1:想要soup到某个元素,且该元素对应class中含有多个值,我们可以根据class中元素出现的规律,找到共性出现的元素去编写soup中内容。

    例如 想soup中的class可以找到相关规律,发现想找的元素对应class中都含有“l_post_bright”那么写成以下形式即可找到相关的元素对应内容。

    soup.find_all('div', class_="l_post_bright") 即可。

     

     

    百度贴吧-中国好声音评论爬爬

     1 # coding=utf-8
     2 import csv
     3 import random
     4 import io
     5 from urllib import request,parse,error
     6 import http.cookiejar
     7 import urllib
     8 import re
     9 from bs4 import BeautifulSoup
    10 
    11 # 爬爬网址
    12 #homeUrl ="http://tieba.baidu.com" #贴吧首页
    13 subUrl = "http://tieba.baidu.com/f?kw=%E4%B8%AD%E5%9B%BD%E5%A5%BD%E5%A3%B0%E9%9F%B3&ie=utf-8&pn=0" #中国好声音贴吧页面
    14 #childUrl="http://tieba.baidu.com/p/5825125387" #中国好声音贴吧第一条
    15 
    16 #存储csv文件路径
    17 outputFilePath = "E:\script\python-script\laidutiebapapa\csvfile_output.csv"
    18 
    19 def GetWebPageSource(url):
    20 
    21     values = {}
    22     data = parse.urlencode(values).encode('utf-8')
    23 
    24     # header
    25     user_agent = ""
    26     headers = {'User-Agent':user_agent,'Connection':'keep-alive'}
    27 
    28     # 声明cookie 声明opener
    29     cookie_filename = 'cookie.txt'
    30     cookie = http.cookiejar.MozillaCookieJar(cookie_filename)
    31     handler = urllib.request.HTTPCookieProcessor(cookie)
    32     opener = urllib.request.build_opener(handler)
    33 
    34     # 声明request
    35     request=urllib.request.Request(url, data, headers)
    36     # 得到响应
    37     response = opener.open(request)
    38     html=response.read().decode('utf-8')
    39     # 保存cookie
    40     cookie.save(ignore_discard=True,ignore_expires=True)
    41 
    42     return  html
    43 
    44     # 将读取的内容写入一个新的csv文档
    54 # 主函数
    55 if __name__ == "__main__":
    56     #outputString = []
    57     maxSubPage=2 #中国好声音贴吧翻几页设置?
    58     m=0#起始页数
    59     with open("E:\script\python-script\laidutiebapapa\csvfile_output.csv", "w", newline="", encoding='utf-8') as datacsv:
    60         headers = ['title', 'url', 'comment']
    61         csvwriter = csv.writer(datacsv, headers)
    62         for n in range(1, int(maxSubPage)):
    63             subUrl = "http://tieba.baidu.com/f?kw=%E4%B8%AD%E5%9B%BD%E5%A5%BD%E5%A3%B0%E9%9F%B3&ie=utf-8&pn=" + str(m) + ".html"
    64             print(subUrl)
    65             subhtml = GetWebPageSource(subUrl)
    66             #print(html)
    67             # 利用BeatifulSoup获取想要的元素
    68             subsoup = BeautifulSoup(subhtml, "lxml")
    69             #打印中国好声音贴吧页标题
    70             print(subsoup.title)
    71             #打印中国好声音第一页贴吧标题
    72             all_titles = subsoup.find_all('div', class_="threadlist_title pull_left j_th_tit ")  # 提取有关与标题
    73             for title in all_titles:
    74                 print('--------------------------------------------------')
    75                 print("贴吧标题:"+title.get_text())#贴吧各标题题目
    76                 commentUrl = str(title.a['href'])
    77                 #print(commitment)
    78                 #评论页循环需要改改,maxchildpage
    79                 childPage = 1#评论页翻页变量
    80                 maxChildPage = 6#【变量】几页就翻几页设置?
    81                 for n in range(1, int(maxChildPage)):
    82                     childUrl = "http://tieba.baidu.com" + commentUrl +"?pn=" + str(childPage)
    83                     print("贴吧Url:"+childUrl)
    84                     childhtml = GetWebPageSource(childUrl)
    85                     childsoup = BeautifulSoup(childhtml, "lxml")
    86                     all_comments = childsoup.find_all('div', class_="d_post_content_main")  # 提取有关与评论
    87                     for comment in all_comments:
    88                         print("用户评论:" + comment.get_text())  # 贴吧各标题题目
    89                         #outputString.append([title.get_text(), childUrl, comment.get_text()])
    90                         csvwriter.writerow([title.get_text(), childUrl, comment.get_text()])
    91                     print('--------------------------------------------------')
    92                     childPage = childPage + 1
    93                 m = m + 50  # 翻页控制,通过观察发现,每页相差50
    

    跑完了成果图

    csv文档中效果

    上方生成的csv文件通过txt记事本打开另存为ANIS编码方式,然后在通过csv打开就不会再乱码了,解决csv打开乱码问题相关可以参考博文:https://www.cnblogs.com/zhuzhubaoya/p/9675203.html

     ----------------------------------------------------------------------------------------

    升级版-待完善代码:

    # coding=utf-8
    import csv
    import random
    import io
    from urllib import request,parse,error
    import http.cookiejar
    import urllib
    import re
    from bs4 import BeautifulSoup
    
    # 爬爬网址
    #homeUrl ="http://tieba.baidu.com" #贴吧首页
    subUrl = "http://tieba.baidu.com/f?kw=%E4%B8%AD%E5%9B%BD%E5%A5%BD%E5%A3%B0%E9%9F%B3&ie=utf-8&pn=0" #中国好声音贴吧页面
    #childUrl="http://tieba.baidu.com/p/5825125387" #中国好声音贴吧第一条
    
    #存储csv文件路径
    outputFilePath = "F:\Python\scripts\pestpapa\csvfile_output.csv"
    
    def GetWebPageSource(url):
    
        values = {}
        data = parse.urlencode(values).encode('utf-8')
    
        # header
        user_agent = ""
        headers = {'User-Agent':user_agent,'Connection':'keep-alive'}
    
        # 声明cookie 声明opener
        cookie_filename = 'cookie.txt'
        cookie = http.cookiejar.MozillaCookieJar(cookie_filename)
        handler = urllib.request.HTTPCookieProcessor(cookie)
        opener = urllib.request.build_opener(handler)
    
        # 声明request
        request=urllib.request.Request(url, data, headers)
        # 得到响应
        response = opener.open(request)
        html=response.read().decode('utf-8')
        # 保存cookie
        cookie.save(ignore_discard=True,ignore_expires=True)
    
        return  html
    
        # 将读取的内容写入一个新的csv文档
    # 主函数
    if __name__ == "__main__":
        #outputString = []
        maxSubPage=2 #中国好声音贴吧翻几页设置?
        m=0#起始页数
        with open("F:\Python\scripts\pestpapa\csvfile_output.csv", "w", newline="", encoding='utf-8') as datacsv:
            headers = ['title', 'url', 'comment']
            csvwriter = csv.writer(datacsv, headers)
            for n in range(1, int(maxSubPage)):
                subUrl = "http://tieba.baidu.com/f?kw=%E4%B8%AD%E5%9B%BD%E5%A5%BD%E5%A3%B0%E9%9F%B3&ie=utf-8&pn=" + str(m) + ".html"
                print(subUrl)
                subhtml = GetWebPageSource(subUrl)
                #print(html)
                # 利用BeatifulSoup获取想要的元素
                subsoup = BeautifulSoup(subhtml, "lxml")
                #打印中国好声音贴吧页标题
                print(subsoup.title)
                #打印中国好声音第一页贴吧标题
                all_titles = subsoup.find_all('div', class_="threadlist_title pull_left j_th_tit ")  # 提取有关与标题
                for title in all_titles:
                    print('--------------------------------------------------')
                    print("贴吧标题:"+title.get_text())#贴吧各标题题目
                    commentUrl = str(title.a['href'])
                    #print(commitment)
                    #评论页循环需要改改,maxchildpage
                    childPage = 1#评论页翻页变量
                    maxChildPage = 6#【变量】几页就翻几页设置?
                    csvwriter.writerow(['title', 'url', 'comment'])
                    for n in range(1, int(maxChildPage)):
                        childUrl = "http://tieba.baidu.com" + commentUrl +"?pn=" + str(childPage)
                        print("贴吧Url:"+childUrl)
                        childhtml = GetWebPageSource(childUrl)
                        childsoup = BeautifulSoup(childhtml, "lxml")
                        #all_comments = childsoup.find_all('div', class_="d_post_content_main")  # 提取有关与评论
                        allCommentList = childsoup.find_all('div', class_="l_post_bright")
                        for n in allCommentList:
    
                            authorName = n.find_all('li', class_="d_name")
                            for i in authorName:#写成for循环可以规避报错,如果有,走0条,不会报错。
                                print("作者:" + i.get_text().strip())
                            authorLev = n.find_all('div', class_="d_badge_lv")
                            for i in authorLev:
                                print("等级:" + i.get_text().strip())
    
                            all_comments = n.find_all('div', class_="d_post_content_main")
                            for comment in all_comments:
                                print("评论:" + comment.get_text().strip())
                                csvwriter.writerow([title.get_text(), childUrl, comment.get_text()])
                            print('--------------------------------------------------')
                        childPage = childPage + 1
                    m = m + 50  # 翻页控制,通过观察发现,每页相差50

     ————————————————————————————————————————————————————————————————————————————

    完善后代码:

    # coding=utf-8
    import csv
    from urllib import request,parse
    import http.cookiejar
    import urllib
    from bs4 import BeautifulSoup
    
    # 爬爬网址
    #homeUrl ="http://tieba.baidu.com" #贴吧首页
    subUrl = "http://tieba.baidu.com/f?kw=%E4%B8%AD%E5%9B%BD%E5%A5%BD%E5%A3%B0%E9%9F%B3&ie=utf-8&pn=0" #中国好声音贴吧页面
    #childUrl="http://tieba.baidu.com/p/5825125387" #中国好声音贴吧第一条
    
    #存储csv文件路径
    outputFilePath = "E:\script\python-script\laidutiebapapa\csvfile_output.csv"
    
    def GetWebPageSource(url):
    
        values = {}
        data = parse.urlencode(values).encode('utf-8')
    
        # header
        user_agent = ""
        headers = {'User-Agent':user_agent,'Connection':'keep-alive'}
    
        # 声明cookie 声明opener
        cookie_filename = 'cookie.txt'
        cookie = http.cookiejar.MozillaCookieJar(cookie_filename)
        handler = urllib.request.HTTPCookieProcessor(cookie)
        opener = urllib.request.build_opener(handler)
    
        # 声明request
        request=urllib.request.Request(url, data, headers)
        # 得到响应
        response = opener.open(request)
        html=response.read().decode('utf-8')
        # 保存cookie
        cookie.save(ignore_discard=True,ignore_expires=True)
    
        return  html
    
    #打印子贴吧评论区
    def PrintUserComment(childUrl):
        childhtml = GetWebPageSource(childUrl)
        childsoup = BeautifulSoup(childhtml, "lxml")
    
        allCommentList = childsoup.find_all('div', class_="l_post_bright")
        for n in allCommentList:
            print('--------------------------------------------------')
            authorName = n.find_all('li', class_="d_name")
            for i in authorName:  # 写成for循环可以规避报错,如果有,走0条,不会报错。
                authorName = i.get_text().strip()
                print("作者:" + authorName)
            authorLev = n.find_all('div', class_="d_badge_lv")
            for i in authorLev:
                authorLev = i.get_text().strip()
                print("等级:" + authorLev)
    
            all_comments = n.find_all('div', class_="d_post_content_main")
            for comment in all_comments:
                commentRes = comment.get_text()
                print("评论:" + comment.get_text().strip())
                csvwriter.writerow([titleName, childUrl, authorName, authorLev, commentRes])
            print('--------------------------------------------------')
    
    # 主函数
    if __name__ == "__main__":
    
        # 几个控制变量初值定义
        m = 0  # 起始页数
        maxSubPage = 2  # 中国好声音贴吧翻几页设置?
        maxChildPage = 6  # 【变量】几页就翻几页设置?
    
        # 开始遍历贴吧内容,顺序:父贴吧-子贴吧-评论区,并将以下子贴吧评论内容写入csv文件
        with open("E:\script\python-script\laidutiebapapa\csvfile_output.csv", "w", newline="", encoding='utf-8') as datacsv:
            headers = []
            csvwriter = csv.writer(datacsv, headers)
    
            # 父贴吧页面处理
            for n in range(1, int(maxSubPage)):
                subUrl = "http://tieba.baidu.com/f?kw=%E4%B8%AD%E5%9B%BD%E5%A5%BD%E5%A3%B0%E9%9F%B3&ie=utf-8&pn=" + str(m) + ".html"# 父贴吧链接
                print(subUrl)
                subhtml = GetWebPageSource(subUrl)
                subsoup = BeautifulSoup(subhtml, "lxml")
                print(subsoup.title)# 打印父贴吧标题
    
                # 遍历父贴吧下子贴吧标题
                all_titles = subsoup.find_all('div', class_="threadlist_title pull_left j_th_tit ")  # 提取有关与标题
                for title in all_titles:
                    titleName = title.get_text()
                    print("贴吧标题:"+titleName)# 打印中国好声音父贴吧页各子贴吧title
                    commentUrl = str(title.a['href'])# 取子贴吧网址链接规律值'href'
                    csvwriter.writerow(['贴吧标题', '链接', '用户姓名', '用户等级', '评论'])# 定义打印评论csv文件标题行
    
                    childPage = 1  # 评论页翻页变量
                    # 遍历子贴吧下评论页
                    for n in range(1, int(maxChildPage)):
                        childUrl = "http://tieba.baidu.com" + commentUrl +"?pn=" + str(childPage)
                        print("贴吧Url:"+childUrl)
    
                        # 打印子贴吧评论区
                        PrintUserComment(childUrl)
                        childPage = childPage + 1
                    m = m + 50  # 翻页控制,通过观察发现,每页相差50

    运行后效果:

    自动生成csv效果(如果乱码需要按照上面的方法进行转码后再打开就OK了):

     

    转载于:https://www.cnblogs.com/zhuzhubaoya/p/9675376.html

    展开全文
  • 各位社区成员,我们在9月初发布了《社区功能开发招募:极客头条Chrome扩展》帖子,主要是面向社区招募快速分享内容到极客头条Chrome扩展开发者。令人兴奋是,帖子在贴出几小时内就有数位开发者愿意参与这一活动...

    各位社区成员,

    我们在9月初发布了《社区功能开发招募:极客头条Chrome扩展》帖子,主要是面向社区招募快速分享内容到极客头条的Chrome扩展开发者。

    令人兴奋的是,帖子在贴出几小时内就有数位开发者愿意参与这一活动!鉴于项目较小,为了避免浪费过多开发力量,我们也快速停止了招募活动。最终我们选定4位开发者分成Chrome、Firefox两个小组分别开发。Chrome和Firefox在极客头条访问比例最大,没想到一下子都解决了。

    经过近20多天的开发,目前都有了比较可用的版本,我们决定今天发布这两款插件源码。社区开发者很热情,他们与CSDN产品负责人不断保持积极沟通,有的甚至在短短3天内就搞出了可用版本。在此,对他们的努力表示感谢!礼品奖励,会在国庆节后寄出。

    当然,在社区协作开发方面,我们经验还不太丰富,致使开发进度延期很多。比如,开发需求文档和应用开发接口前期准备不足……仔细一想,项目虽小,但获得的经验却都值得认真总结。这次活动,也使得我们深刻体会到了社区的力量。

    下面是Chrome及Firefox扩展源码地址:

    虽然功能可用,但还在交互等方面存在些许小问题。我们认为不宜过于着急推送到官方扩展商店。这里,希望各位开发者帮助解决GitHub上的那些ISSUE。

    爱折腾的社区成员也可以先尝尝鲜。在使用过程中,如有问题或改进建议,都可以直接在GitHub上提交ISSUE。

    展开全文
  • 改进的算法采用特征点局部纹理模型和AAM全局纹理模型结合的方法来最优化AAM初始形状参数,并在此前提下对AAM匹配模板进行升级,使其更接近匹配图像的信息。在精确的匹配模板和优化的初始形状参数下,匹配的最终...
  • <h4>clear做了啥?</h4> <p><code>clear<...做的工作很简单:把输入的下一行移动到左上角。...所以你看,它根本没有真正对终端的内容进行清除,只不过是将其藏起来了。<...

    <h4>clear做了啥?</h4> <p><code>clear</code>做的工作很简单:把待输入的下一行移动到左上角。 <br />所以你看,它根本没有真正对终端的内容进行清除,只不过是将其藏起来了。</p> <h5>如何实现clear</h5> <h6>Linux的终端控制序列</h6> <p>Linux控制台实现了VT102和ECMA-48/ISO 6429/ANSI X3.64终端控制的子集,详见:<a href="http://manpages.ubuntu.com/manpages/quantal/en/man4/console_codes.4.html">console_codes - ubuntu man page</a>。 <br />Linux使用<strong>ANSI escape code</strong>方式来描述其控制序列,详见:<a href="http://en.wikipedia.org/wiki/ANSI_escape_code">ANSI escape code - Wikipedia</a>。 <br />简而言之,使用<code>ESC</code>符号开始的一串字符序列会被解析成控制序列,多数控制序列由<strong>CSI(control sequence introducer)</strong>开始,由<code>ESC [</code>来表示。</p> <h6>使用printf命令实现clear</h6> <p><code>printf</code>支持终端控制序列,其中<code>ESC</code>可以用<code>\e</code>转义符表示。</p> <p><a href="http://manpages.ubuntu.com/manpages/quantal/en/man4/console_codes.4.html">console_codes - ubuntu man page</a>中给出了一个表(节选):</p> <p>Sequences <br />Name <br />Describe</p> <p>ESC @ <br />ICH <br />Insert the indicated # of blank characters.</p> <p>ESC A <br />CUU <br />Move cursor up the indicated # of rows.</p> <p>ESC B <br />CUD <br />Move cursor down the indicated # of rows.</p> <p>ESC C <br />CUF <br />Move cursor right the indicated # of columns.</p> <p>ESC D <br />CUB <br />Move cursor left the indicated # of columns.</p> <p>ESC E <br />CNL <br />Move cursor down the indicated # of rows, to column 1.</p> <p>ESC F <br />CPL <br />Move cursor up the indicated # of rows, to column 1.</p> <p>ESC G <br />CHA <br />Move cursor to indicated column in current row.</p> <p>ESC H <br />CUP <br />Move cursor to the indicated row, column (origin at 1,1).</p> <p>ESC J <br />ED <br />Erase display (default: from cursor to end of display).</p> <p>ESC [ 1 J <br />erase from start to cursor.</p> <p>ESC [ 2 J <br />erase whole display.</p> <p>维基百科中<a href="http://en.wikipedia.org/wiki/ANSI_escape_code">ANSI escape code - Wikipedia</a>中也说到:</p> <blockquote> <p><strong>CSI 2 J</strong> — This clears the screen and, on some devices, locates the cursor to the y,x position 1,1 (upper left corner).</p> </blockquote> <p><code>CSI 2 J</code>或<code>ESC [ 2 J</code>指令会在清除屏幕后将光标移动到第一行第一列(左上角)。 <br />结合<code>printf</code>,得出以下命令:</p> <pre><code>printf &quot;\e[2J&quot;</code></pre>

    <p>不知道是不是Linux水土的问题,这个命令执行效果和描述不太一样,其实际效果是将当前行顶出屏幕外(负一行),并打印若干空白行(尼玛)。</p>

    <p>为了修正这个问题,我们看到有个指令<code>ESC H</code>,描述如下:</p>

    <blockquote> <p>Move cursor to the indicated row, column (origin at 1,1).</p> </blockquote>

    <p>于是我们可以借助这个指令来完善我们的功能,修改如下:</p>

    <pre><code>printf &quot;\e[H\e[2J&quot;</code></pre>

    <p>这下终于完成我们<strike>坑爹</strike>的<code>clear</code>命令。</p>

    <h4>难道就只是这样吗?</h4>

    <p><code>clear</code>命令这么坑爹Linus Torvalds知道吗?

    <br /><img title="" alt="enter image description here" src="http://image15-c.poco.cn/mypoco/myphoto/20140329/13/437946412014032913331296THX.jpg" /></p>

    <h5>实现一个真正意义上的clear</h5>

    <p>在<a href="http://manpages.ubuntu.com/manpages/quantal/en/man4/console_codes.4.html">console_codes - ubuntu man page</a>中发现了另一个东西:</p>

    <p>Sequences <br />Name

    <br />Describe</p>

    <p>ESC c <br />RIS

    <br />Reset</p>

    <p>重置你的终端来达到清除内容的效果。</p>

    <pre><code>printf &quot;\ec&quot;</code></pre>

    <p>真是一个简单又暴力的方法。 <br />推荐写成shell脚本并移动到<em>/usr/bin/</em>目录下。</p>

    <hr />

    <blockquote> <p>@<a href="http://mrlyc.blogspot.com/">LYC</a>

    <br />转载请注明<a href="http://mrlyc.blogspot.com/">出处</a>。</p></blockquote>
    

    转载于:https://my.oschina.net/IMLYC/blog/225316

    展开全文
  • 在写作和发表论文前,这篇博客不会介绍任何实质性的内容,仅为展示对当前基于大气光传播模型和暗通道先验的主流去雾算法中的几处误区或是不合理的地方进行修正后(并加了简单的预处理)获得的去雾效果图(算法比何...
  • 3, 我的工作目前还有那些待改进的地方? 领导听取工作汇报, 一般比较关注你工作的内容, 成果等, 突出以上三点就能够快速的给对方讲解清楚了你工作的中心思想. 二 如何向老板汇报为什么要做项目的套路? 首先...
  • 此五笔输入法是用hhhhwwww改进的输入法生成器制作而成,是他的开拓性的工作,使本输入法臻于完美。 此五笔输入法安装包集成的输入法设置工具imetool是由Silence开发的,此工具可以方便地调节输入法的外观和操作参数...
  • 改进方案博客汇总

    2015-05-26 22:06:00
    9-652 界面与功能都非常齐全,有各个层次分明模板,比如...“荒野大镖客”回复:首先谢谢大家对于我们工作认可,针对你们说问题,我们组解决方法是,虽然仍然不联网,但是加入了页面内容从文件读取功能...
  • atom-tasks, 在 Atom 中,处理任务/办事项文件 2.0中新增的内容归档任务热键现在是 cmd-shift-a可以将非任务行转换为任务在较大的文件中优化性能改进的behind-the-scenes代码颜色改进( 也在浅色主题中测试)换行...
  • 我们的宗旨是给客户提供一套持久更新、功能全面、操作便捷的供大众使用的内容管理系统,我们希望我们的产品能够让你从繁琐的、复杂的、低效的网站建设和维护中解脱出来!易贝网站内容管理系统媒体版 6.4.7 更新日志...
  • 想作ASP.NET(1.0,SQLServer2000)的培训,请问一下培训的内容和顺序,以及培训的侧重点,和占用的时间比重。分为两类:(1)会一种面向对象编程语言基本语法的。(2)ASP,JSP转过来的。不针对没有基础的。请教大家刚...
  • 栏目 内容的ajax调用新增 模板主题新增 手机版新增 栏目页内容页获取顶级栏目id改进 目录结构改进 审核按钮样式改为黄色改进 缓存自动清理方式改进 超级管理员账号密码重置流程改进 优化路由改进 优化后台内容管理...
  • 目前学习过程中存在的困难,待解决或待改进的问题 接下来的目标 一、本章内容小结:  (1)顺序表  顺序表一般表现为数组,使用一组地址连续的存储单元依次存储数据元素  (1)长度固定,必须在分配内存...
  • 目前学习过程中存在的困难,待解决或待改进的问题 接下来的目标 一、本章内容小结:(栈与队列)  (1)基本概念: 栈(Stack):只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表,但是限定...
  • 需要更多的改进和更好个性化体验。 安装 克隆项目 git clone git@github.com:ajaxtown/linkcast.git 进入目录 cd linkcast 安装所有软件包/依赖项 npm install 跑 npm run dev 导航至chrome://extensions/ 点击...
  • 梳排序:对冒泡排序的改进,类似于冒泡和希尔结合。 内省排序:非单一排序,是快排+插入+堆排结合,主体框架是快排,采用递归实现: 当递归达到一定层数时,采用堆排序,以避免递归层数太深占用内存过大,...
  • 基本思想是,通过一趟排序将排序记录分割成两个独立部分,其中一部分记录关键字均比另一部分关键字小,在分成两个部分之后则可以分别对这两个部分继续进行排序,从而使整个序列有序。快速排序算法...
  • 改进(Improvement) 1、在站点设置里可以增加手机模板修改,不用到站点管理里修改。 2、sql脚本增加commit语句,避免因为执行脚本时为提交导致数据没有正确插入。 3、pom.xml里增加tomcat7启动插件,方便希望使用...
  • Jspxcms网站内容管理系统 安装包 v9.0.0 tomcat版 更新日志 改进(Improvement) 1、在站点设置里可以增加手机模板修改,不用到站点管理里修改。 2、sql脚本增加commit语句,避免因为执行脚本时为提交导致数据没有...
  • 一、文档说明 文档主要对项目程序进行说明和描述程序思想。 程序功能 程序思想 程序源码 注意之处(程序中比较难理解... 待改进之处(能使得效果更好地方) 二、程序内容 1. main()函数 ...
  • 目前学习过程中存在的困难,待解决或待改进的问题 接下来的目标 1、你对本章内容的小结 线性表是整个数据结构课程的重要基础: (1)逻辑结构特性:数据元素之间存在着线性关系。 (2)两类存储结构:...
  • 一、文档说明 ... 待改进之处(能使得效果更好地方) 二、程序内容 1. main()函数 程序功能 首先,利用Adaboost算法检测人脸,紧接着根据人脸先验知识分割出大致人眼区域。然后,对人眼大致区...
  • 码农日志12.5

    2017-12-05 21:55:23
    今日学习内容: 1. 论文写作 关于introduction部分分类 2.概率统计基础知识 贝叶斯原理 3.计划对于博客组织形式进行改进,具体内容待调整
  • 该算法在搜索规则上有以下改进:通过图像结构信息将图像内容划分为一个数据集, 再通过粗糙数据推理扩充修复块信息量, 扩大匹配块可寻范围, 以此搜索匹配块, 修复破损图像。结果表明, 与经典Criminisi算法相比, ...
  • 待改进未实现想法 GitHub源代码 项目需求 设计一个基于Socket或基于HTTPserver,服务内容是提供一种简单key/value映射关系管 理与查询 以下全部操作都是通过结构体Node来传递: struct....
  • key-value 多线程服务器Linux C++实现

    千次阅读 2015-07-17 15:09:58
    待改进 GitHub源码项目需求 设计一个基于Socket或基于HTTP服务器,服务内容是提供一种简单key/value映射关系管 理与查询 下面所有操作都是通过结构体Node来传递: struct Node { char key[KEY_SIZE...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 191
精华内容 76
关键字:

待改进的内容