Advertisement

The Script

Paste this into syscheck.sh. It runs instantly and requires no additional tools — everything used here is pre-installed on Linux and macOS.

syscheck.sh
#!/bin/bash
# Quick System Info Report
# Prints key stats at a glance.
# Alias to 'syscheck' in your .bashrc for fast access.
#
# USAGE: ./syscheck.sh
# REQUIRES: bash, hostname, uptime, free, df (pre-installed everywhere)

echo "=== Quick System Check ==="
echo "Host    : $(hostname)"
echo "Uptime  : $(uptime -p)"
echo "RAM     : $(free -h | awk '/Mem/{print $3"/"$2}')"
echo "Disk /  : $(df -h / | awk 'NR==2{print $3"/"$2}')"
echo "IP      : $(hostname -I | awk '{print $1}')"
echo "========================="
✓ Sample output

=== Quick System Check ===
Host : my-server
Uptime : up 3 days, 4 hours
RAM : 1.2G/2.0G
Disk / : 8.3G/25G
IP : 192.168.1.42
=========================

Step-by-Step Setup

Step 1 — Create the file

terminal
nano syscheck.sh

Paste the script, then Ctrl+X → Y → Enter to save.

Step 2 — Make it executable

terminal
chmod +x syscheck.sh

Step 3 — Run it once to confirm it works

terminal
./syscheck.sh

You should see your system stats printed cleanly. If uptime -p fails on older systems, see the macOS/compatibility note below.

Step 4 — Alias it for instant access anywhere

This is the step that makes it actually useful. Open your .bashrc (or .zshrc if you use zsh):

terminal
nano ~/.bashrc

Add this line at the bottom:

~/.bashrc
alias syscheck='/home/user/syscheck.sh'   # ← use your actual path

Save, then reload your shell config:

terminal
source ~/.bashrc

Now you can type syscheck from anywhere in any terminal session and get your system snapshot instantly.

💡 Using zsh instead of bash?

Add the alias to ~/.zshrc instead of ~/.bashrc, then run source ~/.zshrc. Everything else stays the same.

Advertisement

Variations

Add CPU load average

syscheck-cpu.sh
#!/bin/bash
echo "=== Quick System Check ==="
echo "Host    : $(hostname)"
echo "Uptime  : $(uptime -p)"
echo "Load    : $(uptime | awk -F'load average:' '{print $2}' | xargs)"
echo "RAM     : $(free -h | awk '/Mem/{print $3"/"$2}')"
echo "Disk /  : $(df -h / | awk 'NR==2{print $3"/"$2}')"
echo "IP      : $(hostname -I | awk '{print $1}')"
echo "========================="

Check multiple disks at once

syscheck-disks.sh
#!/bin/bash
echo "=== System Check ==="
echo "Host    : $(hostname)"
echo "Uptime  : $(uptime -p)"
echo "RAM     : $(free -h | awk '/Mem/{print $3"/"$2}')"
echo ""
echo "-- Disk Usage --"
df -h --output=target,used,avail,pcent | grep -v tmpfs | grep -v udev
echo "==================="

macOS compatible version

The uptime -p flag and hostname -I aren't available on macOS. Use this version instead:

syscheck-mac.sh
#!/bin/bash
echo "=== Quick System Check ==="
echo "Host    : $(hostname)"
echo "Uptime  : $(uptime | awk '{print $3, $4}' | tr -d ',')"
echo "RAM     : $(vm_stat | awk '/Pages active/{print $3}') pages active"
echo "Disk /  : $(df -h / | awk 'NR==2{print $3"/"$2}')"
echo "IP      : $(ipconfig getifaddr en0)"
echo "========================="
SSH into your own cloud server Run syscheck on a real VPS. DigitalOcean droplets from $4/month — new accounts get $200 free credit.
Get $200 Free → DigitalOcean Referral Badge

Understanding the Commands

CommandWhat it outputs
hostnameThe machine's hostname — the name it goes by on the network
uptime -pHuman-readable uptime: "up 3 days, 4 hours, 12 minutes"
free -hRAM stats in human-readable format (GB/MB)
awk '/Mem/{print $3"/"$2}'Extracts used/total from the Mem row of free output
df -h /Disk usage for the root partition in human-readable format
awk 'NR==2{print $3"/"$2}'Extracts used/total from the second row of df output
hostname -IAll IP addresses for the machine (Linux only)
awk '{print $1}'Grabs just the first IP from hostname -I output
Advertisement

Frequently Asked Questions

How do I check system info in Linux with one command?

Create a bash script that runs hostname, uptime -p, free -h, df -h /, and hostname -I together and formats them cleanly. Save it, make it executable with chmod +x, then alias it in ~/.bashrc so you can call it from anywhere.

How do I check RAM usage in Linux from the terminal?

Run free -h to see total, used, free, and available RAM in human-readable format. To extract just used/total in a script: free -h | awk '/Mem/{print $3"/"$2}'

How do I create a bash alias for a script?

Add alias syscheck='/home/user/syscheck.sh' to your ~/.bashrc file, then run source ~/.bashrc to activate it. After that, typing syscheck in any terminal runs your script instantly.

What command shows uptime in Linux?

Run uptime -p for a clean, human-readable result like "up 3 days, 4 hours, 12 minutes." Running plain uptime shows the same info plus load averages in a slightly different format.

Related Snippets