¿Es mejor la administración del servidor Linux a través de Bash que a través del panel GUI? ¿Puedo usar PowerShell en lugar de Bash para la comunicación del servidor Windows-Linux?

Puede que no sea la mejor palabra para usar, pero definitivamente recomendaría aprender a usar Bash si va a hacer algún trabajo en sistemas Linux o Unix. Siempre han adoptado la terminal, y para ser un usuario competente, necesitará saber cómo moverse por una. Aunque me encantaría ver que Powershell sea ampliamente adoptado en Linux y Mac OS, muchos de esos usuarios también son enemigos de MS, y me pregunto si le darán una oportunidad. De hecho, soy uno de esos tipos, pero resulta que realmente me gusta Powershell.

Sí, Powershell ahora es de código abierto. Lo estoy ejecutando en la Mac en la que estoy trabajando ahora y lo uso con bastante frecuencia. Dicho esto, lo uso principalmente para uso personal en mi Mac. (Sin embargo, lo uso por muchas razones profesionales en los cuadros de Windows). Soy desarrollador y no administrador de sistemas. Lo mejor de Powershell es que puedes hacer básicamente cualquier cosa con él, que puedes hacer en bash. En otras palabras, si desea ejecutar ifconfig en una plataforma Linux, puede hacerlo en Powershell al igual que en Bash. Después de todo, ifconfig es solo un programa de consola, por lo tanto, siempre que esté en su RUTA, Powershell lo encontrará al igual que Bash. Este es un código totalmente válido en una caja de Linux / Mac OS desde Powershell

ifconfig | grep en4

Pero también puede analizar la salida con cmdlets Powershell, que le ofrecen lo mejor de ambos mundos, como:

ifconfig | Select-String en4

Lo mismo es cierto con Powershell en Windows para el caso. Lo que significa que puede usar las utilidades que CMD normalmente invoca, y canalizar su salida a los Cmdlets PS. Los únicos ‘problemas’ que he notado son que Powershell tiene algunos alias en Windows, que no funcionarán en Unix. Por ejemplo, ‘ls’ es un alias para Get-ChildItem en Windows, pero dado que ‘ls’ es un comando real en Bash, ese alias no se puede usar. Tienes que usar ‘dir’ o ‘gci’ o ‘Get-ChildItem’. Si usa ‘ls’, realmente ejecutará el comando ls. Además, algunos de los Cmdlets que están disponibles en Windows no estarán disponibles en Linux / Mac OS, como New-WebServiceProxy. Sin embargo, no he investigado exactamente por qué.

Aunque soy una persona de MacOS / Linux, en realidad prefiero Powershell a Bash. No creo que sea discutible que el concepto de usar objetos en una tubería sea mayor que el texto. MS hizo un buen trabajo con su diseño, y creo que se debe dar crédito cuando es debido. Además, Powershell es un lenguaje de programación con todas las funciones, mientras que Bash es solo un lenguaje de shell que tiene un conjunto de características muy limitado. Su uso principal es simplemente invocar las utilidades de la consola y darle construcciones para analizar los resultados de manera efectiva. Dicho esto, las utilidades de la consola Unix / Linux son muy potentes. Esa es realmente el área donde Linux brilla. No es el lenguaje bash en sí mismo, y como mencioné, no pierdes la capacidad de usarlos desde Powershell.

Entonces es una pregunta difícil de responder en mi libro. Me encantaría animarte a aprender Powershell, y creo que deberías. Dicho esto, tampoco descartaría a Bash. Va a ser mucho más común lidiar con los scripts de Bash en Mac OS y Linux que con los scripts de Powershell, y Microsoft en realidad planea incluir a Bash en futuras versiones de Windows. Lo cual también es bastante emocionante por cierto. La buena noticia es que aprender Bash es bastante simple. El hecho de que tenga características limitadas lo hace fácil de aprender. Ahora memorizar todas las utilidades a su disposición no es tan simple, pero necesitaría aprender de cualquier manera.

Entonces, aunque puede no ser ideal, recomendaría aprender ambos con el entendimiento de que no debería tomar mucho tiempo / esfuerzo aprender el lenguaje Bash en sí.

Command Shell es una forma muy común y directa de hacer cosas, especialmente en Linux. Es posible encontrar la solución a cualquier problema en segundos porque la enorme y bien desarrollada base de conocimiento de Linux es. En cuanto al usuario de Windows, realmente recomiendo programas como Putty o Xshell, esas son versiones más avanzadas a menudo utilizadas por profesionales para conectarse y trabajar desde la máquina Windows con / a servidores Linux.

Ejecuto PowerShell en Ubuntu en casa. Estoy trabajando con MySQL en Ubuntu y ya tenía los comandos creados para leer / escribir usando una base de datos MySQL. Después de instalar MySQL y PowerShell, tuve que hacer muy poco trabajo extra para que funcionara. Mi punto es que si hay una herramienta que puedes usar en todas partes, tiene sentido aprenderla. Sin embargo; En el mundo Linux, el terminal es el rey y será la forma en que termines haciendo la mayor parte de la administración de tu sistema local. La razón principal de eso (por ahora) es que las operaciones de línea de comandos de Linux están bien documentadas y hay numerosos foros de usuarios para ayudarlo si tiene problemas. Por lo tanto, de manera indirecta, necesita ambos, pero PowerShell parece tener una gran ventaja con el soporte multiplataforma y solo crecerá a partir de aquí. Cualquier administrador que no esté entusiasmado con un solo conjunto de herramientas, independientemente de la plataforma, está atascado en el pasado IMO.

Depende de la tarea y tu habilidad. Me encanta la línea de comandos, pero algunas tareas son inherentemente más fáciles a través de una GUI y te permiten descubrir cómo hacerlas.

El uso de la línea de comando le enseña más sobre su máquina y también permite automatizar tareas repetitivas.

En cuanto a PowerShell, ahora es de código abierto y está disponible para Linux, pero al menos por ahora no estará disponible en la mayoría de los sistemas a menos que tome medidas para instalarlo.

Sin embargo, PowerShell utilizando SSH ahora puede conectarse (fácilmente) a cualquier máquina (Linux) que ejecute el servidor SSH y obtendrá un shell de comando remoto que se ejecuta en PowerShell con todas las ventajas de estar en su shell favorito junto con las capacidades de PowerShell para analizar y controlar el comportamiento.

Me sorprendió descubrir lo fácil que se ha vuelto SSH con PowerShell.