75 Comandos, Plugins, Aliases y Herramientas de Zsh

May 9, 2021
admin

Paso gran parte de mi día en el terminal, y mi shell de elección es Zsh – un shell Unix altamente personalizable que contiene algunas características muy potentes. Como soy un desarrollador perezosoTM, siempre estoy buscando maneras de escribir menos y automatizar todas las cosas. Por suerte esto es algo a lo que Zsh se presta muy bien.

En este post, voy a compartir con vosotros 75 comandos, plugins, alias y herramientas que espero que os ahorren algunas pulsaciones y os hagan más productivos en vuestro trabajo diario.

Si no tienes Zsh instalado en tu máquina, entonces echa un vistazo a este post, donde te muestro cómo ponerlo en marcha.

15 cosas que Zsh puede hacer fuera de la caja

Zsh comparte un montón de características útiles con Bash. Ninguno de los siguientes son exclusivos de Zsh, pero son buenos para saber de todos modos. Te animo a que empieces a utilizar la línea de comandos para realizar operaciones como las que se enumeran a continuación. Puede parecer más trabajo que el uso de una interfaz gráfica de usuario al principio, pero una vez que usted consigue la caída de las cosas, usted nunca mirar hacia atrás.

  • Entre cd desde cualquier lugar en el sistema de archivos le llevará directamente a su directorio de inicio.
  • Entre !! traerá el último comando. Esto es útil si un comando falla porque necesita derechos de administrador. En este caso puedes escribir sudo !!.
  • Puedes usar && para encadenar varios comandos. Por ejemplo, mkdir project && cd project && npm init -y.
  • La ejecución condicional es posible utilizando ||. Por ejemplo, git commit -m "whatever..." || echo "Commit failed".
  • El uso de un conmutador -p con el comando mkdir le permitirá crear directorios padre según sea necesario. El uso de la expansión de llaves reduce la repetición. Por ejemplo, mkdir -p articles/jim/sitepoint/article{1,2,3}.
  • Configure las variables de entorno por comando de la siguiente manera: NODE_DEBUG=myapp node index.js. O, en una base por sesión así: export NODE_DEBUG=myapp. Puede comprobar que se ha establecido escribiendo echo $<variable-name>.
  • Pasa la salida de un comando a un segundo comando. Por ejemplo, cat /var/log/kern.log | less para hacer legible un registro largo, o history | grep ssh para buscar cualquier entrada del historial que contenga «ssh».
  • Puede abrir archivos en su editor desde la terminal. Por ejemplo, nano ~/.zshrc (nano), subl ~/.zshrc (Sublime Text), code ~/.zshrc (VS Code). Si el archivo no existe, se creará cuando pulse Guardar en el editor.
  • La navegación es una habilidad importante que hay que dominar. No confíe sólo en sus teclas de flecha. Por ejemplo, Ctrl + a te llevará al principio de una línea.
  • Mientras que Ctrl + e te llevará al final.
  • Puedes usar Ctrl + w para borrar una palabra (hacia atrás).
  • Ctrl + u eliminará todo desde el cursor hasta el principio de la línea.
  • Ctrl + k borrará todo desde el cursor hasta el final de la línea. Estas tres últimas pueden deshacerse con Ctrl + y.
  • Puede copiar texto con Ctrl + Mayúsculas + c. Esto es mucho más elegante que hacer clic con el botón derecho y seleccionar Copiar.
  • A la inversa, puede pegar el texto copiado con Ctrl + Mayúsculas + v.

Intente memorizar esas combinaciones de teclas. Se sorprenderá de la frecuencia con la que resultan útiles.

15 alias personalizados para aumentar su productividad

Los alias son atajos de terminal para comandos regulares. Puedes añadirlos a tu archivo ~/.zshrc y luego recargar tu terminal (usando source ~/.zshrc) para que surtan efecto.

La sintaxis para declarar un alias (simple) es la siguiente:

alias =''

Los alias son ideales para los comandos que se usan con frecuencia, los comandos largos o los comandos con una sintaxis difícil de recordar. Estos son algunos de los que uso regularmente:

  • Un alias myip, que imprime tu dirección IP pública actual en el terminal: alias myip='curl http://ipecho.net/plain; echo'.
  • Un alias distro que imprime información sobre tu distribución de Linux: alias distro='cat /etc/*-release'.
  • A reload alias, ya que parece que nunca puedo recordar cómo recargar mi terminal: alias reload='source ~/.zshrc'.
  • Un alias undo-git-reset: alias undo-git-reset-head="git reset 'HEAD@{1}'". Esto revierte los efectos de ejecutar git reset HEAD~.
  • Un alias para actualizar las listas de paquetes: alias sapu='sudo apt-get update'.
  • Un alias para volver a ejecutar el comando anterior con sudo: alias ffs='sudo !!'.
  • Porque me da pereza, he puesto el alias y al comando yarn: alias y='yarn'. Esto significa que puedo clonar un repo, y luego simplemente escribir y para tirar de todas las dependencias. Aprendí este de Scott Tolinski en Syntax.
  • No es uno de los que uso, pero este alias vuela la carpeta node_modules y elimina el archivo package-lock.json, antes de reinstalar las dependencias de un proyecto: alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'. Como probablemente sabes, yolo significa You Only Live Once.
  • Un alias para abrir mi archivo .zshrc para editarlo: alias zshconfig='subl $HOME/.zshrc'.
  • Un alias para actualizar la lista de versiones de Ruby que rbenv puede instalar: alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
  • Un alias para poner en marcha un servidor en su directorio actual (sin necesidad de paquetes npm): alias server='python -m SimpleHTTPServer 8000'.
  • También puedes crear un alias para abrir la documentación en tu navegador: alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'.
  • Un alias global para canalizar la salida de un comando a less: alias -g L='| less'. Puedes usarlo así: cat production.log L.
  • Un alias global para canalizar la salida de un comando a grep: alias -g G='| grep'. Puedes usarlo así: history G ssh.
  • También puedes usar funciones para crear alias. Lo siguiente (tomado de aquí) crea un alias que añade, confirma y empuja el código a GitHub:
    bash
    function acp() {
    git add .
    git commit -m ""
    git push
    }

