PSReadLine es uno de esos módulos que puede que no muestre inmediatamente su utilidad hasta su uso regular. Si usa la línea de comandos de PowerShell con frecuencia, PSReadLine puede hacer su vida más fácil. Incluido en las versiones de PowerShell hasta Windows PowerShell 5, PSReadLine continúa agregando nuevas funciones y utilidades. Sobre la base de la venerable herencia de GNU Readline en el mundo Unix, PSReadLine agrega características adicionales a la experiencia de línea de comandos de PowerShell, como edición de múltiples líneas, coloración de sintaxis, IntelliSense predictivo, soporte de historial más rico y modos de edición. alternativas.
Actualización y carga de PSReadLine
La mayoría de las versiones relativamente recientes de PowerShell tienen una versión empaquetada de PSReadLine. Incluido desde Windows PowerShell 5.0, cada versión subsiguiente ha agregado una versión más nueva con PowerShell 7.1 que incluye PSReadLine 2.1. Por supuesto, es posible que desee aprovechar las funciones más recientes de versiones anteriores de PowerShell. En caso de que PSReadLine aún no se haya importado, utilice Import-Module PSReadLine
para comenzar a usar las funciones de inmediato. Para asegurarse de que está utilizando la última versión, ¡siga leyendo!
A partir de PowerShell 7.0, PowerShell omite la carga automática de PSReadLine en Windows si se detecta un lector de pantalla. Actualmente, PSReadLine no funciona bien con lectores de pantalla. La representación y el formato predeterminados de PowerShell 7.0 en Windows funcionan bien. Puede cargar manualmente el formulario si es necesario.
Windows PowerShell 5.x
Por lo general, hay dos pasos para actualizar PSReadLine con Windows PowerShell 5.0 o 5.1. Primero, debe asegurarse de estar ejecutando la versión 1.6.0
o una versión posterior de PowerShellGet. Para hacer esto, debe ejecutar el siguiente comando en una sesión elevada de Windows PowerShell.
Install-Module -Name PowerShellGet -Force
A continuación, asegúrese de que todas las sesiones de PowerShell estén cerradas y en un formato privilegiado elevado cmd.exe
indicador ejecute el siguiente código. La razón por la que corre cmd.exe
es que, de forma predeterminada, PSReadLine se carga y no se puede actualizar si está en memoria.
powershell -noprofile -command "Install-Module PSReadLine -Force -SkipPublisherCheck -AllowPrerelease"
PowerShell 6.x Core y PowerShell 7
Para actualizar PSReadLine en versiones más recientes de PowerShell, puede realizar una operación similar cerrando todas las sesiones abiertas de PowerShell, pwsh.exe
y realizar un alto cmd.exe
sesión con el siguiente código.
pwsh.exe -noprofile -command "Install-Module PSReadLine -Force -SkipPublisherCheck -AllowPrerelease"
Actualización de PowerShell Gallery PSReadLine instalada
Es posible que haya instalado PSReadLine desde la Galería de PowerShell y, si lo hizo, puede ejecutar uno de los siguientes comandos para actualizar dependiendo de si está en Windows PowerShell o PowerShell Core / 7.
# Windows PowerShell
powershell -noprofile -command "Update-Module PSReadLine -AllowPrerelease"
# PowerShell Core/7
pwsh.exe -noprofile -command "Update-Module PSReadLine -AllowPrerelease"
Características de PSReadLine
¿Qué podemos hacer con PSReadLine? Hay una serie de funciones interesantes que pueden ayudarte con tu experiencia en la línea de comandos. A continuación, verá cómo funcionan las diferentes funciones en la práctica.
Coloración de sintaxis
Un ejemplo de cómo la coloración de la sintaxis hace que la legibilidad de la línea de comando sea mucho más fácil, vea este ejemplo donde puede ver que la salida está coloreada, para nombres de variables, nombres de funciones y operadores de comparación.
Si bien esta línea de comando no es muy larga, hay casos en los que dividirla en varias líneas sería mucho más fácil de manejar. Siga leyendo para ver cómo podemos dividirlo en varias líneas, como un editor de código tradicional.
Edición de varias líneas
Tomando el mismo conjunto de comandos anterior, ¿cómo lo dividimos en varias líneas? Usando la combinación de teclas Shift-Enter predeterminada (en Windows), podemos dividir las líneas como lo indica >>
.
Puede usar las teclas de flecha para navegar por el texto y solo cuando esté listo para ejecutar el comando, puede presionar la tecla Enter para ejecutar. ¿Y cuando no está seguro de qué comando usar? ¡Intellisense predictivo al rescate!
Intellisense predictivo
Primero, necesitamos habilitar Predictive IntelliSense. Puede decirle que use diferentes tipos de fuentes, pero la más común es simplemente su historial. Tenga en cuenta que mientras no tenga un archivo de historial con el contenido creado, este puede no ser el más útil, pero después de un tiempo se vuelve útil.
# This will enable the prediction source for IntelliSense
Set-PSReadLineOption -PredictionSource 'History'
# (Optional) Change the darker grey to a lighter grey to account for dark backgrounds
Set-PSReadLineOption -Colors @{ InlinePrediction = '#9CA3AF'}
Ahora podemos probarlo usando el mismo comando que acabamos de ejecutar. Puedes verlo después de escribir Get
ya vemos el comando ofrecido para completar. Puede utilizar la flecha derecha (predeterminada) para aceptar la selección.
Archivo histórico de PSReadLine
Dado que hablamos sobre el archivo de historial, puede ser útil saber dónde se almacena realmente este archivo. Lo que hay dentro es cada comando en una nueva línea, sin datos adicionales en un formato simple.
- ventanas -
$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine
- Linux -
$env:XDG_DATA_HOME/powershell/PSReadLine
o$env:HOME/.local/share/powershell/PSReadLine
¡Ten cuidado! Al utilizar cmdlets como
ConvertTo-SecureString
las contraseñas se pueden almacenar en el archivo de historial.
Conclusión
PSReadLine es un módulo muy útil para mejorar su experiencia en la línea de comandos. Con edición de varias líneas, resaltado de sintaxis y la reciente incorporación de Predictive IntelliSense, es una adición imprescindible para cualquier kit de herramientas de administrador de sistemas.
Deja una respuesta