如何从 Linux 终端列出计算机的设备如何从 Linux 终端列出计算机的设备如何从 Linux 终端列出计算机的设备如何从 Linux 终端列出计算机的设备
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何从 Linux 终端列出计算机的设备

准确找出您的 Linux 计算机中或连接到它的设备。我们将介绍 12 个用于列出已连接设备的命令。

为什么是 12 个命令?

不管剥猫皮的方法有多少,我敢打赌,有更多方法可以列出连接到 Linux 计算机或安装在 Linux 计算机中的设备。我们将向您展示其中的 12 个。这还不是全部!

不可避免地,您可以从这些命令中获得的信息有很多重叠,那么为什么要费心描述这么多呢?

好吧,一方面,内容和细节的变化使它们完全不同,以至于有些人会更喜欢一种方法而不是另一种方法。一个命令的输出格式可能特别适合特定用例。另一个命令的格式可能非常适合通过 grep 或其他进一步处理方法进行管道传输。

不过,主要是使文章尽可能通用。与其决定我们的读者会感兴趣或使用哪些命令,我们宁愿提供可用命令的广泛示例,让我们的读者选择他们将使用哪些命令以及他们将保持不变的命令。

需要一些安装

默认情况下,这些命令中的大多数都包含在您的 Linux 发行版中。 Ubuntu、Fedora 和 Manjaro 被用作 Debian、Red Hat 和 Arch 系列主要分支的代表性发行版样本。

所有三个发行版都需要安装 procinfo,它提供了 lsdev 命令。 lsscsi 命令也需要安装在所有三个上。

要安装 lsdev 和 lsscsi,请使用这些命令。

Ubuntu:

sudo apt-get install procinf
sudo apt-get install lsscsi

软呢帽:

sudo dnf install procinfo
sudo dnf install lsscsi

曼扎罗

sudo pacman -Syu procinfo
sudo pacman -Syu lsscsi

令人惊讶的是,Manjaro——以其简单的发行版而闻名——是预装了我们将要查看的大部分命令的发行版。

Ubuntu 和 Fedora 需要安装 hwinfo,Fedora 也需要安装 lshw 和 hdparm。

Ubuntu:

sudo apt-get install hwinfo

软呢帽:

sudo dnf install hwinfo
sudo dnf install lshw
sudo dnf install hdparm

1.挂载命令

mount 命令用于挂载文件系统。

但是发出不带参数的命令会导致它列出所有已安装的文件系统,以及它们所在的设备。所以我们可以用它来发现这些设备。

mount

mount 的输出可能比您预期的要长,尤其是当您使用 snap 方法安装软件时。每次您使用 snap 时,您都会获得另一个伪文件系统,这些伪文件系统由 mount 列出。当然,这些并没有与之关联的物理设备,因此它们只是在掩盖真实情况。

如果您发现列表中的真实文件系统位于硬盘驱动器上,我们可以使用 grep 将其隔离。

硬盘驱动器按名称标识,通常称为“sd”,后跟一个以“a”开头的字母表示第一个驱动器,“b”表示第二个驱动器,依此类推。分区通过为第一个分区添加 1 和为第二个分区添加 2 来标识,依此类推。

所以第一个硬盘驱动器将是 sda,该驱动器上的第一个分区将称为 sda1。硬盘驱动器通过 /dev 中的特殊设备文件(称为块文件)连接,然后安装在文件系统树的某个位置。

此命令使用 grep 过滤掉任何以“sd”开头的驱动器的详细信息。

mount | grep /dev/sd

输出包含用于研究本文的机器中的单个硬盘驱动器。

mount 的响应告诉我们驱动器 /dev/sda 挂载在 /(文件系统树的根)并且它有一个 ext4 文件系统。 “rw”表示它已经以读写模式挂载

Relatime 是文件时间戳更新例程使用的方案。除非文件的修改时间 (mtime) 或更改时间 (ctime) 比上次访问时间更新,或者访问时间 (atime) 早于系统定义的阈值,否则访问时间不会写入磁盘.这大大减少了需要对频繁访问的文件进行磁盘更新的次数。

“errors=remount-ro”表示如果有足够严重的错误,文件系统将以只读模式重新挂载。

为了能够滚动浏览 mount 的输出并更轻松地发现设备上安装的文件系统,将 mount 的输出通过 less 进行管道传输.

mount | less

滚动输出直到您看到连接到 /dev 特殊文件的文件系统。

2. lsblk 命令

lsblk 命令列出块设备、它们的安装点和其他信息。在命令行输入 lsblk:

lsblk

输出显示:

  • 名称:块设备的名称
  • Maj:Min:主编号显示设备类型。最小数量是该类型设备列表中当前设备的数量。例如7:4表示循环设备号4。
  • RM:设备是否可移动。 0 表示否,1 表示是。
  • Size 是设备的容量。
  • RM:设备是否只读。 0 表示否,1 表示是。
  • Type:设备的类型,例如loop、dir(目录)、disk、rom(光驱)等。
  • 挂载点:设备文件系统的挂载点。

为了消除输出的混乱并删除循环设备,我们可以使用 -e(排除)选项并提供我们希望忽略的设备类型的数量。

此命令将导致 lsblk 忽略 loop (7) 和 cd room (11) 设备。

lsblk -e 7,11

结果现在只包含硬盘驱动器 sda。

3. df 命令

df 命令报告驱动器容量以及已用和可用空间。

