コマンドラインでディストリビューションの名前にアクセスするにはどうすればよいですか?


12

プレイしているディストリビューションはたくさんあります。SDカードにラベルを付けますが、次のことを行います。

  1. 彼らは逆さまにあります
  2. 私は通常、RPiとは別の部屋にいます

init.dでサービスを設定し、Piがシャットダウンまたは起動したときにプッシュオーバー経由で通知します(curl経由でAPIを使用)。

これには、現在使用しているディストリビューションを含めたいと思います。

私は最新のブートで見ることができます(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のことをどのようにまとめたのか、指摘できますか?あなたがそれに答えるかどうか質問します:)
ズラトコ

@zladuric pushover.netでアカウントにサインアップします。curl APIは非常に簡単です。init.dに「サービス」として単純なスクリプトを設定し、開始/停止時に異なる通知を送信するだけです。技術的には、開始停止通知なので、「開始」を取得した場合は通知を送信します。実際には、起動とシャットダウンを除き、何も起動または停止しません。完全なコードが必要な場合は、先に進んで質問を投稿してください。
ケードルー

ここに質問があります:raspberrypi.stackexchange.com/questions/1531/… :)
Zlatko

回答:



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が、これはカーネルバージョンのみを表示します。いくつかの異なるディストリビューション/カードで同じカーネルバージョンを使用している場合(いくつかのディストリビューション/カードが同じファウンデーションカーネルを使用している可能性が高いため)、それぞれについて同じ結果が得られます。したがって、ディストリビューションを区別する最良の方法は、カーネル以外のものを使用することです。ただし、普遍的な方法はありません。1つの簡単な方法は、ホスト名を使用することです(ディストリビューションごとにホスト名を変更します)。

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

または

ホスト名&& uname -a


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

ホスト名&& uname -a(ホスト名が動作していると仮定-現時点ではpiが起動してチェックされていない)
クリスストラットン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.