Como usar lshw no Linux (com um exemplo prático)
E se houvesse um comando que permitisse, em um formato de fácil leitura, ver todo o hardware em seu sistema Linux? Bem-vindo ao lshw, a ótima ferramenta frequentemente esquecida até mesmo por profissionais experientes em Linux.
O que é lshw?
lshw, um utilitário ou ferramenta melhor, instalado por padrão quando você instala o Linux, fornece uma lista do hardware encontrado em seu sistema. Pode-se lembrar de lshw pensando em ls (o comando que permite listar o conteúdo do diretório) e hw para hardware.
Embora a ferramenta tenha um bom número de opções de formatação, forneça resultados detalhados para os dispositivos que encontra e possa detectar um grande número de tipos de dispositivos, mesmo profissionais experientes em Linux podem não ter ouvido falar dela. Talvez outras ferramentas tenham sido muito postas em destaque nos mecanismos de pesquisa e similares.
Atualmente, a ferramenta pode detectar DMI (x86 e IA-64), árvore de dispositivos OpenFirmware (PowerPC), PCI / AGP, CPUID (x86), IDE / ATA / ATAPI, Dispositivos PCMCIA, SCSI e USB.
Você pode até instalar uma versão gráfica da mesma ferramenta usando um pacote separado, chamado lshw-gtk. Embora o lshw não precise ser instalado e seja incluído pelo Linux por padrão, se você estiver interessado em explorar seu hardware em uma GUI em vez de na linha de comando (na qual este artigo se concentrará), instale lshw-gtk:
Instalando lshw-gtk
Para instalar lshw-gtk em sua distribuição Linux baseada em Debian / Apt (como Ubuntu e Mint), execute o seguinte comando em seu terminal:
sudo apt install lshw-gtk
Publicidade
Para instalar lshw-gtk em sua distribuição Linux baseada em RedHat / Yum (como RHEL, Centos e Fedora), execute o seguinte comando em seu terminal:
sudo yum install lshw-gtk
Se você acabar instalando o lshw-gtk, observe que existem algumas peculiaridades com esta ferramenta que podem não ser esperadas. Para começar, é recomendável usar sudo lshw-gtk no prompt do terminal para iniciar o lshw-gtk, caso contrário, nem todas as informações de hardware podem estar disponíveis.
Em seguida, quando você iniciar a ferramenta, clique no botão Atualizar próximo ao topo, já que o lshw-gtk não verifica o hardware por padrão, mas apenas sob demanda.
Finalmente, quando seu hardware é verificado alguns segundos depois, a saída parece estar ausente, exceto por um único computador desktop na coluna mais à esquerda. Clique duas vezes aqui e, a seguir, clique duas vezes, por exemplo Placa-mãe na segunda coluna e assim por diante. Em minha própria experiência, descobri que esta ferramenta GUI em particular é, durante o trabalho, um pouco limitada.
Você sabe a diferença entre uma falha e um erro e uma declaração? Nosso artigo Asserts, Errors, and Crashes explica a diferença.
Explorando lshw no terminal Linux
Quando você executa lshw em seu Terminal Linux (que geralmente pode ser iniciado pressionando a tecla Windows + T no teclado, ou pressionando o ícone principal do sistema operacional (como o círculo verde no Linux Mint) e terminal de digitação), você verá uma saída longa e detalhada do hardware. lshw fez o que foi instruído a fazer; liste todo o hardware.
Publicidade
Vamos tornar este trabalho um pouco melhor, limitando a saída ao que estamos interessados. Em primeiro lugar, devemos explorar as classes de hardware de saída disponíveis para nós.
Podemos fazer isso com lshw -short, que ao mesmo tempo renderá uma visão geral mais curta e mais legível de nosso hardware. Ainda assim, a lista de saída pode ter de 1 a 2 páginas, dependendo das configurações do seu terminal.
Neste ponto, também devemos nos lembrar de sempre usar lshw com sudo. Isso garantirá que a saída não seja incompleta ou imprecisa. Executar lshw como sudo deve ser seguro (últimas palavras famosas!), Pois lshw é incluído por padrão nos arquivos de distribuição principais do sistema operacional Linux; seria de se esperar que tenha sido completamente avaliado.
sudo lshw -short | head -n6
Aqui solicitamos uma pequena lista de todo o hardware usando lshw -short, executado como superusuário root usando sudo e limitado às primeiras seis linhas de saída usando head -n6. Canalizamos a saída de lshw para o head usando um canal Linux | que é um método muito útil de pós-análise de informações processadas por uma ferramenta em quase qualquer outro formato necessário.
Executando isso no VirtualBox, vemos uma informação imediatamente interessante: lshw está ciente de que o sistema e o barramento são baseados no VirtualBox. Também vemos que 8 GiB de memória foram atribuídos a esta VM (máquina virtual).
Publicidade
Também importante, podemos ver a classe de dispositivos sendo listada, que é o que usaremos em nosso próximo exemplo de lshw. Os nomes das classes de dispositivos usados em lshw são diretos e fáceis de lembrar; há sistema, barramento, memória, ponte, genérico, multimídia, disco, entrada, volume, exibição, rede, processador e potencialmente alguns outros.
Usando uma classe de dispositivo para consultar com lshw
Agora que sabemos os nomes das classes de dispositivos, vamos usar o mesmo em combinação com a opção -class (que pode ser abreviada como -C) para consultar apenas dispositivos específicos nos quais estamos interessados. Por exemplo, e se tivemos uma maneira fácil de detectar se o sistema que estávamos usando é uma máquina virtualizada rodando especificamente no VirtualBox?
sudo lshw -short -C sistema sudo lshw -short -C sistema 2 > / dev / null | grep -o 'VirtualBox' if ["$ (sudo lshw -short -C sistema 2 > / dev / null | grep -o 'VirtualBox')" == 'VirtualBox']; em seguida, echo 'Estamos usando o VirtualBox!'; else echo 'Esta não é uma VM VirtualBox!'; fi
Aqui, executamos vários comandos, cada vez tornando o comando mais complexo. No primeiro comando, simplesmente consultamos lshw da mesma maneira que antes, embora desta vez com a opção de sistema extra -C para listar apenas os dispositivos da classe de sistema.
Após escanear brevemente (não mostrado na captura de tela, pois a saída desaparece assim que o escaneamento é concluído), os dispositivos de classe do sistema são mostrados, que neste caso é o sistema VirtualBox.
No próximo comando, fazemos grep (selecionamos) apenas (graças à opção -o) a palavra & # 8216; VirtualBox ’. Se a saída não contiver & # 8216; VirtualBox ’, o comando não produzirá nenhuma saída.
Também adicionamos um redirecionamento stderr (saída de erro padrão) para / dev / null usando 2 > / dev / null para o caso ímpar em que sudo lshw renderizaria um erro. Esta é uma técnica de script comumente usada ao canalizar informações de um comando para outro, embora talvez aqui haja pouca possibilidade de um erro se apresentar (mas não impossível).
Publicidade
No comando final, inserimos este código em um subshell ($ (...)) e, em seguida, em uma instrução if. Basicamente, estamos pedindo ao intérprete Bash para verificar se a saída do segundo comando corresponde a & # 8216; VirtualBox ’.
Nesse caso, podemos dizer com segurança: Estamos usando o VirtualBox !. Se você executar este código em sua máquina, presumindo que está usando o Bash, como interpretador / shell de linha de comando, e que não está usando o VirtualBox, a saída deve ser Esta não é uma VM VirtualBox! em vez disso.
Concluindo
Neste artigo, exploramos lshw e lshw-gtk, as ferramentas do Linux para obter informações detalhadas de hardware e sistema a partir da linha de comando e de uma GUI em sua área de trabalho. Depois de explorar as classes de dispositivos lshw, também examinamos diretamente o uso de informações lshw para estabelecer se estamos executando dentro do VirtualBox ou não.
Se você gostou de ler este artigo, talvez queira ler a seguir Como usar o strace para rastrear chamadas e sinais do sistema!
Nenhum comentário