Jak znaleźć szczegółowe informacje na temat sprzętu na komputerze z systemem Linux?

40

-ie - jak uzyskać pełną listę komponentów sprzętowych w wierszu poleceń (na komputerze bez systemu okien)

Dziękuję Ci.

Jewgienij
źródło

Odpowiedzi:

41

lspcidla kart PCI, lsusbdla USB, lshwdziała na dystrybucjach opartych na Debianie, oto lista sposobów uzyskania innych specyfikacji sprzętowych ,

Keith
źródło
dzięki za link. Przyznaję, że mogłem google, ale Google to bałagan.
Evgeny
37

Jeśli jest dostępny, dmidecodejest przydatny. Szczególnie na sprzęcie Dell, HP, IBM, gdzie zadają sobie trud zaprogramowania odpowiednich informacji o sprzęcie w różnych rejestrach.

Chad Huneycutt
źródło
7
dmidecode jest fajny. Pewnego dnia, gdy używałem go do przeglądania szczegółów pamięci, zdałem sobie sprawę, że możesz również znaleźć znacznik serwisowy Dell: dmidecode | grep -i serial | egrep -o '[0-9A-Z] {7} $' | głowa -n1
Kyle Brandt
1
Uzgodnione, możesz uruchomić dmidecode i po prostu grep dla potrzebnych informacji.
barfoon,
1
Działa również świetnie na sprzęcie Apple.
Matt3o12
30

lspcijest doskonałym narzędziem do wyświetlania listy elementów systemu. (W każdym razie wszystko na magistrali PCI.)

cat /proc/cpuinfo - Wyświetla informacje o procesorze

cat /proc/meminfo - Wyświetla informacje o pamięci

dmesg(lub cat /var/log/dmesg) zawiera pewne informacje, niekoniecznie wszystko.

Jeśli masz system RedHat / CentOS, możesz użyć go sosreportdo zebrania dużej ilości informacji, chociaż nie wiem, czy zawiera wszystkie informacje o sprzęcie.

To są dobre miejsca, aby zacząć szukać informacji, których szukasz.

baumgart
źródło
3

System plików / proc dostarczy ci potrzebnych informacji ... ALE nie wiem jak je zdobyć to jedno łatwe miejsce.

„cat / proc / cpuinfo” powie ci o twoim CPU „cat / proc / devices” powie ci pewne ograniczone informacje o urządzeniach blokowych. „ifconfig -a” powie ci o połączeniach sieciowych

Inni będą mogli powiedzieć ci o większej liczbie urządzeń. Czy rozwiązujesz problem z konkretnym urządzeniem? Jeśli tak, uzyskasz lepszą pomoc w zadaniu konkretnego pytania.

Michael Shaw
źródło
dziękuję nie, staram się przenosić z hosta na hosta i chciałbym zobaczyć, jaka jest różnica w sprzęcie w ogóle - aby sprawdzić, czy mogę przejść przez ponowne obrazowanie.
Evgeny
1
Tak długo, jak działają początkowe części rozruchu, większość dystrybucji wykryje zmiany sprzętowe i dostosuje się. Jeśli masz problemy z częścią rozruchową, zainstaluj tę samą dystrybucję podczas przenoszenia na nowy sprzęt, zaktualizuj ją do tego samego jądra podczas przenoszenia, a następnie skopiuj plik mkintrd do systemu plików obrazu, co powinno rozwiązać problemy z uruchomieniem . Jeśli to naprawdę pójdzie nie tak, nadal masz wszystkie dane na starym komputerze.
Michael Shaw,
Jeśli masz już Linuksa na drugim komputerze i działa, zakładając, że jądro jest kompilacją ogólną i tak samo niedawno, załaduje wszystkie moduły (moduły są trochę analogiczne do sterowników Windows), których potrzebuje. Instalacje Linuksa tak naprawdę nie są specyficzne dla sprzętu.
Kyle Brandt
Plik /boot/initrd-2.6.*.img nie jest tak ogólny. Jest używany przez jądro, gdy przejdzie kontrolę przez grub. Musi mieć wszystkie ustawienia i moduły, aby załadować główny system plików. Ten plik jest generycznie uruchamiany z mkinitrd, jednak musisz najpierw uruchomić system ...
Michael Shaw
2

inxi pokaże prawie wszystko, uruchom bez żadnych argumentów dla skróconej formy, opcje są jednak liczne, uruchom inxi -h, aby je zobaczyć

inxito „w pełni funkcjonalny skrypt informacyjny” zgodnie z opisem na stronie głównej projektu: https://github.com/smxi/inxi

Oto informacje o tym, jak zainstalować go na Ubuntu: https://askubuntu.com/questions/284635/inxi-installation-on-ubuntu

hackinjack
źródło
Inxi to stosunkowo nowe narzędzie, którego nie znajdziesz w większości dystrybucji. Powinieneś dodać więcej informacji i linki.
itsbruce
1

Podsumowując, powiedziałbym, że tutaj jest dobry początek, aby uzyskać informacje o twoim systemie:

  1. dmesg - wydrukuj lub kontroluj bufor pierścieniowy jądra
  2. lspci - wyświetla listę wszystkich urządzeń PCI
  3. lsusb - wyświetla listę urządzeń USB
  4. / proc - pseudo-plikowy system informacji o procesie
Alexus
źródło
1

Bardzo lubię używać „ Facter ”. Daje ładną listę bardzo przydatnych informacji.

Sc0rian
źródło
0
# tree -d /sys/devices
Wojciech Domalewski
źródło
0

Najłatwiej jest wpisać „ dmesg | more ” w wierszu poleceń, co pozwala zobaczyć wszystkie dane wyjściowe rozruchu, które występują podczas ostatniego uruchomienia systemu.

djangofan
źródło
0

W przypadku dysków twardych używam niestandardowego skryptu, który łączy w jedną listę dane wyjściowe:

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
mivk
źródło
0

poniżej kodu możesz skopiować używając vi

#!/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
Rajat
źródło
Musisz zrobić to wszystko w bloku kodu, aby nie wyglądał na uszkodzony.
Bill Weiss,
Dzięki Bill, przepraszam, zadaję ci takie pytania, jak to zrobić, proszę, pozwól mi następnym razem, gdy to zrobię, proszę zignoruj ​​mój angielski
Rajat
-1

Bardzo stary post, ale zauważyłem, że lshww odpowiedziach brakuje doskonałości .

Janne Pikkarainen
źródło
Masz na myśli, oprócz tego, że wymieniono Cię w najwyższej głosowanej odpowiedzi?
Mark Booth