Risposte:
Temo che non esiste un modo standardizzato per verificarlo. Ogni distribuzione sembra avere il suo modo di annunciare la sua versione. Puoi provare cat /etc/*release:, potrebbe funzionare su alcuni sistemi. Inoltre, /etc/issuepuò contenere informazioni sulla distribuzione.
lsb_release -a dovrebbe funzionare sulla maggior parte delle distribuzioni.
lsb_release -i -sfunzioni sulla maggior parte dei sistemi che ho solo per ottenere l'ID fornitore. Sfortunatamente lsb_release non fa parte dell'installazione di base sui miei sistemi più piccoli / incorporati, quindi deve essere testato per primo.
lsb-releasepacchetto, che, in effetti, non è predefinito. La sua assenza è tuttavia un forte indicatore Debian. :-)
lsb_releasenon esiste su alcuni nuovi derivati RHEL6, come Scientific Linux 6.1 o Fedora Linux 16.
uname -o
Il binario uname si trova su quasi tutti i sistemi Linux e il flag -o fa meglio a restituirti il sistema operativo. Anche lsb_release funziona ma non è altrettanto onnipresente.
uname -o, quindi se questo ritorna come solo GNU / Linux, l'esecuzione lsb_release -i -ssembra funzionare su tutti i miei sistemi.
Se usi la -abandiera su uname, dovrebbe funzionare la maggior parte delle volte. Ad esempio, sulla mia attuale macchina Ubuntu uname -astampa:
Linux clark-laptop 2.6.35-25-generic #43-Ubuntu SMP Thu Jan 6 22:25:21 UTC 2011 x86_64 GNU/Linux
cat /etc/*releasee/etc/issuedammi le informazioni precise di cui ho bisogno.