Wie finde ich Details zur Hardware auf dem Linux-Computer heraus?


40

-ie - Wie erhalte ich eine vollständige Liste der Hardwarekomponenten in der Befehlszeile (auf einem Computer ohne Fenstersystem)?

Danke.

Antworten:



37

Wenn verfügbar, ist es dmidecodepraktisch. Insbesondere bei Dell-, HP- und IBM-Hardware, bei der sie sich die Mühe machen, relevante Hardwareinformationen in die verschiedenen Register zu programmieren.


7
dmidecode ist nett. Eines Tages, als ich damit Speicherdetails untersuchte, wurde mir klar, dass Sie auch die Dell-Service-Tag-Nummer herausfinden konnten: dmidecode | grep -i serial | egrep -o '[0-9A-Z] {7} $' | head -n1
Kyle Brandt

1
Einverstanden, Sie können dmidecode ausführen und einfach nach den gewünschten Informationen suchen.
Barfoon

1
Funktioniert auch hervorragend auf Apple Hardware.
Matt3o12

30

lspciist ein großartiges Dienstprogramm zum Auflisten der Systemhardware. (Jedenfalls alles auf dem PCI-Bus.)

cat /proc/cpuinfo - Zeigt CPU-Informationen an

cat /proc/meminfo - Zeigt Speicherinformationen an

dmesg(oder cat /var/log/dmesg) enthält einige Informationen, nicht unbedingt alles.

Wenn Sie ein RedHat / CentOS-System haben, können Sie sosreportein gutes Stück Informationen sammeln, obwohl ich nicht weiß, ob alle Hardwareinformationen darin aufgeführt sind.

Dies sind einige gute Orte, um die gesuchten Informationen zu finden.


3

Das / proc-Dateisystem gibt Ihnen die Informationen, die Sie wollen ... ABER ich weiß nicht, wie Sie es bekommen, ist ein einfacher Ort.

'cat / proc / cpuinfo' informiert Sie über Ihre CPU. 'cat / proc / devices' informiert Sie über eingeschränkte Informationen zu Blockgeräten. 'ifconfig -a' informiert Sie über Netzwerkverbindungen

Andere können Sie über weitere Geräte informieren. Beheben Sie ein bestimmtes Gerät? In diesem Fall erhalten Sie bessere Hilfe bei der Beantwortung einer bestimmten Frage.


danke nein, ich versuche, von Host zu Host zu wechseln und möchte sehen, was der Unterschied in der Hardware im Allgemeinen ist - um zu sehen, ob ich mich durch erneutes Imaging bewegen kann.
Evgeny

1
Solange die ersten Teile des Bootvorgangs ausgeführt werden, erkennen die meisten Distributionen lediglich die Änderungen an der Hardware und passen sie an. Wenn Sie Probleme mit dem Boot-Teil haben, installieren Sie die gleiche Distribution wie beim Umzug auf die neue Hardware, aktualisieren Sie sie auf den gleichen Kernel wie beim Umzug und kopieren Sie dann die Datei mkintrd auf das Image-Dateisystem. Damit sollten Sie Ihre Boot-Probleme lösen . Wenn es wirklich schief geht, haben Sie immer noch alle Ihre Daten auf dem alten Computer.
Michael Shaw

Wenn Sie bereits Linux auf dem zweiten Computer haben und es funktioniert, wird davon ausgegangen, dass der Kernel ein generischer Build ist und genau wie in letzter Zeit alle benötigten Module lädt (Module sind analog zu Windows-Treibern). Linux-Installationen sind in dieser Hinsicht nicht wirklich hardwarespezifisch.
Kyle Brandt

Die Datei /boot/initrd-2.6.*.img ist nicht ganz so allgemein. Es wird vom Kernel verwendet, wenn die Kontrolle durch Grub übergeben wurde. Es muss über alle Einstellungen und Module verfügen, um Ihr Root-Dateisystem zu laden. Diese Datei wird auf eine generische Weise erstellt, indem mkinitrd ausgeführt wird. Sie müssen jedoch zuerst das System gebootet haben ...
Michael Shaw

2

inxi zeigt so gut wie alles an, es werden keine Argumente für die Kurzform verwendet, es gibt jedoch viele Optionen. Führen Sie inxi -h aus, um sie anzuzeigen

inxiist ein Informationsskript mit allen Funktionen, wie auf der Projekthomepage beschrieben: https://github.com/smxi/inxi

Hier finden Sie Informationen, wie Sie es unter Ubuntu installieren können: https://askubuntu.com/questions/284635/inxi-installation-on-ubuntu


