linux
history | tail -10 最后10条历史命令
查找||为分割符的
grep "wrp_deal_time" * |awk -F '\\|\\|' '{print $1 $16}'
$grep -A 10 'qsm' test.log //打印匹配行的后10行
$grep -B 10 'qsm' test.log//打印匹配行的前10行
$grep -10 'qsm' test.log//打印匹配行的前后10行
linux 下查看进程占用端口:
(1)查看程序对应的进程号: ps -ef | grep 进程名字 Ps -ef 查父进程杀父进程
(2)查看进程号所占用的端口号: netstat -nltp | grep 进程号
ubuntu :查看进程占用端口号:netstat -anp | grep pid
linux 下查看端口号所使用的进程号:
(1)使用 lsof 命令:lsof -i:端口号
vim
vi 按esc 切换为一般模式 ,一般模式下按:切换为命令行模式 按i/o/a/r切换为插入模式
【h(或向左方向键)】 光标左移一个字符
【j(或向下方向键)】 光标下移一个字符
【k(或向上方向键)】 光标上移一个字符
【l(或向右方向键)】 光标右移一个字符
【[Ctrl] + f】 屏幕向下移动一页(相当于Page Down键)
【[Ctrl] + b】 屏幕向上移动一页(相当于Page Up键)
【[0]或[Home]】 光标移动到当前行的最前面
【[$]或[End]】 光标移动到当前行的末尾
【G】 光标移动到文件的最后一行(第一个字符处)
【nG】 n为数字(下同),移动到当前文件中第n行
【gg】 移动到文件的第一行,相当于"1G"
【n[Enter]】 光标向下移动n行
4). 删除文字
x:每按一次,删除光标所在位置的"后面"一个字符。
#x:例如,6x表示删除光标所在位置的"后面"6个字符。
X:大写的X,每按一次,删除光标所在位置的"前面"一个字符。
#X:例如,20X表示删除光标所在位置的"前面"20个字符。
dd:删除光标所在行。
dw 删除光标后一个单词 可以用来对单词进行对齐
全部删除:gg到行首,按esc后,然后dG
* :set nu 显示行首 :! cmd 执行外部命令
* w: 前移一个单词,光标停在下一个单词开头;(向后移动)
* e: 前移一个单词,光标停在下一个单词末尾;(向后移动)
* b: 后移一个单词,光标停在上一个单词开头;(向前移动)
* H: 把光标移到屏幕最顶端一行。
* M: 把光标移到屏幕中间一行。
* L: 把光标移到屏幕最底端一行。
* gg: 到文件头部。
* G: 到文件尾部。
* << 向左缩进一个shiftwidth
* >> 向右缩进一个shiftwidth
* gd: 跳转到局部变量的定义处;
terminal
command + n 新建
command + t 新建标签
command + w 关闭标签
command + 数字 command + 左右方向键 切换标签
command + enter 切换全屏
command + f 查找
command + d 水平分屏
command + shift + d 垂直分屏
command + option + 方向键 command + [ 或 command + ] 切换屏幕
command + ; 查看历史命令
command + shift + h 查看剪贴板历史
ctrl + u 清除当前行
ctrl + l 清屏
ctrl + a 到行首
ctrl + e 到行尾
ctrl + f/b 前进后退
ctrl + p 上一条命令
ctrl + r 搜索命令历史
shell 脚本
log=log/now.log
grep "ot=request_out" $log|grep "hitCache"|
sed 's/spanid=.*time=//' | sed 's/log_id=.*proc_time=//' | #替换
awk -F '\\|\\|' '{print $3,$5,$4}' | #分隔符分割
awk '{
if($2 > a[$1]){a[$1] = $2;b[$1] = $3;c[$1] = $4} #分组取最大值
}END{
for(i in a){print b[i],c[i],i,a[i]}
}'| sort | awk '{print $4}' |sort -n > log/tuses #排序
cat log/tuses | awk '{sum+=$1;cnt++; if($1>_max) { _max = $1 } }END{print "avg:" , sum/cnt , "cnt:", cnt , "max: " , _max}' #统计最大值,总数、总和
num=`wc -l log/tuses | awk '{print $1}'`
cat log/tuses | awk -v num=$num 'BEGIN{
a[ 0.5 ] = 1
a[ 0.6 ] = 1
a[ 0.7 ] = 1
a[ 0.8 ] = 1
a[ 0.85] = 1
a[ 0.9 ] = 1
a[ 0.95 ] =1
a[ 0.99 ] =1
a[ 1 ] =1
}{
rat = sprintf("%.5f",FNR/num) # 当前行数/总行数
for(i in a) {
if(a[i]>0) {
if( rat >= i ) {
print i, ":" , $1
a[i] = 0
}
}
}
}'