Linux 基础命令备忘(二)

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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值