linux基础
基本命令
系统
uname -a # 查看内核/操作系统/CPU信息
head -n 1 /etc/issue # 查看操作系统版本
cat /proc/cpuinfo # 查看CPU信息
hostname # 查看计算机名
lspci -tv # 列出所有PCI设备
lsusb -tv # 列出所有USB设备
lsmod # 列出加载的内核模块
env # 查看环境变量
资源
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
du -sh <目录名> # 查看指定目录的大小
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载
磁盘和分区
mount | column -t # 查看挂接的分区状态
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况
网络
ifconfig # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息
进程
ps -ef # 查看所有进程
top # 实时显示进程状态
用户
w # 查看活动用户
id <用户名> # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务
crontab -e # 创建当前用户的计划任务
查看cpu信息
- cat /proc/cpuinfo :显示有关cpu信息,包括型号
- lscpu :显示有关cpu信息,包括型号、频率、核数等
- lshw -class processor : 显示有关cpu信息,包括型号、核数、速度等
- cat /proc/cpuinfo | grep “model name” | uniq :只显示cpu的型号
# 只查看cpu的型号
[root@localhost ~]# cat /proc/cpuinfo | grep "model name" | uniq
model name : Intel(R) Xeon(R) Gold 6138 CPU @ 2.00GHz
# 查询物理CPU个数
[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
2
# 返回结果是1的话,就代表服务器为1个物理CPU芯片,返回2就代表2个物理CPU芯片。
# 查看物理CPU内核的个数
[root@localhost ~]# cat /proc/cpuinfo | grep "cpu cores" | uniq
cpu cores : 20
#假设返回结果是cpu cores : 20 则代表表示1个物理CPU里面有20个物理内核。
#查看所有逻辑CPU的个数
[root@localhost ~]# cat /proc/cpuinfo | grep "processor" | wc -l
80
# 输出结果:80 表示Linux服务器一共有80个逻辑CPU。
# 查看每个物理CPU中逻辑CPU的个数
[root@localhost ~]# cat /proc/cpuinfo | grep 'siblings' | uniq
siblings : 40
# 输出结果:siblings : 40 表示每个物理CPU中有40个逻辑CPU,一共有2个物理CPU,所以总共有80个逻辑CPU。
#查询CPU是否启用超线程
[root@localhost ~]# cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq
cpu cores : 20
siblings : 40
#看到cpu cores数量是siblings数量一半,说明启动了超线程。如果cpu cores数量和siblings数量一致,则没有启用超线程。
cpuinfo详细参数说明对照表
输出项 | 含义 |
---|---|
processor | 系统中逻辑处理核的编号。对于单核处理器,则可认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核 |
vendor_id | CPU制造商 |
cpu family | CPU产品系列代号 |
model | CPU属于其系列中的哪一代的代号 |
model name | CPU属于的名字及其编号、标称主频 |
stepping | CPU属于制作更新版本 |
cpu MHz | CPU的实际使用主频 |
cache size | CPU二级缓存大小 |
physical id | 单个CPU的标号 |
siblings | 单个CPU逻辑物理核数 |
core id | 当前物理核在其所处CPU中的编号,这个编号不一定连续 |
cpu cores | 该逻辑核所处CPU的物理核数 |
apicid | 用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续 |
fpu | 是否具有浮点运算单元(Floating Point Unit) |
fpu_exception | 是否支持浮点计算异常 |
cpuid level | 执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容 |
wp | 表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection) |
flags | 当前CPU支持的功能 |
bogomips | 在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second) |
clflush size | 每次刷新缓存的大小单位 |
cache_alignment | 缓存地址对齐单位 |
address sizes | 可访问地址空间位数 |
查看内存信息
使用free命令
free命令可以查看系统内存的总量、使用量和空闲量等信息。在终端中输入以下命令即可查看:
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 471G 110G 1.0G 201M 359G 359G
Swap: 4.0G 1.1G 2.9G
#该命令会以人类可读的方式显示内存信息。其中,total表示内存总量,used表示已使用的内存量,free表示空闲的内存量。
使用cat命令
/proc/meminfo文件包含了系统内存的详细信息。可以使用cat命令查看该文件的内容:
[root@localhost ~]# cat /proc/meminfo | grep "MemTotal"
MemTotal: 494486776 kB
# MemTotal表示内存总量,以千字节为单位。
使用dmidecode命令
dmidecode命令用法
不带选项执行dmidecode通常会输出所有的硬件信息。dmidecode有个很有用的选项-t (bios、system、baseboard、chassis、processor、memory、cache、connector、slot),可以指定类型输出相关信息。假如要获得处理器方面的信息,则可以执行:dmidecode-t processor
Usage: dmidecode [OPTloNS]
Options are:
-d:(default:/dev/mem)从设备文件读取信息,输出内容与不加参数标准输出相同,
-h:显示帮助信息。
-s:只显示指定DMI字符串的信息。(string)
-t:只显示指定条目的信息。(type)
-u:显示未解码的原始条目内容。
–dump-bin FlLE: Dump the DMl data to a binary file.
–from-dump FlLE: Read the DMl data from a binary file.
-V:显示版本信息
dmidecode命令可以显示系统硬件信息,包括内存信息。
# 该命令会输出系统中所有内存模块的详细信息。
dmidecode -t memory
# 输出现有内存数量和内存大小
dmidecode | grep -A16 "Memory Device" | grep "Size" |sed 's/^[ \t]*//'
# 输出最大支持内存容量
dmidecode | grep "Maximum Capacity" |sed "s/^[ \t]*//"
# 扩展用法
# 查看服务器型号
dmidecode | grep 'Product Name'
# 查看主板的序列号
dmidecode | grep 'Serial Number'
# 查看系统序列号
dmidecode -s system-serial-number
# 查看OEM信息
dmidecode -t 11
[root@localhost ~]# dmidecode -t
dmidecode: option requires an argument -- 't'
Type number or keyword expected
Valid type keywords are:
bios
system
baseboard
chassis
processor
memory
cache
connector
slot
网络
ip 命令
ip 命令 类似于 ifconfig, 用于分配静态 IP 地址、路由和默认网关等。
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
link/ether f0:2f:74:d6:90:ee brd ff:ff:ff:ff:ff:ff
3: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether f0:2f:74:d6:90:ef brd ff:ff:ff:ff:ff:ff
如何在 Linux 上使用 ip 命令检查可用的网络接口
在不带任何参数的情况下运行 ip 命令时,它会提供大量信息,但是,如果仅需要可用的网络接口,请使用以下定制的 ip 命令。
[root@localhost ~]# ip a |awk -F ":" '/state UP/{print $2}'
eno1
br0
ethtool 命令
# ethtool 用于查询或控制网络驱动或硬件设置,使用方法:ethtool 网卡名称
[root@localhost ~]# ethtool eno1
Settings for eno1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: on (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
# 使用 ethtool 命令检查网络接口速度,使用方法:ethtool 网卡名称 |grep "Speed:"
[root@localhost ~]# ethtool eno1 |grep "Speed:"
Speed: 1000Mb/s
系统时间
使用date可以获取系统时间
[root@localhost /]# date
2024年 04月 28日 星期日 09:25:37 CST
date输出位年月日时分秒
[root@localhost /]# date "+%Y%m%d%H%M%S"
20240428092545
[root@localhost /]#