在命令行中键入 df 并按 Enter。

df

输出表显示:

  • Fileystem:此文件系统的名称。
  • 1K-Blocks:此文件系统上可用的 1K 块数。
  • 已用:已在此文件系统上使用的 1K 块数。
  • 可用:此文件系统上未使用的 1K 块数。
  • Use%:此文件系统中使用的空间量,以百分比形式给出。
  • File:文件系统名称(如果在命令行中指定)。
  • Mounted on:文件系统的挂载点。

要从输出中删除不需要的条目,请使用 -x(排除)选项。此命令将阻止列出循环设备条目。

df -x squashfs

紧凑的输出更容易解析重要信息。

4. fdisk 命令

fdisk 命令是一个用来操作磁盘分区表的工具,但它也可以用来查看信息。当我们调查计算机中的设备时,我们可以利用这一点。

我们将使用 -l(列表)选项列出分区表。因为输出可能很长,所以我们将从 fdisk 输出到 less。因为 fdisk 有可能改变磁盘分区表,所以我们必须使用 sudo。

sudo fdisk -l

通过滚动 less,您将能够识别硬件设备。这是硬盘驱动器 sda 的条目。这是一个 10 GB 的物理硬盘。

现在我们知道其中一个硬件设备的身份,我们可以要求 fdisk 单独报告该项目。

sudo fdisk -l /dev/sda

我们得到的输出长度大大减少了。

5. /proc 文件

可以查看/proc 中的伪文件来获取一些系统信息。我们将查看的文件是 /proc/mounts,它将为我们提供有关已挂载文件系统的一些信息。我们将使用cat 来查看文件。

cat /proc/mounts

该清单显示了 /dev 中用于连接设备的特殊设备文件和文件系统树上的挂载点。

我们可以使用 grep 查找其中包含 /dev/sd 的条目来优化列表。这将过滤掉物理驱动器。

cat /proc/mounts | grep /dev/sd

这为我们提供了一个更易于管理的报告。

通过使用 grep 来查找具有 /dev/sd 和 /dev/sr 特殊设备文件的设备,我们可以稍微更具包容性。这将包括本机的硬盘驱动器和 CD ROM。

cat /proc/partitions | grep s[rd]

现在输出中包含两个设备和一个分区。

6.lspci命令

lspci 命令列出了您计算机中的所有 PCI 设备。

lspci

提供的信息是:

  • 插槽:安装 PCI 设备的插槽
  • Class:设备的类别。
  • 供应商名称:制造商的名称。
  • 设备名称:设备的名称。
  • 子系统:子系统供应商名称(如果设备有子系统)。
  • 子系统名称:如果设备有子系统。
  • Revision number:设备的版本号
  • 编程接口:编程接口,如果设备提供的话。

7. lsusb 命令

lsusb 命令将列出连接到计算机 USB 端口的设备以及计算机内置的支持 USB 的设备。

lsusb

这台测试计算机有一个佳能扫描仪连接到它作为 USB 设备 5,一个外部 USB 驱动器作为 USB 设备 4。设备 3 和 1 是内部 USB 接口处理程序。

您可以使用 -v(详细)选项接收更详细的列表,使用 -vv 可以接收更详细的版本。

8.lsdev命令

lsdev 命令显示所有已安装设备的信息。

这个命令会产生很多输出,所以我们要通过 less 来处理它。

lsdev | less

输出中列出了许多硬件设备。

9. lshw 命令

lshw 命令列出连接到您计算机的设备。这是另一个有很多输出的命令。在测试计算机上,生成了 260 多行信息。我们将再次通过 less 对其进行管道传输。

请注意,您需要将 sudo 与 lshw 一起使用才能充分利用它。如果不这样做,它将无法访问所有设备。

sudo lshw | less

这是带有 SCSI 接口的 CD ROM 的条目。如您所见,为每个设备提供的信息非常详细。 lshw 从 /proc 中的各种文件中读取大部分信息。

如果您想要更短、更不详细的输出,可以使用 --short 选项。

10.lsscsi命令

正如您现在想象的那样,lsscsi 命令列出了连接到您的计算机的 SCSI 设备。

lsscsi

这是连接到该测试机的 SCSI 设备。

11. dmidecode 命令

dmidecode 命令解码桌面管理接口 (DMI) 表,并提取与连接到计算机的硬件和计算机内部相关的信息。

DMI 有时也称为 SMBIOS(系统管理基本输入/输出系统),尽管它们实际上是两个不同的标准。

同样,我们将通过 less 进行管道传输。

dmidecode | less

dmidecode 命令可以报告 40 多种不同的硬件类型。

12.hwinfo命令

hwinfo 命令是所有命令中最冗长的。当我们说你需要通过 less 来传递一些东西时,这一次它不是可选的。在测试计算机上,它生成了 5850 行输出!

您可以通过包含 --short 选项来慢慢开始。

hwinfo --short

如果您确实需要查看最细粒度的细节,请重复此操作并省略 --short 选项。

包起来

因此,这里有十几种方法来调查计算机内或连接到计算机的设备。

无论您对搜索此硬件有何特别兴趣,此列表中都会有一种方法可以让您找到所需的东西。

Linux Commands
Files tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc
Processes alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap
Networking netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

RELATED: Best Linux Laptops for Developers and Enthusiasts

©2015-2025 艾丽卡 support@alaica.com