Skip to content
swbasmxPublic

About

un .bash personalizado

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Bash 5+ Linux MIT Recarga idempotente

Un .bashrc para terminal. Historial sólido, PATH sin duplicados y funciones que sí uso.


Configuración personal de ~/.bashrc para GNU/Linux (Ubuntu / Debian). Está pensada para que recargarla con source ~/.bashrc no rompa nada ni duplique rutas, y para que cada bloque sea fácil de leer, activar o quitar.

Repositorio: https://github.com/swbasmx/bashrc

Características

  • PATH idempotente: path_prepend y path_append comprueban si la ruta ya existe antes de añadirla. Recargar el archivo no acumula entradas.
  • Historial serio: 100 000 entradas, sin duplicados, con fecha y hora, comandos multilínea unificados y escritura inmediata con history -a para compartirlo entre terminales.
  • Comodidad de shell: autocd, globstar (**), cdspell, direxpand y corrección del tamaño de ventana.
  • Readline útil: flechas ↑/↓ buscan por lo ya escrito, tabulación sin distinguir mayúsculas y bracketed paste (un pegado no ejecuta el comando).
  • Prompt lambda en dos líneas, con título de ventana que muestra usuario, host y directorio.
  • Funciones de trabajo: ideb, mkcd, bak y ex (extractor universal).
  • Integraciones opcionales que solo se cargan si existen: NVM, pnpm, bash-completion, lesspipe, fastfetch, info-wc y el toolchain de REA (JDK + Ghidra).
  • Credenciales fuera del repo: ~/.apis se carga si existe, nunca se versiona.
  • Sin dependencias raras: Bash y utilidades estándar.

Requisitos

  • Linux.
  • Bash 5+ (por enable-bracketed-paste).
  • Utilidades base: coreutils, less, dircolors, bash-completion.
  • Opcionales:
    • nala para ideb; si no está, usa apt.
    • nvm, pnpm, fastfetch y info-wc si usas esas herramientas.
    • unrar/unar, 7z, zstd, lz4, xz y lzma para las extensiones correspondientes de ex.
    • gpg para firmar commits (se exporta GPG_TTY).

Instalación

Desde el repo

git clone https://github.com/swbasmx/bashrc.git
cd bashrc
[ -f ~/.bashrc ] && cp -a ~/.bashrc ~/.bashrc.bak-$(date +%Y%m%d-%H%M%S)
ln -sfn "$PWD/.bashrc" ~/.bashrc
source ~/.bashrc

El ln -sfn apunta ~/.bashrc al archivo del repo: lo que edites ahí queda versionado. La copia de seguridad se crea antes de sustituirlo.

Copia manual

Si prefieres no usar enlace simbólico:

cp -a ~/Proyectos/bashrc/.bashrc ~/.bashrc
chmod 640 ~/.bashrc
source ~/.bashrc

Ajusta las rutas de REA

Las primeras líneas apuntan a la instalación local de JDK y Ghidra del autor. Cámbialas por las tuyas o elimina ese bloque si no usas esas herramientas:

export JAVA_HOME="$HOME/.local/opt/jdk-25.0.5+8"
export GHIDRA_INSTALL_DIR="$HOME/.local/opt/ghidra_12.2_PUBLIC"

Uso

Funciones

Función Qué hace
path_prepend <dir> Añade <dir> al inicio del PATH si no estaba.
path_append <dir> Añade <dir> al final del PATH si no estaba.
ideb <archivo.deb> [...] Instala uno o varios .deb locales con nala (o apt).
mkcd <directorio> Crea el directorio y entra en él.
bak <archivo> [...] Copia cada archivo a <archivo>.bak-AAAAMMDD-HHMMSS.
ex <comprimido> Extrae según la extensión.

Ejemplos

mkcd ~/Proyectos/nuevo
bak ~/.bashrc
ex paquete.tar.zst
ideb ./app_1.2.3_amd64.deb

Formatos de ex

.tar.bz2, .tbz2, .tar.gz, .tgz, .tar.xz, .txz, .tar.zst, .tzst, .tar.lz4, .tlz4, .tar.lzma, .tlz, .tar, .bz2, .gz, .xz, .zst, .lz4, .lzma, .Z, .zip, .jar, .rar, .7z.

Banner al abrir la terminal

Si existen, se ejecuta fastfetch; si no, info-wc. Para desactivarlo:

export SHOW_FASTFETCH=0

Ponlo en ~/.bash_aliases o en ~/.apis para que se cargue después.

Estructura del archivo

Bloque Contenido
0 path_prepend / path_append y rutas de REA.
1 Guarda para ejecutarse solo en shells interactivos.
2 Historial y PROMPT_COMMAND.
3 Opciones de shell, readline y alias sudo='sudo '.
4 LESS, lesspipe, GPG_TTY y debian_chroot.
5 Prompt y título de ventana.
6 dircolors.
7 ~/.local/bin y ~/bin en el PATH.
8 Funciones de utilidad.
9-10 NVM y pnpm (opcionales).
11-12 bash-completion, ~/.bash_aliases y ~/.apis.
13 Banner de sistema.

Personalización

  • Prompt: edita PS1 en el bloque 5. El bloque opcional de rama de Git está comentado al final.
  • Historial: ajusta HISTSIZE, HISTFILESIZE e HISTIGNORE en el bloque 2.
  • Banner: SHOW_FASTFETCH=0 lo desactiva; SHOW_FASTFETCH=1 lo reactiva.
  • PATH: usa siempre path_prepend o path_append para no duplicar entradas.

Notas de seguridad

  • Este repositorio no contiene credenciales.
  • La nota del archivo asume que las claves viven en ~/.apis. Si lo usas, protégelo:
chmod 600 ~/.apis
  • No pongas secretos en ~/.bashrc: es legible por otros usuarios del sistema.

Desinstalación

Restaura tu copia de seguridad y borra el enlace:

rm -f ~/.bashrc
cp -a ~/.bashrc.bak-AAAAMMDD-HHMMSS ~/.bashrc

Si instalaste con copia manual y quieres volver al .bashrc del sistema:

cp -a /etc/skel/.bashrc ~/.bashrc

Licencia

MIT. Consulta LICENSE.

Créditos

Estructura y estilo de documentación inspirados en info-wc. El prompt y los bloques de colores son de uso personal.

About

un .bash personalizado

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages