PowerShell Tools for Linux
A comprehensive collection of PowerShell cmdlets designed to make Linux system administration easier and more PowerShell-like. Just because I could, not that I should.
This module is currently focused on Debian/Ubuntu/LinuxMint and RockyLinux/KDE. If there's more you want/need or anything you find lacking, annoying, aggravating, infuriating, discombobulating, or outright unsatisfying, drop a new Issue here. Thank you!
- 🔍 System Information - Get detailed information about your Linux system, hardware, and configuration
- 📦 Package Management - Manage APT, DNF, Flatpak, and Snap packages with PowerShell cmdlets
- 👥 User & Group Management - Create, update, and manage local users and groups
- 🔐 Security & Certificates - View certificates, firewall status, and authentication logs
- 🌐 Network Tools - Query network configuration, IP settings, and connectivity
- 🖥️ Desktop Environment - Manage Cinnamon applets, extensions, themes, and more
- 📊 System Monitoring - Check memory, CPU, disk usage, and system health
- 🔧 Process & Service Management - Monitor processes, services, and system locks
- 📝 Log Analysis - Query and analyze system logs and journals
- 🎨 Firefox Management - Manage Firefox profiles and launch specific configurations
- PowerShell 7.5 or higher
- Linux operating system (Debian, Ubuntu, Linux Mint, Rocky Linux, Fedora, RHEL)
- Appropriate system permissions for certain operations
- Some functions require Python 3
Install-Module -Name LinuxTools -Scope CurrentUser-
Clone the repository
git clone https://github.com/Skatterbrainz/LinuxTools.git cd LinuxTools -
Import the module
Import-Module ./linuxtools.psd1
Import the module and explore available cmdlets:
# Import the module
Import-Module LinuxTools
# Get all available cmdlets
Get-Command -Module LinuxTools
# Get help for a specific cmdlet
Get-Help Get-SystemInfo -Full
# Example: Get system information
Get-SystemInfo
# Example: Update all packages
Update-LinuxPackages
# Example: Check for pending package updates
Get-PackageUpdates -Summary
# Example: Get local users
Get-LocalUserFull documentation for each cmdlet is available in the docs directory:
- Get-SystemInfo - Get comprehensive system information
- Get-LinuxPackages - List installed packages
- Get-PackageUpdates - List pending package updates
- Get-DefaultApplication - Query MIME default applications
- Get-DesktopEntries - Query desktop entry files across user, system, and autostart locations
- Get-NetworkConnections - Inspect listening and active sockets
- Get-SwapInfo - Get swap usage and swappiness
- Get-AptSources - List active apt repository entries
- Get-GPUInfo - Get GPU adapter and driver details
- Get-SystemErrors - Aggregate errors from journal and common Linux log files
- Get-NotificationDaemon - Detect active desktop notification daemon processes
- Get-LibraryVersions - List installed versions of common runtime libraries
- Test-SystemHealth - Run a consolidated health check across key system signals
- Update-LinuxPackages - Update packages across available package managers
- Get-LocalUser - Get local user accounts
- Get-ProcessList - Get running processes
- And many more...
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features or cmdlets
- Add support for more Linux distributions
- Improve documentation
- Submit pull requests
Please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Skatterbrainz
- GitHub: @Skatterbrainz
- Built for PowerShell 7+ on Linux
- Inspired by the need to bring PowerShell-style management to Linux systems
- Thanks to all contributors and users who have provided feedback and suggestions
Revision history has been moved to ChangeLog.md.