J'adore Ubuntu Linux - en particulier la ligne de commande. Mais je dois admettre que, du moins pour l'instant, Windows est plus convivial - il y a plus de logiciels, plus de pilotes et plus de choses qui fonctionnent.
Sachant que Mac est construit sur Unix, je me demande si c'est le point idéal entre eux. Mais je me demande: dans quelle mesure la ligne de commande Mac est-elle similaire à la bash de Linux ? Puis-je reprendre avec l'utilisation de scripts vim et bash et git, etc.? Les commandes courantes comme changer les répertoires seraient-elles différentes? Quelqu'un connaît-il une ressource en ligne «comparer et contraster»?
Réponses:
Bash est bash donc le shell et ses éléments intégrés sont les mêmes. Mais sachez que le comportement de certains outils comme
ps
ouhead
peut différer dans les détails, vos scripts peuvent donc échouer.la source
file
:file -i
sur linuxfile -I
en osxMac OS X est un système d'exploitation Unix et sa ligne de commande est identique à 99,9% à toute distribution Linux.
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 comme MacPorts qui fournissent la gestion des packages pour Mac.la source
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 BSD.
la source
Quelques choses - cela dépend vraiment de ce que vous entendez par ligne de commande.
Vous pouvez en fait tomber dessus - / bin / bash sur un Mac est épinglé à 3.x pour des raisons de licence. Vous pouvez rencontrer des problèmes de compatibilité mineurs si vous êtes habitué à 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, ls ou cut. En raison de son historique (il est issu de BSD, pas de Linux ou SystemV), les versions Mac des utilitaires seront différentes de celles auxquelles vous êtes habitué sous Linux (aka versions GNU). Ceux-ci auront au moins quelques différences d'indicateur 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 versions GNU depuis macports ou home brew, et définir votre PATH de sorte que ce soient les valeurs par défaut (par rapport aux versions intégrées).
MacOS X propose également de nouveaux outils sympas.
open
est agréable, il ouvrira l'objet comme si vous double-cliquiez dessus.defaults
vous permet de définir certaines préférences, d'autres même pas dans les panneaux de préférences de l'interface graphique.textutil
peut être utile etsay
amusant.la source
Les fonctionnalités de ligne de commande sur Mac et Linux sont en effet similaires car OS X a une saveur UNIX (appelée 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 de ligne de commande par défaut est Terminal. Il existe également un certain nombre d'autres émulateurs, mais dans l'ensemble, Terminal offre une apparence et une convivialité très similaires au shell auquel vous êtes habitué sous Linux.
La principale source de différences est cependant:
du
par exemple). Les commandes principales commecd
ouls
etc. sont similaires.Cela étant dit, il existe également de nombreux hacks sympas disponibles à partir de la ligne de commande dans OS X (par exemple,
open
commande). Il existe de nombreux fils de discussion et articles de blog précédents avec plus d'informations.Vous pouvez également mettre la main sur un tas de packages opensource (c.-à
git
- d .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 source destinés à des systèmes de type UNIX / Linux si nécessaire. .la source
Voici une différence. Essayez cette commande dans le shell bash Mac et Linux
Mac n'affiche rien, même s'il y a beaucoup de fichiers .conf dans / etc.
la source
find /etc/* -name "*.conf"
. Néanmoins, cela a été fourni à titre d'exemple pour comparer la ligne de commande MAC à la ligne de commande LINUX. Impossible de raisonner un vote -ve.find /etc/ -name "*.conf"
cela indique que / etc est un répertoire au lieu d'un fichier. Sousfind
Linux, les liens symboliques vers les répertoires sont-ils traités comme des répertoires par défaut?