sed 文本编辑
- sed 字符串中匹配某个子串
echo $string | sed 's/^.*--port=\([^ ]*\).*$/\1/'
- 替换文件中的内容
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`
sed -i '' "s/oldstring/newstring/g" `grep oldstring -rl yourdir` #mac 专用
- 批量行尾追加行
sed -i '$a aaabbb\ncccddd' test.txt
- 多行合并
cat test | sed “s/[.*]//g” | awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 1}̲' | while read …str" == “” ] ; then echo p a r a ; p a r a = " " ; f i ; p a r a = " para ; para="" ; fi ; para=" para;para="";fi;para="para $str" ; done - sed 替换换行为空格
sed -e ":a;N;$ s/\n/ /g;ba"
- sed 在每行的头添加字符,比如"HEAD",命令如下:
sed 's/^/HEAD&/g' test.file
- sed 在每行的行尾添加字符,比如“TAIL”,命令如下:
sed 's/$/&TAIL/g' test.file
网络相关
- 抓网络包 tcpdump
sudo /usr/sbin/tcpdump -i eth0 -s 0 -l -w - dst port 3332|strings|grep delete
sudo /usr/sbin/tcpdump -i eth0 -s 0 -l -w - src 111.111.111.111 and dst port 3332 |strings | grep delete
-
限速拷贝
- cp: rsync --bwlimit=1024 {src} {dest}
- mv: rsync --bwlimit=1024 --remove-source-files {src} {dest}
-
tcpdump + tcprstat 配合计算 rt (丢包还是挺严重的,不过 avg 值符合预期)
tcpdump -c 100000 -s 0 -i any -w mycap.pcap 'tcp port 3307 and ! host 111.111.111.111 and ! host 222.111.111.111 and ! host 127.0.0.1'
tcprstat -r mycap.pcap -l 111.111.111.111
- 网卡限流
添加限流规则 sudo tc qdisc add dev eth0 root tbf rate 40Mbit latency 100s burst 1000000
rate 速度控制, latency 队列中数据保存时间,burst 队列长度
删除限流规则 sudo tc qdisc del dev eth0 root
查看限流规则 tc -s qdisc show dev eth0
- 端口限流
sudo tc qdisc add dev eth0 root handle 1: htb default 30
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 8kbit burst 15k
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 3307 0xffff flowid 1:1
- 网络黑名单配置
添加IP 黑名单
/sbin/iptables -I INPUT -s XXX.XXX.XXX.XXX -j DROP
/sbin/iptables -I INPUT -p tcp --dport 3307 -j DROP
删除IP 黑名单
iptables -D INPUT -s XXX.XXX.XXX.XXX -j DROP
- 网卡带宽
cat /proc/net/bonding/bond0
其他
-
yum 安装目录
- 查看是否安装:rpm -qa | grep postgresql
- 查看安装目录:rpm -ql postgresql;
-
运行 Jar 包
java -jar -Xmx1024m D:\xxx.jar
-
让命令在后台执行
- nohup … &
- screen
-
查看内存使用情况
free -k/m/g #参数是单位
cat /proc/meminfo
- 看日志
watch -d -n 1 cat
tail -f
- 搜索文件(包括子目录)
find . -name "my*" -ls -type f
-
设置假名
- 添加 alias name=new name
- 删除 unalias name
date -R
-
超级用户获得root权限
sudo bash -c "sudo su"
- 查看文件夹大小
du -sh *
- 查看进程树
pstree -Hpid -p
-
更改文件 owner
- chown -R mysql:dba /u01/zk/ 含义为: /u01/zk/ 目录下的文件的用户为 mysql 用户组为 dba
- chgrp -R 变更用户组
-
查看程序版本
rpm -qa | grep java
-
系统日志目录
- /var/log/messages
-
设置终端字符集
export LANG=zh_CN.utf-8
export LANG=en_US.UTF-8
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
- 查看删除但是占用空间的文件
lsof | grep deleted
- 批量删除文件
find $path -name '.svn' -type f | xargs rm -rf
-
查看进程的运行堆栈信息
- c/c++ 使用 gstack pid
- java 使用 jstack -l pid
-
利用 curl 使用 post 发送 json 参数
curl http://xxxx?opt=add -d "insstr=[{\"instance_name\":\"111.111.111.111:8888\",\"username\":\"zhendong.wang\"}]"
- 使用gdb 调试 core dump
gdb runbin --core=core.30927
- 程序调用堆栈(pocona 工具集)
pt-pmp -p PID
- 批量搜索指定文件的内容
find ./ -type f -name "*.php" -exec grep -l "function xxxxfunction" {} \;
- 启用 coredump
ulimit -c unlimited
gdb -c core.pid program_name
- 求和
cat /tmp/1.log |awk '{sum+=$1} END {print sum}'
- curl 后输出的字符集转换
curl -s "http://xxxxxxx" | iconv -f gbk -t utf8