话不多说,直接上干货:
# 查看磁盘使用大小情况
df -k
# 结果:
[root@dev ~]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1929368 0 1929368 0% /dev
tmpfs 1939956 0 1939956 0% /dev/shm
tmpfs 1939956 852 1939104 1% /run
tmpfs 1939956 0 1939956 0% /sys/fs/cgroup
/dev/vda1 41152812 15117628 24131476 39% /
tmpfs 387992 0 387992 0% /run/user/0
overlay 41152812 15117628 24131476 39% /var/lib/docker/overlay2/1490a6cac08d71ba0fa04d06dd69eb745b5324181963b9b97ebae885acd30b74/merged
overlay 41152812 15117628 24131476 39% /var/lib/docker/overlay2/3f370c3c736110a1b1f959b2e37a0761cc1f25d0be8c7352033112656acab29f/merged
shm 65536 0 65536 0% /var/lib/docker/containers/97a41cf4c165e1267f77cf20d2ed55f5f17d73ed6992cc64a666524825510df2/mounts/shm
overlay 41152812 15117628 24131476 39% /var/lib/docker/overlay2/ce02aa84a90fe67aeabe784fe03192dfa69be6101764fdd2204a02ce5a568e9c/merged
shm 65536 0 65536 0% /var/lib/docker/containers/f2729fa28d8e9ace25c2885403558fef40a65db12cb1f1967d3cbcacfd9b7c6f/mounts/shm
overlay 41152812 15117628 24131476 39% /var/lib/docker/overlay2/ff81c945a0d21bd9ccee72aefd6cb1d50f3fb7b1a50c8b7700bf3db760e2f254/merged
# 查看当前目录下的文件及目录大小:
du -sh *
# 执行结果
[root@dev /data]# du -sh *
1.3G code
16K config
271M docker
4.0K files
110M logs
8.0K pid
12K ssl
583M web
# 查看当前目录大小,可拓展子目录
du -h -x --max-depth=1
# 执行结果
[root@dev /data]# du -h -x --max-depth=1
16K ./config
583M ./web
4.0K ./files
1.3G ./code
271M ./docker
8.0K ./pid
110M ./logs
12K ./ssl
2.3G .
# 查看前几名进程(修改10)
ps -aux | sort -k3nr | head -10
# 执行结果:
[root@dev /data]# ps -aux | sort -k3nr | head -10
root 20793 2.8 0.8 160232 33632 ? S<sl Jun17 2021:23 /usr/local/aegis/aegis_client/aegis_12_13/AliYunDunMonitor
1001 32585 1.3 0.8 11220776 31768 ? Ssl 2023 5762:29 etcd
root 20782 0.7 0.2 113144 9712 ? Ssl Jun17 559:26 /usr/local/aegis/aegis_client/aegis_12_13/AliYunDun
root 32541 0.2 0.1 973496 7044 ? Sl 2023 953:48 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 2379 -container-ip 172.17.0.2 -container-port 2379
root 7903 0.2 0.3 1291916 12924 ? Sl Aug01 16:34 /data/web/config-server/dist/config-server -e 127.0.0.1:2379 -cp /data/config
root 794 0.2 0.6 277484 24400 ? Ssl 2023 968:38 node /showdoc_data/mock/index.js
root 20749 0.1 0.1 52004 5068 ? Ssl Jun17 90:13 /usr/local/aegis/aegis_update/AliYunDunUpdate
root 28207 0.1 0.2 685476 10940 ? Ssl Jul05 73:30 /usr/local/share/aliyun-assist/2.2.3.631/aliyun-service
root 28998 0.1 0.0 45036 2348 ? Sl 2023 493:12 redis-server 127.0.0.1:6379
root 3715 0.1 0.2 165780 8280 ? Ssl 2023 734:38 /usr/local/bin/redis-server *:6379
# 后台挂起运行,这个命令用于执行守护进程非常常用
nohup command >> command.log 2>&1 &
# 根据进程名称杀死进程
ps -ef | grep command | grep -v grep | awk '{print $2}' | xargs kill -9
# top命令中对进程进行筛选:
# 在top界面中,输入:o+大写的COMMAND=你想筛选的命令关键词,即可只展示你想要的进程情况
u:查看指定用户进程
o:COMMAND=mysql 查看mysql进程
# 执行结果:
top - 09:49:21 up 297 days, 10:20, 1 user, load average: 0.02, 0.05, 0.05
Tasks: 147 total, 2 running, 145 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.6 us, 3.6 sy, 0.0 ni, 92.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3879912 total, 153576 free, 1478276 used, 2248060 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 2104012 avail Mem
add filter #2 (ignoring case) as: [!]FLD?VAL COMMSND=systemd
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 126448 4564 2216 S 0.0 0.1 5:04.85 systemd
368 root 20 0 48384 13360 13028 S 0.0 0.3 10:27.73 systemd-journal
399 root 20 0 45456 1600 1116 S 0.0 0.0 0:00.19 systemd-udevd
568 root 20 0 26780 2032 1364 S 0.0 0.1 2:09.67 systemd-logind
# 查看进程启用时间
ps -p 1234 -o lstart
# 执行结果:
[root@dev /data]# ps -ef | grep redis-server
root 1182 1087 0 09:53 pts/0 00:00:00 grep --color=auto redis-server
root 3715 1 0 2023 ? 12:14:38 /usr/local/bin/redis-server *:6379
root 28998 28957 0 2023 ? 08:13:13 redis-server 127.0.0.1:6379
[root@dev /data]# ps -p 1087 -o lstart
STARTED
Tue Aug 6 09:35:19 2024
[root@dev /data]# ps -p 1 -o lstart
STARTED
Fri Oct 13 23:29:01 2023
# 查看进程执行时长
ps -p 1234 -o etime
# 执行结果:
[root@dev /data]# ps -p 1 -o etime
ELAPSED
297-10:26:24
# 添加用户组
groupadd 组名
# 删除用户组
groupdel 组名
# 修改组名
groupmod -n 新组名 原组名
# 添加用户
useradd 用户名
# 删除用户
userdel 用户名
# 修改用户属性
usermod
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 修改用户ID。
-U 解除密码锁定。
# 查看组
cat /etc/group
# 查看用户
cat /etc/passwd
# 分配文件权限
chmod +x filename
chmod 755 finename
# 分配文件所有者和所属组
chown user.group fine
chown user file
# 强大的文件查看器 lsof:
# 1.列出所有打开的文件:
lsof
# 备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位
# 2. 查看谁正在使用某个文件
lsof /filepath/file
# 3.递归查看某个目录的文件信息
lsof +D /filepath/filepath2/
# 备注: 使用了+D,对应目录下的所有子目录和文件都会被列出
# 4. 比使用+D选项,遍历查看某个目录的所有文件信息 的方法
lsof | grep ‘/filepath/filepath2/’
# 5. 列出某个用户打开的文件信息
lsof -u username
# 备注: -u 选项,u其实是user的缩写
# 6. 列出某个程序所打开的文件信息
lsof -c mysql
# 备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成lsof | grep mysql,但是第一种方法明显比第二种方法要少打几个字符了
# 7. 列出多个程序多打开的文件信息
lsof -c mysql -c apache
# 8. 列出某个用户以及某个程序所打开的文件信息
lsof -u test -c mysql
# 9. 列出除了某个用户外的被打开的文件信息
lsof -u ^root
# 备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示
# 10. 通过某个进程号显示该进行打开的文件
lsof -p 1
# 11. 列出多个进程号对应的文件信息
lsof -p 123,456,789
# 12. 列出除了某个进程号,其他进程号所打开的文件信息
lsof -p ^1
# 13 . 列出所有的网络连接
lsof -i
# 14. 列出所有tcp 网络连接信息
lsof -i tcp
# 15. 列出所有udp网络连接信息
lsof -i udp
# 16. 列出谁在使用某个端口
lsof -i :3306
# 17. 列出谁在使用某个特定的udp端口
lsof -i udp:55
# 特定的tcp端口
lsof -i tcp:80
# 18. 列出某个用户的所有活跃的网络端口
lsof -a -u test -i
# 19. 列出所有网络文件系统
lsof -N
# 20.域名socket文件
lsof -u
# 21.某个用户组所打开的文件信息
lsof -g 5555
# 22. 根据文件描述列出对应的文件信息
lsof -d description(like 2)
# 23. 根据文件描述范围列出文件信息
lsof -d 2-3