Skip to content

fossillogic/squid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

122 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Squid Tool Logo

A System Monitoring Power Utility by Fossil Logic

Squid Tool is a powerful all-in-one system administration and monitoring utility for admins, developers, and engineers. It unifies essential process management, system diagnostics, and system profiling into a single, consistent command-line interface—eliminating the need for multiple fragmented tools.


Features

  • Process Management — Use the process command to display, filter, and manage system processes. Supports actions like showing all processes, filtering by PID or name, checking existence, viewing details, managing priorities, sending signals, suspending/resuming, terminating, killing, waiting for exit, and spawning new processes.
  • Service Management — The service command allows you to list, check status, start, stop, restart, enable, and disable system services.
  • System Operations — Use the system command for system-level actions such as displaying system info, uptime, shutdown, reboot, updating, and loading configuration files.
  • Resource Inspection — The inspect command examines files, directories, processes, and services, with support for structured JSON output.
  • Permission Management — The permit command inspects and modifies permissions for users, files, and services, including granting and revoking permissions.
  • Environment Variable Management — The env command lists, gets, sets, unsets, and exports environment variables.
  • Flexible Output — The echo command prints text or system information, with options for environment variables, JSON, and colored output.
  • Comprehensive System Profiling — The this command provides a detailed system profile, including OS, hardware, CPU, memory, storage, network, virtualization, uptime, limits, and more, with structured output options.
  • Built-in Help — The help command displays usage information, examples, and manual pages for all commands.

Squid Tool delivers unified, professional-grade system administration features with a modern, extensible interface.


Prerequisites

Ensure you have the following installed before starting:

  • Meson Build System: This project relies on Meson. For installation instructions, visit the official Meson website.

Setting Up Meson Build

  1. Install Meson:
    • Follow the installation guide on the Meson website for your operating system.

Setting Up, Compiling, Installing, and Running the Project

  1. Clone the Repository:

    git clone https://github.com/fossillogic/squid.git
    cd squid
  2. Configure the Build:

    meson setup builddir
  3. Compile the Project:

    meson compile -C builddir
  4. Install the Project:

    meson install -C builddir
  5. Run the Project:

    squid --help

Command Palette


Core System Commands

Command Description Flags / Options
process Display and manage system processes.
-a, --all (show all processes)
-p, --pid <id> (select specific process)
--name <pattern> (filter by process name)
--exists <pid> (check if process exists)
--info <pid> (show detailed info)
--env <pid> (show environment variables)
--exe <pid> (show executable path)
--ppid <pid> (show parent process ID)
--priority <pid> (show process priority)
--set-priority <pid> <value> (change process priority)
--suspend <pid> (pause process)
--resume <pid> (resume process)
--terminate <pid> (terminate process gracefully)
--kill <pid> (force kill process)
--signal <pid> <sig> (send signal)
--wait <pid> [--timeout <ms>] (wait for process exit)
--spawn <exe> [args...] (start new process)
service Manage system services. --list (show services)
--status <name>
--start <name>
--stop <name>
--restart <name>
--enable <name>
--disable <name>
system System-level operations (like systemctl). --info (system info)
--uptime
--shutdown
--reboot
--update
--config <file>
permit Adjust permissions for users, files, or services. --user <name>
--file <path>
--service <name>
--grant <perm>
--revoke <perm>
env Inspect or set environment variables. --list
--get <key>
--set <key>=<value>
--unset <key>
--export <file>
echo Print text or system information. --text <msg>
--env <key>
--json
--color
--mocking (mocking SpongeBob case)
--rot13 (ROT13 transform)
--shuffle (randomize characters)
--piglatin (Pig Latin transform)
--leet (Leet speak transform)
--upper-snake (UPPER_SNAKE_CASE)
--silly (random case/symbols)
--cipher <type> (encode text using a named cipher: caesar, vigenere, base64, base32, binary, morse, baconian, railfence, haxor, leet, rot13, atbash)
this Display a comprehensive system profile, with lookup features for each major host property. --system (OS, kernel, hostname, user, domain, platform)
--arch (architecture, CPU, cores, threads, frequency)
--memory (total, free, used, available, swap)
--endianness (little/big endian)
--power (AC/battery, charging, battery %/time left)
--cpu (model, vendor, cores, threads, frequency, features)
--gpu (name, vendor, driver, memory)
--storage (device, mount, total/free/used, filesystem)
--env (shell, home, lang, path, term, user)
--virtualization (VM/container detection, hypervisor, container type)
--uptime (uptime, boot time)
--network (hostname, IP, MAC, interface, status)
--process (PID, PPID, exe, cwd, name, privileges)
--limits (max open files, max processes, page size)
--time (timezone, UTC offset, locale)
--hardware (manufacturer, product, serial, BIOS)
--display (count, resolution, refresh rate)
--all (show everything)
--json (structured output)
ping Test reachability and latency to a host (ICMP-style or TCP fallback). --host <addr> (target hostname or IP)
--count <n> (number of packets to send)
--interval <ms> (delay between pings)
--timeout <ms> (per-packet timeout)
--ipv4 / --ipv6 (force protocol)
--tcp <port> (use TCP ping instead of ICMP)
--stats (show summary stats only)
--flood (rapid ping mode)
--json
scan Scan ports and detect open services on a host. --host <addr>
--ports <range> (e.g. 1-1024)
--top <n> (scan top common ports)
--timeout <ms>
--tcp / --udp
--service (attempt service detection)
--banner (grab service banners)
--open (show only open ports)
--json
help Display help for commands. --examples
--man
--command <cmd>