Inxi ist ein relativ neues Tool, das es in den meisten Distributionen nicht gibt. Sie sollten weitere Informationen und Links hinzufügen.
itsbruce

1

Zusammenfassend würde ich sagen, dass hier ein guter Anfang ist, um Informationen über Ihr System zu erhalten:

  1. dmesg - druckt oder steuert den Kernel-Ringpuffer
  2. lspci - listet alle PCI-Geräte auf
  3. lsusb - Liste der USB-Geräte
  4. / proc - Pseudodateisystem für die Verarbeitung von Informationen


1

Ich benutze sehr gerne " Facter ". Gibt eine schöne Liste mit sehr nützlichen Informationen.



0

Am einfachsten ist es, " dmesg | more " in die Befehlszeile einzugeben , damit Sie alle Startausgaben sehen können, die während des letzten Systemstarts aufgetreten sind.


0

Für Festplatten verwende ich ein benutzerdefiniertes Skript, das die folgenden Ausgaben in einer Liste zusammenfasst:

cat /proc/partitions
cat /proc/mounts

parted -m /dev/sdX unit MB print # need to be root for parted
# or
parted -m -l unit MB print

blkid /dev/sdXN

0

Der folgende Code kann mit vi kopiert werden

#!/bin/bash

a=1; c=0
a=1; c=0
# Gather system information, can e.g. be sent to | mail in a cronjob
f_() { while read l; do echo $l; done < $f ; }
#
f_() { while read l; do echo $l; done < $f ; }
# TODO
# ----
# * Netstat output
# * Memory/swap information
# * ifconfig information
# * Make output dependent on argv
# * md5sum checks                               (done)
# * Keep previeous values and compare
# * How to
# * chmod a+x sysinfo.sh
# * ./sysinfo.sh
####################### DO NOT EDIT UNDER THIS LINE ###########################

siheader() {
        echo "================================================================"
        echo -e "* System statistics for: \t`hostname`.`dnsdomainname`"
        echo -e "* Generated on: \t\t`date`"
        echo -e "* Running as: \t\t\t`whoami`"
        echo
}

fuptime() {
        upSeconds=$(cat /proc/uptime | tr "." " " | awk '{print $1}')
        secs=$((${upSeconds}%60))
        mins=$((${upSeconds}/60%60))
        hours=$((${upSeconds}/3600/24))
        days=$((${upSeconds}/86400))
        if [ "${days}" -ne "0" ]
        then
                echo -n "${days} days, "
        fi
        echo "`printf '%02d' ${hours}`:`printf '%02d' ${mins}`:`printf '%02d' ${secs}`"
}

siuptime() {
        echo "=================== Uptime ====================================="
        echo -e "* Uptime: \t\t\t`fuptime`"
        if [ -x /usr/bin/uprecords ];
        then
                echo -e "* High score: \t\t\t`uprecords | tail -n1 | cut -d'|' -f1 | cut -d'n' -f3 | sed 's/^[[:blank:]]*//'`"
        fi
        echo -e "* Load average: \t\t`cat /proc/loadavg | head -c14`"
        echo
}

fw () {
        OFS=${IFS}
        IFS=$'\n'
        CNT=$(echo `w | wc -l`-1 | bc)

        w | tail -n ${CNT} | while read -r a;
        do
                echo -e "\t${a}"
        done

        IFS=${OFS}
}

siusers() {
        echo "=================== Users ======================================"
        echo -e "* Active users: \t\t`who | wc -l`"
        echo "* User information"
        fw
        echo
}

fpstree() {
        OFS=${IFS}
        IFS=$'\n'
        pstree | while read -r a;
        do
                echo -e "\t${a}"
        done
        IFS=${OFS}
}

fcomms() {
        ps -eo comm | sort | uniq | grep -v ^COMMAND | column
        echo

        IFS=${OFS}
}

fprocs() {
        echo `TERM=Linux top -n1 -b | grep "Tasks" | awk '{print $4,$6,$8,$10}'`
        echo -e "==================================Tasks process and memory utilization=============================\n"
    echo "`top -n1 -b`"
}


sitasks() {
        echo "=================== Tasks ======================================"
        echo -e "* Number of running tasks: \t$(echo `ps ax | wc -l` - 1 | bc)"
        #This screws up the email
        #echo "* PS Tree:"
        #fpstree
        echo "* Running programs:"
        fcomms
        echo -e "* CPU load: \t\t\t`TERM=linux top -n2 -b | grep 'Cpu' | tail -n1 | awk '{print $2+$4+$6}'`%"
        PROCS=`fprocs`
        echo "* Process state:"
        echo -e "\tRunning: \t\t`echo ${PROCS} | awk '{print $1}'`"
        echo -e "\tSleeping: \t\t`echo ${PROCS} | awk '{print $2}'`"
        echo -e "\tZombie: \t\t`echo ${PROCS} | awk '{print $3}'`"
        echo -e "\tStopped: \t\t`echo ${PROCS} | awk '{print $4}'`"
        echo
}

