Linux基础命令二计算机核心资源CPU计算lscpu作用计算机的大脑负责运算、逻辑判断、指令执行、调度任务。所有程序运行、计算、控制都靠 CPU。特点速度极快不存储数据只做处理多核 可以同时处理多个任务Linux 查看命令lscpu# 查看CPU详细信息top# 实时看CPU占用htop# 更美观的topmpstat# 查看CPU使用率明细sar-u110# 连续10秒监控CPU内存缓存数据掉电丢失作用CPU 的临时工作台。程序运行时必须加载到内存才能被 CPU 执行用于临时存放正在运行的程序和数据。特点读写速度很快远快于硬盘掉电数据全部丢失空间有限不够用会导致系统变慢、OOM 杀进程Linux 查看命令free-h# 查看内存总量/已用/剩余/缓存top# 看各进程内存占用cat/proc/meminfo sar-r110硬盘持久化存储数据作用长期保存数据断电不丢失。存放系统、软件、文件、数据库、镜像等。分类HDD 机械硬盘便宜、容量大、速度慢SSD 固态硬盘速度快、价格高Linux 查看命令df-h# 查看磁盘分区使用情况du-sh*# 查看当前目录各文件大小lsblk# 查看磁盘设备fdisk-l# 查看磁盘分区iostat# 磁盘IO性能iotop# 实时看哪个进程占磁盘IO网卡传播数据作用负责与外部设备 / 网络交换数据实现联网、传输文件、远程访问等。-特点负责收发数据包带宽决定传输速度网络延迟、丢包会影响服务Linux 查看命令ipaddr# 查看网卡与IPifconfig# 传统网卡查看ethtooleth0# 查看网卡速率、状态sar-nDEV1# 监控网卡流量netstat-ltnp# 查看端口与网络连接ss-ltnp一、系统负载1、查看CPU整体信息[rootc005 ~]# lscpuArchitecture: x86_64 CPU op-mode(s):32-bit,64-bit Byte Order: Little Endian CPU(s):1On-line CPU(s)list:0Thread(s)per core:1Core(s)per socket:1座1NUMA 节点1厂商 ID GenuineIntel CPU 系列6型号186型号名称 13th Gen Intel(R)Core(TM)i7-13620H 步进2CPU MHz2918.399BogoMIPS5836.79超管理器厂商 VMware 虚拟化类型 完全 L1d 缓存 48K L1i 缓存 32K L2 缓存 1280K L3 缓存 24576K NUMA 节点0 CPU02、查看CPU使用情况top按CPU排序P按内存排序M[rootc005 ~]# toptop- 09:42:15 up23min,2users, load average:0.61,0.43,0.34Tasks:348total,2running,346sleeping,0stopped,0zombie %Cpu(s):4.3us,7.0sy,0.0ni,88.0id,0.0wa,0.0hi,0.7si,0.0st KiB Mem:1003432total,219768used,783664free,764buffers KiB Swap:2097148total,0used,2097148free.69956cached Mem PIDUSERPR NI VIRT RES SHR S %CPU %MEM TIME COMMAND2088root20013388054684084S2.00.50:35.38 sshd2160root20012468025121176S1.00.30:09.95top16011root20012398018121184R0.70.20:00.26top3root200000S0.30.00:00.15 ksoftirqd/01root2005085271682508S0.00.70:05.12 systemd2root200000S0.00.00:00.08 kthreadd5root0-20000S0.00.00:00.00 kworker/0:0H6root200000S0.00.00:00.08 kworker/u25CPU消耗%Cpu(s): 4.3 us用户使用 7.0 sy系统使用内存消耗KiB Mem: 1003432 total, 219768 used, 783664 free3、磁盘使用情况3.1 dfLinux 里查看磁盘分区使用情况最常用的命令[rootc005 ~]# df -h文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 18G3.2G 15G19% / devtmpfs 484M0484M0% /dev tmpfs 490M0490M0% /dev/shm tmpfs 490M6.7M 484M2% /run tmpfs 490M0490M0% /sys/fs/cgroup /dev/sda1 497M 96M 401M20% /boot逐部分解释 - df disk free 查看文件系统的磁盘空间占用、剩余情况。 - -h human-readable 以人类易读的单位 显示KB/MB/GB/TB而不是原始字节。3.2 iotop查看硬盘使用情况iotop查看每个进程读写速度Total DISK READ:0.00B/s|Total DISK WRITE:11.27K/s Actual DISK READ:0.00B/s|Actual DISK WRITE:8.46K/s TID PRIOUSERDISK READ DISK WRITE SWAPIN IOCOMMAND814be/3 root0.00B/s11.27K/s0.00%0.99% auditd-n1be/4 root0.00B/s0.00B/s0.00%0.00% systemd -~rialize232be/4 root0.00B/s0.00B/s0.00%0.00%[kthreadd]3be/4 root0.00B/s0.00B/s0.00%0.00%[ksoftirqd/0]5be/0 root0.00B/s0.00B/s0.00%0.00%[kworker/0:0H]6be/4 root0.00B/s0.00B/s0.00%0.00%[kworker/u256:0]7rt/4 root0.00B/s0.00B/s0.00%0.00%[migration/0]8be/4 root0.00B/s0.00B/s0.00%0.00%[rcu_bh]9be/4 root0.00B/s0.00B/s0.00%0.00%[rcuob/0]10be/4 root0.00B/s0.00B/s0.00%0.00%[rcuob/1]11be/4 root0.00B/s0.00B/s0.00%0.00%[rcuob/2]12be/4 root0.00B/s0.00B/s0.00%0.00%[rcuob/3]3.3 wget 模拟读写监控1号模拟窗口[rootc005 ~]# wget http://192.168.42.100/02.%E7%B3%BB%E7%BB%9F%E9%95%9C%E5%83%8F/CentOS-7-x86_64-DVD-2207-02.iso--2026-04-0210:21:02-- http://192.168.42.100/02.%E7%B3%BB%E7%BB%9F%E9%95%9C%E5%83%8F/CentOS-7-x86_64-DVD-2207-02.iso 正在连接192.168.42.100:80... 已连接。 已发出 HTTP 请求正在等待回应...200OK 长度4746903552(4.4G)[application/octet-stream]正在保存至: “CentOS-7-x86_64-DVD-2207-02.iso”48%[]2,282,776,12016.1MB/s 剩余 2m 56s2号磁盘读写监控情况Total DISK READ:0.00B/s|Total DISK WRITE:25.45M/s Actual DISK READ:0.00B/s|Actual DISK WRITE:24.85M/s TID PRIOUSERDISK READ DISK WRITE SWAPIN IOCOMMAND55821be/4 root0.00B/s0.00B/s0.00%0.11%[kworker/0:2]814be/3 root0.00B/s10.64K/s0.00%0.00% auditd-n64147be/4 root0.00B/s25.44M/s0.00%0.00%wgethttp://192.168.42.100/02.%E7%B3%BB%E7%BB%9F%E9%95%9C%E5%83%8F/CentOS-7-x86_64-DVD-2207-02.iso1be/4 root0.00B/s0.00B/s0.00%0.00% systemd --switched-root--system--deserialize232be/4 root0.00B/s0.00B/s0.00%0.00%[kthreadd]3be/4 root0.00B/s0.00B/s0.00%0.00%[ksoftirqd/0]5be/0 root0.00B/s0.00B/s0.00%0.00%[kworker/0:0H]6be/4 root0.00B/s0.00B/s0.00%0.00%[kworker/u256:0]7rt/4 root0.00B/s0.00B/s0.00%0.00%[migration/0]3.4 sar查看指定磁盘的读写情况yum install -y sysstat[rootc005 ~]# sar -dp 1Linux3.10.0-123.el7.x86_64(c005)2026年04月02日 _x86_64_(1CPU)10时30分48秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util10时30分49秒 sr00.000.000.000.000.000.000.000.0010时30分49秒 sda3.030.0026.268.670.001.331.330.4010时30分49秒 centos-swap0.000.000.000.000.000.000.000.0010时30分49秒 centos-root3.030.0026.268.670.001.331.330.401: sda(物理磁盘1)3.5 补充内容stress压测注意点root官方不维护镜像源因此直接安装会因为找不到数据包失败提示需要先安装epel源直接安装epel源会因为HTTP网络问题访问不了因此选用下面的本地修改epel源的方式安装epel源然后实现安装stress软件的目的。# 进入yum配置源文件目录cd/etc/yum.repos.d/# 增加epel的源数据配置catepel.repoEOF [epel] nameExtra Packages for Enterprise Linux 7 - \$basearchbaseurlhttp://mirrors.aliyun.com/epel/7/x86_64/ enabled1 gpgcheck0 EOF# 清理yum缓存数据yum clean all# 重建yum缓存数据yum makecache# 安装stress软件yuminstall-ystress#验证stress版本[rootc005 ~]# stress --versionstress1.0.4压测CPU实验# 1号模拟器启动stress压测CPU[rootc005 yum.repos.d]# stress --cpu 4stress: info:[18150]dispatching hogs:4cpu,0io,0vm,0hdd# 2号模拟器监控CPU实时数据top-11:31:35 up20min,4users, load average:5.22,3.63,1.89Tasks:355total,6running,349sleeping,0stopped,0zombie %Cpu(s):88.4us,10.9sy,0.0ni,0.0id,0.0wa,0.0hi,0.7si,0.0st KiB Mem:1003432total,870260used,133172free,0buffers KiB Swap:2097148total,12used,2097136free.679452cached Mem PIDUSERPR NI VIRT RES SHR S %CPU %MEM TIME COMMAND18153root2007316960R20.50.00:45.46 stress18154root2007316960R20.20.00:45.45 stress18151root2007316960R19.90.00:45.45 stress18152root2007316960R19.90.00:45.45 stress1165root20013383654604084S1.60.50:24.81 sshd6337root20013383654604084S1.30.50:16.24 sshd137root200000S0.30.00:02.59 rcu_sched138root200000R0.30.00:01.91 rcuos/0# 关闭stress压测任务后观察CPU使用情况top-11:33:20 up22min,4users, load average:2.66,3.38,1.99Tasks:354total,3running,351sleeping,0stopped,0zombie %Cpu(s):10.8us,14.1sy,0.0ni,73.7id,0.3wa,0.0hi,1.0si,0.0st KiB Mem:1003432total,871524used,131908free,0buffers KiB Swap:2097148total,12used,2097136free.680096cached Mem PIDUSERPR NI VIRT RES SHR S %CPU %MEM TIME COMMAND1165root20013383654604084S2.30.50:26.78 sshd6337root20013383654604084S2.30.50:18.28 sshd23685root2001217161516976R0.70.20:00.02ps138root200000R0.30.00:02.07 rcuos/0801root16-411676016241232S0.30.20:02.35 auditd1447root20012398418281176S0.30.20:05.81top6421root20012398418241176S0.30.20:04.15top22569root20012398418641184R0.30.20:00.26top1root2005085671842504S0.00.70:06.01 systemd2root200000S0.00.00:00.08 kthreadd3root200000S0.00.00:04.44 ksoftirq二、服务管理操作系统第一个进程systemdsystemd:负责操作系统整个资源的管理系统中服务也由systemd管理。[rootc005 ~]# ps 1PID TTY STAT TIME COMMAND1? Ss0:05 /usr/lib/systemd/systemd --switched-root--system--d[rootc005 ~]#systemctlaction service-nameaction: status | start | stop | restart | enable | disableservice-name: sshd | firewalld | mysqldsystemd 与 systemctl的关系systemd 一直运行的程序守护进程systemctl 是给systemd下指令的工具人与机器之间交互使用。1、查看服务sshd[rootc005 ~]# systemctl status sshdsshd.service - OpenSSH server daemon Loaded: loaded(/usr/lib/systemd/system/sshd.service;enabled)Active: active(running)since 四2026-04-02 09:19:28 CST;1h 35min ago Main PID:1100(sshd)CGroup: /system.slice/sshd.service └─1100 /usr/sbin/sshd-D4月 02 09:19:28 c005 systemd[1]: Started OpenSSH server daemon.4月 02 09:19:28 c005 sshd[1100]: Server listening on0.0.0.0 port22.4月 02 09:19:28 c005 sshd[1100]: Server listening on :: port22.4月 02 09:20:09 c005 sshd[2088]: Accepted passwordforroot from192.168.15...h24月 02 09:43:57 c005 sshd[17574]: Accepted passwordforroot from192.168.1...h24月 02 09:49:37 c005 sshd[24503]: Accepted passwordforroot from192.168.1...h2 Hint: Some lines were ellipsized, use-lto showinfull.重点关注配置文件位置Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)配置文件位置/usr/lib/systemd/system/sshd.service第一个enable代表开机启动Active active (running)log日志2、停止服务sshd[rootc005 ~]# systemctl stop sshd#验证服务是否运行中[rootc005 ~]# systemctl is-active sshdinactive#重新启动[rootc005 ~]# systemctl start sshd[rootc005 ~]# systemctl is-active sshdactive3、设置开机启动[rootc005 ~]# systemctl enable sshdln-s/usr/lib/systemd/system/sshd.service/etc/systemd/system/multi-user.target.wants/sshd.service[rootc005 ~]# systemctl is-enabled sshdenabled#重启验证[rootc005 ~]# reboot[rootc005 ~]# systemctl is-active sshdactive4、禁止开机启动[rootc005 ~]# systemctl disable sshdrm/etc/systemd/system/multi-user.target.wants/sshd.service[rootc005 ~]# systemctl is-enabled sshddisabled5、服务管理实验开发一个服务[rootc005 ~]# vim /usr/local/bin/study编写Shell脚本#!/bin/bash# 第一行内容是脚本的 解释器声明shebang指定该脚本使用 /bin/bash 作为解释器执行。系统会根据这一行找到对应的 shell 程序来解析后续命令。# 启动一个无限循环while 是循环关键字true 是一个永远为真的条件因此这个循环会一直执行下去直到被外部终止如 CtrlC。whiletrue# 循环体的开始标记do 和后面的 done 之间的内容是循环中重复执行的命令。do# 执行 date 命令获取当前系统时间并通过 $(...) 捕获其输出将结果赋值给变量 DATE。DATE$(date)# echo 命令输出字符串其中 $DATE 会被替换为变量的值# 是追加重定向符号将输出内容追加到 /var/log/study.log 文件中# 最终输出内容类似 Fri Oct 31 10:00:00 CST 2025: IM studying [ Linux ]。echo$DATE: IM studying [ Linux ]/var/log/study.log# 让脚本暂停执行 5 秒sleep 命令用于延迟单位默认为秒避免循环执行过快。sleep5# 循环体的结束标记与前面的 while 和 do 配合标志着一次循环的结束。done修改服务配置文件# 服务service配置模版# 程序后面的ddaemon守护称呼[rootc005 ~]# cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/studyd.service修改studyd.service配置内容[rootc005 ~16:51:47]#[rootc005 ~16:51:47]# cat /etc/systemd/system/studyd.service[Unit]Descriptionstudy[Service]ExecStart/usr/sbin/study[Install]WantedBymulti-user.target刷新systemctl更新内容[rootc005 ~]# systemctl daemon-reload激活服务[rootc005 ~]# systemctl enable studyd --nowVim 操作复习内容:set nu 显示行号 3,5d 【或者 光标移动到第三行d3d】 删除3-5行 5,6d 删除5-6行 6,9d 删除6-9行 /Open 搜索并定位到特定字符串位置 cw change word替换一个单词自动进入插入模式输入study按esc /sbin 搜索C删除到最后并进入插入模式补全路径local/bin/study按esc ZZ 保存退出。 u 撤销上一步操作 ctrlr 重做上一步操作三、SSH工具学习背景分析sshd建立连接流程的过程windows 管理员身份打开cmd执行arp -d 192.168.159.105(自己Linux服务IP 开启wireshark捕捉vmware 8 nat网卡流量 使用终端登录 Linux 服务 分析 抓包结果 - 体现三次握手的过程3.1 ssh工具的使用# windows中使用普通命令行操作ssh192.168.159.105sshroot192.168.159.105或者ssh test192.168.159.105sshtest192.168.159.105hostnamesshtest192.168.159.105id创建实验用的test用户[rootc005 ~ 16:04:01]# useradd test [rootc005 ~ 16:04:21]# echo 123 | passwd --stdin test 更改用户 test 的密码 。 passwd所有的身份验证令牌已经成功更新。准备配置文件[testc005 ~ 16:07:14]$ cp /etc/ssh/ssh_config .ssh/config [testc005 ~ 16:07:30]$ vim .ssh/config # 删除前19行 # 取消相应行注释 Host * # 新增 User 行指明默认登录用户 User root # 首次登录不要提示输入yes/no(不要对主机key校验) # StrictHostKeyChecking ask StrictHostKeyChecking no补充# 如果.ssh目录不存在执行以下命令[testc005 ~16:12:21]$sshlocalhost# 然后ctrlc 停止即可验证过程[testc005 ~16:19:11]$ssh192.168.159.105 Warning: Permanently added192.168.159.105 (ECDSA) to the list of known hosts. test192.168.159.105s password:16:19:11]$ssh192.168.159.105 Warning: Permanently added192.168.159.105 (ECDSA) to the list of known hosts. test192.168.159.105s password:3.2 sshpass工具安装sshpass[testc005 ~]yuminstall-ysshpass# 确保之前连接过记得输入yes[testc005 ~15:54:01]$sshroot192.168.159.105 The authenticity ofhost192.168.159.105 (192.168.159.105) cant be established. ECDSA key fingerprint is SHA256:wSfYTQRvgQEm9lun1oY5rg8Hfz1DkiAItGXYLt55irU. ECDSA key fingerprint is MD5:8e:91:a4:84:71:1a:9c:82:ce:80:a0:46:db:87:5c:4a. Are you sure you want tocontinueconnecting(yes/no)?yesWarning: Permanently added192.168.159.105(ECDSA)to the list of known hosts.# 接下来传递密码redhat登录[testc005 ~15:55:43]$ sshpass-p123456sshroot192.168.159.105id# 显示结果如下uid0(root)gid0(root)组0(root)