# ~/.zshrc
# Si vienes de bash, quizás necesites cambiar tu $PATH.
# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH
# Path a tu instalación de Oh My Zsh
export ZSH="$HOME/.oh-my-zsh"
# Tema: Powerlevel10k (instalado manualmente en ~/.powerlevel10k)
# ZSH_THEME="robbyrussell"
# Enable Powerlevel10k instant prompt. Debe estar al inicio del archivo
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# Alias para ani-cli en Zsh
alias ani-es="ani-cli --dub"
alias ani-es-continuar="ani-cli -c --dub"
alias ani-es-calidad="ani-cli --dub --quality-select"
# Lista de plugins - SOLO UNA DEFINICIÓN
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
sudo
history-substring-search
colored-man-pages
composer
laravel
docker
extract
)
source $ZSH/oh-my-zsh.sh
# Cargar Powerlevel10k (instalado manualmente)
source ~/.powerlevel10k/powerlevel10k.zsh-theme
# Cargar configuración de Powerlevel10k
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
# Tus funciones personalizadas...
function indicadores() {
cd /var/www/html/jobran/indicadores/ && ls -lt --color=auto
}
function proyectos() {
cd /var/www/html/jobran/ && ls -lt --color=auto
}
php-server() {
local framework=$1
local port=${2:-8000}
local ruta=$3
case "$framework" in
yii2)
ruta=${ruta:-backend/web}
php -S localhost:$port -t "$ruta"
;;
laravel)
ruta=${ruta:-public}
php -S localhost:$port -t "$ruta"
;;
*)
echo "⚠️ Framework no reconocido: '$framework'"
echo "Usa: yii2 o laravel"
;;
esac
}
# Activar globbing avanzado
setopt extendedglob
setopt globdots
setopt nomatch
# Alias Laravel
alias art="php artisan"
alias tinker="php artisan tinker"
alias serve="php artisan serve"
alias migrate="php artisan migrate"
alias seed="php artisan db:seed"
alias fresh="php artisan migrate:fresh --seed"
# Alias para el menú de comandos
alias cmd="comandos"
alias ayuda="comandos"
# Alias Composer
alias cdu="composer dump-autoload"
alias ci="composer install"
alias cu="composer update"
# Alias PostgreSQL
alias psqlc="psql -h localhost -U postgres -W"
alias pgstart="sudo systemctl start postgresql"
alias pgstop="sudo systemctl stop postgresql"
alias pgrestart="sudo systemctl restart postgresql"
alias pgstatus="sudo systemctl status postgresql"
alias psql-iniciar="psql -h localhost -U postgres -W"
# 🔧 ALIAS ÚTILES
# Navegación mejorada
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'
# Seguridad
alias rm='rm -i' # Confirmar antes de eliminar
alias cp='cp -i' # Confirmar antes de sobrescribir
alias mv='mv -i' # Confirmar antes de mover
# Desarrollo (alias adicionales)
alias c='composer'
# Git simplificado
alias gs='git status'
alias ga='git add'
alias gc='git commit -m'
alias gp='git push'
alias gl='git log --oneline --graph'
# Sistema
alias update='sudo apt update && sudo apt upgrade -y'
alias reboot='sudo reboot'
alias shutdown='sudo shutdown -h now'
alias ports='sudo netstat -tulpn'
# Crear y entrar a directorio
mkcd() {
mkdir -p "$1" && cd "$1"
}
# Buscar archivo por contenido
findin() {
grep -r "$1" . --color=always
}
# ═══════════════════════════════════════════════════════════════
# MENÚ INTERACTIVO DE COMANDOS
# ═══════════════════════════════════════════════════════════════
comandos() {
local option
local cmd
local args
while true; do
clear
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ 📚 MENÚ DE COMANDOS - ZSHRC ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ 1. 🎬 Ani-cli (Anime) ║"
echo "║ 2. 🚀 Laravel & Composer ║"
echo "║ 3. 📁 Navegación y Archivos ║"
echo "║ 4. 🔧 Tmux (Gestión de sesiones) ║"
echo "║ 5. 🐘 PostgreSQL ║"
echo "║ 6. 🌐 PHP Server (Yii2/Laravel) ║"
echo "║ 7. 🛡️ Sistema y Seguridad ║"
echo "║ 8. 📊 Git ║"
echo "║ 9. 📋 Todos los comandos ║"
echo "║ 0. Salir ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
read "option?Selecciona una opción [0-9]: "
case $option in
1)
clear
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ 🎬 ANI-CLI - Ver Anime ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ 1. ani-es → Ver anime en español latino ║"
echo "║ 2. ani-es-continuar → Continuar viendo anime ║"
echo "║ 3. ani-es-calidad → Elegir calidad de video ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
read "cmd?Ejecutar comando [1-3] o Enter para volver: "
case $cmd in
1) ani-es ;;
2) ani-es-continuar ;;
3) ani-es-calidad ;;
*) ;;
esac
;;
2)
clear
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ 🚀 LARAVEL & COMPOSER ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ 1. art → php artisan ║"
echo "║ 2. tinker → php artisan tinker ║"
echo "║ 3. serve → php artisan serve ║"
echo "║ 4. migrate → php artisan migrate ║"
echo "║ 5. seed → php artisan db:seed ║"
echo "║ 6. fresh → migrate:fresh --seed ║"
echo "║ 7. cdu → composer dump-autoload ║"
echo "║ 8. ci → composer install ║"
echo "║ 9. cu → composer update ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
read "cmd?Ejecutar comando [1-9] o Enter para volver: "
case $cmd in
1) art ;;
2) tinker ;;
3) serve ;;
4) migrate ;;
5) seed ;;
6) fresh ;;
7) cdu ;;
8) ci ;;
9) cu ;;
*) ;;
esac
;;
3)
clear
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ 📁 NAVEGACIÓN Y ARCHIVOS ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ 1. .. → Subir 1 nivel ║"
echo "║ 2. ... → Subir 2 niveles ║"
echo "║ 3. .... → Subir 3 niveles ║"
echo "║ 4. ll → ls -la (lista detallada) ║"
echo "║ 5. la → ls -A (todos menos . y ..) ║"
echo "║ 6. l → ls -CF (formato columnas) ║"
echo "║ 7. indicadores → Ir a carpeta indicadores ║"
echo "║ 8. proyectos → Ir a carpeta proyectos ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
read "cmd?Ejecutar comando [1-8] o Enter para volver: "
case $cmd in
1) .. ;;
2) ... ;;
3) .... ;;
4) ll ;;
5) la ;;
6) l ;;
7) indicadores ;;
8) proyectos ;;
*) ;;
esac
;;
4)
clear
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ 🔧 TMUX - GESTIÓN DE SESIONES ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ 1. tmux-nuevo → Nueva sesión ║"
echo "║ 2. tmux-listar → Listar sesiones activas ║"
echo "║ 3. tmux-conectar → Última sesión ║"
echo "║ 4. tmux-dev → Sesión 'dev' ║"
echo "║ 5. tmux-work → Sesión 'work' ║"
echo "║ 6. tmux-prod → Sesión 'prod' ║"
echo "║ 7. tmux-ayuda → Mostrar ayuda completa ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
read "cmd?Ejecutar comando [1-7] o Enter para volver: "
case $cmd in
1) tmux-nuevo ;;
2) tmux-listar ;;
3) tmux-conectar ;;
4) tmux-dev ;;
5) tmux-work ;;
6) tmux-prod ;;
7) tmux-ayuda ;;
*) ;;
esac
;;
5)
clear
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ 🐘 POSTGRESQL ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ 1. psqlc → Conectar a PostgreSQL ║"
echo "║ 2. pgstart → Iniciar servicio ║"
echo "║ 3. pgstop → Detener servicio ║"
echo "║ 4. pgrestart → Reiniciar servicio ║"
echo "║ 5. pgstatus → Ver estado del servicio ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
read "cmd?Ejecutar comando [1-5] o Enter para volver: "
case $cmd in
1) psqlc ;;
2) pgstart ;;
3) pgstop ;;
4) pgrestart ;;
5) pgstatus ;;
*) ;;
esac
;;
6)
clear
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ 🌐 PHP SERVER - Yii2 / Laravel ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ 1. php-server laravel ║"
echo "║ 2. php-server laravel [puerto] ║"
echo "║ 3. php-server yii2 ║"
echo "║ 4. php-server yii2 [puerto] ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
read "cmd?Ejecutar comando [1-4] o Enter para volver: "
case $cmd in
1) php-server laravel ;;
2) read "args?Puerto: "; php-server laravel $args ;;
3) php-server yii2 ;;
4) read "args?Puerto: "; php-server yii2 $args ;;
*) ;;
esac
;;
7)
clear
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ 🛡️ SISTEMA Y SEGURIDAD ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ 1. update → Actualizar sistema ║"
echo "║ 2. reboot → Reiniciar sistema ║"
echo "║ 3. shutdown → Apagar sistema ║"
echo "║ 4. ports → Ver puertos abiertos ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
read "cmd?Ejecutar comando [1-4] o Enter para volver: "
case $cmd in
1) update ;;
2) reboot ;;
3) shutdown ;;
4) ports ;;
*) ;;
esac
;;
8)
clear
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ 📊 GIT - CONTROL DE VERSIONES ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ 1. gs → git status ║"
echo "║ 2. ga → git add ║"
echo "║ 3. gc → git commit ║"
echo "║ 4. gp → git push ║"
echo "║ 5. gl → git log (grafo) ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
read "cmd?Ejecutar comando [1-5] o Enter para volver: "
case $cmd in
1) gs ;;
2) ga ;;
3) read "args?Mensaje: "; gc "$args" ;;
4) gp ;;
5) gl ;;
*) ;;
esac
;;
9)
clear
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ 📋 TODOS LOS COMANDOS - RESUMEN COMPLETO ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
echo "🎬 ANI-CLI: ani-es | ani-es-continuar | ani-es-calidad"
echo "🚀 LARAVEL: art | tinker | serve | migrate | seed | fresh | cdu | ci | cu"
echo "📁 NAVEGACIÓN: .. | ... | .... | ll | la | l | mkcd | findin | indicadores | proyectos"
echo "🔧 TMUX: tmux-nuevo | tmux-listar | tmux-conectar | tmux-dev | tmux-work"
echo "🐘 POSTGRESQL: psqlc | pgstart | pgstop | pgrestart | pgstatus"
echo "🌐 PHP SERVER: php-server laravel|yii2 [puerto] [ruta]"
echo "🛡️ SISTEMA: update | reboot | shutdown | ports"
echo "📊 GIT: gs | ga | gc | gp | gl"
echo ""
read "Presiona Enter para continuar..."
;;
0)
clear
return
;;
*)
echo "Opción no válida. Presiona Enter para intentar..."
read
;;
esac
done
}
# ═══════════════════════════════════════════════════════════════
# TMUX - Alias con nombres descriptivos
# ═══════════════════════════════════════════════════════════════
# --- GESTIÓN DE SESIONES ---
alias tmux-nuevo='tmux' # Nueva sesión (auto-nombrada)
alias tmux-nuevo-sesion='tmux new -s' # Nueva sesión con nombre (uso: tmux-nuevo-sesion nombre)
alias tmux-conectar='tmux attach' # Reconectar a última sesión
alias tmux-conectar-sesion='tmux attach -t' # Reconectar a sesión específica (uso: tmux-conectar-sesion nombre)
alias tmux-listar='tmux ls' # Listar sesiones activas
alias tmux-matar='tmux kill-session -t' # Matar sesión (uso: tmux-matar nombre)
alias tmux-matar-todas='tmux kill-server' # Matar todas las sesiones
# --- ATAJOS RÁPIDOS DE SESIONES ---
alias tmux-dev='tmux new -s dev' # Sesión de desarrollo
alias tmux-work='tmux new -s work' # Sesión de trabajo
alias tmux-prod='tmux attach -t prod 2>/dev/null || tmux new -s prod' # Sesión de producción (conecta o crea)
# --- FUNCIONES PARA GESTIÓN DE PANELES Y VENTANAS ---
# Dividir pantalla verticalmente (izquierda/derecha)
tmux-split-v() { tmux split-window -h -t "${1:-}"; }
# Dividir pantalla horizontalmente (arriba/abajo)
tmux-split-h() { tmux split-window -v -t "${1:-}"; }
# Moverse entre paneles
tmux-pane-izq() { tmux select-pane -L -t "${1:-}"; }
tmux-pane-der() { tmux select-pane -R -t "${1:-}"; }
tmux-pane-arriba() { tmux select-pane -U -t "${1:-}"; }
tmux-pane-abajo() { tmux select-pane -D -t "${1:-}"; }
# --- UTILIDADES ---
alias tmux-recargar='tmux source ~/.tmux.conf' # Recargar configuración
alias tmux-info='tmux info' # Información de configuración
alias tmux-debug='tmux list-sessions; echo "---"; tmux list-windows' # Debug: ver sesiones y ventanas
# --- AYUDA RÁPIDA ---
tmux-ayuda() {
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ TMUX - COMANDOS ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ SESIONES: ║"
echo "║ tmux-nuevo → Nueva sesión ║"
echo "║ tmux-nuevo-sesion X → Nueva sesión llamada X ║"
echo "║ tmux-conectar → Última sesión ║"
echo "║ tmux-conectar-sesion X → Conectar a sesión X ║"
echo "║ tmux-listar → Listar sesiones ║"
echo "║ tmux-matar X → Matar sesión X ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ ATAJOS: ║"
echo "║ tmux-dev → Sesión 'dev' ║"
echo "║ tmux-work → Sesión 'work' ║"
echo "║ tmux-prod → Sesión 'prod' ║"
echo "╠═══════════════════════════════════════════════════════════╣"
echo "║ DENTRO DE TMUX (Prefijo: Ctrl+b): ║"
echo "║ % → Split vertical | \" → Split horizontal ║"
echo "║ flechas → Mover paneles | z → Maximizar ║"
echo "║ c → Nueva ventana | n/p → Siguiente/anterior ║"
echo "║ d → Desconectar | s → Cambiar sesión ║"
echo "║ [ → Scroll | ] → Pegar | ? → Ayuda ║"
echo "╚═══════════════════════════════════════════════════════════╝"
}
# Mensaje de bienvenida
echo "
╔═══════════════════════════════════════════════════════════╗
║ Bienvenido! Escribe 'cmd' o 'ayuda' para ver el menú ║
╚═══════════════════════════════════════════════════════════╝
"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# The next line updates PATH for the Google Cloud SDK.
if [ -f '/home/jdrodriguezg/google-cloud-sdk/path.zsh.inc' ]; then . '/home/jdrodriguezg/google-cloud-sdk/path.zsh.inc'; fi
# The next line enables shell command completion for gcloud.
if [ -f '/home/jdrodriguezg/google-cloud-sdk/completion.zsh.inc' ]; then . '/home/jdrodriguezg/google-cloud-sdk/completion.zsh.inc'; fi