Acho que alguns comandos, por exemplo, ls
e pwd
podem ser usados nos sistemas Linux e Unix.
- Todos os comandos do Linux podem ser usados nos sistemas Unix e todos os comandos do Unix podem ser usados no Linux?
- Ou apenas que todos os comandos do Linux podem ser executados no Unix, mas nem todos os comandos do Unix podem ser executados no Linux.
- Ou que todos os comandos do Unix podem ser executados no Linux, mas nem todos os comandos do Linux podem ser executados no Unix?
- Ou existe uma referência para me mostrar quais comandos podem ser executados no Linux e Unix e onde ambos têm seu próprio comando exclusivo?
Respostas:
O comentário de Daniel Andersson sobre o POSIX é a resposta real aqui: existe um padrão chamado POSIX que define o núcleo de um sistema semelhante ao UNIX, tanto em termos de comandos do shell quanto de chamadas do sistema. Em teoria, se você escrever um software para a especificação POSIX, deverá ser possível compilar e executá-lo em qualquer sistema UNIX, Linux, BSD etc.
http://pubs.opengroup.org/onlinepubs/009695399/mindex.html fornecerá uma resposta definitiva sobre o que constitui o POSIX, mas essa não é uma resposta útil para fins práticos. Outra pessoa pode ter boas referências de comando para diferenças comuns entre sistemas Linux e outros sistemas semelhantes ao UNIX.
Um exemplo específico: "killall" no Linux mata todos os processos com um nome específico. No Solaris, ele desliga o sistema. Importante para não usar o errado.
fonte
cat
acat
, e lembre-se que uma rosa por qualquer outro nome ainda deve cheirar tão doce. Vá até uma caixa do Windows e aprenda o que não é o Unix . Mas o Linux é obviamente Unix.Atualmente, a maioria das distribuições Linux vem com muitos softwares GNU essenciais e o GNU Toolchain. O GNU foi um projeto para reescrever uma cópia gratuita do Unix que mais tarde foi combinada com o kernel do Linux. Quando você usa
ls
uma máquina Unix, está usando o original / o que aconteceu com o originalls
. Quando você usals
no GNU / Linux, usa o GNUls
que foi escrito do zero para ser o mesmo quels
. No entanto, nem todo software GNU é exatamente o mesmo que seus colegas do Unix. Agora que o Unix basicamente se transformou em BSD, as distribuições GNU / Linux também podem conter a versão BSD dessa ferramenta. Por exemplo,bsdtar
etar
venha à mente.tl; dr: Eles não são exatamente o mesmo código, mas devem, na maioria das vezes, ser exatamente o mesmo.
fonte
ps
é o exemplo mais irritante que consigo pensar. Comutadores diferentes em sistemas diferentes (Linux, AIX e Solaris). Também formato diferente de saída. Embora o objetivo desse comando seja o mesmo em todos os sistemas.Você não especificou de qual UNIX está falando (BSD, System V ...). Não há resposta universal (UNIX). Cada variante UNIX possui seus próprios comandos personalizados (como o Mac OS X, por exemplo), portanto, mesmo entre UNIXes, existem comandos diferentes. Normalmente, os comandos antigos (como ls, pwd, cd, cp, mv, rm ...) tendem a ser os mesmos em todos os tipos de UNIX (incluindo Linux).
fonte
O que você precisa considerar primeiro é que os comandos são realmente pequenos programas, nesse sentido não necessariamente fazem parte do sistema operacional se você dividir os cabelos. Os antigos e os clássicos existem há muito tempo e estão incluídos na maioria dos sistemas * nix. O quão "completo" o sistema operacional é depende do que acompanha o pacote.
Como um exemplo da maioria dos CDs de recuperação / emergência dos quais você pode inicializar contêm uma pequena distribuição Linux, você descobriria que alguns comandos típicos podem não estar presentes nesses sistemas, apenas porque eles não seriam necessários na maioria dos casos.
fonte
No solaris, basta adicionar
/usr/gnu/bin
ao seu caminho ou trocá-lo/usr/bin
e seus conjuntos de comandos serão muito semelhantesfonte