Commit a04337

2026-01-18 14:57:13 mb tech: added script
/dev/null .. scripts/linux-system-info.md
@@ 0,0 1,112 @@
+ # Linux-System-Info
+
+ linux-system-info.sh
+ ```bash
+ #!/bin/bash
+
+ # System Information Script
+ # Outputs system specifications in beautified Markdown format
+
+ echo "# 🖥️ System Specifications"
+ echo ""
+
+ # Date
+ echo "**📅 Date:** $(date)"
+ echo ""
+
+ # OS Information
+ echo "## 🐧 Operating System"
+ if [ -f /etc/os-release ]; then
+ . /etc/os-release
+ echo "- **OS:** $PRETTY_NAME"
+ else
+ echo "- **OS:** Unknown"
+ fi
+ echo "- **Kernel:** \`$(uname -r)\`"
+ echo "- **Hostname:** \`$(hostname)\`"
+ echo ""
+
+ # CPU Information
+ echo "## 🧠 CPU"
+ # Try to use lscpu first
+ if command -v lscpu &> /dev/null; then
+ MODEL=$(lscpu | grep "Model name" | cut -d: -f2 | xargs)
+ CORES=$(lscpu | grep "^CPU(s):" | cut -d: -f2 | xargs)
+ ARCH=$(lscpu | grep "Architecture" | cut -d: -f2 | xargs)
+ echo "- **Model:** $MODEL"
+ echo "- **Cores:** $CORES"
+ echo "- **Architecture:** \`$ARCH\`"
+ else
+ # Fallback to /proc/cpuinfo
+ MODEL=$(grep -m1 "model name" /proc/cpuinfo | cut -d: -f2 | xargs)
+ CORES=$(grep -c processor /proc/cpuinfo)
+ echo "- **Model:** $MODEL"
+ echo "- **Cores:** $CORES"
+ fi
+ echo ""
+
+ # Memory Information
+ echo "## 💾 Memory"
+ if command -v free &> /dev/null; then
+ TOTAL_MEM=$(free -h | awk '/^Mem:/ {print $2}')
+ echo "- **Total RAM:** $TOTAL_MEM"
+ else
+ # Fallback to /proc/meminfo
+ TOTAL_KB=$(grep MemTotal /proc/meminfo | awk '{print $2}')
+ TOTAL_GB=$(echo "scale=2; $TOTAL_KB / 1024 / 1024" | bc 2>/dev/null || echo "$TOTAL_KB kB")
+ echo "- **Total RAM:** ${TOTAL_GB} GB"
+ fi
+ echo ""
+
+ # Motherboard Information (Requires root for dmidecode, trying sysfs)
+ echo "## 🔢 Motherboard"
+ if [ -r /sys/class/dmi/id/board_vendor ] && [ -r /sys/class/dmi/id/board_name ]; then
+ VENDOR=$(cat /sys/class/dmi/id/board_vendor)
+ NAME=$(cat /sys/class/dmi/id/board_name)
+ VERSION=$(cat /sys/class/dmi/id/board_version 2>/dev/null || echo "")
+ echo "- **Vendor:** $VENDOR"
+ echo "- **Model:** $NAME"
+ if [ -n "$VERSION" ]; then
+ echo "- **Version:** $VERSION"
+ fi
+ else
+ echo "*Access to motherboard DMI info restricted or unavailable.*"
+ fi
+ echo ""
+
+ # GPU Information
+ echo "## 🎮 Graphics"
+ if command -v lspci &> /dev/null; then
+ # Filter for VGA compatible controller or 3D controller
+ lspci | grep -E "VGA|3D" | while read -r line; do
+ # Extract the device name part (everything after the ID and type)
+ DEVICE=$(echo "$line" | cut -d: -f3- | xargs)
+ echo "- $DEVICE"
+ done
+ else
+ echo "*lspci command not found, cannot list GPUs.*"
+ fi
+ echo ""
+
+ # Disk Information
+ echo "## 💽 Storage"
+ if command -v lsblk &> /dev/null; then
+ echo "| Name | Size | Type | Model |"
+ echo "| :--- | :--- | :--- | :--- |"
+ # List disks only, no partitions/loops/roms generally desirable for "specs" but lsblk -d does that
+ lsblk -d -o NAME,SIZE,TYPE,MODEL -n | while read -r line; do
+ # Format as table row
+ NAME=$(echo "$line" | awk '{print $1}')
+ SIZE=$(echo "$line" | awk '{print $2}')
+ TYPE=$(echo "$line" | awk '{print $3}')
+ MODEL=$(echo "$line" | cut -d' ' -f4-)
+ echo "| \`$NAME\` | $SIZE | $TYPE | $MODEL |"
+ done
+ else
+ echo "*lsblk command not found.*"
+ fi
+ echo ""
+
+ echo "---"
+ echo "*Generated by linux-system-info.sh*"
+ ```
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9