当前位置: 首页 > news >正文

Linux 基础知识入门 第二章

md和Xmind原文档下载:百度网盘


一、Linux 进程管理

1. 相关概念

进程是程序的运行实例

每个进程有唯一的进程ID (PID)

进程有父进程(PPID)

进程有运行状态

1.1 进程状态

R 运行 / 可运行 Running 正在运行,占用CPU Runnable 等待运行,不占用CPU,但占运行队列 S 睡眠 D 不可中断睡眠 T 停止 Z 僵尸进程 修饰符 s 包含子进程 l 多线程 + 前台进程 < 高优先级 N 低优先级

1.2 ps 静态查看进程

系统负载过高排障使用

选项 a 所有终端的进程 u 显示进程所有者信息 x 包括未链接终端的进程 f 显示进程树 k 属性 对指定属性排序,属性前加-表示倒序 o 属性 显示定制信息 ni nice 值 pri pri值,内核静态优先级,0-139,数值越大优先级越高 psr 进程执行所绑定的CPU核心编号 L 显示支持的属性列表 -C 指定命令,多个命令用 , 分割 -L 显示线程 -e 显示所有进程 -f 显示完成格式程序信息 -F 显示更完整格式的进程信息 -H 以进程层级格式显示相关信息
ps aux 字段解析 USER 运行进程的用户 PID 唯一的进程ID号,PPID表示父进程的ID号 %CPU CPU占用百分比 %MEM 物理内存占用百分比 VSZ 虚拟内存使用量,申请内存 RSS 物理内存使用量,实际使用内存 TTY 控制终端,tty为本地登录,pts/为网络登录,?为守护进程。和终端无关 STAT 进程状态 START 进程启动时间 TIME 进程占用CPU的时间 COMMAND 进程实际指令 # 示例 ps aux | grep nginx # 查看指定应用进程 ps aux|wc -l # 统计进程总数 ps aux --sort=-%cpu |head # 按CPU占比排序, -表示降序,只显示前10个 ps aux --sort=-%mem |head # 按内存占比排序
# 其他用法示例psauxf# 命令按进程树显示prtstat 进程PID# 查看进程详细信息psaxo pid,cmd,psr -L|grephaproxy# 查看程序的线程与CPU核心绑定关系psaxfo pid,cmd,%cpu,%mem k %mem|head# 自定义字段查看并按物理内存占用百分比排序,只显示前10个ps-eopid,cmd,%cpu,%mem k -%mem|head# 效果与上一条命令相同

1.3 pstree 进程树

常用于查看父进程子进程

带{}的表示多线程进程

Ubuntu需要安装包: apt install -y psmisc

# 示例pstree-p# 显示PIDpstree-p|grepnginx# 过滤指定程序pstree-T# 不显示线程pstree-u# 显示指定用户的进程

1.4 lsof 查看文件占用

lsof-i:条件# 列出符合条件的进程/端口lsof/dev/终端名# 查看由指定终端创建的进程lsof文件# 查看文件占用,用于排查大文件删除但未释放磁盘空间# 示例lsof-i:80# 查看80端口占用lsof-cnginx# 查看nginx打开的文件

1.5 ss 查看端口监听

-n不解析域名 / 服务名,纯数字显示(速度快)-tTCP 连接-uUDP 连接-l仅监听状态端口-a所有连接(监听 + 已建立)-p显示进程 PID / 程序名(需 root)-4仅 IPv4-6仅 IPv6-s显示连接统计摘要-o显示计时器信息-i显示内部 TCP 信息(cwnd、rtt 等)
# 示例ss-ntl# 查看所有 TCP 监听端口ss-ntul# TCP+UDP 监听(日常排查首选)ss-ntulp# 带进程名/PIDss-ntlp|grepnginx# 查看程序监听端口ss-ntulp|grep:80# 查看 80 端口程序ss-ntdport=:443# 查看所有对外 443 连接ss-ostate established'( dport = :ssh or sport = :ssh )'# 显示所有已建立的ssh连接ss-ostate established'( dport = :http or sport = :http )'# 显示所有已建立的HTTP连接

1.6 top 动态查看进程

