Linux makinedeki donanım hakkında ayrıntılı bilgi nasıl bulunur?


40

-ie - Komut satırında donanım bileşenlerinin tam listesini nasıl elde edersiniz (pencere sistemi olmayan bir makinede)

Teşekkür ederim.

Yanıtlar:


41

lspcipci kartları için, lsusbusb için, lshwburada, debian tabanlı dağıtımlar çalışır almak için yollar bir listesi diğer donanım özelliklerini ,


bağlantı için teşekkürler. Googled olabileceğimi itiraf ediyorum, ancak google karışık bir adam.
Evgeny

37

Mümkünse, dmidecodekullanışlı gelir. Özellikle Dell, HP, IBM donanımlarında, ilgili donanım bilgilerini çeşitli kayıtlara programlamak için uğraştıkları yerde.


7
dmidecode güzel. Hafıza detaylarına bakmak için kullandığım bir gün Dell servis etiketini de öğrenebileceğinizi anladım: dmidecode | grep -i seri | egrep -o '[0-9A-Z] {7} $' | head -n1
Kyle Brandt,

1
Anlaştıktan sonra, dmidecode komutunu çalıştırabilir ve istediğiniz bilgiyi elde edebilirsiniz.
barfoon

1
Ayrıca elma donanımı üzerinde de harika çalışıyor.
Matt3o12

30

lspcisistem donanımını listelemek için harika bir yardımcı programdır. (Yine de PCI veri yolu üzerindeki herhangi bir şey.)

cat /proc/cpuinfo - CPU bilgisini görüntüler

cat /proc/meminfo - Hafıza bilgilerini görüntüler

dmesg(veya cat /var/log/dmesg) mutlaka her şeyi değil, bazı bilgileri içerir.

RedHat / CentOS sisteminiz varsa, sosreportiçinde listelenen tüm donanım bilgilerinin olup olmadığını bilmeme rağmen, iyi miktarda bilgi toplamak için kullanabilirsiniz .

Bunlar aradığınız bilgiyi bulmaya başlamak için iyi yerlerdir.


3

/ Proc dosya sistemi size istediğiniz bilgiyi verecek ... AMA onu nasıl alacağınızı bilmiyorum kolay bir yer.

'cat / proc / cpuinfo' CPU'nuz hakkında bilgi verecektir 'cat / proc / devices' size blok cihazlar hakkında sınırlı bilgi verecektir. 'ifconfig -a' size ağ bağlantılarını anlatır

Diğerleri size daha fazla cihaz hakkında bilgi verebilir. Belirli bir cihazla ilgili sorun giderme mi yapıyorsunuz? Öyleyse, belirli bir soru sormada daha iyi yardım alırsınız.


teşekkürler hayır, ana bilgisayardan ana bilgisayara geçmeye çalışıyorum ve genel olarak donanımdaki farkın ne olduğunu görmek istiyorum - yeniden görüntüleyerek hareket edip edemeyeceğimi görmek için.
Evgeny

1
Bagajın ilk parçaları çalıştığı sürece, çoğu dağıtım yalnızca donanım değişikliklerini algılar ve uyarlar. Önyükleme parçasıyla ilgili sorunlarınız varsa, yeni donanıma taşıdığınız aynı dağıtımı yükleyin, taşıdığınızla aynı çekirdeğe güncelleyin ve ardından mkintrd dosyasını görüntü dosya sistemine kopyalayın; . Gerçekten yanlış giderse, eski makinede hala tüm verileriniz var.
Michael Shaw

Zaten ikinci makinede Linux kullanıyorsanız ve çalışıyorsa, Çekirdeğin genel bir yapı olduğunu varsayar ve en yakın zamanda, ihtiyaç duyduğu tüm modülleri yükler (modüller Windows Sürücülerine benzerdir). Linux kurulumları bu şekilde gerçekten donanıma özgü değildir.
Kyle Brandt

/Boot/initrd-2.6.*.img dosyası oldukça genel değil. Grub tarafından kontrol edildiğinde çekirdek tarafından kullanılır. Kök dosya sisteminizi yüklemek için tüm ayarlara ve modüllere sahip olması gerekir. Bu dosya genel bir şekilde yapılmış ve mkinitrd çalıştırıyor, ancak önce sistemi açmış olmanız gerekiyor ...
Michael Shaw

2

inxi hemen hemen herşeyi gösterecek, kısa form için hiçbir argüman olmadan koşacak, seçenekler çoktur, fakat onları görmek için inxi -h komutunu çalıştırın.

inxiProje ana sayfasında açıklandığı şekilde 'tam özellikli bir bilgi betiğidir': https://github.com/smxi/inxi

İşte Ubuntu’ya nasıl kuracağınız hakkında bilgiler: https://askubuntu.com/questions/284635/inxi-installation-on-ubuntu


Inxi nispeten yeni bir araçtır ve çoğu dağıtımda bulamayacağınız bir araç değildir. Biraz daha bilgi ve link eklemelisin.
12'de

1

Özetlemek gerekirse, burada sisteminiz hakkında bilgi edinmenin iyi bir başlangıç ​​olduğunu söyleyebilirim:

  1. dmesg - çekirdek halkası tamponunu yazdırın veya kontrol edin
  2. lspci - tüm PCI aygıtlarını listeler
  3. lsusb - USB cihazlarını listeler
  4. / proc - işlem bilgi sözde dosya sistemi




0

En kolay şey, komut satırına " dmesg | more " yazıp son sistem başlangıcında gerçekleşen tüm önyükleme çıktılarını görmenizi sağlar.


0

Sabit diskler için, çıktılarını tek bir listede toplayan özel bir komut dosyası kullanıyorum:

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

Aşağıdaki kod u kullanarak vi kopyalayabilirsiniz

#!/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

Bütün bunları bir kod bloğunda yapmalısınız, böylece hasar görmemelidir.
Bill Weiss,

Teşekkürler Bill üzgünüm u böyle sorular sormak nasıl yapacağım ben pls bir dahaki sefere ben izin lütfen pls İngilizce görmezden
Rajat

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.