教程 linux tutorial

Linux 系统信息命令

在Linux系统管理中,了解系统的运行状态和资源使用情况是非常重要的。Linux提供了一系列强大的命令来获取系统信息,帮助管理员监控系统状态、诊断问题和优化性能。本章节将详细介绍Linux中常用的系统信息命令。

系统基本信息命令

uname 命令

uname 命令用于显示系统的基本信息。

bash
# 显示内核名称
uname

# 显示所有系统信息
uname -a

# 显示内核版本
uname -r

# 显示主机名
uname -n

# 显示硬件架构
uname -m

# 显示操作系统版本
uname -v

hostname 命令

hostname 命令用于显示或设置系统的主机名。

bash
# 显示当前主机名
hostname

# 显示主机名的详细信息
hostnamectl

# 设置临时主机名(重启后失效)
sudo hostname new_hostname

# 永久设置主机名
sudo hostnamectl set-hostname new_hostname

cat /etc/*release 命令

查看Linux发行版信息。

bash
# 查看发行版信息
cat /etc/*release

# 或
lsb_release -a  # 如果系统已安装lsb-release包

CPU信息命令

lscpu 命令

lscpu 命令用于显示CPU架构信息。

bash
# 显示CPU信息
lscpu

cat /proc/cpuinfo 命令

查看CPU的详细信息。

bash
# 查看CPU信息
cat /proc/cpuinfo

# 统计CPU核心数
grep "processor" /proc/cpuinfo | wc -l

内存信息命令

free 命令

free 命令用于显示系统内存使用情况。

bash
# 显示内存使用情况
free

# 以人类可读的格式显示
free -h

# 显示详细的内存统计信息
free -m  # 以MB为单位
free -g  # 以GB为单位

# 实时监控内存使用情况
watch -n 1 free -h

cat /proc/meminfo 命令

查看内存的详细信息。

bash
# 查看内存信息
cat /proc/meminfo

磁盘信息命令

df 命令

df 命令用于显示磁盘空间使用情况。

bash
# 显示磁盘空间使用情况
df

# 以人类可读的格式显示
df -h

# 显示所有文件系统(包括虚拟文件系统)
df -a

# 显示文件系统类型
df -T

du 命令

du 命令用于显示目录或文件的磁盘使用情况。

bash
# 显示当前目录的磁盘使用情况
du

# 以人类可读的格式显示
du -h

# 显示目录总大小
du -sh /path/to/directory

# 显示目录及其子目录的大小
du -h --max-depth=1 /path/to/directory

fdisk 命令

fdisk 命令用于查看和管理磁盘分区。

bash
# 列出所有磁盘及其分区
sudo fdisk -l

# 管理特定磁盘的分区
sudo fdisk /dev/sda

lsblk 命令

lsblk 命令用于列出块设备信息。

bash
# 列出块设备信息
lsblk

# 显示所有设备(包括空设备)
lsblk -a

# 显示详细信息
lsblk -l

# 显示设备大小
lsblk -h

进程信息命令

ps 命令

ps 命令用于显示当前进程的状态。

bash
# 显示当前用户的进程
ps

# 显示所有进程
ps -e
ps -ef
ps aux

# 以树状结构显示进程
ps -e --forest
ps auxf

# 显示特定用户的进程
ps -u username

# 显示特定进程
ps -p process_id

top 命令

top 命令用于实时显示进程动态。

bash
# 启动top

top

# 常用交互命令:
# q: 退出
# k: 终止进程
# 1: 显示所有CPU核心
# P: 按CPU使用率排序
# M: 按内存使用率排序
# T: 按运行时间排序

htop 命令

htop 命令是 top 的增强版,提供了更友好的界面。

bash
# 安装htop(如果未安装)
# Debian/Ubuntu
sudo apt install htop
# CentOS/RHEL
sudo yum install htop

# 启动htop
htop

网络信息命令

ifconfig/ip 命令

  • ifconfig 命令用于显示和配置网络接口(较旧的命令)
  • ip 命令是新一代的网络配置工具,功能更强大
bash
# 显示网络接口信息
ifconfig
# 或
ip addr

# 配置网络接口
# ifconfig eth0 192.168.1.10 netmask 255.255.255.0
# 或
ip addr add 192.168.1.10/24 dev eth0

# 启用/禁用网络接口
# ifconfig eth0 up/down
# 或
ip link set eth0 up/down

netstat 命令

netstat 命令用于显示网络状态信息。

bash
# 显示网络连接
netstat -tuln

# 显示所有网络连接
netstat -a

# 显示路由表
netstat -r

# 显示网络接口统计信息
netstat -i

# 持续显示网络连接
netstat -tulnp

ss 命令

ss 命令是 netstat 的现代替代品,更快速、更高效。

bash
# 显示网络连接
ss -tuln

# 显示所有网络连接
ss -a

# 显示路由表
ss -r

ping 命令

ping 命令用于测试网络连接。

bash
# 测试网络连接
ping example.com

# 限制ping的次数
ping -c 4 example.com

# 快速ping(较小的间隔)
ping -i 0.5 example.com

traceroute 命令

traceroute 命令用于跟踪数据包的路由路径。

bash
# 跟踪路由路径
traceroute example.com

# 使用ICMP协议
traceroute -I example.com

用户信息命令

who 命令

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

bash
# 显示当前登录的用户
who

# 显示更详细的信息
who -a

# 显示上次登录信息
who -b

w 命令

w 命令用于显示当前登录的用户及其活动。

bash
# 显示用户活动信息
w

last 命令

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

bash
# 显示登录历史
last

# 显示特定用户的登录历史
last username

id 命令

id 命令用于显示用户和组的ID信息。

bash
# 显示当前用户的ID信息
id

# 显示特定用户的ID信息
id username

系统负载和性能监控命令

uptime 命令

uptime 命令用于显示系统运行时间和平均负载。

bash
# 显示系统运行时间和负载
uptime

vmstat 命令

vmstat 命令用于显示虚拟内存统计信息。

bash
# 显示虚拟内存统计信息
vmstat

# 每秒更新一次,共更新5次
vmstat 1 5

iostat 命令

iostat 命令用于显示CPU和磁盘I/O统计信息。

bash
# 显示CPU和磁盘I/O统计信息
iostat

# 每秒更新一次,共更新5次
iostat 1 5

# 显示磁盘详细信息
iostat -x

sar 命令

sar 命令用于收集、报告和保存系统活动信息。

bash
# 安装sar(如果未安装)
# Debian/Ubuntu
sudo apt install sysstat
# CentOS/RHEL
sudo yum install sysstat

# 显示CPU使用率
sar 1 5

# 显示内存使用率
sar -r 1 5

# 显示磁盘I/O统计信息
sar -b 1 5

# 显示网络统计信息
sar -n DEV 1 5

系统日志命令

dmesg 命令

dmesg 命令用于显示内核环缓冲区的内容。

bash
# 显示内核消息
dmesg

# 显示与特定设备相关的消息
dmesg | grep -i eth

# 以人类可读的时间格式显示
dmesg -T

journalctl 命令

journalctl 命令用于查询systemd日志。

bash
# 查看所有日志
journalctl

# 查看最新日志
journalctl -n

# 实时查看日志
journalctl -f

# 查看特定服务的日志
journalctl -u nginx.service

# 查看启动日志
journalctl -b

高级系统信息命令

lsmod 命令

lsmod 命令用于显示已加载的内核模块。

bash
# 显示已加载的内核模块
lsmod

modinfo 命令

modinfo 命令用于显示内核模块的详细信息。

bash
# 显示特定模块的信息
modinfo module_name

systemctl 命令

systemctl 命令用于管理systemd服务。

bash
# 显示系统状态
systemctl status

# 显示所有服务状态
systemctl list-units --type=service

# 启动/停止/重启服务
systemctl start/stop/restart service_name

# 启用/禁用服务(开机自启动)
systemctl enable/disable service_name

总结

本章节介绍了Linux系统中常用的系统信息命令,包括系统基本信息、CPU信息、内存信息、磁盘信息、进程信息、网络信息、用户信息、系统负载和性能监控、系统日志以及高级系统信息等方面的命令。

这些命令是Linux系统管理员日常工作中不可或缺的工具,可以帮助管理员全面了解系统状态,及时发现和解决问题,优化系统性能。在实际工作中,这些命令通常会结合使用,以获取更全面的系统信息。