Ajoutant à la excellente réponse de Steve Chambers :
Historiquement, le terme Terminal était utilisé pour désigner un dispositif de communication qui permet à l'utilisateur d'interagir avec un ordinateur centralisé. Un terminal fournissait un dispositif d'entrée/sortie sous la forme d'un clavier et d'un écran.
L'époque des ordinateurs centraux avec accès à distance est révolue et, comme presque tout le monde a accès à son propre ordinateur doté d'une unité centrale et d'une mémoire dédiées, l'utilisation du terme "terminal" est désormais un terme impropre et il est donc plus approprié d'utiliser le terme "terminal". Emulateur de terminal car l'application Terminal.app émule un terminal et le système d'exploitation MacOS qui exécute l'application Terminal.app exécute également le programme shell avec lequel l'utilisateur interagit réellement.
Ainsi, à l'époque actuelle où nous n'utilisons plus réel Le terme "terminal" désigne en abrégé un émulateur de terminal.
MacOS est livré avec un émulateur de terminal intégré appelé Terminal.app Cependant, il existe des alternatives tierces disponibles avec des fonctionnalités étendues. L'un de ces émulateurs de terminal tiers, très populaire, est le suivant iTerm2 .
Interface de ligne de commande ou CLI est un terme général désignant une interface utilisateur informatique dans laquelle le principal mode d'interaction consiste à taper des commandes respectant une syntaxe spécifique. Elle s'oppose à l'interface utilisateur graphique (GUI) qui prévaut dans les appareils informatiques modernes.
Alors que MacOS est préinstallé avec une variété d'outils de ligne de commande UNIX, Command Line Tools ou CLT d'Apple est le terme utilisé pour désigner un paquetage installable spécifique mis à disposition par Apple pour les développeurs de logiciels. CLT, en plus des outils UNIX préinstallés dans MacOS, installe le SDK MacOS, les en-têtes et les outils de construction tels que le compilateur LLVM d'Apple et Make. Il permet aux développeurs de construire et d'installer des logiciels open source. Pour plus de détails, consultez ce lien : https://developer.apple.com/xcode/features/
Il est intéressant de noter que le terme Outil en ligne de commande peut être interprété de deux façons. Outils en ligne de commande est un logiciel mis à disposition par Apple qui contient un ensemble spécifique d'éléments. Outil(s) en ligne de commande en général, pourrait être utilisé pour faire référence à tout outil/application avec lequel on interagit via une interface de ligne de commande (Homebrew est le dernier des deux). Et toute application en ligne de commande peut en général être désignée comme un outil en ligne de commande. (Tout comme Apple utilise le terme App Store pour désigner leur place de marché pour les applications iOS, le même terme pouvant également être utilisé de manière générique).
Prompt ou Command Prompt est un autre terme couramment utilisé pour désigner l'interface de ligne de commande. Une invite est généralement utilisée pour indiquer l'endroit où les utilisateurs peuvent saisir la ligne de commande (c'est-à-dire la séquence de caractères décrivant l'ensemble de la commande). Une invite de commande peut utiliser un caractère spécial pour donner une idée du shell utilisé ou de l'utilisateur connecté. Par exemple, le shell BASH utilise $
pour le caractère d'invite, tandis que ZSH utilise %
pour le caractère d'invite. L'invite pour l'utilisateur Root est presque toujours #
. Une invite est généralement suivie d'un curseur clignotant pour indiquer l'endroit où saisir le texte.
Voici une représentation d'une invite de commande exécutant le shell BASH dans Terminal.app sous MacOS pour un utilisateur non-Root. La partie soulignée en vert indique l'invite dans le shell auquel l'utilisateur accède en utilisant l'application Terminal :
Pour répondre à vos questions spécifiques :
Ce qui m'a déconcerté, c'est que je me suis rendu compte qu'Apple ne livrait pas MacOS avec CLT (Command Line Tools) et que je devais le télécharger.
MacOS n'est pas livré avec le CLT d'Apple parce que la plupart des utilisateurs de Mac (et même la plupart des développeurs de logiciels) n'en auront jamais besoin. Et une fois que vous avez besoin des outils de ligne de commande d'Apple, Apple a fait en sorte qu'il soit très facile de les installer.
Cela ne signifie-t-il pas que le terminal est inutile si je ne télécharge pas CLT ?
Le terminal est très utile et utilisable pour une variété de tâches, même pour de nombreux développeurs de logiciels, même sans les outils de ligne de commande d'Apple installés. La plupart des développeurs de logiciels jamais installer les outils de ligne de commande et pourtant ils peuvent accéder à n'importe lequel des shells intégrés, exécuter les commandes internes du shell, exécuter les scripts du shell, exécuter une des nombreuses commandes externes préinstallées, etc. Seuls les développeurs ayant besoin d'accéder à des outils spécifiques fournis par CLT devraient les obtenir en l'installant.
Est-ce un compilateur ? Et s'il est intégré à MacOS, pourquoi dois-je télécharger le CLT de Xcode ?
Non, CLT n'est pas un compilateur, ou plutôt, il contient un compilateur (Apple LLVM) comme l'une des applications de son paquet d'outils. Les outils en ligne de commande ont été décrits de manière appropriée par Apple aquí :
Pourquoi ai-je besoin d'une application comme Terminal pour accéder au CLI ? Le CLI n'est-il pas d'abord une interface ?
L'installation des outils de ligne de commande d'Apple installe un paquet contenant des fichiers d'en-tête, des SDK et diverses applications de ligne de commande dans MacOS. Terminal.app est alors utilisé comme un interface pour avoir accès aux outils eux-mêmes.
Est-ce que Homebrew (qui est un gestionnaire de paquets) considère un CLT qui a sa propre CLI avec laquelle j'interagis en utilisant le Terminal ?
Homebrew est un gestionnaire de paquets tiers, open source et développé par la communauté, qui permet de gérer facilement l'installation d'applications/utilitaires en ligne de commande qui ne sont pas fournies par Apple. Il élimine les tracas de la compilation, de l'installation, de la configuration, de la gestion et de la désinstallation d'une variété d'utilitaires en ligne de commande à code source ouvert, ce qui peut être un problème pour la majorité des utilisateurs (y compris les développeurs de logiciels).
Homebrew devient lui-même disponible pour les utilisateurs comme une commande externe qui leur permet de gérer d'autres utilitaires en ligne de commande. Il s'agit d'une application/utilité différente des outils de ligne de commande fournis par Apple.
(Pour dissiper toute confusion, lorsque l'on fait référence à l'application Apple Outils en ligne de commande il est sous-entendu que l'on parle du paquet spécifique contenant plusieurs outils mis à disposition par Apple, bien que le terme lui-même semble assez générique (comme d'autres termes utilisés par Apple tels que App Store). Les outils de ligne de commande d'Apple ne doivent pas être confondus avec les outils de ligne de commande lorsqu'ils sont mentionnés en général).
0 votes
Les commentaires ne sont pas destinés à une discussion prolongée. déplacé vers chat .