Blog

  • xargs使用方法

    xargs用于接收输出并将其做为参数传给后面的命令,如

    ls /etc/hosts | xargs cat

    如果想要编辑多个eth文件

    ls /etc/sysconfig/network-scripts/ifcfg-eth* | xargs vim

    删除过滤到的文件

    ls index.html* | xargs rm -f

     接下来有一个很cool的功能,如果你按行在一个文件中记录了一些id号,想让一列变成两列,可以这样使用

    ➜  ~  cat myfile.txt 
    1
    2
    3
    4
    5
    6
    ➜  ~  xargs -n 2 < myfile.txt 
    1 2
    3 4
    5 6
    

    如果想要全部一行显示,-n后面加一个足够大的数字,则会显示一行

    ➜  ~  xargs -n 10 < myfile.txt
    1 2 3 4 5 6
    

    如果前面的输出为空,不执行后续操作的话,加入 -r 参数

    find . | grep aaa | xargs -r cat

  • 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