AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 48642
Accepted
Evgeny
Evgeny
Asked: 2009-08-01 10:18:48 +0800 CST2009-08-01 10:18:48 +0800 CST 2009-08-01 10:18:48 +0800 CST

如何在 Linux 机器上找到有关硬件的详细信息?

  • 772

-ie - 如何在命令行中获取硬件组件的完整列表(在没有窗口系统的机器上)

谢谢你。

hardware linux centos
  • 13 13 个回答
  • 264689 Views

13 个回答

  • Voted
  1. Best Answer
    Keith
    2009-08-01T10:22:54+08:002009-08-01T10:22:54+08:00

    lspci对于 pci 卡,lsusb对于 USB,lshw适用于基于 debian 的发行版,这是获取其他硬件规格的方法列表,

    • 43
  2. Chad Huneycutt
    2009-08-01T10:27:44+08:002009-08-01T10:27:44+08:00

    如果有的话,dmidecode就派上用场了。特别是在戴尔、惠普、IBM 硬件上,他们费心将相关硬件信息编程到各种寄存器中。

    • 38
  3. baumgart
    2009-08-01T10:27:22+08:002009-08-01T10:27:22+08:00

    lspci是列出系统硬件的一个很好的实用程序。(无论如何,PCI 总线上的任何东西。)

    cat /proc/cpuinfo- 显示 CPU 信息

    cat /proc/meminfo- 显示内存信息

    dmesg(或cat /var/log/dmesg)包含一些信息,不一定是所有信息。

    如果你有一个 RedHat/CentOS 系统,你可以sosreport用来收集很多信息,虽然我不知道它是否列出了所有的硬件信息。

    这些是开始查找所需信息的好地方。

    • 33
  4. Michael Shaw
    2009-08-01T10:24:55+08:002009-08-01T10:24:55+08:00

    /proc 文件系统将为您提供所需的信息...但我不知道您将如何获得它是一个简单的地方。

    'cat /proc/cpuinfo' 会告诉你你的 CPU 'cat /proc/devices' 会告诉你一些关于块设备的有限信息。'ifconfig -a' 将告诉您有关网络连接的信息

    其他人将能够告诉您更多设备。您是否正在对特定设备进行故障排除?如果是这样,您将在提出特定问题时获得更好的帮助。

    • 3
  5. hackinjack
    2012-05-18T10:37:27+08:002012-05-18T10:37:27+08:00

    inxi 将显示几乎所有内容,运行时不带短格式参数,但是选项很多,运行 inxi -h 来查看它们

    inxi是项目主页描述的“全功能信息脚本”:https ://github.com/smxi/inxi

    以下是有关如何在 Ubuntu 上安装它的信息:https ://askubuntu.com/questions/284635/inxi-installation-on-ubuntu

    • 2
  6. Rajat
    2009-08-21T10:17:35+08:002009-08-21T10:17:35+08:00

    下面的代码你可以使用 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
    
    • 1
  7. mivk
    2012-04-27T09:15:18+08:002012-04-27T09:15:18+08:00

    对于硬盘,我使用一个自定义脚本,它将以下输出按摩到一个列表中:

    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
    
    • 1
  8. alexus
    2012-04-27T12:21:32+08:002012-04-27T12:21:32+08:00

    总而言之,我想说这是获取有关您的系统信息的良好开端:

    1. dmesg - 打印或控制内核环形缓冲区
    2. lspci - 列出所有 PCI 设备
    3. lsusb - 列出 USB 设备
    4. /proc - 进程信息伪文件系统
    • 1
  9. Niels Basjes
    2012-06-06T13:21:25+08:002012-06-06T13:21:25+08:00

    我建议检查facter,它以易于在脚本中使用的形式输出大量信息。

    http://www.puppetlabs.com/puppet/related-projects/facter/

    • 1
  10. Sc0rian
    2012-06-06T14:27:30+08:002012-06-06T14:27:30+08:00

    我真的很喜欢使用“ Facter ”。提供了非常有用的信息的一个很好的列表。

    • 1

相关问题

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 如何物理清理脏桌面和服务器?

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve