¿Cómo conocer mejor OS X/Unix? [cerrado]

No estoy seguro de cómo preguntar esto, pero este problema me ha preocupado durante tanto tiempo.

Durante mucho tiempo había sido un usuario de DOS/Windows hasta que hace unos 12 años, cuando apareció Mac OS X por primera vez, recurrí a la Mac y me quedé aquí desde entonces. Tengo 32 años, así que básicamente crecí usando una interfaz de usuario de línea de comandos/basada en texto, a partir de DOS 3.1, cuando los disquetes de 3,5" ni siquiera eran compatibles. es que, desde que llegué a OS X, nunca entendí realmente cómo funciona este sistema operativo.

Como decir en DOS o en los primeros sistemas operativos de Windows. Sé que hay autoexec.bat y config.sys donde puedo hacer cambios para que la computadora haga lo que quiero que haga al inicio. Y sé que todas las funciones básicas están almacenadas en un directorio llamado "Comando" donde puedo encontrar la mayoría de lo que necesito para moverme por el sistema operativo. El sistema de archivos es bastante sencillo. Cada disco tiene un nombre, A, B, C, D, E, etc., que parece estar en el nivel superior del sistema de archivos, lo que tiene sentido para mí, ya que básicamente todo está almacenado en estos hardware. Y también sé que si digo que estoy en cierto directorio pero necesito usar alguna función que no está en este directorio, puedo poner el directorio de esa función en "RUTA" para poder usarla donde quiera.

Pero en la Mac (y lo mismo en Linux. Lo probé varias veces pero me quedé atascado en el mismo lugar), no sé cómo hacer nada de esto. No es que necesite hacer algo como esto todos los días, ya que tenemos la interfaz gráfica de usuario todopoderosa, pero cuando lo necesito es realmente un gran problema para mí. Por ejemplo, a veces necesito instalar algo que requiere cierto conocimiento de la línea de comandos, como Octave. Después de investigar un poco, sé que necesito usar algo llamado administrador de paquetes como Fink, Macport o Homebrew. Si pudieran trabajar fuera de la caja, no estaría aquí preguntando esto. El problema es que muy a menudo no lo hacen. Casi siempre se atascan en algún lugar durante la instalación. Y también siempre hay algún conocimiento esencial que no sé, como que puedo elegir entre los tres pero puedo' No use dos de ellos al mismo tiempo que mi administrador de paquetes o algo podría salir mal. Bien, algo podría salir mal... ¿cómo sabría eso antes de que algo realmente salga mal? ¿Por qué es este caso? ¿Por qué no puedo usar ambos al mismo tiempo? Cuando los instalo, ¿dónde ponen los binarios? ¿Homebrew colocará el directorio en la ruta predeterminada para que pueda usarlo cuando quiera por sí mismo? Durante la instalación, cuando hay una advertencia o un error, ¿debo ignorarlo?

La primera vez que intenté instalar Octave en mi Mac probé los tres sin saber que no puedo usar los tres al mismo tiempo. Pero, ¿qué más podía hacer después de ver que tanto Fink como Macport fallaron en el trabajo? Y la última vez que intenté instalar Octave me llevó literalmente tres días. Porque en eso ya aprendí que no podía usar los tres y también debería usar Homebrew porque es el que funcionó antes. Así que me tomó 3 días hacer una investigación ad-hoc en Internet sin éxito, y luego pensé que podría intentarlo de nuevo con Fink, ¡y funcionó! Simplemente no entiendo nada de esto... Y debería considerarme afortunado de haberlo hecho funcionar, porque hasta ahora todavía no he encontrado una manera de instalar numpy en mi Python 3. Y no sé cuánto tiempo me había tomado ahora...

