Was macht linux-headers-`uname -r`?

7

Was macht der folgende Befehl?

sudo apt-get --reinstall install linux-headers-`uname -r`

sudoführt die Anweisung mit erhöhten Berechtigungen aus. apt-getist ein Befehl zum Abrufen eines bestimmten Pakets / Programms. Was macht der Rest der Schalter / Flags?

Ich versuche, die Treiber meines WLAN-Adapters auf die werkseitigen Standardeinstellungen zurückzusetzen.

Kulturanomolyse
quelle

Antworten:

16

--reinstall install::

Normalerweise ist dies geschrieben install --reinstall, aber beide funktionieren einwandfrei. Dies bedeutet lediglich, dass apt-getdie Pakete neu installiert werden müssen.

linux-headers-::

linux-headers-ist der Anfang eines Paketnamens. Wenn Sie ausführen dpkg -l | grep linux-headers-, sehen Sie eine vollständige Liste aller installierten Pakete, die damit beginnen:

Geben Sie hier die Bildbeschreibung ein

Header-Dateien stammen von der GNU-Site :

Eine Header-Datei ist eine Datei mit C-Deklarationen und Makrodefinitionen, die von mehreren Quelldateien gemeinsam genutzt werden sollen. Sie fordern die Verwendung einer Header-Datei in Ihrem Programm an, indem Sie diese in die C-Vorverarbeitungsanweisung '#include' aufnehmen.

Und wie Sie der Antwort von dpkg -l | grep linux-headers-entnehmen können, linux-headers-sind die Pakete, mit denen beginnen, die Header-Dateien für den Linux-Kernel.

`uname -r`::

Dies wird als Befehlssubstitution bezeichnet . (Der Link führt zur Seite faqs.org über die Funktionen zum Ersetzen von BASH-Befehlen.)

Dadurch wird der uname -rBefehl ausgeführt, der die aktuelle Kernelversion zurückgibt:

Geben Sie hier die Bildbeschreibung ein

und fügt dann das, was vom uname -rBefehl zurückgegeben wird, in den sudo apt-get --reinstall install linux-headers-`uname -r`Befehl ein.

Von der faqs.org-Seite:

Durch die Befehlsersetzung kann die Ausgabe eines Befehls den Befehl selbst ersetzen. Die Befehlsersetzung erfolgt, wenn ein Befehl wie folgt eingeschlossen ist:

$(command)

oder

`command`

Bash führt die Erweiterung durch, indem der Befehl ausgeführt und die Befehlsersetzung durch die Standardausgabe des Befehls ersetzt wird, wobei alle nachfolgenden Zeilenumbrüche gelöscht werden.

In diesem Unix / Linux-Q / A erfahren Sie auch, wie Sie BASH-Backticks verstehen .

Jetzt sehen Sie das nicht - Sie sehen nur die Ergebnisse. Wenn Sie den Befehl jedoch sehen würden, nachdem die uname -rAntwort in den Befehl eingegeben wurde, würde dies ungefähr so ​​aussehen (offensichtlich für Ihre aktuelle Kernel-Version ändern):

sudo apt-get --reinstall install linux-headers-3.16.0-31-generic


Vereinfachte Version:

Sie fordern apt-get auf, das Linux-Header-Paket für Ihre aktuelle Kernel-Version neu zu installieren.

RPiAwesomeness
quelle
golden, danke für das detail! würde +1 dies, wenn ich könnte ...
Culturalanomoly
@culturalanomoly Nun, bearbeite 1-2 Beiträge und akzeptiere diesen und du wirst genug Repräsentanten haben, um dies zu tun! ;) Willkommen bei Ask Ubuntu :)
RPiAwesomeness
1
Übrigens, was haben Sie verwendet, um die empfindlichen Teile des Bildes zu redigieren?
Kulturanomoly
1
@culturalanomoly Ich benutze Shutter . Es ist eine großartige Software, mit der Sie alle möglichen Screenshots machen können und die dann über einen integrierten Editor verfügt, mit dem Sie Dinge wie das Verwischen von Bits, das Zeichnen von Pfeilen, das Umkreisen von Dingen und das Hinzufügen von Text ausführen können. Es ist eine der nützlichsten Software, die ich installiert habe.
RPiAwesomeness