Author: jpuyy

  • wget使用笔记

    wget最早接触到的功能就是下载,做为一个http下载器它还有很多http附加选项, -S 显示 response 头。

    ➜  ~  wget -S http://jpuyy.com
    --2014-05-25 11:12:29--  http://jpuyy.com/
    Resolving jpuyy.com... 54.251.156.114
    Connecting to jpuyy.com|54.251.156.114|:80... connected.
    HTTP request sent, awaiting response... 
      HTTP/1.1 200 OK
      Server: nginx/1.1.19
      Date: Sun, 25 May 2014 03:12:29 GMT
      Content-Type: text/html; charset=UTF-8
      Transfer-Encoding: chunked
      Connection: keep-alive
      Vary: Accept-Encoding
      X-Powered-By: PHP/5.3.10-1ubuntu3.9
      X-CF-Powered-By: WP 1.3.14
      X-Pingback: http://jpuyy.com/xmlrpc.php
    Length: unspecified [text/html]
    Saving to: 'index.html.7'
    
        [  <=>                                  ] 42,347       142KB/s   in 0.3s   
    
    2014-05-25 11:12:30 (142 KB/s) - 'index.html.7' saved [42347]
    

    保存到 jpuyy.html

    wget -O jpuyy.html http://jpuyy.com

    使用上面的方法还是会保存文件,如果再加上 -O ,则会在输入到后面跟的文件中,注意-O后面还有一个减号,表示输出到标准输出中。

    wget -S -O - http://jpuyy.com

    用wget测试gzip压缩的话需要加上

    --header="accept-encoding:gzip"

    wget下载限速,加参数

    --limit-rate=800k

    断点续传,在下载大文件的时候中断了,加 -c 参数重新下载, 如果不加 -c 会重新下载并加上 .1 .2 后缀

    wget -c http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

    后台下载 -b ,tailf wget-log 可以显示下载进度。

    # wget -b -c http://jpuyy.com/software/bigfile.tar.gz
    Continuing in background, pid 4742.
    Output will be written to `wget-log'.
    

    有些网站设定了 user-agent 限制,需要带 user-agent

    wget --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36" http://jpuyy.com/aabbcc
    

    有一些需要下载的 url 时,将 url 写到download-file-list.txt,下载多个文件时可以 -i

    wget -i download-file-list.txt

    当下载大文件或网络不好时,可以增加尝试次数,确保下载成功

    wget --tries=75 DOWNLOAD-URL

    不下载某种类型的文件

    wget --reject=gif WEBSITE-TO-BE-DOWNLOADED

    像爬虫一样访问,可以查看资源的存在情况以及外链。如果加上 -r 会下载整个网站

    wget --spider http://jpuyy.com
    
    wget --spider -r http://jpuyy.com
    
    

    wget 下载整个目录

    wget -r --user="username" --password="password" ftp://10.23.80.2/ --limit-rate=800k  -P /data/ftp/myfiles/

    下载子目录

    wget -r --no-parent http://shareconf.hupu.io/nginx/dace-web-gui-prd/

    wget mirror方式下载整个站, -P 参数指定下载的目录

    wget -m --user="username" --password="password" ftp://10.23.80.2/ -P /data/ftp/myfiles/
  • sublime macOS快捷键

    学习软件提高效率的重点就是使用快捷键

    osx中的特殊键

    ⌘ Command 鍵
    ⌃ Control 鍵
    ⌥ Option 鍵
    ⇧ Shift 鍵
    ⇪ Caps Lock 鍵
    Fn 鍵 功能鍵

    接下来看sublime osx快捷键

    ⌘T 前往文件

    ⌘⇧N 新建窗口

    ⌘L 选择行 (重复按下将下一行加入选择)

    ⌘D 选择词 (重复按下时多重选择相同的词进行多重编辑)

    ⌘[1,2,3…]选择相应标签页

    ⌘F 查找
    ⌘⌥F 替换
    ⌘⌥G 查找下一个符合当前所选的内容
    ⌘⌃G 查找所有符合当前所选的内容进行多重编辑
    ⌘⇧F 在所有打开的文件中进行查找

    ⌃⇧M 选择括号内的内容
    ⌘⇧↩ 在当前行前插入新行
    ⌘↩ 在当前行后插入新行
    ⌃⇧K 删除行
    ⌘KK 从光标处删除至行尾
    ⌘K⌫ 从光标处删除至行首
    ⌘⇧D 复制(多)行
    ⌘J 合并(多)行
    ⌘KU 改为大写
    ⌘KL 改为小写
    ⌘ / 注释
    ⌘⌥ / 块注释
    ⌘Y 恢复或重复
    ⌘⇧V 粘贴并自动缩进
    ⌃ space 自动完成(重复按下选择下一个提示)
    ⌃M 跳转至对应的括号
    ⌘U 软撤销(可撤销光标移动)
    ⌘⇧U 软重做(可重做光标移动)

    control+command+up/down 上下行切换

    control+v 光标跳转到文本的最后(右下角)

    ⌥ 加鼠标左键进行列选取

    Ctrl-Shift-Command-F to enter and leave Distraction-free mode.全局免打扰模式。

    command + R

    php 里 function

    python 里 class def

    指定的类名,函数名都从这里快速定位

    command + P

    查找文件,在输入框里持续输入文件名

    command + D

    选取当前单词

    command + alt + 数字

    可以分屏

    ctrl + G

    跳到指定行

    参考:
    http://sublime-text-unofficial-documentation.readthedocs.org/en/latest/reference/keyboard_shortcuts_osx.html

     

  • 正则表达式语法

    《学习正则表达式》笔记

    ^从开始匹配
    $匹配结束
    \d匹配一个任意阿拉伯数字
    \D匹配一个非数字字符,等价于[^0-9],又等价于[^\d]
    . 匹配任意一个字符,不包含换行和回车
    \d{3}表示出现单个数字的3次,花括号里是出现的次数
    \d{3,5}表示出现单个数字最小3次,最大5次
    ? 出现零次或一次
    + 匹配一个或多个,包含换行和回车
    * 匹配零个或多个
    \w 匹配字母,数字,下划线,等价于[_a-zA-Z0-9]
    \W 匹配非\w匹配的字符,等价于[^_a-zA-Z0-9],又等价于[^\w]
    \s 匹配空格,等价于[ ]
    \S 匹配非空格,等价于[^\s]
    \t 匹配制表符,tab
    \n 匹配换行符
    \r 匹配回车符
    \b匹配单词边界,不消耗任何字符
    匹配小写字母

    按键次数最少则胜

    创建捕获分组(capturing group),用来匹配字符串中的一部分,使用向后引用(back reference),对捕获的分组进行引用。

    $1是perl风格的后向引用

    常用正则表达式

    匹配域名

    grep -oE '(([a-zA-Z](-?[a-zA-Z0-9])*)\.)+[a-zA-Z]{2,}'
    
  • xenserver模板导出 vm复制 vm更名

    通过挂载nfs后,导出导入模板

    xe template-export filename=CentOS55.xva template-uuid=1c26d2dc-8d28-4445-bf80-f1c7d2dfd884
    xe vm-import filename=CentOS55.xva sr-uuid=6b0c60bc-035a-2963-67e1-928a426efed8

    参考:

    https://sites.google.com/site/norandatechnology/xenserver/export-import-template-nfs

    做好的虚拟机经常需要复制,使用如下命令操作

    xe vm-copy vm="ABCServer" sr-uuid=24565487-accf-55ed-54da54993ade784a new-name-label="Copy of ABCServer" new-name-description="New Description"

    虚拟机改名字

    xe vm-param-set name-label=VM-NEW-NAME uuid=`xe vm-list name-label=<vm-actual-name> --minimal`
  • vim替换

    将逗号替换为换行

    :%s/\,/^M/g

    ^M由ctrl+V+M获得

    同理

    :%s/^I/\ /g

    例如将 ,52,53,19,4,5,6 进行如下操作

    :%s/\,/^M192.168.1./g

    则会变成如下的样式

    192.168.1.52
    192.168.1.53
    192.168.1.19
    192.168.1.4
    192.168.1.5
    192.168.1.6
  • linux连接数统计查看

    在日常工作中经常要查看连接数,以下是几个例子

    先安装

    yum install net-tools -y

    统计80端口连接数

    netstat -na | grep -i "80" | wc -l

    统计已连接上的,状态为“established’的连接数

    netstat -na | grep ESTABLISHED | wc -l

    ESTABLISHED来源IP访问量前5名

    netstat -na | grep ESTABLISHED | awk '{print$5}' | awk -F : '{print$1}' | sort | uniq -c | sort -k 1 -n -r | head -n 5

    正在SYN来源IP访问量前5名

    netstat -na | grep SYN | awk '{print$5}' | awk -F : '{print$1}' | sort | uniq -c | sort -k 1 -n -r | head -n 5

    将不同的tcp连接状态打印出来

    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(key in S) print key,"\t",S[key]}'

     

    TIME_WAIT 257 等待所有分组死掉
    SYN_SENT 2 应用已经开始,打开一个连接
    FIN_WAIT1 49 应用说它已经完成
    FIN_WAIT2 60 另一边已同意释放
    ESTABLISHED 509 正常数据传输状态/当前并发连接数
    SYN_RECV 5 一个连接请求已经到达,等待确认
    CLOSING 1 无连接是活动的或正在进行
    LAST_ACK 37 等待所有分组死掉

    netstat 查看 unix socket 使用

    netstat -ntlpx

    参考:http://www.letuknowit.com/post/31.html