Which is the most portable of sed, awk, perl and sh?
sed
, sh
e awk
são portáveis sendo especificados por POSIX, perl
não é como não sendo suportado por um padrão.
Can someone put these tools in order of portability?
Se você mantiver um código compatível, não deverá haver nenhuma ordem de portabilidade para os três comandos POSIX.
Which of these is certain to be found on even the most minimal *nix systems?
Os três POSIX junto com muitos outros utilitários são obrigatórios para um sistema operacional ser POSIX. OSes que faltam a alguns deles devido à minimização, ou que fornecem implementações incompletas / não conformes existem.
Na verdade, a maioria (se não todos) os sistemas operacionais baseados em Unix de código aberto e livre provavelmente não passariam no processo de conformidade caso eles tentassem, e nunca tentariam de qualquer maneira.
Is any of them 100% sure to be present?
Eu ficaria surpreso em encontrar um * nix como o SO que não possui um shell baseado na sintaxe Bourne, mas tudo é possível, especialmente com sistemas embarcados.
É provável queMy guess is that the order is the following: Some shell will be present as the default, will that always be at /bin/sh?
/bin/sh
seja uma shell da família de sintaxe Bourne, mas não é garantido que seja compatível com POSIX, mesmo em sistemas compatíveis com POSIX. Por exemplo, é /usr/xpg4/bin/sh
no Solaris 10 e mais antigo, enquanto /bin/sh
é o shell Bourne original herdado que não é POSIX.