¿Necesito una distribución de Linux para aprender la línea de comando o OS X sería suficiente?

12

Voy a aprender a usar la línea de comando. Específicamente, usaré el libro: "La línea de comandos de Linux: una introducción completa" . Ahora, ¿tengo que usar una distribución de Linux para recorrer el libro, o OS X sería suficiente?

Si necesito una distribución de Linux, ¿sería suficiente usarla a través de una VM o necesito instalarla de forma nativa?

Utku
fuente
8
La única razón por la que necesitaría instalar un sistema operativo en hardware físico y no una VM sería por el rendimiento. Si solo está tratando de aprender procedimientos básicos, eso no será un problema. Probablemente sea preferible ejecutar algo como Arch en una VM.
Bratchley
misma discusión en apple.stackexchange.com/q/208692/7057
glenn jackman
44
La línea de comandos es solo un enlace entre usted y el sistema. La sintaxis del shell Bash puede ser la misma, pero cuando necesite lidiar con partes específicas del sistema, habrá diferencias. Por ejemplo, OS X no tiene /procsistema de archivos, las unidades USB tienden a aparecer /Volumesno /media/usernamecomo en Ubuntu. CentOS tiene un dhclient.confarchivo diferente . Y así sucesivamente
Sergiy Kolodyazhnyy
44
El duplicado entre sitios propuesto es claramente una pregunta diferente , sobre el rendimiento de virtualización en MacBooks. La pregunta no se publica en forma cruzada.
Michael Homer
2
@Utku Creo que lo que podría ayudar sería separar algunos conceptos: usar una línea de comando y el sistema operativo en el que lo usa. Si desea conocer su línea de comandos, OS X funcionaría, así como Linux, BSD o incluso Windows con algún esfuerzo. Si desea conocer UNIX o Linux, la línea de comandos es solo una pequeña parte de eso, es solo la interfaz a través de la cual interactuará con el sistema operativo. Creo que aclarar lo que vas a hacer también hará que sea más fácil de aprender :)
rickcnagy

Respuestas:

33

Recomiendo encarecidamente ejecutar Linux en una VM. Todo el software está disponible gratuitamente para descargar y no existe una diferencia práctica entre ejecutar en una VM y ejecutar de forma nativa con el propósito de aprender la línea de comandos.

Además, la línea de comandos de Linux se compone principalmente de bash + GNU coreutils , que es muy diferente de BSD Unix (y OS X es un sucesor de BSD Unix). Hay una gran diferencia de preferencias al escribir argumentos en BSD Unix y GNU Linux. Puedes morderte incluso como novato con diferentes opciones de utilidades estándar como psy tarsi trabajas en ambos sistemas.

El uso de OS X cuando su libro es específico de Linux arrojará regularmente inconsistencias y diferencias que parecerán superficiales cuando tenga más experiencia, pero simplemente serán confusas cuando esté aprendiendo. Mantén las cosas fáciles para ti.

Esto también le permitirá experimentar sin la preocupación de romper su máquina eliminando o cambiando cualquier archivo importante.

Y, por último, aunque no menos importante, le permitirá configurar una conexión SSH a su VM desde su terminal OS X, para que pueda acostumbrarse a usar claves SSH y a la idea de que no importa si su servidor Linux es una máquina nativa, una VM local o se está ejecutando en AWS o Digital Ocean: ¡todo funciona igual!

seumasmac
fuente
Por cierto, ¿tendré la misma estructura de directorios en una VM frente a un Linux nativo también?
Utku
3
Si. Para sus propósitos, es exactamente lo mismo que una instalación nativa.
seumasmac
Esta es la respuesta más segura, pero dependiendo del libro, supondría que una introducción al libro de línea de comandos no mostraría muchas (si las hubiera) de las diferencias. Después de echar un vistazo al manual, lo único que me llamó la atención sería la explicación de la estructura del directorio.
favor el
1
@Utku Si / dev / sda o / dev / hda se menciona en el libro y no puede encontrarlo en su instalación, intente buscar / dev / vda. Esta es la única diferencia posible en la que puedo pensar, eso sería importante para usted.
Kimmax
1
Ni siquiera tiene que usar una VM, también es posible usar un CD en vivo si no desea ocupar mucho espacio en su HD. También se puede iniciar desde una unidad flash, y crear un CD / unidad flash de arranque lleva muy poco tiempo.
Chris Cirefice
18

