生成一个 shell 脚本,用于显示 CPU、内存、磁盘容量信息,以 G 或者 M 为单位显示
时间: 2023-09-13 11:04:46 浏览: 58
### 回答1:
以下是一个显示 CPU、内存、磁盘容量信息的 shell 脚本的示例:
```
#!/bin/bash
# 获取 CPU 信息
cpu_info=`top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}'`
echo "CPU 占用率:$cpu_info%"
# 获取内存信息
mem_info=`free -m | awk 'NR==2{printf "%.2f%%\t\t", $3*100/$2 }'`
echo "内存使用率:$mem_info"
# 获取磁盘容量信息
disk_info=`df -h | awk '$NF=="/"{printf "%dG\t\t", $3}'`
echo "磁盘剩余容量:$disk_info"
```
在执行此脚本前,请确保您已经在您的系统上安装了 `top` 和 `df` 命令。
### 回答2:
以下是一个用于显示 CPU、内存、磁盘容量信息的 shell 脚本,以 G 或 M 为单位显示:
```shell
#!/bin/bash
# 定义函数用于转换字节数为合适的单位
function format_capacity {
local capacity=$1
local unit=''
# 如果容量大于等于 1GB,则使用 GB 作为单位
if [[ $capacity -ge 1073741824 ]]; then
capacity=$(bc <<< "scale=2;$capacity/1073741824")
unit='GB'
# 如果容量大于等于 1MB,则使用 MB 作为单位
elif [[ $capacity -ge 1048576 ]]; then
capacity=$(bc <<< "scale=2;$capacity/1048576")
unit='MB'
fi
echo "$capacity$unit"
}
# 获取 CPU 使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
# 获取内存使用量
memory_usage=$(free -m | awk 'NR==2{print $3}')
# 获取磁盘容量
disk_capacity=$(df -h | awk '$NF=="/"{print $2}')
# 转换并显示结果
cpu_usage=$(bc <<< "scale=2;$cpu_usage/1")
memory_usage=$(format_capacity $memory_usage)
disk_capacity=$(format_capacity $disk_capacity)
echo "CPU 使用率: $cpu_usage%"
echo "内存使用量: $memory_usage"
echo "磁盘容量: $disk_capacity"
```
该脚本首先定义了一个 `format_capacity` 函数,用于将字节数转换为合适的单位(GB 或 MB)。然后使用 `top` 命令获取 CPU 使用率,使用 `free` 命令获取内存使用量,使用 `df` 命令获取磁盘容量。最后,通过调用 `format_capacity` 函数将这些值转换为合适的单位,并输出到屏幕上。
### 回答3:
以下是用于显示CPU、内存和磁盘容量信息的Shell脚本:
```bash
#!/bin/bash
# 获取CPU信息
cpu_info=$(top -bn 1 | grep '%Cpu' | awk '{print $2}')
# 获取内存信息
mem_info=$(free -h | awk '/Mem/{print $3}')
# 获取磁盘容量信息
disk_info=$(df -h --output=avail / | tail -n1)
# 提取磁盘容量数值
disk_available=$(echo $disk_info | awk '{print $1}')
# 判断磁盘容量单位,并转换为G或M
if [[ $disk_info == *G ]]; then
disk_unit="G"
elif [[ $disk_info == *M ]]; then
disk_unit="M"
disk_available=$(echo "scale=2; $disk_available/1024" | bc)
fi
# 输出信息
echo "CPU使用率:$cpu_info%"
echo "内存使用量:$mem_info"
echo "可用磁盘容量:$disk_available$disk_unit"
```
这个脚本通过使用Linux命令行工具来获取CPU使用率(使用`top`),内存使用量(使用`free`)和磁盘容量(使用`df`),然后对磁盘容量进行单位转换。输出结果中的CPU使用率以百分比显示,内存使用量以可读格式显示(例如"3.5G"或"500M"),磁盘容量以G或M为单位显示。你可以保存这个脚本为一个.sh文件,并在终端中运行它来查看信息。