Skip to content

Latest commit

 

History

History
437 lines (291 loc) · 18.7 KB

README.es.md

File metadata and controls

437 lines (291 loc) · 18.7 KB

Colección de Scripts de Bash de HopeSeekr

Utilidades para facilitar tu vida.

¡Scripts que uso a diario, o en nuevas instalaciones de sistemas, que mejoran sustancialmente mi experiencia con Linux!

Logo de Hope

Están ordenados por cuánta utilidad me brindan.

Cambios Recientes

v2.7.0 @ 2024-08-24

  • [2024-08-24 12:06:32 CDT] [bash-timer] Se agregó el proyecto bash-timer.

v2.6.1 @ 2024-08-24

  • [2024-08-23 07:09:10 CDT] [git-same-sig-time] Se agregó soporte adecuado para zonas horarias diferentes a la de la computadora del usuario.

v2.6.0 @ 2024-08-12

  • [2024-08-12] Se limpió mayormente el README y se tradujo al chino, hindi y español.
  • [2024-08-12] [turn-off-monitors] Se agregó soporte completo para apagar monitores en Wayland para Gnome y KDE.
  • [2024-08-12] [arch-pacman-dupe-cleaner] Requiere superusuario para ejecutarse.
  • [2024-08-12] [gitconfig] Tiempo de espera automático para git cuando los sitios web no son accesibles.
  • [2024-08-12] [bash_rc.aliases] Reemplaza ssh con mosh, si está instalado.
  • [2024-08-12] [bash_rc.aliases] Se añadió un alias para que watch respete los alias de ~/.bashrc.
  • [2024-08-12] [framework/wait_until_mouse_or_keyboard_event] Bloquea la ejecución hasta que se presione una tecla, se mueva el ratón o se haga clic en un botón del ratón.
  • [2024-08-12] [framework/is_root] Se agregó una función para determinar el acceso root.
  • [2024-08-12] [launch-browser] Lanza navegadores basados en Chrome en Wayland nativo.
  • [2024-08-12] Se añadió un .bash_profile.

Tabla de Contenidos (Categorizada)

  • Super Productividad

    • bash_profile.bash_profile y .bashrc de alta calidad para usuarios avanzados.
    • bash_rc.aliases — Alias y funciones de .bashrc de alto octanaje para una mejor calidad de vida.
    • bash-timer — ¡Agregue fácilmente el tiempo de ejecución legible para humanos para cada comando en bash!
    • ssh-autologin — Configura automáticamente los autologins de SSH.
    • ssh-keyphrase-only-once — Solo solicita tu frase de contraseña de SSH una vez por arranque.
    • gitconfig — Configuración de Git CLI de alto octanaje.
  • Calidad de Vida de Git

    • git-change-author — Cambia fácilmente el nombre y el correo electrónico del autor en masa en un repositorio git.
    • git-commit-at-modded-time — Usa el tiempo modificado de un archivo como el tiempo de git.
    • git-mtime — Restaura el tiempo de modificación de cada archivo al del historial del repositorio.
    • git-same-sig-time — Unifica el tiempo de la firma GPG con el tiempo del commit.
    • git-shallow-pull — Actualiza superficialmente un repositorio git clone --depth 1 poco profundo.
  • CronTabs

  • Calidad de Vida

    • launch-browser — Script de utilidad para lanzar navegadores que los inicia en modo Wayland completo.
    • ls-by-min — Ordena la salida de ls por tamaño de archivo, descendente.
    • random-file — Elige aleatoriamente un archivo o directorio y lo muestra.
    • sync-watch — Muestra una pequeña pantalla actualizada de cuántos MB necesitan escribirse en los discos.
    • tar-sorted — Crea archivos tar automáticamente ordenados por nombre de archivo.
    • turn-off-monitors — Apaga todos los monitores a través de la línea de comandos (CLI).
  • Scripts Fantásticos

    • american-date — Una utilidad para imprimir fechas en formato americano.
    • changelog-maker-lite — Crea rápidamente un hermoso registro de cambios a partir del historial de commits.
    • stream-to-youtube — Transmisión en vivo directamente a YouTube desde la línea de comandos.
    • sudoers.d/00_prompt_once — Solo solicita tu contraseña de sudo una vez por arranque.
    • watermark.sh — Incrusta fácilmente tu propia marca de agua en videos.
    • wifi-autorun-on-connect — Ejecuta automáticamente un script al conectarte a un punto de acceso Wifi.
    • x265.sh — Transcodifica a h265 HEVC a través de la tarjeta gráfica Intel usando VAAPI.
  • Utilidades Esotéricas

  • Framework de Bash

    • is_root — Proporciona la función is_root para determinar si el usuario actual tiene acceso root.
    • wait_until_mouse_or_keyboard_event — Bloquea la ejecución hasta que se presiona una tecla, se mueve el mouse o se hace clic en un botón del mouse.
  • Licencia — Creative Commons v4.0 Internacional

  • Acerca del Autor

