phhsnews.com


phhsnews.com / Quelle est la différence entre Bash, Zsh et d'autres shells Linux?

Quelle est la différence entre Bash, Zsh et d'autres shells Linux?


La plupart des distributions Linux incluent le shell bash par défaut, mais vous pouvez aussi passer à un autre environnement shell. Zsh est une alternative particulièrement populaire, et il y a d'autres coquilles, comme la cendre, le tiret, le poisson et le tcsh. Quelle est la différence, et pourquoi y en a-t-il autant?

Que font les shells?

Lorsque vous vous connectez en ligne de commande ou lancez une fenêtre de terminal sous Linux, le système lance le programme shell. Les shells offrent un moyen standard d'extension de l'environnement de ligne de commande. Vous pouvez échanger le shell par défaut contre un autre, si vous le souhaitez.

Le premier environnement de coque fut le Thompson Shell, développé par Bell Labs et sorti en 1971. Les environnements coquilles se sont basés sur le concept depuis, ajoutant une variété

Par exemple, Bash propose la complétion des commandes et des noms de fichiers, des fonctions avancées de script, un historique des commandes, des couleurs configurables, des alias de commandes et une variété d'autres fonctionnalités qui n'étaient pas disponibles en 1971, lorsque le premier obus a été libéré. ​​

Le shell est également utilisé en arrière-plan par divers services du système. Les distributions Linux incluent de nombreuses fonctions écrites en tant que scripts shell. Ces scripts sont des commandes et d'autres fonctions avancées de script shell exécutées dans l'environnement shell

Shells menant à Bash: sh, csh, tsh et ksh

RELATED: Qu'est-ce qu'unix, et pourquoi est-ce important? ?

L'ancêtre le plus proéminent des coquilles modernes est la coquille de Bourne - également connue sous le nom de «sh» - qui a été nommée après son créateur Stephen Bourne qui a travaillé chez les Bell Labs d'AT & T. Sorti en 1979, il est devenu l'interpréteur de commandes par défaut sous Unix en raison de sa prise en charge de la substitution de commandes, de la tuyauterie, des variables, des tests d'état et de la mise en boucle, ainsi que d'autres fonctionnalités. Il n'offrait pas beaucoup de personnalisation pour les utilisateurs, et ne supportait pas les subtilités modernes telles que les alias, la complétion des commandes et les fonctions shell (bien que cette dernière ait finalement été ajoutée).

Le shell C, ou "csh", a été développé à la fin des années 1970 par Bill Joy à l'Université de Californie, Berkley. Il a ajouté de nombreux éléments interactifs avec lesquels les utilisateurs peuvent contrôler leurs systèmes, comme les alias (raccourcis pour les commandes longues), les capacités de gestion des tâches, l'historique des commandes, et plus encore. Il a été modélisé à partir du langage de programmation C, dans lequel le système d'exploitation Unix lui-même a été écrit. Cela signifiait aussi que les utilisateurs du shell Bourne devaient apprendre le C pour y entrer des commandes. En outre, csh a eu quelques bugs qui ont dû être martelés par les utilisateurs et les créateurs sur une longue période de temps. Les gens ont fini par utiliser le shell Bourne pour les scripts car il gérait mieux les commandes non-interactives, mais il restait bloqué avec le shell C.

Au fil du temps, beaucoup de gens ont corrigé des bugs et ajouté des fonctionnalités au shell C. une version améliorée de csh appelée "tcsh". Mais csh était toujours la valeur par défaut des ordinateurs basés sur Unix, et avait ajouté quelques fonctionnalités non standard. David Korn de Bell Labs a travaillé sur KornShell, ou "ksh", qui a essayé d'améliorer la situation en étant rétrocompatible avec le langage de l'interpréteur de commandes Bourne mais en ajoutant de nombreuses fonctionnalités à partir du shell csh. Il a été publié en 1983, mais sous licence exclusive. Ce n'était pas un logiciel libre avant les années 2000, quand il a été publié sous diverses licences open-source.

La naissance de bash

