grep 输出匹配内容
grep -oE sub[0-9]{15} log
-o 只输出匹配内容
-E 扩展的正则表达式匹配
分组统计数量
sort file | uniq -c
sort 参数
-k : 按照指定key进行排下
-r : revert,倒序
-n : number,将用于排序的字符串列当作数字进行处理
sort -k -5rn 按照第五列倒序
ssh 保存known_host,且不询问是否继续连接新地址
在 .ssh/config 文件中加入
host *
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
top 与 free 中的 buffers 和 cached
linux 会将空闲内存用作磁盘文件的缓存使用,用以提升读取速度。
- buffers : 是正在执行的I/O操作的缓冲
- cached : 是已经完成的I/O操作的缓存
参考:
https://askubuntu.com/questions/198549/what-is-cached-in-the-top-command
/tmp 默认删除时间
http://www.opsers.org/base/clean-up-on-the-linux-system-tmp-folder-you-may-want-to-know.html
查找指定文件目录将文件压缩
#!/bin/sh
for logfile in $(find $filePath -regex ".+[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].*.log")
do
echo $logfile
done
curl 命令
增加用户名密码鉴权
curl -X POST –user username:password ‘http:example.com’
查看进程启动时间和运行时间
ps -eo pid,lstart 启动时间
ps -eo pid,etime 运行多长时间.
ps -eo pid,lstart,etime | grep 进程id
随机生成密码
openssl rand -base64 18
shell 字符串操作
${str#} 表示从左边开始删除字符,# 后面跟指定字符串或者通配符,例如 str=xiaomo.wj, ${str#xi}结果为 aomo.wj , ${str#.} 结果为 wj , 一个 # 表示非贪婪模式, ## 表示贪婪模式, str=’/a/b/c/d/e’, ${str#/} 结果为 a/b/c/d/e , ${str##*/} 结果为 e
${str%} 表示从右边开始删除,% 后面是匹配的后缀字符串。
http://www.cnblogs.com/myitm/archive/2012/07/05/2577416.html
http://www.cnblogs.com/pengdonglin137/p/3272361.html
获取所有 es 索引
curl -XGET 127.0.0.1:9200/_cat/indices
yarn 获取集群日志
yarn logs -applicationId application_编号
lsof 列出持有文件句柄的进程
文件被删除,但是文件句柄还被其他进程持有的话,无法释放文件所占用的存储空间
https://blog.csdn.net/ljguo212/article/details/8282133
多主机同时执行命令 polysh
查询 使用端口的进程pid
netstat -anp | grep 端口 | awk '{print $7}' | awk -F"/" '{ print $1 }'
linux本地端口复用
重点:内核是以一个5元信息组来标识不同的socket(源地址、源端口、目的地址、目的端口、协议号) 所以即使本地端口一样,也是可以正常使用连接的(需要设置 SO_REUSEPORT)
https://blog.lilydjwg.me/2015/8/19/tcp-fun.180084.html
spark集群报错
原因是内存不够
executor.CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM
自定列求和
awk '{sum += $8};END {print sum}'
awk '/aaa/ {sum += $2};END {print sum}' test # 对文件test中 第一列为aaa的行求和
lsof 查看端口使用情况
lsof -i:22 #查看22端口连接情况
shell 中特殊变量
$0 这个程式的执行名字
$n 这个程式的第n个参数值,n=1..9
$* 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
$@ 跟$*类似,但是可以当作数组用
nohup 和 & 的差别
nohub 忽略终端关闭信号
& 后台执行进程
nginx 限流策略
- 连接数限流模块ngx_http_limit_conn_module
- 漏桶算法实现的请求限流模块ngx_http_limit_req_module
tar 打包
tar -cf 不压缩打包
tar -zcf 压缩打包
tar -cf --exclude=tomcat/logs 排除指定文件夹
vim 替换指定字符串
:%s/foo/bar/g 使用 bar 替换所有的 foo
# linux 进程间通信
https://blog.csdn.net/gatieme/article/details/50908749
CPU, CPU核数,逻辑CPU个数关系
https://blog.csdn.net/dba_waterbin/article/details/8644626
CPU超线程
https://news.mydrivers.com/1/546/546656.htm
软中断问题排查
https://huoding.com/2013/10/30/296
TCP连接状态详解
LISTEN: 侦听来自远方的TCP端口的连接请求
SYN-SENT: 再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED: 代表一个打开的连接
FIN-WAIT-1: 等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2: 从远程TCP等待连接中断请求
CLOSE-WAIT: 等待从本地用户发来的连接中断请求
CLOSING: 等待远程TCP对连接中断的确认
LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED: 没有任何连接状态
提取时间段内的日志
从第一处匹配开始位置正则的位置,到第一个匹配结束正则的位置 中间的所有日志。
2019-01-17 1[1-8]:[0-9][0-9]:[0-9][0-9] 为开始位置正则 2019-01-17 18:[0-9][0-9]:[0-9][0-9] 为结束位置正则
sed -n ‘/2019-01-17 1[1-8]:[0-9][0-9]:[0-9][0-9]/,/2019-01-17 18:[0-9][0-9]:[0-9][0-9]/p’ logfile
查看进程io情况
sudo yum install iotop
sudo iotop -oP
操作系统64位和32位的区别及原理
ulimit 限制用户资源使用
http://man.linuxde.net/ulimit