Windows cmd.exe
ne prend pas en charge ls
, 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 a rmdir
, 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 avec 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 se tcsh
renforce csh
.
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.)