bash_profile

Une muchos de los BashScripts para crear un sistema súper poderoso.

bash_rc.aliases

¡Este es posiblemente la pieza más valiosa del proyecto!

Estas docenas de alias hacen que trabajar con Linux y desarrollar software de aplicaciones web sea mucho más eficiente y optimizado.

¡Ve a revisar el archivo! bash_rc.aliases

bash-timer

¡Agregue fácilmente el tiempo de ejecución legible para humanos para cada comando en bash!

El tiempo aparecerá en la parte inferior izquierda, inmediatamente a la izquierda de su $PS1.

bash-timer image

2 days 05:02:11.33 # A very long process

Para instalar:

curl https://raw.githubusercontent.com/hopeseekr/bash-timer/v1.5.0/install | bash

Ver el README.md para más información.

ssh-autologin

Configura automáticamente (si es necesario) una clave privada SSH y la instala en el servidor remoto (creando también el directorio .ssh, si es necesario).

ssh-keyphrase-only-once.installer

Configura adecuadamente tu cliente OpenSSH e instala ssh-agent en tu ~/.bash_profile de tal manera que solo tendrás que ingresar tu frase de contraseña SSH una vez por inicio de sesión para cualquier cosa que funcione con ssh-agent.

gitconfig

Un archivo .gitconfig altamente optimizado para desarrolladores de software experimentados listos para aumentar su productividad diaria.

Instálalo en ~/.gitconfig.

git pretty
git ll

Muestra un hermoso registro multicolor con fechas estándar ISO:

git pretty

git fix

Salta rápidamente a rebasar (rebase) los últimos dos commits en uno solo.

git alterego

Cambia rápidamente el repositorio actual para usar tu cuenta alterego principal para un commit previamente realizado.

git ego

El inverso de git alterego.

git resign <hash>

Vuelve a firmar rápidamente commits en bloque desde hasta el más reciente.

Esto es particularmente útil cuando tu clave GPG expira y necesitas renovarla y luego volver a firmar.

git c: checkout
git cp: cherry-pick
git cpm: cherry-pick for Merge commits

Alias utilitarios para hacer que git sea más eficiente de usar.

git shows

Muestra la firma GPG para cada commit en git log.

git-change-author

Cambia fácilmente el nombre y el correo electrónico del autor de cualquiera de los commits en un repositorio de git.

Uso: git-change-author "Tu Nombre" "email@direccion" [SHA1]

git-commit-at-modded-time

Utiliza la hora de modificación de un archivo como la hora de git.

Ejemplo:

$ ls -l american-date
 #-rwxrwxr-x+ 1 1MB Oct 14  2020  american-date
$ ./git-commit-at-modded-time american-date
$ git pretty american-date
7462b66 G 2020-10-14 15:53:34 -0500 Theodore R. Smith

git-mtime Restaurador de Hora de Modificación de Git

Restaura la hora de modificación de cada archivo en tu directorio de trabajo a cuando fue actualizado por última vez en el repositorio remoto de git.

Cuando haces checkout de un repositorio y ejecutas esto, tu directorio de trabajo cambia de:

-rwxrwxr-x+ 1 tsmith users 1MB Oct 22 01:58 changelog-maker-lite*
-rw-rw-r--+ 1 tsmith users 1MB Oct 22 01:58 CHANGELOG.txt
-rw-rw-r--+ 1 tsmith users 1MB Oct 22 01:58 gitconfig
-rwxrwxr-x+ 1 tsmith users 1MB Oct 22 01:58 git-mtime

A:

-rwxrwxr-x+ 1 tsmith users 1MB Oct  1 08:38 changelog-maker-lite*
-rw-rw-r--+ 1 tsmith users 1MB Oct  1 01:10 gitconfig
-rwxrwxr-x+ 1 tsmith users 1MB Sep 30 23:19 git-mtime

git-same-sig-time

Unifica la hora de la firma GPG con la hora del commit.

