# Alias ## Variables de ambiente VENV=.venv ## Eliminación de alias previos unalias -a ## Atajos alias .1='cd ..' alias .2='cd ../..' alias .3='cd ../../..' alias c='cat' alias e='emacs -nw' alias g='geany' alias l='lsd -l' alias o='okular' alias s='scribus' alias t='tree' alias v='vim' alias cdd='cd ~/Descargas' alias cdn='cd ~/Nubes' alias cdr='cd ~/Repositorios' alias docs='cd ~/Documentos' alias documentos='docs' alias descargas='cdd' alias repos='cdr' alias nubes='cdn' alias cpd='docker cp' alias permisos='stat -c "Permiso %a | Creación %w | Modificación %y | %n" *' ## Atajos SSH alias agroteso='ssh agroteso' alias aml='ssh aml' alias aml-stats='ssh aml "sudo docker stats -a"' alias cuates='ssh cuates' alias prolibreros='ssh prolibreros' alias prolibreros-tunel='ssh prolibreros -D 1234 "sudo docker stats -a" | dotacat' ## Personalizaciones alias mv='mv -v' alias rm='rm -v' alias cp='cp -rv' alias df='df -h' alias du='du -sh' alias sed='sed -zr' alias ssh='ssh -o ServerAliveInterval=30' alias free='free -h' alias diff='diff --color' alias mkdir='mkdir -p' alias rsync='rsync -varuh --progress' alias perl-rename='perl-rename -v' alias pip='pip3' alias python='python3' alias ipython='ipython3' ## Acciones alias buscar="grep -REin --color=always --exclude-dir={.git,.venv,.pytest_cache,__pycache__,\*egg-info}" alias search="buscar" alias rastrear='fd' alias trace='rastrear' alias rastrear-todo='find / -iname' alias trace-all='rastrear-todo' alias copiar='xclip -selection clipboard <' alias copy='copiar' alias recargar='source $HOME/.zshrc' alias refresh='recargar' alias install='instalar' alias uninstall='desinstalar' alias remove='desinstalar' alias update='actualizar' alias upgrade='actualizar' ## A modo de programitas alias alv='rm -rf' alias doc2md='pandoc --markdown-headings=atx -V lang=es' alias mi-ip='curl https://ipapi.co/json' alias my-ip='mi-ip' alias pecas-legacy="sudo docker start pecas && sudo docker exec -it pecas /bin/zsh -l" alias pacman-limpiar='echo "Limpiando caché…" && sudo pacman -Scc && echo "\nEliminando paquetes huérfanos…" && sudo pacman -Rs $(pacman -Qqdt)' alias pacman-clean='pacman-limpiar' alias docker-limpiar='sudo docker system prune -a' alias docker-clean='docker-limpiar' alias añadir-fuentes='font-add' alias tiempo='/usr/bin/t' ## Lolcat :D alias stats='zsh_stats | dotacat' alias neofetch='neofetch | dotacat' ## Monerías alias arcoiris='journalctl --no-pager | dotacat' alias matrix='tmatrix --mode=dense -f 0,5 -C magenta' alias acuario='asciiquarium' alias tren='sl' alias fantasma='oneko &' ## Detecta tipo de distribución distro-name () { DIST_NAME=$(awk -F= '/^NAME/{print $2}' /etc/os-release) echo $DIST_NAME | sed 's/"//g' } ## Actualizador actualizar () { DIST=$(distro-name) case $1 in alias | aliases) echo "Actualizando alias" curl -o $HOME/.oh-my-zsh/custom/aliases.zsh \ https://pad.programando.li/ruweb:wiki:archlinux:config:aliases/download recargar ;; paquetes | packages) echo "Actualizando paquetes" if [[ ${DIST} = "Arch Linux" ]]; then sudo pacman -Syy sudo pacman -S archlinux-keyring else sudo apt update fi ;; todo | sistema | all | system) echo "Actualizando sistema" if [[ ${DIST} = "Arch Linux" ]]; then yay -Su else sudo apt upgrade fi ;; -h | --help | help | ayuda) echo "actualizar: utilidad para hacer actualizaciones. Uso: actualizar [OPT] Opciones: alias | aliases Actualiza alias. paquetes | packages Actualiza repositorio de paquetes. -h | --help | help | ayuda Despliega esta ayuda. todo | sistema | all | system Actualiza el sistema. vacío Actualiza el sistema con actualización previa de paquetes. Ejemplos: actualizar alias actualizar paquetes actualizar -h actualizar todo actualizar" ;; *) actualizar alias actualizar paquetes actualizar sistema ;; esac } ## Instalador instalar (){ DIST=$(distro-name) if [[ ${DIST} = "Arch Linux" ]]; then yay -Syy $@ else sudo apt install $@ fi } ## Desinstalador desinstalar (){ DIST=$(distro-name) if [[ ${DIST} = "Arch Linux" ]]; then yay -Rss $@ else sudo apt purge $@ sudo apt clean sudo apt autoremove fi } ## Gestión de alias aliases () { ALIAS_FILE=~/.oh-my-zsh/custom/aliases.zsh case $1 in ver | see) c $ALIAS_FILE ;; editar | edit) v $ALIAS_FILE ;; -h | --help | help | ayuda) echo "aliases: utilidad para hacer gestionar alias. Uso: aliases [OPT] Opciones: ver | see Muestra contenido de archivo de alias. editar | edit Edita alias. -h | --help | help | ayuda Despliega esta ayuda. vacío Uso regular de 'alias'. Ejemplos: aliases ver aliases editar aliases -h aliases" ;; *) alias ;; esac } ### Un árbol que es a tree lo que lsd es a ls tre () { DEPTH=1000 DIR="." if [ -d "${@:$#}" ]; then DIR="${@:$#}" fi while getopts ":L:" opt; do case $opt in L) DEPTH=$OPTARG ;; \?) echo "Opción inválida -$OPTARG" >&2 ;; esac done lsd -l --tree --size=short --blocks=size,name --depth=$DEPTH $DIR } ## Instalador de fuentes font-add () { FONT_DIR=$HOME/.fonts if [ ! -d "$FONT_DIR" ]; then mkdir $FONT_DIR fi cp $@ $FONT_DIR fc-cache -fv } ## Conversor de imágenes o documentos con ImageMagick o Pandoc convertir () { echo "convertir FORMATO1 a FORMATO2 [con pandoc]" for file in *.$1; do echo "$file => $file.$3" if [ "$#" -eq 5 ]; then doc2md $file -o $file.$3 else convert -flatten $file $file.$3 fi done } ## Gestiona archivos MD md () { case $1 in formatear | format | f) pandoc --reference-links --reference-location=document \ --columns=80 -o $2 $2 ;; convertir | convert) pandoc --markdown-headings=atx --standalone \ -V lang=es -o $4 $2 ;; leer | read | ver | cat | c) glow -w 80 -p $2 ;; -h | --help | help | ayuda) echo " md: utilidad para hacer gestionar archivos Markdown. Uso: md [OPT] Opciones: formatear | format Da formato al archivo. convertir | convert Convierte el archivo. leer | read | ver | cat Muestra el archivo. -h | --help | help | ayuda Despliega esta ayuda. Ejemplos: md formatear archivo.md md convertir archivo.md a archivo.html md ayuda " ;; esac } ## Desactiva o activa virtualenv check_venv () { VENV_ACT=$VENV/bin/activate type deactivate &>/dev/null && deactivate if [ -f "$VENV_ACT" ]; then source $VENV_ACT fi } check_venv # Ejecuta cuando se carga ## Agrega y arranca virtualenv venv () { virtualenv $VENV check_venv } ## Modifica comportamiento de cd cd () { builtin cd $1 check_venv } ## Embellece y verifica código pymp () { FORMAT=false CHECK=true case $1 in -f | formatear | format) black --line-length 80 ${@:$#} ;; -h | --help | help | ayuda) CHECK=false echo " pymp: utilidad para enchular código de Python. Uso: pymp [OPT] [FILE|DIR] Opciones: -f | formatear | format Da formato a los archivos. -h | --help | help | ayuda Despliega esta ayuda. Ejemplos: pymp archivo.py pymp formatear . pymp ayuda " ;; esac if [ ! -d "${@:$#}" ] && [ ! -f "${@:$#}" ]; then echo "ERROR: último argumento debe ser un fichero, ¿lo escribiste correctamente?" return 1 fi if [ "$CHECK" = true ]; then flake8 --max-line-length 80 ${@:$#} vulture ${@:$#} fi }