froute() {
        OFS=${IFS}
        IFS=$'\n'

        CNT=$(echo `/sbin/route | wc -l` - 1 | bc)
        /sbin/route | tail -n ${CNT} | while read -r a;
        do
                echo -e "\t${a}"
        done

        IFS=${OFS}
}

sinetwork() {
        echo "=================== Networking ================================"
        echo "* Routing table:"
        froute
        echo
}

simemory() {
        echo "=================== Memory ===================================="
        RAMTOTAL=`echo $(($(cat /proc/meminfo | grep MemTotal | awk '{print $2}')/1024))`
        echo "* Ram:\t\t\t free of ${RAMTOTAL}Mb"
}

sidiskstats() {
        echo "=================== Hard Disc ================================="
        echo "* Disk Information:"
        OFS=${IFS}
        IFS=$'\n'
        df -h | grep -v ^none | while read -r a;
        do
                echo -e "\t${a}"
        done
        IFS=${OFS}
        echo
        echo "* Mounts:"
        OFS=${IFS}
        IFS=$'\n'
        mount | while read -r a;
        do
                echo -e "\t${a}"
        done
        IFS=${OFS}
        echo
}

simd5() {
        if [ ! -e md5sums.lst ];
        then
                return
        fi

        echo "=================== MD5Sum Check =============================="

        OFS=${IFS}
        IFS=$'\n'

        echo "* Checking MD5 Sums"

        cat md5sums.lst | grep "^/" | while read -r a;
        do
                F=`echo ${a} | cut -d':' -f1`
                S=`echo ${a} | cut -d':' -f2`
                S2=`md5sum ${F} | cut -d' ' -f1`
                echo -n -e "\t${F}: \t\t\t\t"
                if [ "${S}" = "${S2}" ];
                then
                        echo "[OK]"
                else
                        echo "[INVALID]"
                fi                        
        done

        IFS=${OFS}
        echo
}


##For finding CPU model, cores and 
cpuinfo() {
    echo "=================== CPU Details for Xen =============================="
    echo -e "CPU Details: \n`cat /proc/cpuinfo | sed -n '1,/^$/p'`"
    echo -e "No of Cores: \n`cat /proc/cpuinfo | grep processor | wc -l`"
    if [ "egrep '(vmx|svm)' /proc/cpuinfo >/dev/null 2>/dev/null" ];
    then
        echo -e "\n===============================================================\nServer supports Full-virtualization"
    else
        echo -e "\n===============================================================\nEither server does not support Full-virtualization or it is turned off in BIOS"
    fi

    if [ "egrep 'pae' /proc/cpuinfo >/dev/null 2>/dev/null" ];
    then
        echo -e "\n===============================================================\nServer supports Para-virtualization"
    else
        echo -e "\n===============================================================\nServer does not support Para-virtualization"
    fi
}

##For disk info
diskinfo() {
        echo "=================== Disk usage =============================="
        echo -e "Disk Usage details: \n`df -h`"
}   
##Distro info
distroinfo() {
        echo "=================== Distro Info =============================="
        echo -e "Distro details: \n`lsb_release -a`"
        echo -e "Kernel details: \n`uname -a`"
}   

##Distro info
deviceinfo() {
        echo "=================== Device Info =============================="
        echo -e "Device details: \n`lspci -v`"
        echo -e "Kernel details: \n`uname -a`"
}   
summary() {
        siheader
        siuptime
        siusers
        sitasks
        sinetwork

        simemory
        sidiskstats
    fprocs
        simd5
    deviceinfo
    cpuinfo
    distroinfo
        echo "==============================================================="
        echo "* Brought to you by Taashee- http://www.taashee.com"
}

summary

Sie müssen das alles in einem Codeblock machen, damit es nicht beschädigt aussieht.
Bill Weiss

Vielen Dank, Bill, entschuldige, dass du solche Fragen hast. Wie mache ich das? Lass es mich beim nächsten Mal tun. Ignoriere mein Englisch
Rajat

-1

Ein sehr alter Beitrag, aber mir ist aufgefallen, dass das Hervorragende lshwin den Antworten fehlt.


Du meinst, abgesehen davon, dass sie in der am höchsten bewerteten Antwort erwähnt werden?
Mark Booth
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.