选项 -d # 指定刷新间隔,默认3秒 -b 全部显示所有进程,默认按CPU占用显示一部分进程 -n # 刷新#次后退出 -H 线程模式
界面解析 第一行(系统运行状态) 程序名 - 系统时间 运行时间 登录用户 CPU负载(1分钟、5分钟、15分钟) l 隐藏第一行 第二行(任务状态) 总进程数 运行数 休眠数 停止数 僵尸数 第三行(CPU 使用情况) us 用户 sy 内核 ni 优先级 id 空闲 CPU 百分比 wa 等待I/O 等待占用 CPU 百分比(若高,可能磁盘瓶颈) hi 硬件中断 si 软件中断 st 虚拟机管理 1 显示每个CPU核心的压力情况 第四行(内存使用情况) total 总共 free 空闲 used 使用 buff/cache 缓存 m 切换显示风格 第五行(交换分区 Swap) total 总共 free 空闲 used 使用 avail Mem 可用于下一次分配的物理内存 USER 进程所属用户 PID 进程ID PR 进程优先级,PR=NI+20 NI nice值(-20 最高优先级,19 最低) VIRT 虚拟内存使用量 RES 物理内存使用量 SHR 共享内存大小 S 进程状态 %CPU CPU占用百分比 P或C 按处理器使用量排序 %MEM 物理内存占用百分比 M 按内存使用量排序 TIME+ 进程占用CPU的时间 T 按 累计 CPU 时间 降序 COMMAND 进程实际命令 c 示程序的绝对路径
界面命令 k 杀死进程,输入 PID,再输入信号,默认 15 z 切换颜色显示 q 退出 r 调整进程优先级,输入 PID,再输入 Nice 值
  • htop
    • 增强版top命令

1.7 kill 进程控制

实际是给进程发信号

kill -l 查看所有信号种类 常用信号 0) 探测,检测进程是否存在,是否有权限向它发出信号,常用于脚本判断程序是否启动 1) SIGHUP 无需关闭进程而让其重新初始化,重载,PID不变,一般使用systemctl reload代替 2) SIGINT 终止进程运行,相当于Ctrl+c 3) SIGQUIT 相当于Ctrl+\ 9) SIGKILL 强制结束进程 15) SIGTERM 正常终止正在运行的进程,默认信号,一般使用systemctl stop代替 18) SIGCONT 继续运行 19) SIGSTOP 挂起进程,暂停

命令格式

kill PID 结束进程

kill -9 PID 强制结束

kill扩展命令
killall 进程名

来自psmisc包

根据进程名自动查找PID号并结束所有相关进程,信号与kill一致

pkill 进程名

根据进程名自动查找PID号并结束所有相关进程

更灵活,支持模糊匹配

pkill -t 终端名 结束指定终端的连接

pkill -f “完整进程名” 如果需要杀死同程序的不同进程(程序选项参数不同),输入完整进程名,避免误杀

1.8 进程管理其他命令

1.8.1 uptime 查看当前CPU负载
1.8.2 free 查看内存使用

free -m 以M为单位显示

free -h 以人类可读方式显示

1.8.3 查看发行版本

红帽 cat /etc/redhat-release

ubuntu cat /etc/os-release

1.8.4 uname 查看内核信息

uname -a 查看所有内核信息

uname -m 查看系统架构

uname -r 查看内核版本

1.8.5 查看CPU信息

lscpu

cat /proc/cpuinfo

nproc 统计CPU的核心数量

1.8.6 lsblk 查看硬盘和分区情况
1.8.7 lspci 查看pci设备

二、网络相关原理

1. 基础概念

网络协议:网络上所有设备所使用的共同语言

协议分层:OSI七层模型

网络中的节点:主机节点和数据交换节点(交换机,路由器)

数据传输链路:

接入链路(access link),连接主机和数据交换节点

骨干链路(backbone link),数据交换节点之间

互联网主流协议TCP/IP

1.1. OSI 参考模型

层级层级名称层级功能常见协议传输数据名称应用
7应用层为应用程序提供网络服务接口,直接与用户程序交互HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3、DNS、DHCP、TFTP、SNMP、MySQL数据/报文七层负载均衡、应用网关、WAF防火墙
6表示层数据格式转换、加密解密、压缩解压、编码转换SSL/TLS、ASCII、JPEG、MPEG、加密协议数据加密设备、格式转换器
5会话层建立、管理和终止通信会话,会话同步与恢复NetBIOS、RPC、PPTP、SDP、SQL会话数据会话控制器、会话网关
4传输层端口寻址与端到端连接,首部包含源/目的端口,决定由哪个程序处理数据TCP、UDP数据段(Segment)四层负载均衡、传输层防火墙
3网络层跨网段路由与IP寻址,首部包含源IP和目的IP地址IP、ICMP、OSPF、BGP、RIP、IGMP数据包/分组(Packet)三层交换机、路由器
2数据链路层同一局域网内点到点传输,首部包含源MAC和下一跳MAC地址LLC、MAC、PPP、以太网协议、Wi-Fi协议数据帧(Frame)二层交换机、网桥、网卡
1物理层传输原始比特流,定义物理介质与电气/机械特性RS-232、RJ45规范、光纤、双绞线、蓝牙物理层比特流(Bit)网线、光纤、集线器、中继器

