最近练练linux下的基本操作,随意写点东西,也大致记录一下:


  1. 网卡IP的获取

    ifconfig | grep 'inet addr' | sed 's/^.* addr://g' | grep -v '127.0.0.1' | sed 's/Bcast.*//g' --- 取消本地ip的获取,如果网卡较多,可以直接ifconfig eth*

    ifconfig | grep "inet addr:" | awk -F: '{print $2}' | awk '{print $1}' --- awk的方式

    ifconfig eth0 | grep "inet addr:" | awk -F[:" "]+ '{print $4}' --- 语法格式不同

  2. man路径的获取

    cat /etc/man.config | grep 'MAN' |sed 's/#.*//g'|sed '/^$/d'

  3. 删除行首空格

    sed 's/^[ ]* //g' filename  sed 's/^ * //g' filename  sed 's/^[[:space:]]* //g' filename    -- 其实都一样

  4. 行前行后添加新行

    sed 's/pattern/&\n/g' filename ---- 行后

    sed 's/pattern/\n&/g' filename ---- 行前  &代表模式   **正则表达式还是重要**

  5. 检查远程端口是否对bash或者本机开放

    echo > /dev/tcp/8.8.8.8/53 && echo "open"  ip可替换,输出语句可随便,为了效果

  6. 产生随机的十六机制数,其实n是字符数:

    openssl rand -hex n或者openssl rand -base64 n   hex,base64只是编码格式

  7. 列出包括子进程的进程树

    ps axwef 或者 pstree -Aup

  8. 创建war文件

    jar -cvf name.war file

  9. 测试硬盘写入速度

    dd if=/dev/zero of=/tmp/output.img bs=8k count=256k; rm -rf /tmp/output.img

  10. 测试硬盘读取速度

    hdparm -Tt /dev/sda

  11. 获取文本的md5 hash

    echo -n "test" | md5sum

  12. 检查xml格式

    xmllint --noout file.xml

  13. 生产随机密码

    LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;   16个字符长度的

  14. 快速备份一个文件

    cp some_file{,.bak}

  15. 显示所有用户列表

    getent passwd

  16. 列出前10个最大文件

    lsof / | awk '{ if($7 > 1048576) print $7/1048576 "MB "$9 }' | sort -n -u | tail

  17. 列出/home/user下的所有空子目录

    find /home/user -maxdepth 1 -type d -empty

  18. 获取文件的owner

    stat -c %U test.log

  19. block设备列表

    lsblk -f

  20. 找出文件名结尾有空格的文件

    find . -type f -exec egrep -l " +$" {} \;

  21. 找出文件名有tab缩进符的文件

    find . -type f -exec egrep -l $'\t' {} \;