常用命令


目录空间

  1. 目录中的目录大小
du -x --max-depth=1 | sort -k1 -rn | head
# 增加可读性
du -x --max-depth=1 | sort -k1 -rn | awk '{print $1/1024/1024"M "$2}' | head
  1. 目录中文件数量汇总
find -type f | awk -F "/" -v OFS="/" '{$NF="";dir[$0]++}END{for(i in dir)print dir[i]" "i}' | sort -k1 -rn | head
  1. 统计一个文件下可执行文件个数
    ll -F | grep "*$"
    -rwxr-xr-x 1 root root 1482 Jun 5 16:36 shell.py*

网络

  1. 网络状态分析
netstat -n | awk '/^tcp/{++stat[$NF]}END{for(a in stat) print a,stat[a]}'
  1. tcpdump嗅探80端口的访问
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr
  1. 服务间网络测速iperf
# 服务端
iperf -s
# 客户端 5s
iperf -c ip -t 5
  1. 路由信息
route add default gw 192.168.1.1 [dev eth0]
route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.1 [dev eth0]
route del default gw

route add -net 10.0.2.0 netmask 255.255.255.0 dev eth1
route del -net 10.0.2.0 [netmask 255.255.255.0 dev eth1]

文件操作

  1. 在文件的指定行(n)插入指定内容,执行后,在a文件的第n行插入echo "haha"
sed -i "niecho "haha"" a 

进程

# 查看redis的状态
# 进程ID 终端 用户 进程名 开始时间 运行时间
ps -eo pid,tty,user,comm,lstart,etime | grep redis

查看程序生成的pid
pidof prog_name
pgrep prog_name

查看该进程打开的文件
lsof -p pid
lsof -c prog_name
或者根据pid找到 ll /proc/<pid>/fd/

查看内存分配
cat /proc/pid/maps

查看堆栈(安装gdb)
pstack pid 

查看发出的系统调用
strace -p pid

查看调用库函数(安装ltrace)
ltrace -p pid 

软件管理

# 查看这个软件的依赖
yum deplist xxx | grep provider | sort | uniq -c

# 查看这个文件是由哪个包生成的
rpm -qf xxx 

# 下载软件的所有依赖,这个解决的依赖没有yum deplist涉及的依赖完整
yumdownloader s3cmd --resolve --destdir=.

# 这个这个rpm包附带的脚本干了什么
rpm -qp --scripts httpd-2.4.6-93.el7.centos.x86_64.rpm

系统信息

  1. 服务器版本
# 方法1
grep 'DMI' /var/log/dmesg
#方法2
dmidecode |grep -A4 'System Information'
  1. 查看服务器序列号
dmidecode | grep "Serial"

其他

  1. 多线程压缩工具
    # 安装
    yum install -y pigz
    
    # 使用
    tar -cvf - xxx/ | pigz -p 16 > xxx.tar.gz
    

将ISO挂载到本地

mount /media/files/CentOS-7-x86_64-DVD-1611.iso /mnt/cdrom/

ssl 证书

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -subj /CN=domain -keyout /tmp/ca.key -out /tmp/ca.crt

端口映射

ssh <tunnelhost> [-p port] [-l user] -f -N -T -L [localhost]:<localport>:<targethost>:<targetport>

将本地端口映射到远程端口,即访问本都端口就能访问远程的机器

AWK

1、求和
cat data|awk '{sum+=$1} END {print "Sum = ", sum}'

2、求平均
cat data|awk '{sum+=$1} END {print "Average = ", sum/NR}'

3、求最大值
cat data|awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print "Max=", max}'

4、求最小值(min的初始值设置一个超大数即可)
awk 'BEGIN {min = 1999999} {if ($1<min) min=$1 fi} END {print "Min=", min}'


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM