• *nix杂项收集


    grep 条件或

    grep 'usrquota|grpquota' /etc/fstab ###单引号

    netstat -an | grep -e EST -e WAIT
    并列使用多个 -e参数可以实现或条件

    netstat -an | grep -E "ESTABLISHED|WAIT" 双引号

    如何把一行竖排的数据转换成横排?
    awk '{printf("%s,",$1)}' filename

    批量删除
    删除所有.svn的文件夹find . -name ".svn"|xargs rm -rf
    遍历删除?rm $(grep -lR 'patten' /path/*)
    find . -type f -size 0 -delete
    find . -type f -not -name '*7z*' -delete
    find . -type f -not ( -name 'bin*' -or -name 'ss*' ) -delete
    find . -type f -not -mtime -15 -delete 删除15天前的
    find . -type f -name *.c -print
    rm -i `find ./ -maxdepth 1 -size 0`

    在Debian中使用apt-get安装软件包时经常会提示让你插入netinst的光盘:Media change: please insert the disc labeled
    当没有时就无法进行安装了, 这时可以打开文件/etc/apt/sources.list文件,注释掉cdrom那一行,
    然后再执行apt-get update更新下deb仓库, 这样以后再使用apt-get安装时就不会再搜寻cdrom了

    查看服务开启: 如 ps -aux |grep sshd

    计算代码行(非空行): grep -c [^$] lua/test.lua

    awk删除重复行

    awk '!a[$0]++' sd.txt
    在awk中,对于未初始化的数组变量,在进行数值运算的时候,会赋予初值0,因此a[$0]=0,++运算符的特性是先取值,后加1,
    因此Pattern等价于 !0而0为假,!为取反,因此整个Pattern最后的结果为1,相当于if(1),Pattern匹配成功,输出当前记录,
    对于sd.txt文件,前3条记录的处理方式都是如此。当读取第4行数据“hello world”的时候,a[$0]=1,取反后的结果为0,
    即Pattern为0,Pattern匹配失败,因此不输出这条记录,后续的数据以此类推,$0表示行,成功实现去除文件中的重复行。
    修改为$1表示首列,则只判定该列是否重复。

    日志条件判定:cat citybin/ss.log*|grep time:|awk -F ':' '{if($7>30) {printf("%s ",$0)};}'

    批量重命名:eg删除文件名中的-字符:rename 's/-//g' *.txt --rename某些平台下有如debian
    rename 'y/A-Z/a-z/' * # 把文件名改为小写:

    alias lf='ls -l|grep "^-"'   只显示文件

    计算文本中出现频率最多前10的单词: cat sd.txt | tr -s '[:space:]' ' ' |tr '[:upper:]' '[:lower:]'|sort|uniq -c|sort -nr|head -10

    中文乱码问题:
    1.系统字符集支持。设置LANGUAGE="zh_CN:zh:en_US:en" LANG=zh_CN.UTF-8
    2.SecureCRT的appearance character encoding设置utf8

    解压到指定目录,目录要存在
    tar -zcvf xxx.tar path 解包:tar zxvf /bbs.tar.zip -C /zzz/bbs  tar -jxvf xx.tar.bz2 -C path查看包内容:tar -tvf mysqlt.tar
    zip –r name.zip path 解包:unzip test.zip -d /root/     查看包内容:unzip -l name.zip

    apt-get update出现NO_PUBKEY错误的解决方法
    复制错误提示的key值如:3B4FE6ACC0B21F32执行
    apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32

    查看端口占用:netstat -tln | grep 8083 端口被哪个进程占用 lsof -i :8083

    查看CPU:cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

    myLongScript && echo -e 'a' || (echo -e 'a'; sleep 1; echo -e 'a') 长耗时脚本执行完发出声音

    top -b -d 1 | grep --line-buffered -we ss -we ws
    while :;do top -b -n 1 | grep -w ss; done & #循环指令
    数据图形化
    top -b -d 1 | grep --line-buffered -we ss >> dat.txt
    :1,$s/ +/,/g 替换空格,保存为csv,用excel打开,插入图表,图表右键选取数据,双击y坐标改下百分比格式

    date -s "2016-11-11 10:21:32"

    实现替换换行符 sed ":a;N;s/ //g;ta" a.txt

    获取执行脚本文件路径
    fdir=$(cd $(dirname $0); pwd)

    打印所有匹配行及其后1行 grep 'keyword' -A1 access.log
    打印所有匹配行及其前1行 grep 'keyword' -B1 access.log
    打印所有匹配行及前后1行 grep 'keyword' -C1 access.log

    打印所有匹配行及其前1行 sed '$!N;/错误/P;D' access.log
    sed 打印匹配行的上一行 sed -n '{/access fail/{g;p}};h' access.log
    输出匹配行的前3行 seq 10 | sed -n '1,3N;N;s/ 5//;ta;D;:a;p'
    将是输出匹配行的前2行即 seq 10 | sed -n '1,2N;N;s/ 5//;ta;D;:a;p'

    打印所有匹配行及其前1行 awk '/错误/{print a" "$0}{a=$0}' access.log
    打印本行和下一行 awk '/关键字/{getline v;print $0" "v}'
    输出匹配行和下一行 awk '$0~/keyword/{print $0; getline; print $0;}' access.log
    awk 输出配行及下三行 awk '/games/{p=4}p-->0' access.log

    1.删除匹配行的上一行和下一行:
    sed -i -e '/string/{n;d}' -e '$!N;/ .*string/!P;D' access.log

    2.sed中使用变量,删除匹配行的上一行和下一行:
    AA=string #变量指定匹配字符串
    sed -i -e '/'"$AA"'$/{n;d}' -e '$!N;/ .*'"$AA"'$/!P;D' access.log

  • 相关阅读:
    Linux网络编程必看书籍推荐
    SpringMVC DispatcherServlet初始化过程
    freemarker写select组件(五)
    hdu 1009 FatMouse' Trade
    新IOS编程语言 Swift 新编译器Xcode6
    NoSQL数据库:数据的一致性
    POJ 3041 Asteroids
    POJ 3342 Party at Hali-Bula (树形dp 树的最大独立集 判多解 好题)
    __repr__与__str__
    HDU 4950 Monster(公式)
  • 原文地址:https://www.cnblogs.com/xiao0913/p/3597124.html
Copyright © 2020-2023  润新知