Me encanta Ubuntu Linux, especialmente la línea de comandos. Pero debo admitir que, al menos por ahora, Windows es más fácil de usar: hay más software, más controladores y más cosas simplemente funcionan.
Saber que Mac está construido en Unix me hace preguntarme si es el punto óptimo entre ellos. Pero me pregunto: ¿qué tan similar es la línea de comandos de Mac al bash de Linux ? ¿Podría continuar usando vim y bash scripting y git, etc.? ¿Serían diferentes los comandos comunes como cambiar directorios? ¿Alguien conoce un recurso en línea de "comparar y contrastar"?
Respuestas:
Bash es bash, por lo que el shell y sus elementos integrados son iguales. Pero tenga en cuenta que el comportamiento de algunas herramientas les gusta
ps
ohead
puede diferir en los detalles, por lo que sus scripts pueden fallar.fuente
file
:file -i
en linux mientras estáfile -I
en osx ☹️Mac OS X es un sistema operativo Unix y su línea de comando es 99.9% igual que cualquier distribución de Linux.
bash
es su shell predeterminado y puede compilar todos los mismos programas y utilidades. No hay diferencia notable. También puede encontrar varios proyectos como MacPorts que proporcionan administración de paquetes para Mac.fuente
Es muy similar, pero si conoce alguna diferencia entre BSD y Linux, espere que la Mac tenga el comportamiento BSD.
fuente
Un par de cosas: realmente depende de lo que entiendas por línea de comandos.
En realidad, puede toparse con esto: / bin / bash en una Mac está anclado a 3.x por razones de licencia. Puede encontrar problemas menores de compatibilidad si está acostumbrado a 4 o incluso 5.
bash en sí mismo es un pequeño subconjunto de 'línea de comando'. Para ser útil, normalmente utiliza otras utilidades comunes de UNIX como awk, o ls, o cut. Debido a su historia (desciende de BSD, no de Linux o SystemV), las versiones de Mac de las utilidades serán diferentes a las que está acostumbrado en Linux (también conocido como versiones de GNU). Estos tendrán al menos algunas diferencias de bandera, y algunas diferencias de salida y funcionalidad que Linux. Los scripts que usan estos tendrán que cambiarse para compensar. BSD awk vs GNU gawk es bastante diferente. O bien, puede obtener estas versiones de GNU de macports o home brew, y configurar su RUTA para que estos sean los valores predeterminados (sobre las versiones integradas).
MacOS X también tiene algunas herramientas nuevas y geniales.
open
es agradable, abrirá el objeto como si hiciera doble clic en él.defaults
le permite establecer algunas preferencias, algunas ni siquiera en los paneles de preferencias de la GUI.textutil
Puede ser útil ysay
puede ser divertido.fuente
La funcionalidad de la línea de comandos en Mac y Linux es de hecho similar, ya que OS X tiene un sabor de UNIX (llamado Darwin) debajo de la GUI que ve.
El shell predeterminado en OS X es bash, por lo que si está familiarizado con eso, se ajustará bien.
En una Mac, la aplicación de línea de comando predeterminada es Terminal. También hay una serie de otros emuladores, pero el Terminal en general proporciona una apariencia muy similar al shell al que está acostumbrado en Linux.
Sin embargo, la fuente principal de diferencias son:
du
por ejemplo). Los comandos principales comocd
ols
etc. son similares.Dicho esto, también hay muchos hacks geniales disponibles desde la línea de comandos en OS X (por ejemplo,
open
commnand). Hay muchos hilos y publicaciones de blog anteriores con más información.También puede obtener un montón de paquetes de código abierto (es decir
git
,hg
etc.) a través de MacPorts, Fink o algunos otros sistemas de administración de paquetes para OS X. También puede crear otros paquetes fuente destinados a sistemas similares a UNIX / Linux, según sea necesario. .fuente
Aquí hay una diferencia. Pruebe este comando en el shell bash de Mac y Linux
Mac no muestra nada, aunque hay muchos archivos .conf dentro de / etc.
fuente
find /etc/* -name "*.conf"
. Sin embargo, eso se proporcionó como un ejemplo para contrastar la línea de comando MAC con la línea de comando LINUX. No se puede razonar un voto -ve.find /etc/ -name "*.conf"
, indica que / etc es un directorio en lugar de un archivo. ¿find
En Linux trata los enlaces simbólicos a directorios como directorios por defecto?