1.2. TCP/IP参考模型

TCP/IP参考5层模型将OSI七层模型的应用层,表示层,会话层合并为应用层

TCP/IP协议栈常见协议

应用层HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3、DNS、DHCP、TFTP、SNMP
传输层TCP、UDP
网络层IP、ICMP、IGMP
数据链路层PPPoE、PPP、以太网协议、Wi-Fi协议
物理层

1.3 数据封装和解封装

发送方由上而下逐层添加协议头部

接收方由下而上逐层去除协议头部

1.4 IP地址

IP地址在网络中用于标识一个节点

IP地址用于在网络中寻址,具有唯一性

IP地址分为IPV4和IPV6,IPV4为主流地址

1.4.1 IPV4地址表示

IPv4地址由32个二进制数构成

为了方便表示通常采用点分十进制

IPv4地址范围: 0.0.0.0~255.255.255.255

1.4.2 IP地址构成

**网络部分:**用来标识一个网络

**主机部分:**用来区分一个网络内的不同主机

**网络掩码:**区分一个IP地址中的网络部分及主机部分

1.4.3 IP地址分类

A类:0.0.0.0~127.255.255.255 单播地址 8位掩码

B类:128.0.0.0~191.255.255.255 单播地址 16位掩码

C类:192.0.0.0~223.255.255.255 单播地址 24位掩码

D类: 224.0.0.0~239.255.255.255 组播(不能用于单个节点)

E类: 240.0.0.0~255.255.255.255 研究

1.4.4 网段

一个网络号所定义的网络范围

网络地址:用于标识一个网络,主机位全为0,表示网段/网络号

广播地址:用于向该网络中的所有主机发送数据,主机位全为1

可用地址:减去网络地址和广播地址即为可用地址

一个网段可用地址计算方法:2ⁿ-2

n为主机位数(32-掩码位数)

1.4.5 私网IP地址

A,B,C类地址预留了私网地址

A类:10.0.0.0~10.255.255.255

B类:172.16.0.0~172.31.255.255

C类:192.168.0.0~192.168.255.255

连接互联网必须使用公网地址

1.4.6 特殊IP地址

表示网段:主机位全为0,例如192.168.1.0/24

广播地址:主机位全为1,例如192.168.1.255/24

有限广播地址:IP地址全为1,255.255.255.255

任意地址:IP地址全为0, 0.0.0.0

**回环地址:**127.0.0.0/8,表示节点自身

链路本地地址:169.254.0.0/16,APIPA地址,当开启自动获取IP,但DHCP不可用时,自动给自身分配一个该地址段IP,用于同一局域网通信

1.4.7 IPV6

128个二进制数构成

1.5 TCP协议

1.5.1 TCP的建立 - 三次握手

基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接

  1. 发起方发送第一个SYN标志的TCP报文给接收方
  2. 接收方接收报文后回复一个SYN和ACK标志的TCP报文给发起方
  3. 发起方接收报文后回复一个ACK标志的TCP报文给接收方,接收方收到报文后,TCP双向连接建立

TCP使用序列号和确认序列号字段实现数据的可靠和有序传输

1.5.2 TCP的关闭-四次挥手

当数据传输完成,TCP需要通过“四次挥手”机制断开TCP连接

  1. 发起方数据传输完成后发送一个FIN标志的TCP报文给接收方
  2. 接收方接收报文后回复一个ACK标志的TCP报文给发起方
  3. 接收方数据传输完成后再发送一个FIN和ACK标志的TCP报文给发起方
  4. 发起方接收报文后回复一个ACK标志的TCP报文给接收方,TCP双向连接断开

1.6 交换机

二层交换机

实现同网段主机通信

交换机根据MAC地址转发

基于ARP协议

主机不需要配置网关

1.7 路由器

主机配置网关

跨网段通信通过网关转发

多个路由器通过静态路由或动态路由实现数据转发

1.8 VLAN

同一交换机实现不同子网划分

三、部署 WordPress 博客系统

1. 本地虚拟机部署

