・ドメイン名
挙げられていた例「www.example.com」で言うなら、確かに一般的にはドメイン名と言われるのは「example.com」なのですが、RFC によれば、「www.example.com」がドメイン名だと定義されているそうです。ややこしいので、RFC で言うドメイン名を「完全修飾ドメイン名 (FQDN)」と呼称して区別されているようです。
トップレベルドメイン(=TLD。いくつか種類がある。ccTLD とか。)の管理サーバにドメインの情報を登録することにより、インターネットで利用可能となります。TLD の管理サーバへの登録作業は基本的に特定の組織でなければできないようになっているため、通常は登録業者に登録作業を依頼して登録してもらう形になります。
・ホスト名
ホスト名と一口に言いますが、実際にはいろいろと種類があります。ここでは、インターネットにおける定義として扱うと、ホスト名=「IP アドレスを確定できる名前(FQDN)(-ドメイン名)」となります。
例で言うなら、FQDN=「www.example.com」があるとして、そこからドメイン名「example.com」を引いた「www」、あるいは「www.example.com」がホスト名となるということです。
なぜこういう微妙な書き方をするかと言うと、「example.com」というホスト名(FQDN)が設定できるからです。ここからドメイン名を引くとホスト名が「」になってしまいます(設定上「@」などで表します)ので、ホスト名は「example.com」とされる場合が多いです。
なお、「www.subdomain.example.com」というFQDNがあるとき、「subdomain.example.com」は「example.com」のサブドメインですが、これは必ずしもホスト名である必要はありませんので、ホスト名=サブドメインではありません。
・Linuxでのhostnameコマンドの出力結果
これは、その Linux ホストがデフォルトでは自分のホスト名を何であると認識するように設定されているか、という話でしかありません。
たとえば、「www.example.com」、「mail.example.com」という2つのホスト名がDNSに登録されているが、実体はどれもサーバα(の IP アドレス)を示すというような設定がされているとき(将来スケールアウトするときなどにこの方が便利なのでよく行われる設定)に、このサーバαで新たに DB サーバを立ち上げようとしたとします。このときに、デフォルト設定の状態で DB サーバが自分のホスト名として認識するのは「上記の2つのどちらか」ではなく、hostnameの出力結果になるというようなことです。
当然ながら、設定ファイルで設定すれば別の名前にもできます。しかし、普段ユーザーが意識することもないような細々としたサブシステムすべてにいちいち設定して回るのは現実的ではないため、基本的にはデフォルト設定としてhostnameの出力結果を参照するようになっているというわけです。ただ、hostnameがインターネット的に正しく設定されている保証はない(localhost.localdomainとかになっている場合も多い)ことから、自分のIPから逆引きした名前を設定するインストーラもあるようです。