Antes:

 gpg: Signature made Fri 19 Jan 2024 06:50:44 AM CST
 gpg:                using RSA key 4BF826131C3487ACD28F2AD8EB24A91DD6125690
 gpg: Good signature from "Theodore R. Smith <[email protected]>" [ultimate]
 43578ec G 2024-01-16 01:52:41 -0600 Theodore R. Smith   [m] Updated the packages and exclusion lists. HEAD
 gpg: Signature made Fri 19 Jan 2024 06:50:25 AM CST
 gpg:                using RSA key 4BF826131C3487ACD28F2AD8EB24A91DD6125690
 gpg: Good signature from "Theodore R. Smith <[email protected]>" [ultimate]
 8ab4104 G 2024-01-15 08:27:07 -0600 Theodore R. Smith   Upgraded to PHP 8.3.

Después:

 gpg: Signature made Tue 16 Jan 2024 01:52:41 AM CST
 gpg:                using RSA key 4BF826131C3487ACD28F2AD8EB24A91DD6125690
 gpg: Good signature from "Theodore R. Smith <[email protected]>" [ultimate]
 515e36b G 2024-01-16 01:52:41 -0600 Theodore R. Smith   [m] Updated the packages and exclusion lists. HEAD
 gpg: Signature made Mon 15 Jan 2024 08:27:07 AM CST
 gpg:                using RSA key 4BF826131C3487ACD28F2AD8EB24A91DD6125690
 gpg: Good signature from "Theodore R. Smith <[email protected]>" [ultimate]
 22c5040 G 2024-01-15 08:27:07 -0600 Theodore R. Smith   Upgraded to PHP 8.3.

tar-sorted

Crea archivos tar automáticamente ordenados por nombre de archivo.

Esto es particularmente útil en sistemas de archivos de orden aleatorio, como ext4.

Con Bettergist Collector, usamos esto para poder estimar aproximadamente cuánto tiempo tomará comprimir y extraer archivos de múltiples gigabytes con millones de archivos.

Es un reemplazo directo de tar, y usa los mismos argumentos.

Opcionalmente, puedes instalar la función directamente en tu ~/.bashrc.

cron.daily/00_clear-cache

  • Vacía el directorio ~/.cache de cada usuario que no sea root.
  • Vacía el directorio de caché de paquetes de Pacman.

Esto puede usar opcionalmente nullfsvfs para limitar el desgaste de los SSDs.

cron.daily/01_purge-locales

Elimina todos los archivos de locales que no sean EN todos los días.

Esto ahorra, usualmente, de 400 a 1000 MB de espacio.

cron.hourly/btrfs-snapshot

Toma instantáneas BTRFS de / cada hora en punto.

cron.daily/btrfs-snapshot

Limpia las instantáneas por hora del día anterior mientras mantiene las instantáneas diarias.

cron.hourly/php-clean-tmp

Limpia archivos temporales de PHP que de otra manera serían inútiles, lo cual es muy útil en servidores ocupados.

  • Archivos de sesión antiguos que no han sido modificados en la última hora.
  • Archivos temporales de phpunit.
  • Archivos temporales de phpstan.

american-date

Una utilidad para imprimir fechas en el formato americano

Vie, 19 Enero 2024 05:49:20 CST

changelog-maker-lite

Crea fácilmente CHANGELOGs basados en registros de commits de git concisos:

[2020-10-01 00:23:15 CDT] — [x265.sh] Use VAAPI for encoding using Intel graphics cards.
[2020-10-01 00:30:00 CDT] — Created a README.md.
[2020-10-01 00:37:07 CDT] — [random-file] renamed for more clarity.
[2020-10-01 00:44:34 CDT] — Flushed out the README.
[2020-10-01 00:49:44 CDT] — [bash_rc.aliases] Added a whole slew of webdev aliases.
[2020-10-01 00:58:00 CDT] — [bash_rc.aliases] Added some more descriptions.
[2020-10-01 01:10:26 CDT] — [.gitconfig] Added a whole bunch of my git aliases. tag: v1.0.0
[2020-10-01 08:17:42 CDT] — [clear-cache] Delete broken symlinks in the ~/.cache directories.

launch-browser

  1. Detecta si el usuario está ejecutando Wayland. Si es así, para los navegadores basados en Chromium, pasará las banderas necesarias para que se ejecute en modo nativo de Wayland (no XWayland) para un rendimiento superior.
  2. Siempre se lanzará usando el llavero de Gnome, de modo que no perderás todas tus cookies y logins permanentes cada vez que cambies a KDE, y viceversa.

ls-by-min

Devuelve una lista de archivos ordenados por tamaño de archivo, de forma descendente, que tienen al menos X MB de tamaño.

random-file

Elige un archivo aleatorio en un directorio / directorio de trabajo actual (PWD).

stream-to-youtube

¡Transmisor de pantalla en vivo de YouTube directamente desde la línea de comandos (a través de ffmpeg)!