OS X es suficiente para aprender la línea de comando, ya que es un UNIX certificado y se ajusta a POSIX. Si está mirando el libro de línea de comandos específico de Linux, debe tener en cuenta que las herramientas de usuario en OS X se derivan de BSD, mientras que las herramientas en Linux son GNU y hay algunas diferencias sutiles (y no tan sutiles) entre ellas.

Si desea aprender con las herramientas de GNU, puede instalar una tierra de usuario de GNU a través de macports o homebrew, o puede hacer una instalación completa de Linux en una VM.

casey
fuente
Entonces, ¿supongo que no hay un libro "genérico" en la línea de comandos? Un libro usará herramientas GNU o BSD. ¿Está bien?
Utku
1
Si tiene un libro en un shell (por ejemplo bash), se adaptará a casi cualquier sistema que lo ejecute. Varía cuando comienzas a usar funciones del sistema operativo o herramientas específicas fuera del shell.
teppic
1
@teppic Pero lo útil que es una cáscara simplemente por sí mismo ? AFAIK, un shell en sí mismo es inútil ya que no tiene ningún comando para ejecutar. Incluso los comandos más básicos como lsdeben ser de GNU o BSD (corríjalos si estoy equivocado). Entonces, creo que esto significa que necesito elegir una cadena de herramientas (o entorno) y comenzar a aprender la línea de comandos allí. ¿Está bien?
Utku
@Utku los comandos son los mismos (en su mayor parte) pero las opciones y la salida pueden diferir (a menudo porque GNU implementa muchas extensiones). Es fácil ir y venir entre herramientas BSD y GNU.
casey
@casey Entonces, podría comenzar con el libro en OS X. Entonces, si encuentro un comportamiento no descrito como en el libro, ¿podría probarlo en Linux o simplemente mirar la variante BSD del mismo comando?
Utku
9

Algunas buenas respuestas hasta ahora, pero una razón más para mantenerse alejado de las herramientas predeterminadas de la línea de comandos de OS X es que son versiones muy antiguas. Por ejemplo, OS X grepes de 2004, ¡y bashes de 2007! La razón es que Apple se niega a enviar herramientas con licencia bajo la GPL3.

Si no desea instalar Linux correctamente, puede instalar manualmente las últimas versiones (tal vez a través de algún sistema de puertos como MacPorts, Fink o Homebrew).

Gavilán
fuente
3

Primera diferencia

ls * -lah

Funciona en Linux, falla en Mac (los parámetros deben ser lo primero). Use una máquina virtual u obtenga un libro para mac os. Deberías aprender el que usarás más tarde y luego las diferencias.

usuario136809
fuente
3
Debería decir que ls * -lahfunciona en Linux de la forma en que funciona en Linux, y funciona en OS X de la manera en que funciona en OS X. La forma en que funciona en OS X es correcta de acuerdo con POSIX (12. Convenciones de utilidad / 12.2 Directrices de sintaxis de utilidad / Pauta 9) : "Todas las opciones deben preceder a los operandos en la línea de comando". Como se describe en getopt (3) : "Si ... se establece la variable de entorno POSIXLY_CORRECT , el procesamiento de opciones se detiene tan pronto como se encuentre un argumento de no opción".
G-Man dice 'reinstalar a Monica' el
3

La mejor manera de aprender Unix es tener un trabajo real que ver con eso. Diría que vale la pena encontrar las diferencias entre los ejemplos específicos de Linux en su libro y las versiones para Mac de las herramientas estándar, solo para poder trabajar con sus propios archivos y datos en su entorno de trabajo normal (OS X).

Encontrar las diferencias también será una experiencia de aprendizaje valiosa, aunque a veces sea frustrante.

Tener una VM Linux también para practicar (especialmente para comandos potencialmente peligrosos) también es útil, pero nada supera el uso del mundo real para el aprendizaje.

cas
fuente