L'interface Portable Operating System pour Unix, ou POSIX, était une autre réponse au csh propriétaire. implémentations. Il a créé avec succès une norme pour l'interprétation des commandes (entre autres choses) et a finalement reflété beaucoup de fonctionnalités dans le KornShell. En même temps, le projet GNU essayait de créer un système d'exploitation libre compatible Unix. Le projet GNU a développé un shell de logiciel libre pour faire partie de son système d'exploitation libre et l'a appelé "Bourne Again Shell", ou "bash".

Bash a été amélioré dans les décennies depuis sa première sortie en 1989, mais c'est toujours le shell par défaut sur la plupart des distributions Linux aujourd'hui. C'est aussi le shell par défaut sur macOS d'Apple, et est disponible pour l'installation sur Windows 10 de Microsoft.

De nouveaux shells: ash, dash, zsh et fish

Alors que la communauté Linux s'est installée sur Bash depuis, les développeurs n'ont pas arrêté de créer de nouveaux shells quand Bash a été lancé il y a 28 ans.

Kenneth Almquist créé un clone de Bourne appelé shell Almquish, A Shell, "ash", ou parfois juste "sh". il était également compatible POSIX et est devenu le shell par défaut dans BSD, une branche différente d'Unix. La coque en frêne est plus légère que bash, ce qui la rend populaire dans les systèmes Linux embarqués. Si vous avez un téléphone Android rooté avec BusyBox installé, ou tout autre périphérique avec la suite de logiciels BusyBox, il utilise du code de ash.

Debian a développé un environnement shell basé sur ash et l'a appelé "dash". Il est conçu pour être compatible avec POSIX et léger, c'est donc plus rapide que Bash, mais il n'aura pas toutes ses fonctionnalités. Ubuntu utilise le shell du tableau de bord comme shell par défaut pour les tâches non interactives, ce qui accélère les scripts shell et d'autres tâches s'exécutant en arrière-plan. Cependant, Ubuntu utilise toujours bash pour les shells interactifs, donc les utilisateurs ont toujours l'environnement interactif complet.

L'un des shells les plus récents est Z shell, ou "zsh". Créé par Paul Falstad en 1990, zsh est un shell de style Bourne qui contient les fonctionnalités que vous trouverez dans bash, et même plus. Par exemple, zsh a la vérification orthographique, la possibilité de surveiller les connexions / déconnexions, certaines fonctionnalités de programmation intégrées comme le bytecode, la prise en charge de la notation scientifique en syntaxe, l'arithmétique à virgule flottante et bien d'autres fonctionnalités. shell est le Friendly Interactive Shell, ou "fish", sorti en 2005. Il a une syntaxe de ligne de commande unique qui est conçue pour être un peu plus facile à apprendre, mais qui n'est pas dérivée du shell Bourne ou du shell C. C'est une idée intéressante, mais ce que vous apprenez en utilisant du poisson ne vous aidera pas forcément à utiliser le bash et d'autres coquillages dérivés de Bourne.

Lequel devriez-vous choisir? (et pourquoi Zsh est populaire)

Vous n'avez pas besoin de choisir un shell. Votre système d'exploitation choisit votre shell par défaut, et ce choix est presque toujours bash. Asseyez-vous devant une distribution Linux, ou même un Mac, et vous aurez presque toujours un environnement shell bash. Bash a pas mal de fonctionnalités avancées, mais vous ne les utiliserez probablement que si vous programmez des scripts shell.

Sur les systèmes Linux embarqués ou les systèmes BSD, vous allez vous retrouver avec le shell ash. Mais la cendre est une coquille basée sur Bourne et est largement compatible avec bash. Toutes les connaissances que vous avez sur l'utilisation de bash seront transférées à l'aide d'un shell ash ou dash, bien que certaines fonctionnalités de script avancées ne soient pas disponibles dans ce shell léger.

Presque tous les shell que vous rencontrerez sont basés sur Bourne