sudoers.d/00_prompt_once

Esto hará que sudo solo te pida la contraseña UNA VEZ durante un solo arranque. No te pedirá a través de diferentes terminales y no expirará. Al reiniciar, expirará automáticamente.

sync-watch

Muestra cuántos megabytes aún deben escribirse en discos [lentos].

Every 5.0s: grep -e Dirty: -e Writeback: /proc/meminfo                                                    
asus-z13: Fri Jan 19 07:09:32 2024

Dirty:            751552 kB
Writeback:             0 kB

turn-off-monitors

Apaga fácilmente todos tus monitores a través de la línea de comandos.

Para cuando quieres alejarte y no preocuparte tanto por una pantalla de bloqueo.

wifi-autorun-on-connect.installer

Instala un script de NetworkManager que se ejecuta automáticamente cuando se conecta a redes WiFi específicas.

watermark.sh

Agrega una marca de agua a videos a través de ffmpeg.

x265.sh

Transcodifica a x265 HEVC a través de ffmpeg utilizando la tarjeta gráfica de Intel.

Utilidades esotéricas

esoteric/arch-pacman-dupe-cleaner

Ayuda a reparar automágicamente entradas duplicadas en la base de datos de Pacman en Arch Linux.

Está destinado a resolver el raro problema: "error: duplicated database entry 'foo'"

esoteric/git-shallow-pull

Actualiza de forma superficial un repositorio git clone --depth 1 poco profundo.

esoteric/init-btrfs-rootfs

En Arch Linux, una configuración de btrfs pone cada archivo individual en /. Esto limita en gran medida la capacidad de administrar adecuadamente el sistema, con subvol=5 sin nada más que subvolúmenes.

Este script hace lo siguiente:

  • Crea nuevas instantáneas a nivel raíz: @rootfs (/), @snapshots, @important y @home.
  • Mueve los archivos de / a /@rootfs, los de /home a /home y crea nuevos directorios /snaps e /important.
  • Crea /media/true-root que se monta automáticamente en / (subvol=5).
  • Se integra con los cronjobs de instantáneas automáticas cron.d en este proyecto
    • / se toma una instantánea diariamente en /snaps/daily/YYYY-MM-DD.
    • /important se toma una instantánea cada hora en /snaps/important/YYYY-MM-DD/HH.
    • /important está configurado para tener la compresión habilitada.
    • Configura /home para aplicar una cuota basada en el 10% del espacio total del disco por usuario, y el 50% del espacio total del disco para cada usuario.
    • La instantánea de /home está configurada para tener la compresión habilitada.
    • /home tiene instantáneas rotativas de 7 días para los archivos .* de los usuarios, excepto para los directorios de caché (cuando se usa [cron.daily/00_clear-cache]).

El Problema

Arch Linux coloca todo el contenido de / en el subvolumen principal de BTRFS (ID=5).

Esto significa que las tareas comunes de creación de instantáneas y subvolúmenes, en particular, retroceder a un subvolumen raíz anterior (por ejemplo, funcional) es excepcionalmente difícil y requiere un arranque de rescate, etc.

La Solución

La solución proporcionada soluciona temporalmente la situación, con suerte sin la necesidad de un disco de rescate, en un entorno en vivo. Sin embargo, realmente deberías tener un disco de rescate preparado de antemano.

¡Y por el amor de Dios, haz copias de seguridad primero! btrfs-init-rootfs

esoteric/clone-github-repos.php

Descarga automáticamente todos los repositorios de GitHub de un usuario o una organización.

Framework de Bash

is_root

Cuando se ejecuta de forma independiente, mostrará "Running as root" (Ejecutando como root) o "Not running as root" (No ejecutando como root).

Cuando se llama como una función, devolverá true o false.

wait_until_mouse_or_keyboard_event

Bloquea el programa en ejecución hasta que se presiona una tecla, se mueve el ratón o se presiona un botón del ratón, en cualquier lugar, independientemente del enfoque de la ventana.

Mostrará uno de los siguientes: KEYBOARD_KEY (TECLA_DE_TECLADO), MOUSE_CLICKED (RATÓN_CLIC) o MOUSE_MOVED (RATÓN_MOVIDO).

Se puede ejecutar de forma independiente o como una función.

Licencia

Este proyecto está licenciado bajo la Licencia Creative Commons Attribution v4.0 International. CC.by License Summary

Acerca del Autor

Theodore R. Smith [email protected]
GPG Fingerprint: 4BF8 2613 1C34 87AC D28F 2AD8 EB24 A91D D612 5690
CEO: PHP Experts, Inc.