Blog

  • vim时按了CTRL+S键

    使用vim 无意中又按了一下CTRL+S,vim表现是按任何键都没有用。

    问题的原因: CTRL+S表示停止向终端输出; CTRL+Q恢复向终端输出.

    Ctrl-S is scroll-lock on, and Ctrl-Q is scroll lock off.

     

  • openvz的命令行操作

    http://pve.proxmox.com/wiki/OpenVZ_Console

    主要命令为vzlist, vzctl, vzdump, vzrestore

    查看所有已经开启的虚拟机

    vzlist

    查看全部,关闭的虚拟机
    -a, –all list all containers
    -S, –stopped list stopped containers

    创建id号为1000,模板为centos-5,配置文件为basic,ip地址为192.168.1.200

    vzctl create 1000 --ostemplate centos-5 --config basic
    vzctl set 1000 --ipadd 192.168.1.200 --save
    vzctl start 1000

    删除id号为110的虚拟机

    vzctl destroy 110

    限制cpu和pty的To set number of processes barrier/limit to 80/100, and PTY barrier/limit to 16/20 PTYs:

    vzctl set 1000 --numproc 80:100 -t 16:20 --save

    在id号为1000的虚拟机中执行ls -la

    vzctl exec 1000 'ls -la / | sort'

    进入id号为108的虚拟机

    vzctl enter 108

    进入到id号为1000的虚拟机同时执行apt-get install vim,不会自动退出

    vzctl enter 1000 --exec apt-get install vim

    需要自动退出可使用

    vzctl enter 1000 --exec "apt-get install vim && logout"
    vzctl enter 1000 --exec "apt-get install vim ; logout"

    关闭虚拟机

    vzctl stop 1000

    进入到虚拟机内部查看虚拟机信息

    /proc/vz/veinfo
    /proc/vz/vestat

  • vimtutor学习笔记

    vimtutor是一个教程,教人学习使用vim,里面有一句很重要的话

    NOTE: As you go through this tutor, do not try to memorize, learn by usage.

    NOTE: Remember that you should be learning by doing, not memorization.

    vim属于工具,要以动手操作为学习目的,而不是去记忆。

    整理一下以前不清晰和新学到的知识点。

     

    Lesson 1.5: TEXT EDITING – APPENDING
    ** Press A to append text. ** 按大写的A,光标移动到当前行最后并切换到插入模式

    Lesson 2.1: DELETION COMMANDS
    ** Type dw to delete a word. ** 将光标移动到一个单词的开头字母,按下dw,删除当前单词及词后空格。

    Lesson 2.2: MORE DELETION COMMANDS
    ** Type d$ to delete to the end of the line. **按下d$,删除从光标位置到行尾的所有字

    Lesson 2.3: ON OPERATORS AND MOTIONS
    vim中很多修改命令是遵从 操作+动作  的。删除即:

    d motion

    那么
    d – 表示删除
    motion – 动作

    以下三个是动作
    w – 删除当前光标至下一个单词之前的字符
    e – 删除当前光标至当前词的末字符
    $ – 删除从光标位置到行尾的所有字符

    NOTE:可以发现如果不按d,则w表示跳到下一个单词的首字符,e表示跳到单词的尾字符,$表示跳到行尾。加数字表示计数,如3w会跳到后面第三个词的首字母,d3w表示删除三个单词。

    Lesson 2.7: THE UNDO COMMAND

    ** Press u to undo the last commands, U to fix a whole line. ** 小u是撤销操作,大U是恢复当前行到初始状态。CTRL-R表示重做,即undo the undo’s.

    Lesson 3.1: THE PUT COMMAND

    ** Type p to put previously deleted text after the cursor. **小p表示put之前操作过(删除,复制)的字符,当然也可以认为是paste。按p,“字符”会被放在光标的后面,“行”会放在当前行的下面。

    Lesson 3.2: THE REPLACE COMMAND

    ** Type rx to replace the character at the cursor with x . **按rx表示替换光标的字符为x。按大写的R会从当前字符替换,输入完成后按esc退出替换状态,详见Lesson 6.3: ANOTHER WAY TO REPLACE

    Lesson 3.3: THE CHANGE OPERATOR

    ** To change until the end of a word, type ce . **按ce会删除当前光标到词尾的字符并切换到插入模式。同样可以使用c$, cw, c3w等操作。

    Lesson 4.1: CURSOR LOCATION AND FILE STATUS

    ** Type CTRL-G to show your location in the file and the file status.
    Type G to move to a line in the file. **CTRL-G显示当前位置的信息,光标的行列等。

    Lesson 4.2: THE SEARCH COMMAND
    ** Type / followed by a phrase to search for the phrase. **搜索方法是/word,如果向下搜索使用小n,向上搜索使用大N;使用?搜索与使用/搜索正好相反。光标在搜索时跳到不同位置,要回到上一位置按CTRL-O 到下一位置按CTRL-I.

    Lesson 4.3: MATCHING PARENTHESES SEARCH

    ** Type % to find a matching ),], or } . **按%跳到),],}的配对。

    Lesson 4.4: THE SUBSTITUTE COMMAND
    ** Type :s/old/new/g to substitute ‘new’ for ‘old’. **替换

    #,#s/old/new/g 从第几行,到第几行将old替换为new

    %s/old/new/g 替换全部文件的old为new
    %s/old/new/gc 在全文件中替换,每一次替换会有提示要求确认。

    Lesson 5.1: HOW TO EXECUTE AN EXTERNAL COMMAND

    ** Type :! followed by an external command to execute that command. **执行:!+shell命令+回车  会执行命令,就不用退出vim再执行命令了。

    Lesson 5.3: SELECTING TEXT TO WRITE

    ** To save part of the file, type v motion :w FILENAME **保存部分文件,先按v,选取需要的行,然后按:w ttt,保存为ttt

    Lesson 5.4: RETRIEVING AND MERGING FILES

    ** To insert the contents of a file, type :r FILENAME **读取文件并插入到文档中,按:r filename会将filename的内容插入到当前文档中。:r !ls表示将ls的结果插入到文档中。

    Lesson 6.5: SET OPTION

    ** Set an option so a search or substitute ignores case **vim中使用“/”搜索,设置搜索高亮(hlsearch)和忽视大小写(ignore case)

    :set hls 搜索高亮

    :set nohlsearch 搜索不高亮

    :set ic 忽视大小写

    :set noic 不忽视大小写

    /abc\c 如果只搜索搜索一次,使用\c表示忽视大小写

    ‘ic’ ‘ignorecase’ 忽略大小写
    ‘is’ ‘incsearch’ 显示与搜索字符串部分匹配的字符串
    ‘hls’ ‘hlsearch’ 高亮所有匹配字符串

    Lesson 7.1: GETTING HELP
    ** Use the on-line help system **获取帮助,输入 :help <ENTER>

    使用CTRL-W在vim的不同窗口切换,使用:q退出当前窗口。 可以直接使用“:help 条目”的格式
    :help w
    :help c_CTRL-D
    :help insert-index
    :help user-manual

    vim还有更多的设置在vimrc中。

  • 我都被哪些东西打扰

    前几天有一个压力测试需求要测一天,执行命令填写一天的分钟数,我就算了一下,一天24小时,算下来是24*60=1440分钟。一天才1440分钟,除去正常的休息和吃的时间还有七八百分钟。而在这七八百分钟的整块时间里我被各种各样的事情像飞刀一样切的全是碎片。

    这些事情包括

    • 看新闻,QQ弹窗,同事提起的新闻
    • 收邮件,自已私人邮箱里的各种活动,促销邮件
    • 社交信息(QQ 微信 微博 twitter),别人的各种状态
    • 购物(京东,易迅,什么值得买,淘宝)
    • 各种电话短信,手机应用的推送消息

    需要将这些东西从习惯中剔除或合理安排专门的时间去看,难点在于对自己有价值的事情就在这些无用事情当中。如果不采取措施自己会越来越吊丝。

    做为一个IT打工者,每周除了固定的上班时间,还需要拿出时间来写工作总结,追美剧,追综艺节目,和朋友一起吃饭,给家里人打电话,真正的“业余时间”还真是不多。

  • 管理多个ssh主机

    现在ubuntu desktop是主力,用过SecureCRT及PAC Manager后,才发现熟悉命令操作后,最单的termial结合ssh config才是最安全好用的。

    在配置文件:

    /home/jpuyy/.ssh/config

    写入以下内容,并设置权限设置为600

    Host 别名
    HostName 主机名
    Port 端口
    User 用户名
    IdentityFile 密钥文件的路径

    如果使用密码登陆需手动输入密码

    例子:

    将本地的/ptwatch放到vps用户目录下(打包->传输->解压)

    tar -vczf - /ptwatch/ | ssh jpuyy@blog 'cd ~; tar vxzf -'

    另外一种方式可以在~/.bashrc使用alias方式定义一个连接某主机的命令

    如:

    alias sshblog='ssh [email protected]'

    设置好之后用source ~/.bashrc使其生效。

    下面是9个非常棒的ssh技巧,个个精妙:

    http://tychoish.com/rhizome/9-awesome-ssh-tricks/

    补充 @2015-1-12

    对于 ssh 客户端不希望启用 key 检测,也不进行提示,在 ~/.ssh/config 中添加如下几行

    UserKnownHostsFile /dev/null
    StrictHostKeyChecking no
    LogLevel ERROR
    

     

    测试 ssh 连通性

    ssh -q aliyun-prod9-ecs-0 exit;
    
  • nginx 504 Gateway Time-out

    在单纯php-fpm+ nginx的情况下,出现这个问题

    说明fastcgi设置超时时间太短

    在fastcgi_params中加入如下语句,问题解决

    fastcgi_buffers 8 128k;
    fastcgi_buffer_size 128k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;