O que o linux-headers-'uname -r 'faz?

6

O que o comando a seguir faz?

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

sudo executa a instrução com privilégios elevados. apt-get é um comando para recuperar um pacote / programa específico. O que o resto dos switches / flags faz?

Estou tentando redefinir os drivers do meu adaptador sem fio para as configurações "padrão de fábrica".

    
por culturalanomoly 20.03.2015 / 02:37

1 resposta

16

--reinstall install :

Normalmente, isso é escrito install --reinstall , mas ambos funcionam bem. Isso simplesmente está dizendo apt-get para reinstalar o (s) pacote (s).

linux-headers- :

linux-headers- é o começo do nome do pacote. Se você executar dpkg -l | grep linux-headers- , poderá ver uma lista completa dos pacotes instalados que começam com isso:

Arquivos de cabeçalho são do site do GNU :

  

Um arquivo de cabeçalho é um arquivo contendo declarações e macro C   definições a serem compartilhadas entre vários arquivos de origem. Você solicita o   uso de um arquivo de cabeçalho em seu programa, incluindo-o, com o C   diretiva de pré-processamento "#include".

E, como você pode ver na resposta de dpkg -l | grep linux-headers- , os pacotes que começam com linux-headers- são os arquivos de cabeçalho para o kernel Linux.

'uname -r' :

Isso é conhecido como Substituição de Comando . (O link é para a página faqs.org sobre os recursos de substituição do comando BASH.)

Isso executa o comando uname -r , que retorna a versão atual do kernel:

e, em seguida, coloca o que é retornado do comando uname -r no comando sudo apt-get --reinstall install linux-headers-'uname -r' .

Da página do faqs.org:

  

A substituição de comandos permite a saída de um comando para substituir   comando em si. A substituição de comandos ocorre quando um comando é incluído   da seguinte forma:

$(command)
     

ou

'command'
     

Bash realiza a expansão executando o comando e substituindo o   substituição de comando com a saída padrão do comando, com qualquer   novas linhas finais eliminadas.

Veja também este Unix / Linux Q / A sobre entender os bastidores BASH .

Agora, você não vê isso acontecer - você acabou de ver os resultados. No entanto, se você fez ver o comando depois que a resposta uname -r foi colocada no comando, isso é algo parecido com (mudando para sua versão atual do kernel obviamente):

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

Versão simplificada:

Você está dizendo ao apt-get para reinstalar o pacote linux-headers para sua versão atual do kernel.

    
por RPi Awesomeness 20.03.2015 / 03:14

Tags