Hay un montón de lugares para encontrar más ideas para los alias en línea. Por ejemplo, esta discusión de Hacker News, o este post sobre la productividad de la línea de comandos con Zsh.

15 Cosas geniales que puedes hacer con (Oh My) Zsh

Oh My Zsh es un marco impulsado por la comunidad para la gestión de su configuración de Zsh y viene con miles de funciones útiles, ayudantes, plugins y temas. Si usted va a hacer el shell Z su conductor diario, usted realmente debe instalar Oh My Zsh.

Aquí hay quince cosas útiles que Oh My Zsh puede hacer por usted:

  • El comando take creará un nuevo directorio y cambiar en él. take my-project reemplaza a mkdir my-project && cd my-project.
  • zsh_statsLe dará una lista de los 20 principales comandos y cuántas veces se han ejecutado.
  • Oh My Zsh simplifica la navegación de su sistema de archivos. Por ejemplo, .. es un alias para cd ...
  • De la misma manera, ... te mueve hacia arriba dos directorios, .... te mueve hacia arriba tres, y ..... te mueve hacia arriba cuatro.
  • Puedes omitir el cd al navegar. Escribiendo /, por ejemplo, le llevará directamente a la raíz de su sistema de archivos.
  • También se admite la coincidencia parcial. Por ejemplo, escribiendo /h/j/De y presionando TAB, luego Return, me lleva a /home/jim/Desktop/.
  • rd es un alias para rmdir y md es un alias para mkdir -p.
  • Puede escribir d para listar los últimos directorios utilizados desde una sesión de terminal.
  • Entonces puede navegar a cualquiera de ellos utilizando cd -n, donde n es el número de directorio.
  • La finalización de tabulación es otra gran característica. Por ejemplo, si escribe ls - y pulsa TAB, aparecerán todas las opciones del comando, junto con una útil descripción de lo que hacen. Esto también funciona para cap, rake, ssh, y kill.
  • Escribir alias lista todos sus alias actuales.
  • Con globbing (una característica de Zsh), puede listar archivos con una extensión particular. Por ejemplo, ls *.html listará todos los archivos HTML en el directorio actual. Para incluir los subdirectorios, cambie a: ls **/*.html.
  • Los calificadores globales le permiten seleccionar tipos de archivos utilizando banderas. Por ejemplo, ls -l **/*(.x) encontrará todos los archivos ejecutables en el directorio actual y todos los subdirectorios.
  • Puede buscar archivos por fecha de modificación. Por ejemplo, ls *(m-7) listará todos los archivos modificados en la última semana.
  • Puede buscar archivos por tamaño. Por ejemplo, ls *(Lm+1) encontrará todos los archivos con un tamaño superior a 1MB.

Using Plugins for Fun and Profit

Oh My Zsh viene con un montón de plugins. Usted debe mirar a través de estos e invertir algún tiempo en el aprendizaje de los que ayudarán a su flujo de trabajo.

Aquí hay tres plugins que utilizo regularmente, que proporcionan una tonelada de atajos y aliases.

10 Nifty Git Aliases

El plugin git proporciona muchos aliases y varias funciones útiles. Por qué no repasarlas e intentar memorizar las diez principales? Aquí están los que uso más a menudo.

  1. g es un práctico alias para git. Esto significa que puedes escribir cosas como g clone <whatever> en lugar de git clone <whatever>. Puede que sólo sean dos pulsaciones, pero pronto se acumulan.
  2. gaa es un alias para git add all. Yo uso éste todo el tiempo.
  3. gb es un alias para git branch, que listará todas las ramas del repo actual y te mostrará en cuál estás.
  4. gcb es un alias para git checkout -b, el comando que te permite crear una nueva rama.
  5. gcm es un alias para git checkout master. Esto le devuelve a la rama maestra.
  6. gdca es un alias para git diff --cached. Esto le permite diff cualquier archivo que ha puesto en escena para confirmar.
  7. gf es un alias para git fetch.
  8. gm es un alias para git merge.
  9. gp es un alias para git push. Para sincronizar un fork de un repo, podrías hacer: gf upstream, gm upstream/master, seguido de gp.
  10. glog es un alias para git log --oneline --decorate --graph, lo que te dará un bonito gráfico de ramas git.

