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 para;para="";fi;para="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

本文介绍了多种Linux命令行下的实用操作,包括使用sed进行文本编辑、文件内容替换、批量行尾追加、多行合并、网络包捕获、网络流量控制、进程管理、文件权限修改、内存使用查看、日志监控、文件搜索、别名设置、网络黑名单配置、程序版本查询、系统日志路径等。同时,还涵盖了网络带宽检查、进程堆栈信息获取、curl使用、gdb调试coredump以及文件删除和查找等高级技巧。
253

被折叠的 条评论
为什么被折叠?



