Linux命令总览

网络

ip route del default
ip route del 1.1.1.0/24
ip route add default via 192.168.248.50 dev ens33 # 写Director的IP
ip route add default via 1.1.1.50 dev ens37 # 写Director的IP

yum

yumdownloader --resolve --destdir=/wise nginx
--resolve 下载软件包及所有依赖

rpm

sudo rpm -ivh *.rpm
-i:install 的缩写,表示安装软件包。
-v:verbose 的缩写,显示安装过程的详细信息。
-h:hash 的缩写,显示安装进度(以 # 符号表示)。

tar

tar -zcvf 打包后的文件名.tar.gz 要打包的文件夹路径
tar -zxvf prometheus-2.16.0-rc.0.linux-amd64.tar.gz -C /usr/local/prometheus/ # 解压到/usr/local/prometheus/目录下

-c:创建新的归档文件(即打包)。
-x:从归档文件中提取内容(即解压)

-z:调用 gzip 进行压缩(生成.gz 后缀)。
-v:显示打包过程的详细信息(可选)。
-f:指定归档文件的名称(必须放在最后,后跟文件名)。

mv

-b 覆盖前为目标文件创建备份
-v 显示执行过程详细信息
-f 强制覆盖目标文件而不询问
-Z 设置文件安全上下文
-n 不要覆盖已有文件
-u 当源文件比目标文件更新时,才执行覆盖操作

mv -bv A.txt B.txt # 备份A.txt,并将其重命名为B.txt,若B.txt已存在,则A.txt会被重命名为A.txt~

用户与权限

groupadd postgres # 创建postgres组
useradd -g postgres postgres # 创建用户并加入postgres组

cd /opt/pgsql/postgresql
mkdir data
chown postgres:postgres data # 更改目录所有者

系统版本

cat /etc/centos-release # 输出如:CentOS Linux release 7.9.2009 (Core)
uname -m # 确认架构:x86_64

awk

awk 'NR2 {print $5}' # NR2 表示第二行,{print $5} 表示打印第五列

grep

grep -i # 忽略大小写
grep -v # 取反

vim

:e! # 重新加载文件
G # 跳转到最后一行
N # 先/关键字,N查找上一个
gg # 跳转到第一行
: # 跳转到某一行

top

按P查看占用CPU最高的进程
按M查看占用内存最高的进程
按u查看指定用户的进程

top -d 1 # 每隔1秒刷新

ansible

ansible -i cfs_agent.list linux -m shell -a 'cp /usr/local/hcbs/hcbs_client/tools/op/monitor.sh /root/monitor.sh.20251114bak'
"将右侧服务器列表写入szj.list文件
ansible -i cfs_agent.list linux -m shell -a 'sed -i ""s/log_space_threshold=1300/log_space_threshold=2000/g"" /usr/local/hcbs/hcbs_client/tools/op/monitor.sh'"
"# 检查修改是否成功
ansible -i cfs_agent.list linux -m shell -a 'grep log_space_threshold= /usr/local/hcbs/hcbs_client/tools/op/monitor.sh'

ansible -i cfs_agent.list linux -m shell -a 'diff /usr/local/hcbs/hcbs_client/tools/op/monitor.sh /root/monitor.sh.20251114bak'"
ansible -i cfs_agent.list linux -m shell -a 'cp /root/monitor.sh.202510bak /usr/local/hcbs/hcbs_client/tools/op/monitor.sh'

lsblk

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   60G  0 disk 
sr0              11:0    1  9.6G  0 rom  

sda1:挂载在 /boot 目录下。这是系统的[引导分区],存放着启动加载程序(如 GRUB)和 Linux 内核镜像
sda2:作为 LVM 物理卷(PV) 使用,名为 centos 的卷组(VG)
centos-root:这是根逻辑卷,挂载在 /(根目录)
centos-swap:这是交换分区逻辑卷,类型为 [SWAP]。相当于 Windows 的虚拟内存,当物理内存不足时,系统会将部分暂时不用的数据交换到此空间。
sr0:这是一个光驱设备(rom),通常用于读取光盘或ISO镜像文件。

内存

free -m

查看内存使用情况,-m 以MB为单位显示
img

Mem是物理内存
Swap是用硬盘空间模拟的 “虚拟内存”,速度比物理内存慢数百倍。

计算内存使用率:1-(空闲内存/总内存)*100%

#!/bin/bash

# 设置目标内存使用率和持续时间
# TARGET_USAGE=90  # 通过传参的方式写入
# DURATION=300  # 通过传参的方式写入

# 获取总内存(KB)和当前已用内存(KB)
TOTAL_MEM=$(free -k | awk '/Mem:/ {print $2}')
USED_MEM=$(free -k | awk '/Mem:/ {print $3}')

# 计算需要占用到90%的内存量(KB)
TARGET_MEM=$(( TOTAL_MEM * TARGET_USAGE / 100 ))
NEEDED_MEM=$(( TARGET_MEM - USED_MEM ))

# 内存不足时直接退出
if [ $NEEDED_MEM -le 0 ]; then
    echo "当前内存使用率已≥${TARGET_USAGE}%,无需压测"
    exit 0
fi

# 转换为MB(方便dd命令使用),预留少量内存避免OOM
NEEDED_MEM_MB=$(( (NEEDED_MEM - 10240) / 1024 ))  # 预留10MB安全空间
if [ $NEEDED_MEM_MB -lt 1 ]; then
    NEEDED_MEM_MB=1
fi

# 在内存文件系统(/dev/shm)创建大文件占用内存
sudo mount -o remount,size=${TARGET_USAGE}% /dev/shm  # 扩大 /dev/shm的容量
MEM_FILE="/dev/shm/mem_stress_$$.tmp"
sleep ${DURATION} && rm -f ${MEM_FILE} &  # 设置自动删除,防止任务中断导致/dev/shm/的文件持续占用
echo "开始占用${NEEDED_MEM_MB}MB内存,目标使用率${TARGET_USAGE}%,持续${DURATION}秒..."
dd if=/dev/zero of=${MEM_FILE} bs=1M count=${NEEDED_MEM_MB} > /dev/null 2>&1

# 显示当前内存使用率
echo "当前内存使用率:$(free | awk '/Mem:/ {printf "%.1f%%", $3/$2*100}')"

# 等待指定时长
sleep $DURATION

# 清理资源
echo "压测结束,清理内存占用..."
rm -f ${MEM_FILE}
echo "内存已释放,脚本退出"

virsh

列出所有虚拟机: virsh list --all
img

查看 VM 详细信息: virsh dominfo <VM_NAME>
img

查看 VM 配置 (XML): virsh dumpxml <VM_NAME>

查看宿主机信息: virsh nodeinfo
img

进入虚拟机控制台:virsh consol <VM_NAME>

posted @ 2025-11-07 13:21  WiseHYH  阅读(22)  评论(0)    收藏  举报