10 Handy npm Aliases

El plugin npm proporciona la finalización también un montón de alias útiles.

  • npmg es un alias para npm install --global, que puede utilizar para instalar dependencias globalmente en su sistema. Por ejemplo, npmg nodemon.
  • npmS es un alias para npm install --save, que se utiliza para instalar dependencias y añadirlas a la sección dependencies de su package.json. Tenga en cuenta que, a partir de npm 5.0.0, este es el valor predeterminado cuando se ejecuta npm i <package>.
  • npmD es un alias para npm install --save-dev, que se utiliza para instalar dependencias y añadirlas a la sección devDependencies de su package.json.
  • npmO es un alias para npm outdated, que comprobará el registro para ver si algún (o, específicos) paquetes instalados están actualmente obsoletos.
  • npmL es un alias para npm list, que listará los paquetes instalados.
  • npmL0 es un alias para npm list --depth=0, que lista los paquetes de nivel superior. Esto es especialmente útil para ver qué módulos están instalados globalmente sin inundar su terminal con un enorme árbol de dependencias: npmL0 -g.
  • npmst es un alias para npm run start, un script npm que se utiliza a menudo para iniciar una aplicación.
  • npmt es un alias para npm run test, que, como se puede adivinar, se utiliza para ejecutar sus pruebas.
  • npmR es un alias para npm run. Por sí solo, este comando listará todos los scripts npm disponibles de un proyecto, junto con una descripción de lo que hacen. Usado junto con un nombre de script, ejecutará ese script, Por ejemplo, npmR build.
  • npmI es un alias de npm init. Esto le hará un montón de preguntas, y luego creará un package.json basado en sus respuestas. Utilice la bandera -y para automatizar el proceso. Por ejemplo, npmI -y.

10 Alias de Rails/Rake que ahorran tiempo

Este plugin añade finalización para el framework Ruby on Rails y el programa Rake, así como algunos alias para registros y variables de entorno.

  • rc es un alias para rails console, que permite interactuar con tu aplicación Rails desde la CLI.
  • rdc es un alias para rake db:create, que (a menos que RAILS_ENV esté configurado) crea las bases de datos de desarrollo y de pruebas para tu aplicación.
  • rdd es un alias para rake db:drop, que deja caer las bases de datos de desarrollo y de prueba de su aplicación.
  • rdm es un alias para rake db:migrate, que ejecutará cualquier migración de base de datos pendiente.
  • rds es un alias para rake db:seed, que ejecuta el archivo db/seeds.rb para poblar su base de datos de desarrollo con datos.
  • rgen es un alias para rails generate, que generará código boilerplate. Por ejemplo: rgen scaffold item name:string description:text.
  • rgm es un alias para rails generate migration, que generará una migración de base de datos. Por ejemplo: rgm add_description_to_products description:string.
  • rr es un alias para rake routes, que lista todas las rutas definidas de una app.
  • rrg es un alias para rake routes | grep, que permitirá listar y filtrar las rutas definidas. Por ejemplo, rrg user.
  • rs es un alias para rails server, que lanza el servidor web por defecto de Rails.

Recursos Adicionales

La principal función de los plugins listados arriba es proporcionar alias a comandos de uso frecuente. Por favor, tenga en cuenta que hay muchos más plugins que aumentan su shell con funcionalidad adicional.

Aquí hay cuatro de mis favoritos:

  • sudo le permite prefijar fácilmente sus comandos actuales o anteriores con sudo presionando ESC dos veces.
  • autosugerencias sugiere comandos a medida que escribe basado en la historia y las terminaciones. Si la sugerencia es la que buscas, pulsa la tecla → para aceptarla. Un verdadero ahorro de tiempo!
  • command-not-found: si un comando no es reconocido en el $PATH, esto utilizará el paquete command-not-found de Ubuntu para encontrarlo o sugerir errores ortográficos.
  • z es un práctico plugin que construye una lista de tus carpetas más frecuentes y recientes (las llama «frecent») y te permite saltar a ellas con un solo comando.

Y no olvides que si pasas mucho tiempo en la terminal, vale la pena invertir algo de esfuerzo en hacerla visualmente atractiva. Por suerte, Oh My Zsh viene con un montón de temas para que elijas. Mi elección del grupo es Agnoster.

Puedes encontrar más información sobre los temas en mi artículo 10 Zsh Tips & Trucos: Configuración, personalización &Uso.

Conclusión

Así que ahí lo tenemos: 75 comandos, plugins, alias y herramientas de Zsh. Espero que hayas aprendido un truco o dos en el camino, y te animo a salir de tus GUIs y entrar en la terminal. Es más fácil de lo que parece y una gran manera de aumentar tu productividad.

Si me he perdido tu plugin favorito, o un alias/comando que te ahorra tiempo, házmelo saber en Twitter.

¿Quieres sacar aún más partido a tu caja de herramientas? Echa un vistazo a Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers de Wiley.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.