以下命令起什么作用?
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 包。