Ubuntu a un bash (Bourne Again SHell) tandis que Windows a son shell propriétaire. D'après mes recherches, il n'y a pas de nom pour le langage utilisé pour les scripts shell dans Windows / Ubuntu. C'est ce qu'on appelle des scripts shell.
Pourquoi les coquilles de Windows et Ubuntu comprennent les mêmes commandes telles que: ls
, mkdir
, rmdir
, mount
et ainsi de suite?
Existe-t-il une sorte de lingua franca pour l'écriture de scripts shell? Si oui, donnez-moi plus de détails.
command-line
bash
windows
history-of-ubuntu
Programmeur Shady
la source
la source
ls
Powershell est pris en charge, noncmd.exe
. Et c'est parce que les créateurs de Powershell ont fait des efforts pour ajouter des alias pour les commandes Unix courantes afin que les utilisateurs Unix soient plus à l'aise. technet.microsoft.com/en-us/library/dd347739.aspxAction-Object
structure, composée d'un ensemble d'actions et aussi des objets standardisés. Par exemple, les deuxls
etdir
sont des alias pourGet-ChildItem
(qui a en plus l'aliasgci
),mkdir
etmd
sont en faitNew-Item
(qui peuvent réellement créer bien plus que des répertoires, en raison de l'approche basée sur les objets de PowerShell), et ainsi de suite.Réponses:
Windows
cmd.exe
ne prend pas en chargels
,mount
etc., sauf si vous les avez installés vous-même et les avez ajoutés à%PATH%
(via Cygwin, MinGW, Subsystem for Unix-based Applications (SUA) ou autre). Powershell le fait. Et c'est parce que Powershell les a comme alias des commandes Powershell standard, afin que les utilisateurs Unix puissent être plus à l'aise. Consultez la liste des alias de compatibilité dans Powershell . Windows armdir
,mkdir
etc. , mais ceux-ci, bien sûr, ne prennent pas en charge la même syntaxe d'options que celle que vous trouveriez sur Ubuntu.Dans Ubuntu, cela n'a rien à voir avec Bash. Ce sont toutes des commandes externes. Il existe des normes pour ces utilitaires. POSIX est le plus notable (voir la liste des utilitaires mandatés par POSIX ), et Linux Standard Base (LSB) est un autre qui est important pour les systèmes Linux (qui est principalement basé sur POSIX, mais a quelques ajouts ). Celles sur Ubuntu sont principalement fournies par GNU , et les utilitaires GNU ont souvent plus de fonctionnalités que la base requise par POSIX.
POSIX définit également le langage shell que vous avez mentionné (qui est sensiblement différent de celui de
cmd.exe
). Il est dérivé de la syntaxe du shell Bourne . Bash (maintenant vous savez à quoi se réfère à nouveau le Bourne ), également de GNU, ajoute également des fonctionnalités sur le dessus, mais peut se comporter de manière conforme POSIX si nécessaire. Le langage POSIX est ce que vous attendez avecsh
.bash
,ksh
,ash
,dash
,zsh
Toute utilisation que la langue, avec des améliorations.csh
est dans un monde (cauchemar) qui lui est propre et setcsh
renforcecsh
.Pour en savoir un peu plus, regardez dans l'histoire des systèmes Unix et Unix . Unix précède Windows de plus d'une décennie, et ces utilitaires sont apparus pour la première fois dans Unix.
Windows était, à une époque, conforme à POSIX, car le gouvernement américain l'exigeait pour les systèmes d'exploitation utilisés par les agences gouvernementales (c'est à ce moment-là qu'ils ont ajouté les Services pour Unix (SFU) , d'où provenait le SUA mentionné dans le premier paragraphe). Mais cette exigence a été supprimée, et par la suite, SUA a été abandonné.
En relation:
(Notez la partie commune de ces messages - ils sont tous sur Unix et Linux , et l' historique balisé - vous pourriez trouver la navigation à travers cette balise très informative.)
la source
rmdir
(avecmkdir
etcd / chdir
) sont descommand.com
builds natifs depuis MS-DOS 2.0 (il n'y avait pas de hiérarchie dans le système de fichiers DOS auparavant)rd
était aussi un raccourcimd
.sh
.bash
,ksh
,ash
,dash
,zsh
Toute utilisation que la langue, avec des améliorations.csh
est dans un monde (cauchemar) qui lui est propre et setcsh
renforcecsh
. Windows a, à un moment donné, obéi à POSIX, car le gouvernement américain l'exigeait pour les systèmes d'exploitation utilisés par les agences gouvernementales (c'est de là que venait le SUA). Mais cette exigence a été supprimée, et par la suite, SUA a été abandonné.Facile:
Linux est un système basé sur le modèle UNIX, tel qu'inventé par Dennis Ritchie et Ken Thompson.
Windows / DOS est une imitation bon marché d'un système appelé CP / M qui était populaire dans les années 1970 sur les anciens ordinateurs que vous avez branchés sur un téléviseur, ce système était à son tour une imitation bon marché des premiers systèmes UNIX de la fin des années 60 / début des années 70 .
la source