Das Minimum, das Sie auf jedem Unix-System erwarten können, das nicht antik oder eingebettet ist, ist POSIX/Singe UNIX. Insbesondere entsprechen alle aktuellen Unices größtenteils POSIX:2004, auch bekannt als Single Unix Issue 6. Dies gibt Ihnen sh, sed und awk als Programmiersprachen.
Wenn Entwicklungspakete installiert sind (was sie oft nicht auf einem Server sind), können Sie mit cc (C-Compiler), lex, yacc, make entwickeln; aber abgesehen von make sind diese auf den Computern, auf denen Sie Ihre Anwendung bereitstellen, nicht nützlich, sondern nur auf Entwicklungscomputern.
Geht man von Linux aus, folgen die meisten Distributionen bis zu einem gewissen Grad der Linux Standard Base. Das LSB geht über POSIX hinaus. Die Kernspezifikation umfasst eine C-Laufzeitumgebung mit Unterstützung für Multithreading, NSS, PAM, ncurses, libz, SSL und einige weitere Bibliotheken. Das LSB benötigt keine bash, nur eine POSIX-sh, die ash oder ksh sein kann, aber in der Praxis liefern die meisten nicht eingebetteten Linux-Distributionen bash als Teil der Standardinstallation aus. Die Sprachspezifikation umfasst Perl und Python. In der Praxis machen nicht alle Distributionen die vollständige LSB-Unterstützung zu einem Teil ihrer Standardinstallation, aber Sie können im Allgemeinen argumentieren, dass sie auf einem Linux-Server installiert werden sollte, wenn sie von LSB angegeben wird (aber natürlich nicht in der LSB-Desktop-Spezifikation). .
Auf anderen Systemen ist Perl sehr oft verfügbar. Python ist nicht so verbreitet, gewinnt aber an Popularität. Sie können sich entweder auf bash oder pdksh verlassen (aber nicht immer; IIRC NetBSD hat nur ash in seiner Standardinstallation). Für kompilierte Sprachen finden Sie immer eine C-Laufzeit und fast immer eine C++-Laufzeit.
Sie können nicht davon ausgehen, dass Perl oder Python installiert sind, obwohl dies oft der Fall ist. Zum Beispiel installieren Redhat-ähnliche Distributionen normalerweise Python, andere Distributionen jedoch normalerweise nicht.
Sie sollten auf bestimmte Distributionen abzielen, wenn dies ein Problem darstellt - oder Sie müssen Ihre eigene erstellen (z. B. Python) und selbst versenden - dies ist die einzige Möglichkeit, um sicherzustellen, dass sie verfügbar ist. Wenn Sie tatsächlich eine nicht triviale Software schreiben, die auf viele Distributionen portierbar sein muss, ist es wahrscheinlich notwendig, Ihr eigenes Python zu liefern.