Es lo mismo que cuando solía querer intentar usar Linux. Sé un poco de codificación. Aunque principalmente uso Python, todavía tengo un poco de conocimiento de lenguajes como C/C#. Así que sé lo que significa compilar. El problema con Linux (y Mac también), es que cuando quiero instalar algo, muchas veces necesito compilar primero los archivos binarios del código fuente. Y muchas cosas pueden salir mal durante el proceso de compilación (y no sé por qué). Y esto no es algo que la búsqueda en Internet pueda ayudarme porque la mayoría de las respuestas proporcionadas en Internet están basadas en ad-hoc. Le dicen que debe probar este comando o ese comando y ver si funciona. A veces lo hace, a veces no. Pero el problema es que incluso si funciona y resuelve el problema, todavía no sé por qué funciona. En este punto todavía no lo sé, decir cuando finalmente he terminado de compilar el código fuente, ¿dónde está el binario? ¿El binario que obtengo es la aplicación real o es solo un instalador? Si es un instalador, ¿cómo lo instalo? ¿Dónde lo instalo? Y las cosas también pueden salir mal durante la instalación. Como dije antes, recurrir a Internet realmente no ayuda en este caso porque, incluso si tengo que hacerlo funcionar esta vez, la próxima vez que suceda algo similar, todavía tengo que pasar por todo el asunto de la investigación en Internet nuevamente. . Realmente lleva mucho tiempo y es frustrante, porque no sabes lo que estás haciendo y te sientes como Sísifo tratando de llevar la roca a la cima de la montaña una y otra vez solo para ver cómo rueda hacia abajo una vez más. ... donde esta el binario ¿El binario que obtengo es la aplicación real o es solo un instalador? Si es un instalador, ¿cómo lo instalo? ¿Dónde lo instalo? Y las cosas también pueden salir mal durante la instalación. Como dije antes, recurrir a Internet realmente no ayuda en este caso porque, incluso si tengo que hacerlo funcionar esta vez, la próxima vez que suceda algo similar, todavía tengo que pasar por todo el asunto de la investigación en Internet nuevamente. . Realmente lleva mucho tiempo y es frustrante, porque no sabes lo que estás haciendo y te sientes como Sísifo tratando de llevar la roca a la cima de la montaña una y otra vez solo para ver cómo rueda hacia abajo una vez más. ... donde esta el binario ¿El binario que obtengo es la aplicación real o es solo un instalador? Si es un instalador, ¿cómo lo instalo? ¿Dónde lo instalo? Y las cosas también pueden salir mal durante la instalación. Como dije antes, recurrir a Internet realmente no ayuda en este caso porque, incluso si tengo que hacerlo funcionar esta vez, la próxima vez que suceda algo similar, todavía tengo que pasar por todo el asunto de la investigación en Internet nuevamente. . Realmente lleva mucho tiempo y es frustrante, porque no sabes lo que estás haciendo y te sientes como Sísifo tratando de llevar la roca a la cima de la montaña una y otra vez solo para ver cómo rueda hacia abajo una vez más. ... ¿Como lo instalo? ¿Dónde lo instalo? Y las cosas también pueden salir mal durante la instalación. Como dije antes, recurrir a Internet realmente no ayuda en este caso porque, incluso si tengo que hacerlo funcionar esta vez, la próxima vez que suceda algo similar, todavía tengo que pasar por todo el asunto de la investigación en Internet nuevamente. . Realmente lleva mucho tiempo y es frustrante, porque no sabes lo que estás haciendo y te sientes como Sísifo tratando de llevar la roca a la cima de la montaña una y otra vez solo para ver cómo rueda hacia abajo una vez más. ... ¿Como lo instalo? ¿Dónde lo instalo? Y las cosas también pueden salir mal durante la instalación. Como dije antes, recurrir a Internet realmente no ayuda en este caso porque, incluso si tengo que hacerlo funcionar esta vez, la próxima vez que suceda algo similar, todavía tengo que pasar por todo el asunto de la investigación en Internet nuevamente. . Realmente lleva mucho tiempo y es frustrante, porque no sabes lo que estás haciendo y te sientes como Sísifo tratando de llevar la roca a la cima de la montaña una y otra vez solo para ver cómo rueda hacia abajo una vez más. ... Todavía tengo que pasar por todo el asunto de la investigación en Internet de nuevo. Realmente lleva mucho tiempo y es frustrante, porque no sabes lo que estás haciendo y te sientes como Sísifo tratando de llevar la roca a la cima de la montaña una y otra vez solo para ver cómo rueda hacia abajo una vez más. ... Todavía tengo que pasar por todo el asunto de la investigación en Internet de nuevo. Realmente lleva mucho tiempo y es frustrante, porque no sabes lo que estás haciendo y te sientes como Sísifo tratando de llevar la roca a la cima de la montaña una y otra vez solo para ver cómo rueda hacia abajo una vez más. ...

Así que mi pregunta es esta:

¿Hay algún libro o curso en línea que pueda ayudarme a llegar al fondo de esto? En comparación con pasar otras 100 horas buscando en Internet y aún quedarme atascado en el mismo lugar, prefiero pasar esas 100 horas (y supongo que sería mucho menos que esto) para construir una base firme para mi comprensión de cualquier Unix. como sistema.

Es un artículo largo, ¡muchas gracias por leerlo!

