我怎么知道Ubuntu预装了哪些编程语言?

怎样才能知道Ubuntu系统中已经预装了哪些编程语言(包括它们的编译器和解释器)呢?比如,我知道Python已经安装了。如果我在终端输入python命令,会显示Python版本为2.7.12。但是其他流行的编程和脚本语言,比如Ruby、Perl、C、Lua、awk、Java、PHP等等,应该如何确定它们是否已经安装了呢?是尝试在终端启动它们,还是使用类似于language --version这样一个个查询,或者还有更好的方法吗?

你不能在任何系统上“安装”一种语言.. 你可以安装解释器和编译器,因为它们有时相似,有时又非常不同,所以我认为没有简单的方法可以一次性检查所有的解释器和编译器,只能一个一个地逐个检查。 - derHugo
4个回答

在Ubuntu的帮助页面上,有一篇文章指出五个默认安装的编程语言(perl、python、ruby、awk和sed)。

Ruby?请注意,社区维基曾经可以被任何人编辑,因此它并不具有权威性。 - muru

截至最新的LTS版本16.04,Ubuntu默认安装了Perl 5、GNU awk(曾经是mawk)、Python 2和3。关于C编译器不太确定,你可能需要安装build-essential软件包。
对于其他所有内容,可以使用apt-cache policy **package-name**来查看是否已安装。你还可以按照这个答案中描述的方式查看发布清单文件:https://askubuntu.com/a/48894/295286

1还有Bash和dash。 - Chai T. Rex
@ChaiT.Rex 嗯,从技术上讲,它们都是外壳(shell),符合标准的外壳命令语言规范,但是bash具有更高级的语法。所以从技术上来说,它们并不像C或Python一样是“编程语言”,但是很好地提到了这两种工具。 - Sergiy Kolodyazhnyy

我写了一个小的bash脚本。它非常基础,但是有点东西。
#!/usr/bin/env bash

languages="php python go perl mysql c c++ java"
binaries="ls /usr/bin"

for i in $languages ; do
    for j in $($binaries); do
        if [[ $i == $j ]]; then
            echo $i
        fi
    done
done

输入whereis [程序]。如果没有显示任何内容,则表示该程序未安装。这是一种相当愚蠢的方法,但仍然可用。