13

I'm trying to Create OS detect portable function in bash script,

So I just want to know, the file "/etc/issue" is common for all Linux Flavors ?

Bernhard
  • 12,272
Rahul Patil
  • 24,711
  • In modern distros, there is usually an /etc/*-release file with some info. – ninjalj Jul 25 '13 at 10:07
  • uname may offer some information too, not sure how accurate a finger print it is. Don't forget that anyone can modify pretty much anything in a Linux install to obscure the info you want, it'll only find stuff on unmodified installs. – EightBitTony Jul 25 '13 at 13:26
  • Yes you are right.., I have selected different option, it will check package manager like yum or apt-get then it will install packages based on this. – Rahul Patil Jul 25 '13 at 13:49
  • still I'm working on it check link http://paste.ubuntu.com/5911213/ – Rahul Patil Jul 25 '13 at 13:52

3 Answers3

13

Yes this is a standard file across distributions. It's standard on most distros, Fedora/CentOS/RHEL/Debian/Ubuntu etc.

You can read more about it with a man issue or its associated file /etc/issue.net. You can see the issue.net man page for more details and how to include macros into both files there as well.

You can also read more about it on the Linux From Scratch project, Customizing your Logon with /etc/issue.

slm
  • 369,824
13

In addition to slm's answer, it's worth remembering that anyone (with root access) can edit the content of /etc/issue. Some organisations may do so to present pre-login warnings or disclaimers, and others may remove all identification of the distribution for security reasons (it doesn't matter how effective either of these measures are).

Therefore, while /etc/issue may exist almost all the time, the content is not necessarily suitable for detecting the OS (as you put it, or more likely, the Linux distribution).

EightBitTony
  • 21,373
4

@EightBitTony's answer is correct. Also it does not exist by default on fedora 23.

Do not rely on it for identifying random systems. I'd use /etc/system-release or /etc/os-release but not sure how much universal that is.

Reading a bit /etc/os-release comes with systemd so I guess won't work with archaic distros (or any that hate systemd). Could not find authoritative info about /etc/system-release. I guess one has to check many files if compatibility is important. Or use /etc/os-release if edge cases are not important.

akostadinov
  • 1,048
  • 1
    More information about /etc/os-release: https://www.freedesktop.org/software/systemd/man/os-release.html – Martin Jun 22 '22 at 11:36