Esta pregunta es muy amplia. Edítelo para que sea más específico. También puede consultar apple.stackexchange.com/questions/105774/… - cubre un poco de lo que está preguntando.
Probablemente esta no sea una respuesta apropiada para OP, pero para otros que encuentran esta pregunta en la web: si eres un programador y realmente quieres entender cómo funciona UNIX, te recomiendo APUE
Una gran bienvenida al sitio. Para ser honesto, esto es demasiado largo y es probable que la comunidad lo cierre. Sin embargo, lea un poco en las páginas del centro de ayuda sobre cómo hacer una pregunta directa y vea si puede encontrar una o dos de las cosas más apremiantes que no entiende y preguntarlas una vez que haya pensado un poco y acotó el alcance. Tal como está, es una pregunta de compra para un libro o un curso y no se trata realmente de un problema del alcance en el que Stack Exchange funciona bien.
La base Unix de macOS se basa en FreeBSD ( freebsd.org ). Y el manual de FreeBSD tiene una buena introducción a Unix: docs.freebsd.org/en/books/handbook/basics . Simplemente comience desde 3.3 "Usuarios y administración básica de cuentas" y lea las introducciones de cada sección para comprender la forma unix de haciendo cosas en el sistema operativo. (Ignore los comandos ya que algunos de los comandos de FreeBSD han sido reemplazados por Apple con sus propios comandos).

Respuestas (4)

Apple ofrece una base de script de shell gratuita a la que puede acceder aquí:

Ambos son gratis.

También está Learning Unix para OS X ($12 ebook)

Definitivamente recomiendo Homebrew ya que parece ser la más activa de las 3 variantes.

Macports definitivamente se mantiene activamente
Macports ( macports.org ) es mucho mejor, más seguro, más rápido y tiene más paquetes que Homebrew y es un software maduro y bien mantenido. Fue creado por empleados de Apple que también trabajaron en el sistema de puertos FreeBSD.

Este es el libro que usé para familiarizarme con Unix: http://www.amazon.com/Mac-OS-Tiger-Unix-Geeks-ebook/dp/B0043EWTXK/ref=sr_1_2?ie=UTF8&qid=1386847146&sr=8- 2&palabras clave=mac+os+unix+geek

Está muy bien escrito, pero tiene muchas cosas de 10.4 que han cambiado o se han modificado ligeramente. Sin embargo, estoy seguro de que podrías encontrar copias baratas. Los puntos de TJ también son fantásticos y también los recomiendo encarecidamente. Un montón de excelentes recursos en línea para familiarizarse con Unix.

La jerarquía del sistema de archivos UNIX no utiliza el tipo "Letras de unidad" de MS-DOS/Windows, sino que todos los sistemas de archivos se encuentran en / (el nivel más alto).

Una máquina UNIX puede tener múltiples discos y/o particiones, pero solo uno si están montados como /. El resto están montados en algún lugar debajo de / (ya sea en ese nivel o en algún nivel inferior).

Por ejemplo, digamos que tengo 4 discos duros y quiero usarlos todos:

Disco 1: montado en / Disco 2: montado en /extra-disks (debe crear un directorio vacío /extra-disks primero) Disco 3: montado en /extra-disks/music (debe crear un directorio vacío /extra-disks/music primero) Disco 4: montado en /extra-disks/database (nuevamente, debe crearlo primero)

O bien, podría dividir la instalación del sistema operativo de esta manera:

Disco 1: / Disco 2: /usr Disco 3: /usr/local Disco 4: /var

Para colocar temporalmente un directorio en la ruta de búsqueda de un usuario, abra una terminal y escriba:

export PATH=$PATH:/extra-disks/database

También hay formas de hacer esto de forma permanente, según el shell que esté utilizando. Si su shell es bash, entonces puede editar su .bash_profile y agregar/editar el comando de exportación mencionado anteriormente. Esto hará que el cambio sea permanente, comenzando con el próximo inicio de sesión.

Como comentario aparte, la GUI de Mac monta discos /Volumesautomáticamente, sin necesidad de crear nada.

Teniendo en cuenta que tiene conocimientos previos y no tiene miedo de la línea de comando. Sugeriría comenzar a instalar archlinux en un virtualbox y jugar con él. El proceso de instalación le dirá mucho sobre los conocimientos básicos de Linux/Unix. El pacman y AUR le informarán sobre un administrador de paquetes y una comunidad agradables. Comparado con la complejidad de OS X, archlinux es más fácil de entender linux/unix. Personalmente, también encuentro que los administradores de paquetes de OS X, como homebrew, son bastante confusos y molestos, y prefiero Arch Way.

Creo que el conocimiento que adquiriste jugando con él te ayudará a resolver problemas de OS X en el futuro.