Global Flags (Available to All Commands)

Flag Description
--help Show command help.
--version Display Squid Tool version.
-v, --verbose Enable detailed output.
-q, --quiet Suppress standard output.
--dry-run Simulate actions without changes.
--color Colorize output where applicable.
--time Display timestamps in output.

Usage Examples

Example Description
squid process -a List all system processes. Uses -a/--all.
squid service --list List all system services. Uses --list.
squid system --info Show system information. Uses --info.
squid permit --user alice --grant sudo Grant sudo permission to user alice. Uses --user and --grant.
squid env --get PATH Display the value of the PATH environment variable. Uses --get PATH.
squid echo --text "Hello, Squid!" --upper-snake Print "Hello, Squid!" in UPPER_SNAKE_CASE. Uses --text and --upper-snake.
squid this --all --json Show a full system profile in JSON format. Uses --all and --json.
squid ping --host example.com --count 4 Ping a host 4 times to measure latency and reachability.
squid ping --host 1.1.1.1 --tcp 443 --stats Perform TCP-based ping on port 443 and show summary statistics only.
squid scan --host example.com --ports 1-1024 Scan ports 1–1024 on a host.
squid scan --host 192.168.1.1 --top 100 --service Scan top 100 ports and attempt service detection.
squid help --command process Show help for the process command. Uses --command process.

Command Comparison (Squid vs Traditional Tools)

Squid Tool consolidates many common system administration utilities into a single consistent interface.

Squid Command Traditional Commands Purpose
squid process ps, top, pgrep, kill, renice, nice Display, filter, and manage system processes, including signals and priorities.
squid service systemctl, service, chkconfig Manage system services: list, start, stop, enable, disable, restart.
squid system uname, uptime, shutdown, reboot, cat /etc/os-release System-level operations: info, uptime, shutdown, reboot, update.
squid permit chmod, chown, usermod, setfacl Inspect and modify permissions for users, files, and services.
squid env env, printenv, export, unset List, get, set, unset, and export environment variables.
squid echo echo, printf, env, jq, tr, awk Print text or system info, transform output, and format data.
squid this hostnamectl, lscpu, lsblk, free, ifconfig, dmidecode Display a comprehensive system profile (OS, hardware, CPU, memory, storage, network, etc.).
squid ping ping, hping, nc Test host reachability and latency using ICMP or TCP fallback.
squid scan nmap, nc, masscan Scan ports, detect services, and optionally grab banners.
squid help man, --help, info Show help, usage, and examples for all commands.

This table highlights how Squid Tool unifies and extends the capabilities of many traditional Linux/Unix utilities.


Contributing

Interested in contributing? Please open pull requests or create issues on the GitHub repository.

Feedback and Support

For issues, questions, or feedback, open an issue on the GitHub repository.

License

This project is licensed under the Apache Public License.

About

Squid Tool is the ultimate all-in-one system administration and monitoring utility for admins, developers, and system engineers. It consolidates essential process management, system diagnostics, and real-time monitoring into a single command-line interface—eliminating tool fragmentation.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Contributors

Generated from dreamer-coding/app-c