格式化显示csv文件
# 使用linux自带工具column,-s指定分隔符,-t表示制表符显示
column -s, -t example2.csv
utf8转gbk
iconv -f UTF-8 -t GBK /mnt/f/phonenum.csv -o /mnt/f/phonenum2.csv
history设置时间戳
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile && source /etc/profile
提取绝对路径中的路径和文件名
s1="/home/heruo/test.sh"
# 方式一:使用字符串截取
filename=$(echo ${s1##/*})
filepath=$(echo ${s1%/*})
# 方式二:使用官方函数
filename=$(basename ${s1})
filepath=$(dirname ${s1})
检测服务或网络是否正常
# 方式1,killall需要安装psmisc,正常的话echo $?的值为0
killall -0 nginx
# 方式2,ps -ef
ps -ef | grep -v grep | grep nginx
# 方式3,检测能否建立tcp连接,正常的话返回0
timeout 1 bash -c "cat < /dev/null > /dev/tcp/127.0.0.1/80"
查看内存插槽情况
dmidecode | grep "Memory Device" -A 16 | grep -i size
直接设置用户密码
echo 'pwd123' | passwd --stdin user1
获取脚本所在目录
# 方式1
script_dir=$(cd $(dirname $0) && pwd)
# 方式2
script_dir=$(dirname $(readlink -f $0))
文件切割与合并
# 文件切割
# -a: 指定输出文件名的后缀长度(默认为2个)
# -d: 指定输出文件名的后缀用数组代替
# -l: 行数分割模式(指定每多少行切成一个小文件;默认行数1000行)
# -b: 二进制分割模式
# -C: 文件大小分割模式(切割时尽量维持每行的完整性)
split -l 100000 test.txt ./test_
# 文件合并
cat ./test_* > test.txt
快速ping测试
seq 1 255 |xargs -i -P 0 bash -c 'ping -w 2 192.168.25.{} &> /dev/null && echo 192.168.25.{} icmp allowed'