格式化显示csv文件

  1. # 使用linux自带工具column,-s指定分隔符,-t表示制表符显示
  2. column -s, -t example2.csv

utf8转gbk

  1. iconv -f UTF-8 -t GBK /mnt/f/phonenum.csv -o /mnt/f/phonenum2.csv

history设置时间戳

  1. echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile && source /etc/profile

提取绝对路径中的路径和文件名

  1. s1="/home/heruo/test.sh"
  2. # 方式一:使用字符串截取
  3. filename=$(echo ${s1##/*})
  4. filepath=$(echo ${s1%/*})
  5. # 方式二:使用官方函数
  6. filename=$(basename ${s1})
  7. filepath=$(dirname ${s1})

检测服务或网络是否正常

  1. # 方式1,killall需要安装psmisc,正常的话echo $?的值为0
  2. killall -0 nginx
  3. # 方式2,ps -ef
  4. ps -ef | grep -v grep | grep nginx
  5. # 方式3,检测能否建立tcp连接,正常的话返回0
  6. timeout 1 bash -c "cat < /dev/null > /dev/tcp/127.0.0.1/80"

查看内存插槽情况

  1. dmidecode | grep "Memory Device" -A 16 | grep -i size

直接设置用户密码

  1. echo 'pwd123' | passwd --stdin user1

获取脚本所在目录

  1. # 方式1
  2. script_dir=$(cd $(dirname $0) && pwd)
  3. # 方式2
  4. script_dir=$(dirname $(readlink -f $0))

文件切割与合并

  1. # 文件切割
  2. # -a: 指定输出文件名的后缀长度(默认为2个)
  3. # -d: 指定输出文件名的后缀用数组代替
  4. # -l: 行数分割模式(指定每多少行切成一个小文件;默认行数1000行)
  5. # -b: 二进制分割模式
  6. # -C: 文件大小分割模式(切割时尽量维持每行的完整性)
  7. split -l 100000 test.txt ./test_
  8. # 文件合并
  9. cat ./test_* > test.txt

快速ping测试

  1. seq 1 255 |xargs -i -P 0 bash -c 'ping -w 2 192.168.25.{} &> /dev/null && echo 192.168.25.{} icmp allowed'