C'est pourquoi zsh est populaire. Ce nouveau shell est compatible avec bash, mais comprend plus de fonctionnalités. Le shell zsh offre une correction d'orthographe intégrée, une amélioration de la ligne de commande, des modules chargeables qui agissent comme des plug-ins pour votre shell, des alias globaux qui vous permettent d'aliaser des noms de fichiers ou tout autre chose sur la ligne de commande. plus de soutien thématique. C'est comme bash, mais avec beaucoup d'extras, de fonctionnalités supplémentaires et d'options configurables que vous apprécierez si vous passez beaucoup de temps sur la ligne de commande.

Si vous êtes familier avec bash, vous pouvez passer à zsh sans apprendre une syntaxe différente - vous obtiendrez juste des fonctionnalités supplémentaires. Si vous êtes familier avec zsh, vous pouvez passer à bash sans apprendre une syntaxe différente - vous n'aurez pas accès à ces fonctions.

"Oh My ZSH" est un outil qui vous aide à activer plus facilement le plug-in zsh. insérez et basculez entre les thèmes prédéfinis, personnalisez rapidement votre shell zsh sans passer des heures à peaufiner les choses.

Il existe également d'autres shells. Par exemple, le shell tcsh est toujours disponible et reste une option. FreeBSD utilise tsch comme shell racine par défaut et ash comme shell interactif par défaut. Si vous utilisez la programmation C régulièrement, tsch pourrait vous convenir. Cependant, il est loin d'être aussi utilisé que bash ou zsh.

Comment basculer entre les shells

Il est facile de passer à un nouveau shell pour l'essayer. Installez simplement le shell depuis le gestionnaire de paquets de votre distribution Linux et tapez la commande pour lancer le shell.

Par exemple, disons que vous voulez essayer zsh sur Ubuntu. Vous devez exécuter les commandes suivantes pour l'installer, puis le lancer:

sudo apt install zsh zsh

Vous seriez alors assis sur un shell zsh. Tapez "

exit" sur le shell pour le quitter et revenir à votre shell actuelCeci est seulement temporaire. Chaque fois que vous ouvrez une nouvelle fenêtre de terminal ou que vous vous connectez à votre système sur la ligne de commande, votre shell par défaut s'affiche. Pour modifier le shell que vous voyez lorsque vous vous connectez sous le nom de votre shell de connexion, vous pouvez généralement utiliser la commande

chsh, ou la commande "Change Shell".Pour utiliser cette commande, vous devez d'abord besoin de trouver le chemin complet de votre shell avec la commande which. Par exemple, disons que nous voulions passer au shell zsh. Nous exécuterions la commande suivante:

qui zsh

Sur Ubuntu, cela nous indique que le binaire zsh est stocké dans /usr/bin/zsh.

Exécutez la commande suivante, entrez votre mot de passe, et vous ' ll sera invité à choisir un nouveau shell de connexion:

chsh

Selon la commande ci-dessus, nous entrerions

/ usr / bin / zsh. Le shell zsh sera alors notre choix par défaut jusqu'à ce que nous ayons exécuté la commandechshet que nous l'ayons modifié.


Les fichiers compressés NTFS sont-ils décompressés en disque ou en mémoire?

Les fichiers compressés NTFS sont-ils décompressés en disque ou en mémoire?

Si vous cherchez des moyens de modifier votre système Windows pour économiser de l'espace disque, vous pouvez envisager la compression NTFS. Mais si vous choisissez cette option, alors comment fonctionne le processus de décompression? La session de questions et réponses d'aujourd'hui nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web Q & A La question Lecteur SuperUser CausingUnderflowsEverywhere veut savoir si les fichiers compressés NTFS sont décompressés en disque ou en mémoire: Comment fonctionne la décompression NTFS sous Windows?

(how-top)

Qu'est-ce que la fenêtre contextuelle «Mise à jour des paramètres de porteuse» sur votre iPhone?

Qu'est-ce que la fenêtre contextuelle «Mise à jour des paramètres de porteuse» sur votre iPhone?

Si vous avez eu un iPhone pendant un moment, vous avez peut-être vu un message contextuel indiquant qu'il y a un Paramètres Mettez à jour et demandez si vous souhaitez les mettre à jour maintenant. Si vous êtes du type qui ne clique pas sur les choses jusqu'à ce que vous sachiez ce qu'elles sont (bon pour vous!

(how-top)