# 测试使用Ubuntu24.04.4# 安装mysql,apache2和PHP及所需扩展aptinstall-ymysql-server apache2 php php-mysqlnd php-gd php-xml php-mbstring php-json php-zip# 确认mysql和apache2工作状态systemctl status mysql apache2# 确认80和3306端口是否为mysql和apache2监听ss-ntlp|grep-E':80|:3306'# 确认PHP版本高于7.4,MySQL高于8.0aptlist php mysql-server# 为WordPress创建专用数据库和用户mysql CREATE DATABASE wordpress;UNINSTALL COMPONENT'file://component_validate_password';# mysql关闭强密码验证,生产环境不需要CREATEUSER'wordpress'@'localhost'IDENTIFIED BY'123456';# 生产环境不使用简单密码GRANT ALL PRIVILEGES ON wordpress.* TO'wordpress'@'localhost';quit# 安装wordpresswgethttps://wordpress.ac.cn/latest.tar.gztarxf latest.tar.gzcp-rfwordpress/* /var/www/html/# wordpress配置cd/var/www/htmlvimwp-config.phpcpwp-config-sample.php wp-config.php define('DB_NAME','wordpress');define('DB_USER','wordpress');define('DB_PASSWORD','123456');define('DB_HOST','localhost');# 修改wordpress文件所有权为apache2启动用户rm-findex.html# 删除apache2自带的初始页chown-Rwww-data:www-data /var/www/html/ ll /var/www/html/# Rocky关闭默认的防火墙策略和Selinuxsystemctl disable--nowfirewalld setenforce0sed-Ei.bak's/^(SELINUX=).*/\1disabled/'/etc/selinux/config# 查询主机IPipa

浏览器访问主机IP进行 WordPress 初始化

2. 阿里云部署

2.1 准备域名

打开阿里云并登录 - 搜索域名注册并进入 - 搜索关键字选取域名,测试环境选择价格最低的即可

这里选取了dengtest.pw,首年10元

注意在阿里云域名注册需要实名认证,准备个人身份证

在中国(港澳台地区除外)使用80和443端口上线网站需要备案,备案周期较长,生产环境业务上线需提前备案

2.2 SSL证书

域名购买后前往证书申请,申请免费证书,免费证书有效期90天

2.3 选购云服务器 ECS

登录凭证 自定义密码

登录密码 建议使用复杂密码,简单密码极易被破解,例如使用 openssl rand -base64 12 命令生成随机字符作为密码

提交下单

2.4 云解析 DNS

云服务拿到公网IP后,先完成DNS解析

2.5 远程连接云服务器

# 修改主机名hostnamectl set-hostname wordpress# 美化终端提示符(永久生效)echo"PS1='\[\033[1;36m\][\u@\h\t\w]\\$\[\033[0m\]'">>~/.bashrc&&source~/.bashrc# 终端重新连接root@wordpress:~#
2.6 部署 wordpress

放入网站证书

mkdir-p/etc/nginx/ssl

关闭传输窗口

# 安装软件包aptupdate;aptinstall-ynginx mysql-server php-fpmunzipphp-mysql# 确认安装版本,php-fpm不同版本配置文件目录不同,确认PHP版本高于7.4,MySQL高于8.0aptlist php-fpm mysql-server# 确认相关软件服务状态和端口监听systemctl status nginx php8.3-fpm mysql ss-ntlp|grep-E':80|:3306'# php-fpm配置vim/etc/php/8.3/fpm/pool.d/www.conf# 修改为远程连接;listen=/run/php/php8.3-fpm.sock listen=9000# 如果nginx和php-fpm安装在同一台服务器,删除前方;启用只允许本机连接,不开启默认任何主机都可以连接listen.allowed_clients=127.0.0.1vim/etc/php/8.3/fpm/php.ini date.timezone=Asia/Shanghai#修改时区# 修改文件上传大小限制post_max_size=128M upload_max_filesize=128M# 修改 PHP 脚本纯代码最大执行时长max_execution_time=360# 接收 & 解析客户端请求数据最长耗时max_input_time=600# 配置完成重启php-fpmsystemctl restart php8.3-fpm# nginx配置vim/etc/nginx/conf.d/www.dengtest.pw.conf# HTTP 80强制跳转HTTPSserver{listen80;server_name www.dengtest.pw dengtest.pw;return301https://$host$request_uri;}# HTTPS 443主配置(无正式证书也可运行)server{listen443ssl http2;server_name www.dengtest.pw dengtest.pw;root /data/php;index index.php;# 填写证书路径ssl_certificate /etc/nginx/ssl/dengtest.pw.pem;ssl_certificate_key /etc/nginx/ssl/dengtest.pw.key;# SSL安全加固配置ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;# 上传大小限制client_max_body_size 128m;# PHP解析规则、FPM监控页location ~\.php$|pm_status|ping{fastcgi_pass127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;include fastcgi_params;fastcgi_param HTTPS on;}}# 配置完成重启nginx服务nginx-tsystemctl restart nginx# mysql 创建数据库,用户和授权mysql CREATE DATABASE wordpress;CREATEUSER'wordpress'@'localhost'IDENTIFIED BY'123456';GRANT ALL PRIVILEGES ON wordpress.* TO'wordpress'@'localhost';quit# 安装 wordpress# 在线下载安装包,可能会429,下载失败;访问https://cn.wordpress.org/download/使用手动下载,传入云服务器wgethttps://cn.wordpress.org/latest-zh_CN.zip# 解压缩unziplatest-zh_CN.zip# 手动下单,解压包名不同unzipwordpress-7.0.1-zh_CN.zipmkdir-pv/data/phpmvwordpress/* /data/php/chown-Rwww-data:www-data /data/php/# 浏览器访问完成wordpress配置,配置方式不再赘述
2.7 wordpress 初始化

