Skip to content

Latest commit

 

History

History
287 lines (206 loc) · 7.61 KB

README.es.md

File metadata and controls

287 lines (206 loc) · 7.61 KB

Language / Idioma: English | Español

psc — Process Search & Control

Herramienta de terminal para buscar, ver y finalizar procesos rápidamente, con la misma sintaxis en Linux y Windows. Sin dependencias externas: solo herramientas nativas del sistema.

image image

Comandos

Comando Descripción
psc Mostrar el banner informativo
psc -a, psc --all Listar todos los procesos
psc -n <nombre> Buscar por nombre (fragmento o regex)
psc -pid <pid> Buscar por PID
psc -p <puerto> Buscar por puerto
psc -ip <ip> Buscar por dirección IP
psc -n X -p Y Filtros combinados (AND)
psc -k <spec> Finalizar por índice: N, 1,3,5, 1-4 o all
psc -k <spec> -f Finalizar sin confirmación
psc -k <spec> -s <sig> Señal personalizada (Linux: SIGINT/15; Windows: cierre graceful vs forzado)
psc -i TUI interactiva (flechas, K/Delete para matar, q para salir)
psc -w [N], psc --watch [N] Refresco en vivo cada N segundos (por defecto 2)
psc -t, psc --tree Árbol de procesos (jerarquía PID/PPID)
psc --info <n> Detalles profundos del resultado #n
psc --json / psc --csv Salida estructurada
psc -q Modo silencioso: solo PIDs coincidentes
psc --uninstall Desinstalar psc y limpiar remanentes
psc --uninstall -f Desinstalar sin confirmación
psc --help Mostrar ayuda

Sin argumentos, psc muestra un banner ASCII con versión, desarrollador, fecha de release y tips rápidos. Los listados incluyen: índice, PID, nombre, usuario, %CPU, MEM, puerto(s), IP(s) y estado.

Los filtros (-n, -pid, -p, -ip) se pueden encadenar con lógica AND. -q, --json y --csv son mutuamente excluyentes.


Instalar desde el repositorio (clone)

Linux

  1. Clona el repositorio y entra en él:
git clone https://github.com/ramarak/psc.git
cd psc
  1. Ejecuta el instalador (instala en ~/.local/bin/psc):
chmod +x install.sh linux/psc.sh
./install.sh

Para instalación de sistema (/usr/local/bin/psc):

./install.sh --system
  1. Si el instalador avisa de que ~/.local/bin no está en tu PATH, añádelo a ~/.bashrc o ~/.zshrc y recarga la shell:
export PATH="$HOME/.local/bin:$PATH"
source ~/.bashrc
  1. Verifica:
psc --help
psc -n bash

Windows

  1. Clona el repositorio y entra en él (PowerShell o CMD):
git clone https://github.com/ramarak/psc.git
cd psc
  1. Ejecuta el instalador (copia a %LOCALAPPDATA%\psc y añade esa carpeta al PATH del usuario):
powershell -ExecutionPolicy Bypass -File .\install.ps1
  1. Cierra y abre una terminal nueva para que el PATH actualizado aplique en todas partes.

  2. Verifica:

psc --help
psc -n powershell

Instalar desde Releases

En la página de Releases del repositorio encontrarás assets por plataforma (por ejemplo psc-linux.zip y psc-windows.zip).

Linux (desde release)

  1. Descarga el asset de Linux (p. ej. psc-linux.zip) desde Releases.
  2. Extráelo:
unzip psc-linux.zip -d psc-linux
cd psc-linux

Contenido esperado: psc.sh (o linux/psc.sh, según el empaquetado).

  1. Instálalo en tu PATH:
# Copia manual
mkdir -p ~/.local/bin
cp psc.sh ~/.local/bin/psc

# o, si está en una subcarpeta:
# cp linux/psc.sh ~/.local/bin/psc
chmod +x ~/.local/bin/psc
  1. Asegúrate de que ~/.local/bin esté en tu PATH (igual que en la instalación por clone) y verifica:
psc --help

Windows (desde release)

  1. Descarga el asset de Windows (p. ej. psc-windows.zip) desde Releases.
  2. Extráelo a una carpeta temporal.
  3. Copia psc.ps1 y psc.cmd a una carpeta permanente, por ejemplo:
$dest = Join-Path $env:LOCALAPPDATA 'psc'
New-Item -ItemType Directory -Force -Path $dest | Out-Null
Copy-Item .\psc.ps1, .\psc.cmd -Destination $dest -Force
# Si están bajo windows\:
# Copy-Item .\windows\psc.ps1, .\windows\psc.cmd -Destination $dest -Force
  1. Añade esa carpeta al PATH del usuario:
$dest = Join-Path $env:LOCALAPPDATA 'psc'
$userPath = [Environment]::GetEnvironmentVariable('Path', 'User')
if (($userPath -split ';') -notcontains $dest) {
  [Environment]::SetEnvironmentVariable('Path', "$userPath;$dest", 'User')
}
  1. Abre una terminal nueva y verifica:
psc --help

Si la release incluye install.ps1, puedes ejecutarlo tras extraer el zip completo del repo.


Uso de -k y -f

-k finaliza un proceso por el índice de la última búsqueda (no por PID directo).

psc -n node        # listar coincidencias y guardar el resultado
psc -k 2           # pedir confirmación y matar #2
psc -k 2 -f        # matar #2 sin preguntar
psc -k 1,3,5 -f    # matar varios índices
psc -k 1-4 -f      # matar un rango
psc -k all -f      # matar todos los resultados de la última búsqueda
psc -k 1 -s SIGINT # Linux: enviar SIGINT; Windows: cierre graceful

Si no hay búsqueda previa (archivo temporal ausente o vacío), -k falla y pide ejecutar psc -a (o un filtro) primero.

Interactivo, watch, árbol e info

psc -n node -i          # TUI: flechas + K/Delete para matar, q para salir
psc -n node -w 2        # refrescar la lista filtrada cada 2s
psc -a -t               # árbol completo de procesos
psc -n node --info 1    # ruta del ejecutable, cmdline, archivos/sockets

Salida estructurada

psc -n nginx --json
psc -a --csv
psc -n nginx -q | xargs echo

Desinstalación

psc --uninstall      # pide confirmación
psc --uninstall -f   # sin confirmación

Elimina los binarios/scripts instalados, limpia la caché de la última búsqueda y, en Windows, también quita la carpeta de instalación del PATH del usuario.


Tests

Runners autónomos (sin Pester/bats). Crean fixtures de corta duración y ejercitan la CLI.

Windows

powershell -ExecutionPolicy Bypass -File .\tests\windows\run-tests.ps1

Linux (nativo o WSL)

bash ./tests/linux/run-tests.sh

Desde Windows con WSL:

wsl -e bash ./tests/linux/run-tests.sh

Requisitos

  • Linux: bash, ps, y ss o netstat; kill para terminar procesos. Opcional: lsof para un --info más completo.
  • Windows: PowerShell 5+; Get-Process; netstat (o Get-NetTCPConnection); Stop-Process.
  • Sin dependencias externas ni gestores de paquetes adicionales.

Estructura del repositorio

psc/
├── README.md
├── README.es.md
├── install.sh          # Instalador Linux
├── install.ps1         # Instalador Windows
├── linux/
│   └── psc.sh
├── windows/
│   ├── psc.ps1
│   └── psc.cmd         # wrapper para que `psc` funcione en CMD/PowerShell
└── tests/
    ├── helpers/        # generadores de fixtures
    ├── linux/run-tests.sh
    └── windows/run-tests.ps1

Las carpetas linux/ y windows/ están pensadas para empaquetar cada release.

Licencia

Este proyecto está bajo la licencia MIT.