常用命令


目錄空間

  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