引言:

在浩瀚的 Linux 世界里,命令行是探索和掌控系统的强大工具。它不仅是执行命令的界面,更是深入了解系统内部运作的窗口。本文将带你踏上一场命令行下的洞察之旅,揭示如何利用各种命令获取 Linux 系统的全面信息,涵盖操作系统、硬件、网络和安全等方面。无论你是系统管理员、开发人员还是 Linux 爱好者,掌握这些技巧都将助你更好地管理和优化你的 Linux 系统。

一、操作系统信息:揭开内核的面纱

操作系统是计算机的核心,了解其版本和配置对于系统管理至关重要。Linux 提供了多种命令来获取这些信息。

  • uname:系统信息总览

    uname 命令是最常用的系统信息查询工具之一。它可以显示内核名称、主机名、内核版本、处理器架构等基本信息。

    • uname -a:显示所有可用信息。
    • uname -s:显示内核名称。
    • uname -r:显示内核版本。
    • uname -m:显示处理器架构。

    例如,执行 uname -a 可能会得到如下输出:


    Linux your-hostname 5.15.0-76-generic #83-Ubuntu SMP Thu Jun 15 19:16:33 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

    这条信息包含了内核名称(Linux)、主机名(your-hostname)、内核版本(5.15.0-76-generic)、处理器架构(x86_64)以及操作系统类型(GNU/Linux)。

  • lsb_release:发行版信息

    lsb_release 命令用于显示 Linux 发行版的详细信息,如发行版名称、版本号、描述等。

    • lsb_release -a:显示所有可用信息。
    • lsb_release -i:显示发行版 ID。
    • lsb_release -d:显示发行版描述。
    • lsb_release -r:显示发行版版本号。

    例如,执行 lsb_release -a 在 Ubuntu 系统上可能会得到如下输出:


    Distributor ID: Ubuntu
    Description: Ubuntu 22.04.2 LTS
    Release: 22.04
    Codename: jammy

    这条信息清晰地表明系统是 Ubuntu 22.04.2 LTS 版本,代号为 jammy。

  • /etc/*release 文件:更直接的发行版信息

    /etc 目录下,通常存在一些以 release 结尾的文件,它们包含了发行版的版本信息。例如,/etc/os-release/etc/redhat-release 等。你可以使用 cat 命令直接查看这些文件的内容。


    cat /etc/os-release

    输出可能如下:


    NAME=Ubuntu
    VERSION=22.04.2 LTS (Jammy Jellyfish)
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME=Ubuntu 22.04.2 LTS
    VERSION_ID=22.04
    HOME_URL=https://www.ubuntu.com/
    SUPPORT_URL=https://help.ubuntu.com/
    BUG_REPORT_URL=https://bugs.launchpad.net/ubuntu/
    PRIVACY_POLICY_URL=https://www.ubuntu.com/legal/terms-and-policies/privacy-policy
    VERSION_CODENAME=jammy
    UBUNTU_CODENAME=jammy

    这些文件提供了更结构化的发行版信息,方便脚本解析和自动化处理。

  • hostnamectl:主机名和系统设置

    hostnamectl 命令用于管理主机名和相关的系统设置。它可以显示当前主机名、静态主机名、瞬态主机名等信息。


    hostnamectl

    输出可能如下:


    Static hostname: your-hostname
    Icon name: computer-vm
    Chassis: vm
    Machine ID: your-machine-id
    Boot ID: your-boot-id
    Virtualization: vmware
    Operating System: Ubuntu 22.04.2 LTS
    Kernel: Linux 5.15.0-76-generic
    Architecture: x86-64

    hostnamectl 提供了更全面的系统概览,包括主机名、操作系统、内核版本、架构等。

二、硬件信息:探寻硬件的奥秘

了解硬件配置对于性能优化和故障排除至关重要。Linux 提供了多种命令来获取硬件信息。

  • lscpu:CPU 信息

    lscpu 命令用于显示 CPU 的详细信息,如 CPU 架构、型号、核心数、线程数、缓存大小等。


    lscpu

    输出信息非常详细,例如:


    Architecture: x86_64
    CPU op-mode(s): 32-bit, 64-bit
    Address sizes: 46 bits physical, 48 bits virtual
    CPU(s): 8
    On-line CPU(s) list: 0-7
    Vendor ID: GenuineIntel
    Model name: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
    CPU family: 6
    Model: 158
    Thread(s) per core: 2
    Core(s) per socket: 6
    Socket(s): 1
    Stepping: 10
    CPU max MHz: 4700.0000
    CPU min MHz: 800.0000
    BogoMIPS: 7400.00
    Virtualization: VT-x
    L1d cache: 32K
    L1i cache: 32K
    L2 cache: 256K
    L3 cache: 12288K

    lscpu 提供了 CPU 的完整规格,对于了解 CPU 性能至关重要。

  • free:内存信息

    free 命令用于显示系统的内存使用情况,包括总内存、已用内存、空闲内存、缓存和缓冲区等。

    • free -h:以人类可读的格式显示内存信息。
    • free -m:以 MB 为单位显示内存信息。
    • free -g:以 GB 为单位显示内存信息。

    例如,执行 free -h 可能会得到如下输出:


    total used free shared buff/cache available
    Mem: 15Gi 2.4Gi 9.9Gi 184Mi 3.1Gi 12Gi
    Swap: 2.0Gi 0B 2.0Gi

    这条信息显示了系统的总内存为 15GB,已用 2.4GB,空闲 9.9GB,交换空间为 2GB。

  • df:磁盘空间信息

    df 命令用于显示磁盘空间的使用情况,包括文件系统、总容量、已用空间、可用空间、挂载点等。

    • df -h:以人类可读的格式显示磁盘空间信息。
    • df -T:显示文件系统类型。

    例如,执行 df -h 可能会得到如下输出:


    Filesystem Size Used Avail Use% Mounted on
    udev 7.7G 0 7.7G 0% /dev
    tmpfs 1.6G 1.5M 1.6G 1% /run
    /dev/sda2 228G 29G 188G 14% /
    tmpfs 7.7G 0 7.7G 0% /dev/shm
    tmpfs 5.0M 0 5.0M 0% /run/lock
    /dev/sda1 511M 6.1M 505M 2% /boot/efi
    tmpfs 1.6G 80K 1.6G 1% /run/user/1000

    这条信息显示了各个文件系统的磁盘空间使用情况。

  • lspci:PCI 设备信息

    lspci 命令用于显示系统中的 PCI 设备信息,如显卡、网卡、声卡等。


    lspci

    输出信息会列出所有 PCI 设备的详细信息,包括设备 ID、厂商 ID、设备类型等。

  • lsusb:USB 设备信息

    lsusb 命令用于显示系统中的 USB 设备信息,如 USB 存储设备、USB 键盘、USB 鼠标等。


    lsusb

    输出信息会列出所有 USB 设备的详细信息,包括设备 ID、厂商 ID、设备类型等。

三、网络信息:掌控网络连接

了解网络配置对于网络管理和故障排除至关重要。Linux 提供了多种命令来获取网络信息。

  • ip addr:IP 地址信息

    ip addr 命令用于显示网络接口的 IP 地址、MAC 地址、状态等信息。


    ip addr

    输出信息会列出所有网络接口的详细信息,包括 IP 地址、MAC 地址、状态等。

  • ip route:路由表信息

    ip route 命令用于显示系统的路由表信息,包括目标网络、网关、接口等。


    ip route

    输出信息会列出系统的路由表,用于确定数据包的转发路径。

  • netstatss:网络连接信息

    netstatss 命令用于显示系统的网络连接信息,包括监听端口、连接状态、远程地址等。ss 命令是 netstat 的替代品,功能更强大,性能更好。

    • netstat -tulnp:显示 TCP 和 UDP 监听端口。
    • ss -tulnp:显示 TCP 和 UDP 监听端口。

    输出信息会列出所有网络连接的详细信息,包括协议、本地地址、远程地址、状态等。

  • ping:网络连通性测试

    ping 命令用于测试网络连通性,通过发送 ICMP Echo 请求到目标主机,并接收 ICMP Echo 回复来判断网络是否可达。


    ping google.com

    如果网络连通,ping 命令会显示目标主机的 IP 地址和往返时间。

  • traceroute:路由追踪

    traceroute 命令用于追踪数据包到达目标主机的路径,显示沿途经过的路由器。


    traceroute google.com

    traceroute 可以帮助诊断网络故障,确定数据包在哪一跳出现问题。

四、安全信息:守护系统安全

了解系统安全配置对于保护系统免受攻击至关重要。Linux 提供了多种命令来获取安全信息。

  • who:当前登录用户

    who 命令用于显示当前登录系统的用户。


    who

    输出信息会列出当前登录用户的用户名、终端、登录时间等。

  • w:当前登录用户和进程

    w 命令用于显示当前登录系统的用户以及他们正在运行的进程。


    w

    输出信息会列出当前登录用户的用户名、终端、登录时间、CPU 使用率、运行的命令等。

  • last:登录历史

    last 命令用于显示用户的登录历史。


    last

    输出信息会列出用户的登录时间、登出时间、登录终端等。

  • ps:进程信息

    ps 命令用于显示系统中的进程信息,包括进程 ID、父进程 ID、CPU 使用率、内存使用率、运行状态等。

    • ps aux:显示所有用户的进程信息。
    • ps -ef:显示所有进程的完整信息。

    输出信息非常详细,可以用于监控系统资源使用情况,查找恶意进程。

  • iptablesfirewall-cmd:防火墙规则

    iptablesfirewall-cmd 命令用于管理系统的防火墙规则。firewall-cmdiptables 的更高级抽象,更易于使用。

    • iptables -L:显示当前防火墙规则。
    • firewall-cmd --list-all:显示当前防火墙规则。

    输出信息会列出所有防火墙规则,包括允许或拒绝的流量类型、端口等。

五、日志信息:追踪系统事件

日志文件记录了系统运行过程中的各种事件,对于故障排除和安全审计至关重要。

  • /var/log/syslog/var/log/messages:系统日志

    /var/log/syslog/var/log/messages 文件记录了系统的各种事件,包括内核消息、系统服务消息、应用程序消息等。


    cat /var/log/syslog

    可以使用 grep 命令过滤日志信息,查找特定事件。

  • /var/log/auth.log:认证日志

    /var/log/auth.log 文件记录了用户的认证信息,包括登录、登出、密码错误等。


    cat /var/log/auth.log

    可以用于审计用户的登录行为,查找安全漏洞。

  • journalctl:systemd 日志

    journalctl 命令用于查看 systemd 管理的日志信息。

    • journalctl:显示所有日志信息。
    • journalctl -u service_name:显示特定服务的日志信息。
    • journalctl -since yesterday:显示昨天的日志信息。

    journalctl 提供了更强大的日志过滤和查询功能。

结论:

通过本文的介绍,相信你已经掌握了使用命令行获取 Linux 系统信息的各种技巧。这些命令不仅可以帮助你了解系统的配置和状态,还可以用于性能优化、故障排除和安全审计。熟练掌握这些技巧,你将能够更好地管理和掌控你的 Linux 系统,成为一名真正的 Linux 系统专家。

参考文献:


>>> Read more <<<

Views: 0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注