web-dev-qa-db-fra.com

Comment la commande de Mac se compare-t-elle à Linux?

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"?

27
Nathan Long

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.

10
user16115

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.

31
w0rm

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.

12
Neth

Quelques choses - cela dépend vraiment de ce que vous entendez par ligne de commande.

  1. Vous exécuterez probablement bash, qui sera identique à bash sur n’importe quel autre UNIX. Le langage de programmation bash sera le même aussi - à condition que ce soit la même version. Les versions Bash ont de légères différences dans la langue, mais cela n’a rien à voir avec MacOSX par rapport à Linux en soi.

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.

  1. 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).

  2. 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.

9
Rich Homolka

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:

  • Différents arguments de ligne de commande parfois (par exemple, voir du). Les commandes principales telles que cd ou ls etc. sont similaires.
  • Il y a plusieurs parties de OS X qui ne devraient pas être modifiées manuellement, comme vous le feriez sous Linux. C’est un sujet en soi, mais sachez que l’exécution d’un Mac n’est pas identique à l’exécution d’une machine Linux en termes de configuration et d’entretien.

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.

3
dtlussier

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.

0
Antony Thomas