首页 > 代码库 > 系统开发常用命令

系统开发常用命令

基础命令

pbcopy < ~/.ssh/id_rsa.pub 公钥复制到 剪切板(pbcopy)date +%Y-%m-%d   shell 显示格式化的日期强制删除一个文件夹  rm -rf filepath/split -l 1000 data.log data-split-  将文件data.log每1000行切换为一个文件,文件前缀都是data-split-,后面依次是aa、ab、....zz,多用于多进程批量处理文件 

 

文件的解压和压缩

解压   tar -xvf  ***.tar 压缩 tar -cvf ***.tar  路径

 

文件内容排序

sort -u -n -k 2,2 data.log  也可简写为 sort -u -kn2 data.log其中 -k 2,2表示按第2列 排序(起+止),-u是去重,-n是按数字排序

 

vim相关

:%s/^M/\r/g   直接vi打开一个在win环境下产生的csv,可能出现大量^M,该命令可转化为linux下的换行符(即\r 而不是\n),^M要使用 CTRL-V CTRL-M生成:!wc %  计算文件中总的单词量 %表示范围

  删除匹配到关键字的行 g/pattern/d, 删除不匹配的行 g!/pattern/d

 

awk相关

awk {print $1} data.log | awk {for(i=1; i<=NF; i++) freq[$i]++;$i++;} END{for(word in freq) { print word,freq[word]; }}  统计某列取值的分表频率awk中取绝对值,需要自定义函数:awk -F"\t"  function abs(v) {return v < 0 ? -v : v} {if (abs($6-$7)>0.001) print $0} data.log  awk 打印单引号:awk {print "\‘‘"}‘       # 放大: awk ‘{print  "    \       " }

 

文件对比相关

vimdiff <(awk {print $2,$3,$4,$5,$6} ~/data1.log) <(awk {print $2,$3,$4,$5,$6} ~/data2.log)  vimdiff对比2个文件的指定列,注意<是定向符 两个文件交集   comm -12  data1 data2两个大文件的交集   join -1 1 -2 1 data1.sorted data2.sorted // data1, data2均只含1列内容两个文件差集  grep -F -v -f   data1 data2 > diff12 或 comm -2 -3 <(sort data1) <(sort data2) > diff12两个大文件的差集join -v 1 -1 1 -2 1 data1.sorted data2.sorted  // data1-data2

 

mysql相关 

命令行支持子查询:select id from blog where code in (select code from blog where id = 1) and id != 1;查与blog1同属于一个code的其他blog.id将浮点数转化为整数:select (cast(100.123*1000 as DECIMAL(0)))%10将时间戳格式化为指定格式的日期:select from_unixtime(1441014331,%Y%m%d)查询时间戳属于星期几:select dayname(from_unixtime(addtime)) from blog where id = 1;  (1 = Sunday, 2 = Monday, …, 7 = Saturday)

 

系统相关

lsof | grep 8080 查看8080端口对应的进程ps -ef | grep scriptfilename 检查后台是否有某个脚本在执行ps pid查看进程的详细信息 kill pid  强制停掉某个进程

 

服务相关

sudo svstat /service/myservice  查看服务当前状态sudo svc -d /service/myservice 停止sudo svc -u /service/myservice 启动sudo svc -t /service/myservice 重启

 

系统开发常用命令