Làm thế nào để biết phân phối Linux nào tôi đang sử dụng?


53

Làm thế nào để biết phân phối Linux nào tôi đang sử dụng?

uname -a cho

Linux xxxxxx.net 2.6.9-42.0.3.EL.wh1smp #1 SMP Fri Aug 14 15:48:17 MDT 2009 i686 i686 i386 GNU/Linux

Làm sao tôi biết đây là Ubuntu / Debian / Fedora hay Redhat?

Tôi sử dụng /etc/init.d/serviced restartđể khởi động lại serevices, có vẻ như đó không phải là gia đình Redhat

[itf][~]$ cat /etc/issue
cat: /etc/issue: No such file or directory
[itf][~]$ cat /etc/issue.net
cat: /etc/issue.net: No such file or directory
[itf][~]$ lsb_release -a
-sh: lsb_release: command not found
[itf][~]$ cat /etc/*-release
cat: /etc/*-release: No such file or directory
[itf][~]$ cat /etc/*-version
cat: /etc/*-version: No such file or directory
[itf][~]$ cat /etc/*release
cat: /etc/*release: No such file or directory
[itf][~]$ cat /etc/*_release
cat: /etc/*_release: No such file or directory
[itf][~]$ cat /etc/*version
cat: /etc/*version: No such file or directory
[itf][~]$

Nếu bạn muốn xóa một số thông tin cá nhân / bí mật, tôi nghĩ bạn có thể gắn cờ câu hỏi của mình để người điều hành chú ý. Bởi vì chúng ta vẫn có thể đọc nó ngay bây giờ ...
Tamara Wijsman

@Tom Wijsman chỉ muốn không hiển thị văn bản đó trong trang câu hỏi, tôi biết rằng nó sẽ ở đó trong lịch sử :-)
Mithun Sreedharan

Câu trả lời:


31
  • Trong Debian: /etc/debian_version

  • Trong Ubuntu: lsb_release -a or /etc/debian_version

  • Trong Redhat: cat /etc/redhat-release

  • Ở Fedora: cat /etc/fedora-release


2
Anh ấy đã thử tất cả chúng, xem mã nguồn của mình.
guerda

2
+1, "lsb_release -a" đã làm việc cho tôi trên Red Hat.
Aaron

3
lsb_release -acũng đã làm việc trong Debian (bóp).
acme

1
lsb_release -acũng hoạt động trong Gentoo
Sergei

lsb_release -acũng hoạt động trong Ubuntu và Mint.
wranvaud


15

Bạn có thể thử bài viết này từ Novell .

Nếu bạn là chủ sở hữu của hệ thống, thì bạn sẽ biết Linux nào được cài đặt và chạy. Bài viết này sẽ giúp bạn hiểu cách xác định bản phân phối Linux nào được cài đặt. Bạn có thể kết hợp điều này vào ứng dụng của mình để phát hiện bản phân phối Linux.


Tôi đã thử $ cat / etc / * phát hành cat: / etc / * phát hành: Không có tệp hoặc thư mục nào Chạy tập lệnh được tạo ra cho kết quả simalr thành uname -a lệnh Linux 2.6.9-42.0.3.EL.wh1smp (2.6 . 9
Mithun Sreedharan

6
cat /etc/*releasedường như làm việc cho một số distro chính. Tôi đã xác minh bằng Ubuntu, Mint, Red Hat và Gentoo.
tộc

Debian không nhận ra điều này
Milad Naseri

Giải pháp Novell hoạt động, cuối cùng trên RedHat 5.3 của tôi. Tôi đã tích hợp nó trong lib shell miễn phí của mình: github.com/
Offerirmo/offirmo

@nobar: Nó cũng hoạt động với các bản phân phối SUSE: /etc/SuSE-release pastebin.com/dL5gVLQe
bwDraco

3

Hãy thử một trong những điều sau:

ls -ld /etc/\*release\*  /etc/\*version\*

gcc --version

1
Tôi có thể hỏi bạn tại sao bạn từ chối sử dụng đánh dấu cho mã không? Vui lòng thụt mã theo bốn khoảng trắng, giúp đọc và phân biệt dễ dàng hơn nhiều. Cảm ơn bạn.
slhck

3

Tất cả các tuân thủ sẽ /etc/os-releasecung cấp cho bạn thông tin liên quan đến phân phối, v.v.

NAME=Fedora
VERSION="17 (Beefy Miracle)"
ID=fedora
VERSION_ID=17
PRETTY_NAME="Fedora 17 (Beefy Miracle)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:17"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

2

Hãy thử http://legroom.net/2010/05/05/generic-method-determine-linux-or-unix-distribution-name .

Một sự kết hợp của các kỹ thuật kết hợp truy vấn các tiện ích LSB, phân phối các tệp thông tin và thông tin kernel từ uname. Nó sẽ lấy tên distro cụ thể nhất mà nó có thể tìm thấy, quay trở lại với Linux chung nếu cần thiết. Nó cũng sẽ xác định các biến thể UNIX, chẳng hạn như Solaris hoặc AIX.


1

Hmm, có thể là một bản phân phối khác của nó - hậu tố .EL dường như được sử dụng bởi centos, nhưng đó là một dervative đỏ. Tôi cũng đang tự hỏi hệ thống quản lý gói của bạn là gì? Nó có thể giúp kiểm tra những repos mà bạn sử dụng - vì đây thường là nhà cung cấp được cung cấp và phân phối cụ thể




0

Dựa trên phiên bản kernel, tôi muốn nói đó là WBEL 4 . Họ đã được biết là chậm trễ một chút với các bản cập nhật của họ, vì vậy có lẽ tốt nhất là bạn nên chuyển sang CentOS một cách thuận tiện.


0

Chỉ cần đặt kết quả vào một var và viết thường

OS=`awk -F= '/DISTRIB_ID/ {print tolower($2)}' /etc/lsb-release`

0

Một bản cập nhật ở đây, bây giờ có thể sử dụng lsb_release -ds, vì vậy bạn có thể sử dụng nó như linuxDistro=$(lsb_release -ds)không cần phân tích thêm.


0

Các tiện ích neofetchscreenfetchcả hai đều hiển thị tên và phiên bản phân phối của bạn - và chúng bao gồm một số nghệ thuật ASCII đẹp. Chúng có thể không được cài đặt theo mặc định, tuy nhiên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.