如何在命令行上访问发行版的名称?


12

我有很多发行版正在玩。我标记了SD卡,但是:

  1. 他们颠倒了
  2. 我通常在RPi的另一个房间

我在init.d中设置了一个服务,当我的Pi关闭或启动时(通过curl使用API​​),我可以通过Pushover通知我。

我想要包括当前使用的发行版。

我可以在最新的启动程序中看到(与adafruit Raspbian一起玩):

Linux raspberrypi 3.1.9adafruit+ #8 PREEMPT Wed Aug 1 18:02:42 EDT 2012 armv6l

如何获取该信息以将其包含在脚本中?

我安装了lsb-release,但这只给了我这个:

pi@raspberrypi / $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux testing/unstable
Release:    testing/unstable
Codename:   n/a

看起来和我的常规Raspbian一样。

另外,我可能想对SD卡上的特定实例进行一些说明(因为我可能会拥有多个相同的基本发行版)。显然,我可以将文件放在每个SD卡上的相同位置,但是是否存在将此类信息放置在何处的约定?


哇酷。您能指出如何将pushover / init.d放在一起吗?我会问一个问题,您是否会回答:)
Zlatko

@zladuric在pushover.net上注册一个帐户。curl API非常简单。我在init.d中设置了一个简单的脚本作为“服务”,它只是在启动/停止时发送不同的通知。从技术上讲,这是一个开始停止通知,因此,如果它得到“开始”,它将发送一个通知。实际上,除了启动和关闭外,没有其他东西可以启动或停止它们。如果您需要完整的代码,请继续并提出问题。
卡德·鲁

Answers:


8
$ uname -a
Linux raspberrypi 3.1.9+ #174 PREEMPT Sun Jul 22 19:04:28 BST 2012 armv6l GNU/Linux

7

尝试

cat /etc/*-release

在我的桌面上,

NAME="Arch Linux"
ID=arch
PRETTY_NAME="Arch Linux"
ANSI_COLOR="0;36"
HOME_URL="https://www.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"

检查了正式的Raspberry Pi映像(Raspbian和Arch)后,/etc/os-release两者均可用,并且至少包含NAME和PRETTY_NAME属性。

如何提取发行版的名称?

那很简单,尝试

$ cat /etc/os-release | perl -n -e '/^NAME=\"([a-zA-Z ]*)\"$/ && print "$1\n"'
Arch Linux

参考文献

  1. 如何:找出我的Linux发行版本名称和版本

看起来不错。最终,这是否真正通用并不重要,只要它适用于所讨论的发行版即可。如果尝试使用默认情况下不带文件的文件,那么将自己的文件放在文件系统中很容易。
克里斯·斯特拉顿

4

如前所述,您可以使用uname,但这只会显示内核版本。如果您在几个不同的发行版/卡上具有相同的内核版本(这很可能是因为它们中的几个正在使用相同的基础内核),则对于每个发行版/卡,您将获得相同的结果。因此,区分发行版的最佳方法是使用内核以外的东西。但是,没有通用的方法。一种简单的方法是使用主机名(并为每个发行版更改它)。

cat / proc / version / proc / sys / kernel / hostname

要么

主机名&& uname -a


cat / proc / version / proc / sys / kernel / hostname
Krzysztof Adamski 2012年

主机名&& uname -a(假设主机名有效-pi目前无法启动检查)
克里斯·斯特拉顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.