Crea alias de comandos en Windows Terminal

Regresar al blog

Si usas la terminal te gusta tener alias para tus comandos, pero si usas Windows Terminal o PowerShell habrás notado que cada que reinicias las terminal los alias que creaste desaparecieron. Yo te enseñaré cómo hacerlos permanentes.

Preparación de la terminal

Abre tu Windows Terminal o PowerShell, ejecuta el siguiente comando echo $PROFILE y te dará una ruta muy similar a esta C:\Users\<Tu usuario>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1, este es el archivo profile, donde se guarda la configuración que cargará siempre nuestra terminal al iniciarse.

Intenta acceder con el siguiente comando notepad $PROFILE, si todo está bien abrirá el bloc de notas con el archivo Microsoft.PowerShell_profile.ps1, pero en caso de que te diga que no se pueda acceder a la ruta es porque la carpeta WindowsPowerShell no existe dentro de tu carpeta Documents, si tienes este error solo crea la carpeta y vuelve a ejecutar notepad $PROFILE, ahora te dirá que el archivo no existe, que si quieres crearlo y le dices que sí.

En este bloc de notas ingresa el siguiente contenido:

function HelloWorld { echo "Hello World" }
New-Alias hello HelloWorld

Ahora guarda los cambios, reinicia tu terminal, escribe hello y verás como salida la frase "Hello World".
7612_Screenshot_7

En caso de que al abrir la terminal tengas este error:
7614_7d5c89f7-f883-4acb-ac76-28b4fec6d1c9

Es porque tu perfil de la terminal no tiene permisos para poder ejecutar scripts dentro de PowerShell, pero esto es muy fácil arreglar.

Abre tu PowerShell como Administrador y revisa las políticas de ejecución con Get-ExecutionPolicy, lo más probable es que te devuelva Restricted, entonces para arreglar esto solo ejecuta lo siguiente para quitar la restricción Set-ExecutionPolicy Unrestricted, te pedirá que confirmes la acción, le dices que sí y quedará listo para que reinicies tu terminal en intentes de nuevo ejecutar hello.

7617_3925d72c-464e-439e-85cb-33d436946146

✨ Ahora tienes tu primer alias ✨ y siempre se cargará cada que inicies tu terminal.

Mejores alias

Ya que está todo listo ahora vamos a crear unos alias más útiles. Aquí te enseñaré unos para moverte entre directorios y para Git, pero tú después puedes crear unos más complejos.

Empecemos en cómo nos moveremos entre directorios. En mi caso yo tengo una carpeta llamada develop en D:\develop\, no quiero usar cd D:\develop\ cada que quiero moverme ahí, entonces crearé mi comando dev el cual me llevará a esa ubicación.

function GoDevelop { Set-Location D:\develop\ }
New-Alias dev GoDevelop

Te explico qué es lo que hicimos aquí. Estamos creando el comando dev con la sentencia New-Alias y cuando ejecutemos esa palabra se ejecutará la función GoDevelop la cual cambiará la ubicación de la terminal gracias a la sentencia de Set-Location.

De esta forma puedes crear todos los comandos que quieras para moverte entre directorios, así te ahorras escribir todo un path larguísimo y que sea más cómodo para ti.

Ahora veamos los alias que reciben parámetros 👀. Tengo un alias para el comando de commit de git. Lo que haremos será resumir el comando y que reciba como parámetro el mensaje de nuestro commit.

function GitCommit([string]$message) { git commit -m "$message" }
New-Alias gcmt GitCommit

Como puedes ver a estas funciones también le podemos pasar parámetros tipados. Mi alias para hacer commit es gcmt y lo que pasará es que lo primero que yo le pase luego de mi alias es lo que se identificará como el parámetro $message de la función para poner en el lugar que le corresponde.

Un ejemplo de uso sería gcmt "Commit de prueba", lo pongo entre comillas porque de esa manera se reconocerá como un solo parámetro. Si no las usara la terminal creería que Commit es $message y que las palabras de y prueba son otros parámetros o sentencias de la terminal.

También puedes crear alias que reciben más de un parámetro. Solamente tienes que seguir la misma fórmula que ya viste. Por ejemplo:

function GitPush([string]$remote, [string]$branch) { git push $remote $branch }
New-Alias gpsh GitPush

Y un ejemplo de la forma de usarlo sería gpsh origin hotfix 🚀

Recomendaciones ⚠

En algunos casos puede que al iniciar la terminal te diga que un alias ya existe en un mensaje de error. Esto es porque Windows por defecto ya tiene un lista de alias. Si quieres verificar cuáles ya están ocupados usa el comando Get-Alias.

7644_Screenshot_12


Ahora ya sabes crear alias para tus comandos y seguir usando Windows Terminal y PowerShell sin necesdiad de estar escribiendo un montón de palabras todo el tiempo.

Cuéntame en mi Twitter qué te pareció este pequeño tutorial y si tienes ganas de profundizar en este tema te recomiendo que leas muchísimo la documentación oficial de Microsoft.


Para finalizar te dejo la lista de los que yo tengo para mi terminal, tal vez podrías usarlos también tú :D

function Home { Set-Location $HOME }
New-Alias home Home

function GoDevelop { Set-Location D:\develop\ }
New-Alias dev GoDevelop

function GoDesktop { Set-Location $HOME\Desktop\ }
New-Alias dk GoDesktop

function GitStatus { git status }
New-Alias gs GitStatus

function GitAdd([string]$file) { git add "$file" }
New-Alias ga GitAdd

function GitCommit([string]$message) { git commit -m "$message" }
New-Alias gcmt GitCommit

function GitSwitchCreate([string]$branch) { git switch -c $branch }
New-Alias gswc GitSwitchCreate

function GitSwitch([string]$branch) { git switch $branch }
New-Alias gsw GitSwitch

function NewFile([string]$filePath) { 
  $match = Select-String -Pattern "^(.*(\\|\/))?(.*\.?.*?)$" -InputObject "$filePath"
  $path = pwd
  
  if ($match.Matches.groups[1].value -ne "") {
    $path = $match.Matches.groups[1].value
  }
  
  $fileName = $match.Matches.groups[3].value

  New-Item -Path "$path" -Name "$fileName" -ItemType "file"
  
}
New-Alias touch NewFile
Compartir en TwitterCompartir en FacebookCompartir en WhatsAppCompartir en Telegram
Regresar al blog