浏览器访问选购的域名:www.dengtest.pw

登录管理后台,可进行各种网站配置,发布博文等,部署完成

2.8 测试完成释放实例

http://www.jsqmd.com/news/1215171/

相关文章:

  • 安卓开发者模式与Scrcpy投屏工具实战指南
  • 如何让老旧Android电视焕发新生:原生开发直播软件完全指南
  • 从「AI 写接口」到「AI 交付接口 + 文档 + 测试」
  • 2026 成都锦江区靠谱空调维修推荐,全域持证师傅,本地口碑优先商家 - 星际AI
  • BLDC无感控制技术:反电动势法与CW32实现
  • 2026年果蔬清洗机市场大揭秘,靠谱且经验足的品牌究竟哪家强?
  • 【单片机毕业设计】基于 51 单片机的室内多环境参数智能监测与联动控制系统设计,基于51单片机的家居温湿度烟雾光照火焰综合安防调控装置开发(017502)
  • CPO技术中外置激光光源的优势与挑战
  • 为什么你的Gemini在处理合同/财报时准确率骤降?揭秘Attention机制在超长序列中的3层衰减定律
  • 30天总结--第三天
  • 亲身探访广州天梭官方售后服务中心|地址及官方客服服务电话(2026年7月最新) - 天梭服务中心
  • Python海象运算符:简化代码的实用技巧
  • 为什么coding agent大多数都基于Nodejs?
  • 2026年7月最新亨得利官方服务项目及价格查询|详细地址与电话权威信息声明 - 亨得利官方
  • 芯片设计中的IP核:概念、应用与发展趋势
  • 如何在30分钟内用Nucleus Co-Op让单机游戏变多人派对?终极分屏游戏教程
  • 电子元件分类:主动/被动与有源/无源的区别与应用
  • 3天精通gInk:Windows上最轻量的免费屏幕标注工具完整攻略
  • 工程财务管理系统如何统筹全项目收支规避资金超支与对账纠纷
  • 宝珀中国官方售后服务中心|官方电话及详细网点地址权威信息通告(2026年7月更新) - 宝珀官方售后服务中心
  • 如何在Windows上免费实现实时语音转文字:TMSpeech完整使用指南
  • 接手新项目让AI生成辅助文档一览(后端)
  • 2026年7月球阀实力厂家哪家好,HYDAC隔膜式蓄能器/球阀/电磁球阀/升降机隔膜式蓄能器,球阀厂家哪家专业 - 品牌推荐师
  • 应对网站IP频率限制:代理IP轮换策略的4种进阶玩法,再也不被封
  • 短信发件人如何展示企业名称?短信签名认证服务商推荐 - 企业服务推荐
  • CMOS芯片引脚悬空风险与处理方案详解
  • Copilot采购前必做的4项成本压力测试:并发峰值、私有模型微调、安全网关集成、审计留存——漏测=年损超$15K
  • 射频功率放大器设计中的负载牵引技术解析
  • 中国华东产业带深度解析:跨境电商卖家的核心供应链枢纽
  • 数量多不等于更聪明!90%的AI翻车,其实源于“语境中毒”