2026-05-31 12:41:10 +02:00
import type { Metadata } from "next"
2025-05-04 21:37:33 +02:00
import Link from "next/link"
import { BookOpen , ExternalLink , Shield , Activity , Database , FileCode , ArrowLeft } from "lucide-react"
import { Card , CardContent , CardDescription , CardHeader , CardTitle } from "@/components/ui/card"
2026-05-31 12:41:10 +02:00
import Footer from "@/components/footer"
export const metadata : Metadata = {
title :
"Linux & Proxmox Learning Resources — Cheatsheets, Security, ZFS, Monitoring | ProxMenux" ,
description :
"Curated catalogue of external Linux and Proxmox VE learning resources: command-line cheatsheets (TLDR, Explainshell, Cheat.sh), security hardening references, monitoring tools and ZFS documentation. Complements the ProxMenux command catalog." ,
keywords : [
"linux cheatsheet" ,
"proxmox learning resources" ,
"linux security hardening" ,
"zfs documentation" ,
"tldr pages" ,
"explainshell" ,
"linux command reference" ,
"linux monitoring tools" ,
"proxmox community resources" ,
] ,
alternates : { canonical : "https://proxmenux.com/guides/linux-resources" } ,
openGraph : {
title : "Linux & Proxmox Learning Resources" ,
description :
"Curated external Linux and Proxmox VE learning resources — cheatsheets, security, monitoring, ZFS — that complement the ProxMenux command catalog." ,
type : "article" ,
url : "https://proxmenux.com/guides/linux-resources" ,
siteName : "ProxMenux" ,
images : [
{
url : "https://raw.githubusercontent.com/MacRimi/ProxMenux/main/web/public/main.png" ,
width : 1363 ,
height : 735 ,
alt : "Linux & Proxmox Learning Resources — ProxMenux" ,
} ,
] ,
} ,
twitter : {
card : "summary" ,
title : "Linux & Proxmox Learning Resources | ProxMenux" ,
description :
"Curated external resources — cheatsheets, security, monitoring, ZFS — that complement the ProxMenux command catalog." ,
} ,
}
2025-05-04 21:37:33 +02:00
export default function LinuxResourcesPage() {
const resourceCategories = [
{
title : "Linux General" ,
icon : < BookOpen className = "h-6 w-6 text-blue-500" / > ,
resources : [
{
title : "TLDR Pages" ,
url : "https://tldr.sh/" ,
description :
"Terminal commands explained briefly with practical examples. Ideal for quickly remembering how to use tar, find, rsync, etc." ,
} ,
{
title : "Explainshell" ,
url : "https://explainshell.com/" ,
description :
"Enter a command and this site breaks it down explaining each part. Very useful for learning complex commands." ,
} ,
{
title : "Cheat.sh" ,
url : "https://cheat.sh/" ,
description :
"Online service to quickly search commands from browser or terminal (curl cheat.sh/tar). Very powerful and practical." ,
} ,
] ,
} ,
{
title : "Security and Administration" ,
icon : < Shield className = "h-6 w-6 text-blue-500" / > ,
resources : [
{
title : "SSH Hardening Guide" ,
url : "https://www.ssh.com/academy/ssh/security" ,
description :
"Advanced guide to secure SSH access. Covers ciphers, versions, authentication, and other recommended practices." ,
} ,
{
title : "Fail2ban Wiki (GitHub)" ,
url : "https://github.com/fail2ban/fail2ban/wiki" ,
description : "Official documentation and usage examples for Fail2ban, an essential tool for servers." ,
} ,
] ,
} ,
{
title : "Monitoring and Diagnostics" ,
icon : < Activity className = "h-6 w-6 text-blue-500" / > ,
resources : [
{
title : "nmon Performance Monitor" ,
url : "http://nmon.sourceforge.net/pmwiki.php" ,
description : "Advanced system monitoring tool, with documentation on its usage." ,
} ,
{
title : "htop Official" ,
url : "https://htop.dev/" ,
description : "Official page of htop, one of the most used tools for viewing processes and resource usage." ,
} ,
] ,
} ,
{
title : "ZFS and Storage" ,
icon : < Database className = "h-6 w-6 text-blue-500" / > ,
resources : [
{
title : "OpenZFS Documentation" ,
url : "https://openzfs.github.io/openzfs-docs/" ,
description :
"Official and modern guide on ZFS, ideal for administrators using Proxmox with this file system." ,
} ,
{
title : "ZFS Cheatsheet (DigitalOcean)" ,
url : "https://www.digitalocean.com/community/tutorials/how-to-use-zfs-on-ubuntu-20-04" ,
description : "Clear and simple explanation of basic ZFS usage in Linux." ,
} ,
] ,
} ,
{
title : "Extra: General Cheatsheets" ,
icon : < FileCode className = "h-6 w-6 text-blue-500" / > ,
resources : [
{
title : "OverAPI.com" ,
url : "https://overapi.com/linux" ,
description : "Collection of interactive cheatsheets on multiple technologies, including Linux commands." ,
} ,
{
title : "DevHints.io Linux" ,
url : "https://devhints.io/bash" ,
description :
"Bash shortcuts and basic scripting, useful for automating tasks in Proxmox and other environments." ,
} ,
] ,
} ,
]
return (
< div className = "min-h-screen bg-white text-gray-900" >
< div className = "container mx-auto px-4 py-16" style = { { maxWidth : "980px" } } >
< div className = "mb-8" >
< Link href = "/guides" className = "flex items-center text-blue-500 hover:text-blue-700 transition-colors mb-6" >
< ArrowLeft className = "mr-2 h-4 w-4" / >
Back to Guides
< / Link >
< h1 className = "text-4xl font-bold mb-4 text-black" > Linux Resources < / h1 >
< p className = "text-lg mb-8 text-gray-700" >
A collection of useful resources for learning Linux commands , security practices , monitoring tools , and
2025-09-10 18:57:49 +02:00
more . These resources complement the commands available in ProxMenux and will help you deepen your knowledge
2025-05-04 21:37:33 +02:00
of Linux system administration .
< / p >
< / div >
< div className = "space-y-10 mb-16" >
{ resourceCategories . map ( ( category , index ) = > (
< div key = { index } className = "mb-8" >
< div className = "flex items-center gap-3 mb-4" >
{ category . icon }
< h2 className = "text-2xl font-bold text-black" > { category . title } < / h2 >
< / div >
< div className = "grid grid-cols-1 md:grid-cols-2 gap-6" >
{ category . resources . map ( ( resource , resourceIndex ) = > (
< ResourceCard key = { resourceIndex } resource = { resource } / >
) ) }
< / div >
< / div >
) ) }
< / div >
< / div >
2026-05-31 12:41:10 +02:00
< Footer / >
2025-05-04 21:37:33 +02:00
< / div >
)
}
interface ResourceProps {
resource : {
title : string
url : string
description : string
}
}
function ResourceCard ( { resource } : ResourceProps ) {
return (
< Card className = "transition-all duration-300 hover:shadow-md hover:border-blue-300 bg-white text-black border-2 border-gray-200" >
< CardHeader className = "pb-2" >
< CardTitle className = "text-xl text-black flex items-center justify-between" >
{ resource . title }
< a
href = { resource . url }
target = "_blank"
rel = "noopener noreferrer"
className = "text-blue-500 hover:text-blue-700"
aria - label = { ` Visit ${ resource . title } (opens in a new window) ` }
>
< ExternalLink className = "h-5 w-5" / >
< / a >
< / CardTitle >
< / CardHeader >
< CardContent >
< CardDescription className = "text-base text-gray-600" > { resource . description } < / CardDescription >
< div className = "mt-4" >
< a
href = { resource . url }
target = "_blank"
rel = "noopener noreferrer"
className = "text-sm text-blue-500 hover:text-blue-700 flex items-center"
>
Visit resource < ExternalLink className = "ml-1 h-3 w-3" / >
< / a >
< / div >
< / CardContent >
< / Card >
)
}