Linux 基础命令——系统信息查看详解
在 Linux 系统中,了解和监控系统的状态和性能对系统管理员和开发者来说至关重要。Linux 提供了一组强大的命令,可以帮助我们查看系统信息,包括硬件、操作系统、CPU、内存、存储、网络等。
一、操作系统与内核信息查看
1. uname
—— 查看操作系统和内核信息
uname
命令用于显示有关操作系统和内核的详细信息。
-
查看操作系统类型:
$ uname Linux
-
查看内核版本:
$ uname -r 5.4.0-66-generic
-
显示所有系统信息:
$ uname -a Linux hostname 5.4.0-66-generic #74-Ubuntu SMP Fri Feb 19 10:29:21 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
2. lsb_release
—— 查看 Linux 发行版信息
lsb_release
命令用于查看 Linux 发行版的相关信息,如发行版名称、版本号等。
-
查看完整的发行版信息:
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.2 LTS Release: 20.04 Codename: focal
-
只显示发行版的描述信息:
$ lsb_release -d Description: Ubuntu 20.04.2 LTS
3. hostname
—— 查看或设置主机名
hostname
命令用于查看或设置系统的主机名。
-
查看主机名:
$ hostname my-laptop
-
临时设置主机名(仅对当前会话有效):
$ sudo hostname new-hostname
二、CPU 信息查看
1. lscpu
—— 显示 CPU 体系结构信息
lscpu
命令显示 CPU 的详细信息,包括架构、CPU 核心数、线程数等。
$ lscpu
Architecture: x86_64
CPU(s): 4
Model name: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
CPU MHz: 1800.000
Virtualization: VT-x
2. cat /proc/cpuinfo
—— 查看详细的 CPU 信息
通过读取 /proc/cpuinfo
文件,可以查看系统中每个 CPU 核心的详细信息。
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 158
model name : Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
cpu MHz : 1800.000
3. top
和 htop
—— 实时查看 CPU 使用情况
-
top
命令实时显示系统中的进程信息和 CPU 使用情况:$ top
-
htop
是top
的增强版,提供了更加直观的界面和更多的功能。它需要安装:$ sudo apt install htop $ htop
三、内存信息查看
1. free
—— 查看内存使用情况
free
命令用于查看系统的内存和交换区的使用情况,输出显示总内存、已用内存、空闲内存等。
-
查看内存使用情况(以 MB 为单位):
$ free -mtotal used free shared buff/cache available Mem: 7972 1256 5489 156 1226 6321 Swap: 2047 0 2047
-
使用
-h
参数以更加人性化的格式显示:$ free -htotal used free shared buff/cache available Mem: 7.8G 1.3G 5.4G 156M 1.2G 6.3G Swap: 2.0G 0B 2.0G
2. vmstat
—— 查看内存、CPU 和 IO 状态
vmstat
命令提供有关内存、虚拟内存、CPU 以及 IO 的详细统计信息。
-
查看系统总体状态:
$ vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st0 0 0 5612828 116736 1254364 0 0 41 12 234 335 1 1 98 0 0
-
实时查看,更新频率为 2 秒:
$ vmstat 2
四、磁盘信息查看
1. df
—— 查看磁盘空间使用情况
df
命令用于查看文件系统的磁盘空间使用情况。
-
查看所有文件系统的磁盘使用情况(以人类可读的方式显示):
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 28G 42% / tmpfs 7.8G 156M 7.6G 2% /dev/shm
2. du
—— 查看文件或目录的磁盘使用情况
du
(Disk Usage)命令用于查看文件或目录占用的磁盘空间大小。
-
查看当前目录下每个文件和子目录的磁盘使用情况:
$ du -h 4.0K ./Desktop 50M ./Documents
-
查看某个目录的总大小:
$ du -sh /var/log 200M /var/log
五、网络信息查看
1. ifconfig
和 ip
—— 查看网络接口信息
-
ifconfig
命令用于查看和配置网络接口的 IP 地址、子网掩码等信息:$ ifconfig eth0 Link encap:Ethernet HWaddr 00:0c:29:68:22:33 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
-
ip
命令提供了更强大的网络配置和查看功能:$ ip addr 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
2. netstat
和 ss
—— 查看网络连接状态
-
netstat
命令用于查看网络连接、路由表、接口状态等信息:$ netstat -tuln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:123 0.0.0.0:*
-
ss
命令是netstat
的替代工具,执行速度更快:$ ss -tuln Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 128 *:80 *:* udp UNCONN 0 0 *:123 *:*
3. ping
—— 测试网络连通性
ping
命
令用于测试本机与目标 IP 地址之间的连通性,通常用来判断网络是否正常。
$ ping google.com
PING google.com (142.250.190.78) 56(84) bytes of data.
64 bytes from ord37s34-in-f14.1e100.net (142.250.190.78): icmp_seq=1 ttl=57 time=11.2 ms
4. traceroute
—— 路由跟踪
traceroute
命令用于显示从本机到目标主机所经过的网络路径。
$ traceroute google.com
traceroute to google.com (142.250.190.78), 30 hops max, 60 byte packets1 192.168.1.1 (192.168.1.1) 1.231 ms 1.012 ms 1.021 ms2 10.250.45.1 (10.250.45.1) 3.081 ms 2.951 ms 3.066 ms
六、硬件信息查看
1. lshw
—— 查看详细的硬件信息
lshw
命令列出系统的详细硬件信息,包括 CPU、内存、主板、磁盘等。
$ sudo lshw
2. lsblk
—— 查看块设备信息
lsblk
命令用于显示系统中所有的块设备(如硬盘、分区等)信息。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 49G 0 part /
└─sda2 8:2 0 1G 0 part [SWAP]
3. dmidecode
—— 查看 BIOS 和硬件信息
dmidecode
命令读取系统的 DMI 表,提供有关硬件组件的信息。
$ sudo dmidecode
七、总结
在 Linux 中,通过各种命令可以轻松查看和监控系统的运行状态和硬件配置。这些命令涵盖了从操作系统信息、CPU、内存到磁盘、网络的所有方面,为系统管理员和开发者提供了强大的工具来分析和维护系统。熟练掌握这些命令不仅有助于系统故障排查,还能帮助进行系统优化。