linux-headers-`uname -r` 起什么作用?

linux-headers-`uname -r` 起什么作用?

以下命令起什么作用?

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

sudo使用提升的权限执行语句。apt-get是检索特定包/程序的命令。其余开关/标志的作用是什么?

我正在尝试将无线适配器的驱动程序重置为“出厂默认”设置。

答案1

--reinstall install

通常情况下,写成这样install --reinstall,但两种写法都很好。这只是告诉apt-get重新安装包。

linux-headers-

linux-headers-是软件包名称的开头。如果您运行,dpkg -l | grep linux-headers-您可以看到已安装的所有软件包的完整列表,这些软件包以该名称开头:

在此处输入图片描述

头文件来自GNU 站点

头文件是包含 C 声明和宏定义的文件,可在多个源文件之间共享。您可以使用 C 预处理指令“#include”在程序中包含头文件,从而请求使用头文件。

并且,正如您从的响应中看到的dpkg -l | grep linux-headers-,以 开头的软件包linux-headers-是 Linux 内核的头文件。

`uname -r`

这就是所谓的命令替换(该链接指向 faqs.org 上有关 BASH 命令替换功能的页面。)

这将运行uname -r命令,返回当前内核版本:

在此处输入图片描述

然后将uname -r命令返回的内容放入命令中sudo apt-get --reinstall install linux-headers-`uname -r`

来自 faqs.org 页面:

命令替换允许命令的输出替换命令本身。当命令以下列方式括起来时,就会发生命令替换:

$(command)

或者

`command`

Bash 通过执行命令并用命令的标准输出替换命令替换来执行扩展,并删除所有尾随的换行符。

另请参阅这个 Unix/Linux 问答关于理解 BASH 反引号

现在,你看不到这种情况发生——你只看到结果。然而,如果你做过uname -r查看将响应放入命令后的命令,它看起来有点像这样(显然会根据您当前的内核版本而变化):

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


简化版本:

您正在告诉 apt-get 重新安装适合您当前内核版本的 linux-headers 包。

相关内容