Blame

a04337 mb tech 2026-01-18 14:57:13
added script
1
# Linux-System-Info
2
3
linux-system-info.sh
4
```bash
5
#!/bin/bash
6
7
# System Information Script
8
# Outputs system specifications in beautified Markdown format
9
10
echo "# 🖥️ System Specifications"
11
echo ""
12
13
# Date
14
echo "**📅 Date:** $(date)"
15
echo ""
16
17
# OS Information
18
echo "## 🐧 Operating System"
19
if [ -f /etc/os-release ]; then
20
. /etc/os-release
21
echo "- **OS:** $PRETTY_NAME"
22
else
23
echo "- **OS:** Unknown"
24
fi
25
echo "- **Kernel:** \`$(uname -r)\`"
26
echo "- **Hostname:** \`$(hostname)\`"
27
echo ""
28
29
# CPU Information
30
echo "## 🧠 CPU"
31
# Try to use lscpu first
32
if command -v lscpu &> /dev/null; then
33
MODEL=$(lscpu | grep "Model name" | cut -d: -f2 | xargs)
34
CORES=$(lscpu | grep "^CPU(s):" | cut -d: -f2 | xargs)
35
ARCH=$(lscpu | grep "Architecture" | cut -d: -f2 | xargs)
36
echo "- **Model:** $MODEL"
37
echo "- **Cores:** $CORES"
38
echo "- **Architecture:** \`$ARCH\`"
39
else
40
# Fallback to /proc/cpuinfo
41
MODEL=$(grep -m1 "model name" /proc/cpuinfo | cut -d: -f2 | xargs)
42
CORES=$(grep -c processor /proc/cpuinfo)
43
echo "- **Model:** $MODEL"
44
echo "- **Cores:** $CORES"
45
fi
46
echo ""
47
48
# Memory Information
49
echo "## 💾 Memory"
50
if command -v free &> /dev/null; then
51
TOTAL_MEM=$(free -h | awk '/^Mem:/ {print $2}')
52
echo "- **Total RAM:** $TOTAL_MEM"
53
else
54
# Fallback to /proc/meminfo
55
TOTAL_KB=$(grep MemTotal /proc/meminfo | awk '{print $2}')
56
TOTAL_GB=$(echo "scale=2; $TOTAL_KB / 1024 / 1024" | bc 2>/dev/null || echo "$TOTAL_KB kB")
57
echo "- **Total RAM:** ${TOTAL_GB} GB"
58
fi
59
echo ""
60
61
# Motherboard Information (Requires root for dmidecode, trying sysfs)
62
echo "## 🔢 Motherboard"
63
if [ -r /sys/class/dmi/id/board_vendor ] && [ -r /sys/class/dmi/id/board_name ]; then
64
VENDOR=$(cat /sys/class/dmi/id/board_vendor)
65
NAME=$(cat /sys/class/dmi/id/board_name)
66
VERSION=$(cat /sys/class/dmi/id/board_version 2>/dev/null || echo "")
67
echo "- **Vendor:** $VENDOR"
68
echo "- **Model:** $NAME"
69
if [ -n "$VERSION" ]; then
70
echo "- **Version:** $VERSION"
71
fi
72
else
73
echo "*Access to motherboard DMI info restricted or unavailable.*"
74
fi
75
echo ""
76
77
# GPU Information
78
echo "## 🎮 Graphics"
79
if command -v lspci &> /dev/null; then
80
# Filter for VGA compatible controller or 3D controller
81
lspci | grep -E "VGA|3D" | while read -r line; do
82
# Extract the device name part (everything after the ID and type)
83
DEVICE=$(echo "$line" | cut -d: -f3- | xargs)
84
echo "- $DEVICE"
85
done
86
else
87
echo "*lspci command not found, cannot list GPUs.*"
88
fi
89
echo ""
90
91
# Disk Information
92
echo "## 💽 Storage"
93
if command -v lsblk &> /dev/null; then
94
echo "| Name | Size | Type | Model |"
95
echo "| :--- | :--- | :--- | :--- |"
96
# List disks only, no partitions/loops/roms generally desirable for "specs" but lsblk -d does that
97
lsblk -d -o NAME,SIZE,TYPE,MODEL -n | while read -r line; do
98
# Format as table row
99
NAME=$(echo "$line" | awk '{print $1}')
100
SIZE=$(echo "$line" | awk '{print $2}')
101
TYPE=$(echo "$line" | awk '{print $3}')
102
MODEL=$(echo "$line" | cut -d' ' -f4-)
103
echo "| \`$NAME\` | $SIZE | $TYPE | $MODEL |"
104
done
105
else
106
echo "*lsblk command not found.*"
107
fi
108
echo ""
109
110
echo "---"
111
echo "*Generated by linux-system-info.sh*"
112
```