Linux 零基础速查:看完就能上手的基础命令合集8 Linux 零基础速查看完就能上手的基础命令合集8监控系统负载查看系统负载查看CPU [gzkCentOS7 ~ 17:00:19]$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 1 Core(s) per socket: 1 座 2 NUMA 节点 1 厂商 ID GenuineIntel CPU 系列 6 型号 154 型号名称 12th Gen Intel(R) Core(TM) i5-12500H 步进 3 CPU MHz 3110.408 BogoMIPS 6220.81 超管理器厂商 VMware 虚拟化类型 完全 L1d 缓存 48K L1i 缓存 32K L2 缓存 1280K L3 缓存 18432K NUMA 节点0 CPU 0,1 查看负载 [gzkCentOS7 ~ 17:02:29]$ uptime 17:02:36 up 11 min, 2 users, load average: 0.00, 0.01, 0.01 给系统加负载 [gzkCentOS7 ~ 17:02:36]$ md5sum /dev/zero [1] 3225 [gzkCentOS7 ~ 17:02:54]$ md5sum /dev/zero [2] 3236 等30秒左右再次查看负责 [gzkCentOS7 ~ 17:02:57]$ uptime 17:03:17 up 12 min, 2 users, load average: 0.63, 0.16, 0.06top命令作用动态查看进程信息包括不同状态任务数量CPU消耗和内存消耗。常用的命令数字1PMkqh。 1标题中切换显示CPU信息 P查看CPU使用率高的 M查看内存使用率高的 k可以先M按CPU使用率排序然后k终止这个进程 q退出top命令stress 工具Linux 中的 stress 工具用于对系统进行压力测试可模拟 CPU、内存、I/O 和磁盘等资源的高负载状态。通过指定参数如 -c 压 CPU、-m 压内存可创建负载帮助发现系统在压力下的稳定性问题常用于性能调优或硬件验证。yum安装工具 [gzkCentOS7 ~ 17:19:16]$ yum install -y stress压力测试-CPU[gzkCentOS7 ~ 17:24:16]$ stress -c 2 stress: info: [4053] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd 新开一个终端top查看 top查看完之后回原来终端ctrlc终止stress命令压力测试-内存[gzkCentOS7 ~ 18:22:04]$ free -m total used free shared buff/cache available Mem: 3931 758 2474 17 698 2935 Swap: 3967 0 3967 [gzkCentOS7 ~ 18:22:07]$ stress -m 1 --vm-bytes 1G stress: info: [6232] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd 新开一个终端free -m查看 [gzkCentOS7 ~ 18:24:57]$ free -m total used free shared buff/cache available Mem: 3931 1747 1485 17 698 1947 free查看完之后回原来终端ctrlc终止stress命令压力测试-磁盘安装iotop [gzkCentOS7 ~ 18:24:59]$ yum install -y sysstat iotop 消耗磁盘IO [gzkCentOS7 ~ 18:26:27]$ stress -d 1 --hdd-bytes 2G stress: info: [6475] dispatching hogs: 0 cpu, 0 io, 0 vm, 1 hdd 监控磁盘读写速度重点关注rd_sec/s和wr_sec/s单位是0.5k/每秒,每个secsector是512Byte。 [gzkCentOS7 ~ 18:24:59]$ sar -dp 1 Linux 3.10.0-1160.71.1.el7.x86_64 (CentOS7.gzk.cloud) 2026年07月22日 _x86_64_ (2 CPU) 18时28分57秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 18时28分58秒 sda 2229.00 0.00 2280448.00 1023.08 143.44 64.78 0.45 100.10 18时28分58秒 sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 18时28分58秒 centos-root 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 18时28分58秒 centos-swap 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 18时28分58秒 centos-home 2240.00 0.00 2291712.00 1023.09 144.37 64.88 0.45 100.10 监控进程读写左右方向键调整排序列 代表当前排序列 [gzkCentOS7 ~ 18:30:02]$ sudo iotopLinux 服务管理systemd 介绍基本概念CentOS 7 使用 Systemd 引导系统启动速度最快所有进程无论有无依赖关系则都是并行启动很多时候进程没有真正启动而是只有一个信号或者说是标记而已在真正利用的时候才会真正启动。Systemd为了解决上文的问题而诞生。它的目标是为系统的启动和管理提供一套完整的解决方案。系统引导程序用户空间systemdpid为1内核空间kthreaddpid为2服务从业务角度来称呼例如 web 服务数据库服务。守护进程daemonweb 服务器对外提供 web 服务由 web 相关的进程提供支持。以web服务为例服务web服务守护进程httpd安装软件包 [rootCentOS7 ~ 18:46:37]# yum install -y httpd [rootCentOS7 ~ 18:46:37]# systemctl start httpd [rootCentOS7 ~ 18:46:59]# ps -C httpd f PID TTY STAT TIME COMMAND 7150 ? Ss 0:00 /usr/sbin/httpd -DFOREGROUND 7153 ? S 0:00 \_ /usr/sbin/httpd -DFOREGROUND 7154 ? S 0:00 \_ /usr/sbin/httpd -DFOREGROUND 7155 ? S 0:00 \_ /usr/sbin/httpd -DFOREGROUND 7156 ? S 0:00 \_ /usr/sbin/httpd -DFOREGROUND 7158 ? S 0:00 \_ /usr/sbin/httpd -DFOREGROUNDunit 类型systemctl 命令用于管理不同类型的系统对象这些对象称之为 units。Service unit用于定义系统服务文件扩展名为.service例如httpd.serviceSocket unit用于标识进程间通信用的 socket文件文件扩展名为.socketTarget unit用于模拟实现“运行级别”文件扩展名为.targetTimer unit用于管理计划任务文件扩展名为.timerDevice unit用于定义内核识别的设备文件扩展名为.deviceMount unit用于定义文件系统挂载点文件扩展名为.mountSnapshot unit管理系统快照文件扩展名为.snapshotSwap unit用于标识swap设备文件扩展名为.swapAutomount unit文件系统的自动挂载点文件扩展名为.automountPath unit用于根据文件系统上特定对象的变化来启动其他服务文件扩展名为.pathSlice unit用于资源管理文件扩展名为.slice查看 unit 列表信息[rootCentOS7 ~ 18:48:55]# systemctl list-units UNIT LOAD ACTIVE SUB DESCRIPTION proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File sys-devices-pci0000:00-0000:00:07.1-ata2-host1-target1:0:0-1:0:0:0-block-sr0.device sys-devices-pci0000:00-0000:00:10.0-host2-target2:0:0-2:0:0:0-block-sda-sda1.device sys-devices-pci0000:00-0000:00:10.0-host2-target2:0:0-2:0:0:0-block-sda-sda2.device sys-devices-pci0000:00-0000:00:10.0-host2-target2:0:0-2:0:0:0-block-sda.device loade sys-devices-pci0000:00-0000:00:11.0-0000:02:01.0-net-ens33.device loaded active plug sys-devices-pci0000:00-0000:00:11.0-0000:02:02.0-sound-card0.device loaded active pl sys-devices-platform-serial8250-tty-ttyS0.device loaded active plugged /sys/device sys-devices-platform-serial8250-tty-ttyS1.device loaded active plugged /sys/device sys-devices-platform-serial8250-tty-ttyS2.device loaded active plugged /sys/device sys-devices-platform-serial8250-tty-ttyS3.device loaded active plugged /sys/device sys-devices-virtual-block-dm\x2d0.device loaded active plugged /sys/devices/virtua sys-devices-virtual-block-dm\x2d1.device loaded active plugged /sys/devices/virtua sys-devices-virtual-block-dm\x2d2.device loaded active plugged /sys/devices/virtua sys-devices-virtual-net-virbr0.device loaded active plugged /sys/devices/virtual/nsystemctl list-units命令输出说明UNIT服务单元名称。LOADsystemd是否正确解析了单元的配置并将该单元加载到内存中。ACTIVE单元的高级别激活状态。此信息表明单元是否已成功启动。SUB单元的低级别激活状态。此信息指示有关该单元的更多详细信息。信息视单元类型、 状态以及单元的执行方式而异。DESCRIPTION单元的简短描述。-t选项查看特定类型unit 清单 [rootCentOS7 ~ 18:51:19]# systemctl list-units -t timer UNIT LOAD ACTIVE SUB DESCRIPTION systemd-tmpfiles-clean.timer loaded active waiting Daily Cleanup of Temporary Direct unbound-anchor.timer loaded active waiting daily update of the root trust an LOAD Reflects whether the unit definition was properly loaded. ACTIVE The high-level unit activation state, i.e. generalization of SUB. SUB The low-level unit activation state, values depend on unit type. 2 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use systemctl list-unit-files.列出类型为service状态为active和inactive unit [rootCentOS7 ~ 18:51:24]# systemctl list-units --type service --all UNIT LOAD ACTIVE SUB DESCRIPTION abrt-ccpp.service loaded active exited Install ABRT coredump hook abrt-oops.service loaded active running ABRT kernel log watcher abrt-vmcore.service loaded inactive dead Harvest vmcores for ABRT abrt-xorg.service loaded active running ABRT Xorg log watcher abrtd.service loaded active running ABRT Automated Bug Reporti accounts-daemon.service loaded active running Accounts Service alsa-restore.service loaded inactive dead Save/Restore Sound Card St alsa-state.service loaded active running Manage Sound Card State (r ● apparmor.service not-found inactive dead apparmor.service atd.service loaded active running Job spooling tools auditd.service loaded active running Security Auditing Service auth-rpcgss-module.service loaded inactive dead Kernel Module supporting R avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack blk-availability.service loaded active exited Availability of block devi bolt.service loaded active running Thunderbolt system service chronyd.service loaded active running NTP client/server ● cloud-init-local.service not-found inactive dead cloud-init-local.service colord.service loaded active running Manage, Install and Genera列出系统中所有unit包括未loaded的unit [rootCentOS7 ~ 18:54:51]# systemctl list-unit-files UNIT FILE STATE proc-sys-fs-binfmt_misc.automount static dev-hugepages.mount static dev-mqueue.mount static proc-fs-nfsd.mount static proc-sys-fs-binfmt_misc.mount static run-vmblock\x2dfuse.mount disabled sys-fs-fuse-connections.mount static sys-kernel-config.mount static sys-kernel-debug.mount static tmp.mount disabled var-lib-nfs-rpc_pipefs.mount static brandbot.path disabled cups.path enabled systemd-ask-password-console.path static systemd-ask-password-plymouth.path static查看失败的服务 [rootCentOS7 ~ 18:56:19]# systemctl --failed --type service 0 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use systemctl list-unit-files.查看单个 unit 信息[rootCentOS7 ~ 18:57:37]# systemctl status sshd.service ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since 三 2026-07-22 16:50:55 CST; 2h 6min ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 1221 (sshd) Tasks: 1 CGroup: /system.slice/sshd.service └─1221 /usr/sbin/sshd -D 7月 22 16:50:55 CentOS7.gzk.cloud systemd[1]: Starting OpenSSH server daemon... 7月 22 16:50:55 CentOS7.gzk.cloud sshd[1221]: Server listening on 0.0.0.0 port 22. 7月 22 16:50:55 CentOS7.gzk.cloud sshd[1221]: Server listening on :: port 22. 7月 22 16:50:55 CentOS7.gzk.cloud systemd[1]: Started OpenSSH server daemon. 7月 22 16:51:24 CentOS7.gzk.cloud sshd[2686]: Accepted password for gzk from 10...2 7月 22 17:06:04 CentOS7.gzk.cloud sshd[3337]: Accepted password for gzk from 10...2 7月 22 17:24:30 CentOS7.gzk.cloud sshd[4058]: Accepted password for gzk from 10...2 7月 22 17:33:50 CentOS7.gzk.cloud sshd[4450]: Accepted password for gzk from 10...2 7月 22 18:22:20 CentOS7.gzk.cloud sshd[6236]: Accepted password for gzk from 10...2 7月 22 18:46:23 CentOS7.gzk.cloud sshd[7189]: Accepted password for root from 1...2 Hint: Some lines were ellipsized, use -l to show in full.控制系统服务停止服务后测试客户端连接是否正常。 [rootCentOS7 ~ 19:06:45]# systemctl stop sshd.service [rootCentOS7 ~ 19:06:49]# systemctl status sshd.service ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: inactive (dead) since 三 2026-07-22 19:06:49 CST; 8s ago Docs: man:sshd(8) man:sshd_config(5) Process: 1221 ExecStart/usr/sbin/sshd -D $OPTIONS (codeexited, status0/SUCCESS) Main PID: 1221 (codeexited, status0/SUCCESS) sshd远程连接服务关闭后不可以连接了启动服务后再次测试是否可以远程客户端连接 [rootCentOS7 ~ 19:09:42]# systemctl status sshd.service ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since 三 2026-07-22 19:09:42 CST; 1s ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 8136 (sshd) Tasks: 1 CGroup: /system.slice/sshd.service └─8136 /usr/sbin/sshd -D 启动服务后可以正常连接。重启服务相当于stop再start [rootCentOS7 ~ 19:09:44]# systemctl restart sshd.service [rootCentOS7 ~ 19:11:30]# systemctl status sshd.service ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since 三 2026-07-22 19:11:30 CST; 3s ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 8289 (sshd) Tasks: 1 CGroup: /system.slice/sshd.service └─8289 /usr/sbin/sshd -D restart重启后进程号改变了。 重新加载一般用于配置文件变动后 [rootCentOS7 ~ 19:11:34]# systemctl reload sshd.service [rootCentOS7 ~ 19:13:39]# systemctl status sshd.service ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since 三 2026-07-22 19:11:30 CST; 2min 11s ago Docs: man:sshd(8) man:sshd_config(5) Process: 8373 ExecReload/bin/kill -HUP $MAINPID (codeexited, status0/SUCCESS) Main PID: 8289 (sshd) Tasks: 1 CGroup: /system.slice/sshd.service └─8289 /usr/sbin/sshd -D 重新加载服务服务对应的主进程不会重启只会重新加载一次配置文件。禁止服务开机自启 [rootCentOS7 ~ 19:15:35]# systemctl disable sshd.service Removed symlink /etc/systemd/system/multi-user.target.wants/sshd.service. [rootCentOS7 ~ 19:15:38]# systemctl is-enabled sshd disabled [rootCentOS7 ~ 19:15:55]# systemctl status sshd.service ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor preset: enabled) Active: active (running) since 三 2026-07-22 19:11:30 CST; 4min 31s ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 8289 (sshd) CGroup: /system.slice/sshd.service └─8289 /usr/sbin/sshd -D 重启 [rootCentOS7 ~ 19:16:02]# reboot Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(10.1.8.88 -root) at 19:16:41. Type help to learn how to use Xshell prompt. 发现无法开机之后自动远程连接了 解决办法去虚拟机终端里面把设置改回去 [rootCentOS7 ~ 19:18:39]# systemctl enable sshd.service Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service. [rootCentOS7 ~ 19:19:17]# systemctl is-enabled sshd enabled [rootCentOS7 ~ 19:19:34]# systemctl status sshd.service ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: inactive (dead) Docs: man:sshd(8) man:sshd_config(5) 然后重启一下再去远程连接发现可以连接了。禁用服务服务被禁用后将无法start因为服务的配置文件指向/dev/null [rootCentOS7 ~ 19:22:19]# systemctl mask sshd.service Created symlink from /etc/systemd/system/sshd.service to /dev/null. [rootCentOS7 ~ 19:23:52]# systemctl status sshd.service ● sshd.service Loaded: masked (/dev/null; bad) Active: active (running) since 三 2026-07-22 19:22:15 CST; 2min 16s ago Main PID: 1182 (sshd) CGroup: /system.slice/sshd.service └─1182 /usr/sbin/sshd -D 7月 22 19:22:15 CentOS7.gzk.cloud systemd[1]: Starting OpenSSH server daemon... 7月 22 19:22:15 CentOS7.gzk.cloud sshd[1182]: Server listening on 0.0.0.0 port 22. 7月 22 19:22:15 CentOS7.gzk.cloud sshd[1182]: Server listening on :: port 22. 7月 22 19:22:15 CentOS7.gzk.cloud systemd[1]: Started OpenSSH server daemon. 7月 22 19:22:18 CentOS7.gzk.cloud sshd[1698]: Accepted password for root from 1...2 7月 22 19:23:52 CentOS7.gzk.cloud systemd[1]: Current command vanished from the.... 7月 22 19:23:54 CentOS7.gzk.cloud sshd[1996]: Accepted password for gzk from 10...2 Hint: Some lines were ellipsized, use -l to show in full. 取消禁用 [rootCentOS7 ~ 19:24:31]# systemctl unmask sshd.service Removed symlink /etc/systemd/system/sshd.service. [rootCentOS7 ~ 19:24:40]# systemctl status sshd.service ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since 三 2026-07-22 19:22:15 CST; 2min 27s ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 1182 (sshd) CGroup: /system.slice/sshd.service └─1182 /usr/sbin/sshd -D开发一个 study 服务准备工作先vim创建文件输入脚本内容 [rootCentOS7 ~ 19:30:06]# vim /usr/local/bin/study 1 #!/bin/bash 2 # 第一行内容是脚本的 解释器声明shebang指定该脚本使用 /bin/bash 作为解释 器执行。系统会根据这一行找到对应的 shell 程序来解析后续命令。 3 4 # 启动一个无限循环while 是循环关键字true 是一个永远为真的条件因此这个循环 会一直执行下去直到被外部终止如 CtrlC。 5 while true 6 7 # 循环体的开始标记do 和后面的 done 之间的内容是循环中重复执行的命令。 8 do 9 10 # 执行 date 命令获取当前系统时间并通过 $(...) 捕获其输出将结果赋值给变 量 DATE。 11 DATE$(date) 12 13 # echo 命令输出字符串其中 $DATE 会被替换为变量的值 14 # 是追加重定向符号将输出内容追加到 /var/log/study.log 文件中 15 # 最终输出内容类似 Fri Oct 31 10:00:00 CST 2025: IM studying [ Linux ]。 16 echo $DATE: IM studying [ Linux ] /var/log/study.log 17 18 # 让脚本暂停执行 5 秒sleep 命令用于延迟单位默认为秒避免循环执行过快。 19 sleep 5 20 21 # 循环体的结束标记与前面的 while 和 do 配合标志着一次循环的结束。 22 done 赋予文件执行的权限 [rootCentOS7 ~ 19:31:06]# chmod x /usr/local/bin/study创建 studyd 服务单元文件 [rootCentOS7 ~ 19:31:16]# cp /usr/lib/systemd/system/sshd.service \ /etc/systemd/system/studyd.service [rootCentOS7 ~ 19:32:46]# vim /etc/systemd/system/studyd.service 修改文件内容如下图 通知 systemd 读取 unit 变化 [rootCentOS7 ~ 19:36:04]# systemctl daemon-reload 启用并启动服务 [rootCentOS7 ~ 19:37:30]# systemctl enable studyd --now 查看服务状态 [rootCentOS7 ~ 19:37:37]# systemctl status studyd ● studyd.service - study server daemon Loaded: loaded (/etc/systemd/system/studyd.service; enabled; vendor preset: disabled) Active: active (running) since 三 2026-07-22 19:22:13 CST; 15min ago Main PID: 723 (study) CGroup: /system.slice/studyd.service ├─ 723 /bin/bash /usr/local/bin/study └─2621 sleep 5 7月 22 19:22:13 CentOS7.gzk.cloud systemd[1]: Started study server daemon. tail -f动态查看 [rootCentOS7 ~ 19:37:43]# tail -f /var/log/study.log 2026年 07月 22日 星期三 19:38:15 CST: IM studying [ Linux ] 2026年 07月 22日 星期三 19:38:20 CST: IM studying [ Linux ] 2026年 07月 22日 星期三 19:38:25 CST: IM studying [ Linux ] 2026年 07月 22日 星期三 19:38:30 CST: IM studying [ Linux ] 2026年 07月 22日 星期三 19:38:35 CST: IM studying [ Linux ] 2026年 07月 22日 星期三 19:38:40 CST: IM studying [ Linux ] 2026年 07月 22日 星期三 19:38:45 CST: IM studying [ Linux ] 2026年 07月 22日 星期三 19:38:50 CST: IM studying [ Linux ] 最后结束 终止服务。