自己常用的一些命令集合

Shell是一个强大的东西, 我只能这么去形容它.

下面列举自己常用的一些小技巧, 这个日志会不断的补充进来.

场景一

由于自己用的svn,IntelliJ IDEA,平时需要给别人打一个纯净的包(gz,等),需要去除掉一些本机的一些配置文件,就需要在打包前删除掉.我一般的做法就是一系列的Shell脚本写到一个文件里面,最后放入包bin目录. 最后就可以直接执行名字就OK的. 或者在.bash_profile文件建立alias来 执行.sh文件.

find . -type d -name target | awk '{print "rm -rf "$1}' | sh  
find . -name  '*.iml' | awk '{print "rm "$1}' | sh  
rm -rf .idea  

简单的分析一下每个命令的含义:

  1. find . -type d -name target 找出名字为target文件夹类型,awk '{print "rm -rf "$1}' , 找出第一个参数,并且拼接成"rm -rf 取出的参数", sh, 就是执行管道命令前所有的命令
  2. 就同上了, 只是查找的文件

这样子, 每次在项目中只需要执行idea-rm就可以了.

场景二

因为在大部分公司都有用跳板机来作为线下与生产环境做桥,保证安全性.我们程序员也是经常需要用到生产环境的数据. 在win中有很多的ssh工具,像putty,xshell等等, 感觉都支持打隧道. 其实都是利用的ssh隧道, 我们如何用ssh纯命令的形式来做呢?

ssh -f -N -L 192.168.1.34:8080:node1.cyblogs.com:8080 -p 22 username@10.10.119.10  

简单的分析一下每个命令的含义:

  1. 192.168.1.34:8080: 这里是本地的地址与端口. 就是你代理里面需要配置的properties内容.
  2. node1.cyblogs.com:8080: 这里是目标生产环境的地址与端口,这里也可以用直接的ip. 想知道ip地址,直接ping node1.cyblogs.com, 或者去hosts文件里面看.
  3. -p 22 username@10.10.119.10: 22是ssh端口,一般公司会修改,也有用默认的22. 然后就是用户名与跳板机的地址.
    最后其实很简单这个原理, 就是先线下-->跳板机-->生产环境. 做了一个映射,你访问本机的某个端口,它会将其映射的生产环境中的某个服务.

场景三

在vim中经常需要删除某一块的代码,在很多的情况下需要dd好多次,这样子效率太低了.其实vim有一个键v, 然后按住方向键就可以快速选中. 最后按d. 或者需要复制一大块代码, v + 方向键 + y + p.

场景四

在CentOS中,需要查看服务器CPU是几核?

grep process /proc/cpuinfo | wc -l  

场景五

就是当我们登录到一台服务器之后,都会有一个默认跳转路径,一般我们不设置的话,都是在当前的用户目录. 就是~这个目录. 但是,有时候,我们需要在更多的目录进行文件的操作以及处理. 我们可以手动修改路径.

vim .bashrc  
cd /data0/cyblogs/app/ghost  

场景六 有时候需要统计nginx日志状态码的情况,不同状态码的总数

cat access.log|grep POST|awk '{print $2}'|sort|uniq -c|sort -rn

结果如下:
1536975 200  
     36 500
     21 499
     18 408
     14 502
      8 403
      2 400
      1 404

等待下一次更新...