J'adore Ubuntu Linux - en particulier la ligne de commande. Mais je dois admettre que, du moins pour le moment, Windows est plus convivial: plus de logiciels, de pilotes et plus de logiciels fonctionnent.
Sachant que Mac est construit sous Unix, je me demande si c'est le bon compromis entre eux. Mais je me demande: dans quelle mesure la ligne de commande Mac est-elle similaire à la bash de Linux ? Puis-je utiliser directement les scripts vim and bash, git, etc.? Des commandes courantes telles que la modification de répertoires seraient-elles différentes? Est-ce que quelqu'un connaît une ressource en ligne "comparer et contraster"?
Bash est bash, donc le shell et ses fonctions intégrées sont les mêmes. Sachez toutefois que le comportement de certains outils tels que ps
ou head
peut différer dans les détails, de sorte que vos scripts peuvent échouer.
Mac OS X est un système d'exploitation Unix et sa ligne de commande est identique à celle de toute distribution Linux à 99,9%. bash
est votre shell par défaut et vous pouvez compiler tous les mêmes programmes et utilitaires. Il n'y a pas de différence notable. Vous pouvez également trouver divers projets, tels que MacPorts, qui fournissent une gestion des packages pour Mac.
C'est très similaire, mais si vous connaissez des différences entre BSD et Linux, attendez-vous à ce que le Mac ait le comportement de BSD.
Quelques choses - cela dépend vraiment de ce que vous entendez par ligne de commande.
Vous pouvez en fait vous heurter à ceci -/bin/bash sur un Mac est bloqué sur 3.x pour des raisons de licence. Vous pouvez rencontrer des problèmes de compatibilité mineurs si vous en avez l'habitude 4 ou même 5.
bash en lui-même est un petit sous-ensemble de 'ligne de commande'. Pour être utile, vous utilisez généralement d’autres utilitaires UNIX courants tels que awk, ou ls ou cut. En raison de son historique (dérivé de BSD, et non de Linux ou SystemV), les versions des utilitaires Mac seront différentes de celles auxquelles vous êtes habitué sous Linux (versions a.k.a. GNU). Celles-ci auront au moins quelques différences de drapeau, et quelques différences de sortie et de fonctionnalité par rapport à Linux. Les scripts qui les utilisent devront être modifiés pour compenser. BSD awk vs GNU gawk est assez différent. OU, vous pouvez obtenir ces GNU versions à partir de macports ou de home brew et définir votre PATH pour que ce soient les valeurs par défaut (par rapport aux versions intégrées).
MacOS X propose également de nouveaux outils intéressants. open
est Nice, il ouvrira l'objet comme si vous double-cliquiez dessus. defaults
vous permet de définir certaines préférences, même pas dans les panneaux de préférences de l'interface graphique. textutil
peut être utile et say
peut être amusant.
La fonctionnalité de ligne de commande sur Mac et Linux est en effet similaire, car OS X possède une sorte d’UNIX (appelé Darwin) sous l’interface graphique que vous voyez.
Le shell par défaut sur OS X est bash, donc si vous êtes familier avec cela, vous vous ajusterez bien.
Sur un Mac, l'application en ligne de commande par défaut est Terminal. Il existe également un certain nombre d'autres émulateurs, mais globalement, Terminal donne une apparence très similaire à celle du shell auquel vous êtes habitué sous Linux.
Les principales sources de différences sont les suivantes:
du
). Les commandes principales telles que cd
ou ls
etc. sont similaires.Cela étant dit, de nombreux hacks intéressants sont également disponibles en ligne de commande sous OS X (par exemple, open
commnand). Il y a beaucoup de discussions précédentes et de blogs avec plus d'informations.
Vous pouvez également mettre la main sur un ensemble de packages opensource (par exemple, git
, hg
, etc.) via MacPorts, Fink ou quelques autres systèmes de gestion de packages pour OS X. Vous pouvez également créer d'autres packages sources conçus pour UNIX/Linux, comme des systèmes le cas échéant.
Voici une différence. Essayez cette commande dans les environnements Mac et Linux bash Shell
find /etc -name "*.conf"
Mac n'affiche rien, même s'il y a beaucoup de fichiers .conf dans/etc.