还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
培训课件从入门到实战Linux第一章简介与发展历史Linux诞生时刻开源自由1991年,芬兰大学生林纳斯·托瓦兹发Linux是开源、自由的类Unix操作系布了Linux内核的第一个版本
0.01,开统,任何人都可以自由使用、修改和启了操作系统的革命性篇章分发,体现了技术民主化的理想统治地位开源文化与社区力量Linux自由软件运动的核心GNU GPL通用公共许可证是Linux生态的基石,它保障了每个人自由使用、研究、修改和分发软件的权利这种开放性催生了全球最大规模的协作开发模式全球数百万开发者通过GitHub、GitLab等平台参与开源项目,共同推动技术创新这种去中心化的协作模式打破了传统软件开发的壁垒,加速了技术进步的步伐Linux内核:每天有数千次代码提交Apache:全球最流行的Web服务器软件Docker:革命性的容器化技术平台吉祥物企鹅Linux Tux憨态可掬的Tux企鹅象征着自由与开源精神,它代表着Linux社区的友好、包容和创新文化这只小企鹅已成为全球开源运动最具标志性的符号之一第二章系统安装与启动流程:Linux0102主流发行版介绍安装步骤演示Ubuntu:最受欢迎的桌面Linux,界面友好选择合适的发行版本后,进行磁盘分区规适合新手CentOS/RHEL:企业级服务器划根分区、home分区、swap分区,配置首选,稳定可靠Debian:历史悠久的社区网络和时区,设置用户账户,最后安装发行版,是Ubuntu的基础Fedora:前沿GRUB引导加载器整个过程通常需要技术测试平台,采用最新内核和软件20-40分钟启动过程详解第三章文件系统结构与基本命令:Linux目录结构解析常用命令示例/bin:基本用户命令二进制文件#列出文件ls-lah#切换目录cd/home/user#显示当前路径pwd#创建目录mkdir/etc:系统配置文件目录new_folder#删除文件rm file.txt#复制文件cp source.txt dest.txt#移动/重命名mv/home:用户主目录存放位置old.txt new.txt#查看帮助man ls/var:可变数据文件日志、缓存等/usr:用户程序和数据/tmp:临时文件存储/opt:第三方软件安装位置第四章文件权限与用户管理:12用户与用户组三种权限类型Linux是多用户系统,每个用户都有唯一的UID用户ID用户组GID读r=4:查看文件内容或列出目录写w=2:修改文件或在目录中用于批量管理权限root用户UID=0拥有系统最高权限,普通用户创建删除文件执行x=1:运行程序或进入目录权限分别应用于权限受限以保障系统安全文件所有者、所属组和其他用户34权限管理命令sudo权限管理chmod755file.sh修改文件权限chown user:group file更sudo允许普通用户以root权限执行特定命令通过编辑改文件所有者chgrp groupfile修改文件所属组/etc/sudoers文件配置权限,遵循最小权限原则,避免直接使用root账户操作权限表示方法符号表示数字表示rwxr-xr--754所有者:读写执行7rwx所有者组用户:读执行5r-x组用户其他人:只读4r--其他人实例应用chmod644document.txt所有者可读写其他人只读适用于文档文件第五章进程管理与系统监控:进程概念及生命周期进程是程序的运行实例,每个进程拥有独立的内存空间和系统资源进程状态包括:运行R、睡眠S、停止T、僵尸Z等父进程创建子进程,形成进程树结构ps命令查看当前进程快照,ps aux显示所有进程详细信息top/htop实时动态监控系统资源,htop提供更友好的交互界面kill命令发送信号终止进程,kill-9强制杀死进程systemctl管理系统服务和守护进程的现代化工具技巧:使用nice和renice命令可以调整进程优先级,nice值范围-20到19,数值越小优先级越高第六章软件包管理与安装:Debian系统apt RedHat系统yum/dnf#更新软件包列表sudo aptupdate#升级所有软件包sudo aptupgrade#安#安装软件sudo yuminstall httpd#更新软件sudo yumupdate#搜索软装软件sudo aptinstall nginx#搜索软件包apt searchkeyword#删除软件包yum searchkeyword#列出已安装yum listinstalled#删除软件sudo件sudo aptremove package#清理无用依赖sudo aptautoremove yumremove package#dnf是yum的现代替代sudo dnfinstall package配置软件源时,可以添加国内镜像站点如阿里云、清华大学以提高下载速度第三方软件安装可能需要手动添加PPA或第三方仓库,安装前务必验证来源可信度第七章网络基础与配置:网络基础概念网络配置命令IP地址是网络中设备的唯一标识,分为IPv4如
192.
168.
1.100和ifconfig或ip addr查看网卡信息ip route查看路由表IPv6子网掩码用于划分网络和主机部分网关是连接不同网编辑/etc/network/interfaces或使用nmcli工具配置网络重启络的桥梁,通常是路由器地址DNS负责域名解析服务网络服务使配置生效网络诊断工具IP配置方式ping测试连通性netstat-tuln查看监听端口ss-s显示静态IP适合服务器,手动指定IP、子网掩码、网关和DNS套接字统计traceroute追踪数据包路由nslookup查询DHCP自动获取IP,适合客户端设备配置文件因发行版而DNS记录异,systemd-networkd是现代化配置方式第八章文本处理与脚本编程基础:强大的文本处理工具cat/less/more grep查看文件内容,cat适合小文件,less支持上下翻页和搜索,more逐页显示文本搜索利器,支持正则表达式grep-r递归搜索目录,grep-i忽略大小写awk sed强大的文本分析工具,按列处理数据awk{print$1,$3}打印第1和第3列流编辑器,用于批量文本替换和转换sed s/old/new/g全局替换文本Shell脚本基础Shell脚本以#!/bin/bash开头,使用变量$VAR存储数据if-then-else实现条件判断,for/while循环处理重复任务函数封装可重用代码块脚本需要chmod+x授予执行权限脚本示例批量重命名文件Shell:#!/bin/bash#批量将.txt文件重命名为.bakfor filein*.txtdo if[-f$file];then newname=${file%.txt}.bakmv$file$newname echo已重命名:$file-$newnamefidoneecho批量重命名完成!这个脚本遍历当前目录下所有.txt文件,使用参数扩展${file%.txt}去除扩展名,然后添加.bak后缀-f测试确保是普通文件保存为rename.sh后,运行chmod+xrename.sh./rename.sh执行第九章开发环境搭建:LinuxC/C++开发环境1安装GCC编译器sudo aptinstall build-essential使用gdb调试程序,设置断点、单步执行、查看变量Makefile管理大型项目编译过程Valgrind检测内存泄漏问题2Python开发环境大多数Linux自带Python3使用pip安装第三方库pip installrequests创建虚拟环境隔离项目依赖python-m venv编辑器选择3myenvPyCharm或VSCode提供强大的IDE支持Vim:终端文本编辑器之王,学习曲线陡峭但效率极高Nano:简单易用的终端编辑器,适合新手VSCode:通过Remote-SSH插件实现远程Linux开发,结合图形界面和命令行优势4版本控制Git是必备技能,用于代码版本管理和团队协作学习gitclone、add、commit、push、pull等基本操作GitHub和GitLab提供代码托管服务第十章磁盘管理与文件系统:磁盘分区与格式化LVM逻辑卷管理使用fdisk或parted进行磁盘分区fdisk适合MBR分区表最大2TB,parted支持LVM提供灵活的存储管理方案,支持动态调整分区大小物理卷GPT无大小限制分区后使用mkfs命令格式化,如mkfs.ext4/dev/sdb1创建ext4PV→卷组VG→逻辑卷LV三层结构可以在不停机情况下扩展或文件系统缩减分区,是企业服务器的标准配置挂载与卸载设备磁盘监控mount/dev/sdb1/mnt/data将分区挂载到指定目录umount/mnt/data卸载设•df-h:查看磁盘使用情况备编辑/etc/fstab实现开机自动挂载使用UUID标识设备更可靠,避免设备名变化•du-sh:查看目录大小问题•quota:设置用户磁盘配额•iostat:监控IO性能第十一章日志管理与系统安全:日志文件位置日志轮转/var/log目录存储各类日志syslog记录系统消息,auth.log记录认证logrotate自动管理日志文件,防止占满磁盘配置文件位于信息,kern.log记录内核日志,apache2/nginx存储Web服务器日志/etc/logrotate.d/可设置按大小或时间轮转,压缩旧日志,删除过期使用tail-f实时查看日志更新文件防火墙配置SSH安全iptables是底层防火墙工具,规则复杂但功能强大firewalld提供更禁用root远程登录,使用密钥认证替代密码修改默认22端口,配置友好的接口,使用zone概念管理规则ufw是Ubuntu的简化防火墙fail2ban防暴力破解定期更新系统补丁,及时修复安全漏洞工具第十二章容器技术与入门:Docker容器与虚拟机的区别虚拟机运行完整的操作系统,资源开销大,启动慢容器共享宿主机内核,只包含应用及依赖,轻量高效,秒级启动容器之间相互隔离,但比虚拟机隔离性稍弱0102Docker安装基本命令在Ubuntu上:sudo aptinstall docker.io启动服务:sudo systemctlstart docker将docker pull拉取镜像,docker run创建容器,docker ps查看运行容器,docker stop停止用户加入docker组避免每次使用sudo容器,docker rm删除容器0304镜像管理Dockerfile编写docker images列出本地镜像,docker rmi删除镜像Docker Hub是官方镜像仓库,包FROM指定基础镜像,RUN执行命令,COPY复制文件,CMD指定启动命令docker含数十万预制镜像build构建自定义镜像核心概念Docker镜像Image容器Container只读模板,包含应用运行所需的所有内容镜像的运行实例,可以启动、停止、删除仓库RegistryDocker引擎存储和分发镜像的服务,Docker Hub是公共Docker守护进程,负责管理容器生命周期仓库第十三章实战案例一搭建个人服务器:-Web安装Web服务器Apache:sudo aptinstall apache2,稳定成熟,模块丰富Nginx:sudo aptinstall nginx,高性能,适合高并发场景两者均默认监听80端口配置虚拟主机在/etc/nginx/sites-available/创建配置文件,指定server_name和root目录ln-s创建软链接到sites-enabled/配置多个虚拟主机实现单服务器托管多个网站防火墙规则开放HTTP80和HTTPS443端口:sudo ufwallow80/tcp和sudo ufwallow443/tcp启用防火墙:sudo ufwenable部署应用静态网页直接放到/var/www/html/PHP应用需安装php-fpmNode.js应用使用PM2管理进程配置SSL证书Lets Encrypt免费实现HTTPS监控与维护定期查看access.log和error.log使用tail-f实时监控配置logrotate管理日志大小监控服务器资源使用情况,及时扩容第十四章实战案例二自动化备份脚本:-备份需求分析定时任务配置确定备份内容数据库、配置文件、用户数据、备份频率每日/每周、保留策略保使用crontab-e编辑定时任务每天凌晨2点执行备份:留最近7天、存储位置本地/远程服务器02***/home/user/backup.sh/var/log/backup.log21Shell脚本实现#!/bin/bashDATE=$datecron语法:分时日月周将输出追加到日志文件+%Y%m%dBACKUP_DIR=/backupSOURCE_DIR=/var/www#创建备份tar-czf$BACKUP_DIR/web_$DATE.tar.gz$SOURCE_DIR#删除7天前的备份备份恢复演示find$BACKUP_DIR-name web_*.tar.gz-mtime+7-deleteecho备份完成:web_$DATE.tar.gz#解压备份文件tar-xzf web_
20240115.tar.gz-C/tmp/restore#恢复到原位置sudo cp-r/tmp/restore/*/var/www/#验证数据完整性diff-r/var/www/tmp/restore最佳实践:异地备份至关重要!使用rsync或scp将备份传输到远程服务器,防止本地灾难导致数据丢失第十五章性能调优基础:Linux性能瓶颈识别CPU瓶颈使用top查看CPU使用率,%us用户空间和%sy内核空间过高表示CPU繁忙uptime查看负载平均值,1分钟负载超过CPU核心数说明负载过高mpstat详细显示每个CPU核心使用情况内存瓶颈free-h查看内存使用available是真正可用内存swap使用率高说明物理内存不足vmstat显示内存换页情况,si/so列非0表示频繁交换考虑增加内存或优化应用磁盘IO瓶颈iostat-x1显示磁盘IO统计%util接近100%表示磁盘饱和await是平均等待时间,过高影响性能iotop查看哪个进程占用IO使用SSD或优化读写模式改善网络瓶颈iftop监控网络流量netstat-s查看网络统计丢包率高或延迟大需检查网络配置调整TCP参数net.ipv
4.tcp_*优化网络性能系统参数调整编辑/etc/sysctl.conf修改内核参数,如增大文件描述符限制、调整TCP缓冲区大小、优化虚拟内存使用ulimit-a查看当前限制,ulimit-n65535提高文件打开数限制第十六章常见问题排查与解决技巧:系统启动失败网络连接异常检查GRUB配置是否损坏,使用Live CD启动后chroot修复查看ping测试连通性,无法ping网关检查网线和网卡DNS问题尝试ping/var/log/boot.log寻找错误信息文件系统损坏使用fsck修复内核IP地址检查防火墙规则是否阻止连接查看路由表确认默认网关panic检查硬件兼容性或回退到旧内核配置正确重启网络服务或重新获取DHCP权限错误软件依赖冲突Permission denied检查文件权限ls-l和所有权sudo权限不足查看apt或yum报告依赖问题,先sudo aptupdate更新索引使用apt-/etc/sudoers配置SELinux导致的权限问题使用ausearch查看拒绝cache depends查看依赖关系强制安装可能破坏系统,优先寻找兼日志,调整策略或临时禁用容版本dpkg-l查看已安装包版本黄金法则:遇到问题先查看日志文件!90%的问题可以通过日志找到线索学会使用grep过滤关键词,dmesg查看内核消息命令行界面Linux命令行是Linux的灵魂,看似简陋的黑底白字界面蕴含着无穷力量掌握命令行,你将拥有比图形界面更高的效率和更精确的控制力第十七章生态与学习资源推荐:Linux官方文档与手册社区论坛开源项目参与在线课程man手册是最权威的参考资料,info Stack Overflow是问答首选GitHub上搜索感兴趣的项目从Linux基金会的LFS101免费入门课命令提供详细文档各发行版官Reddit的r/linux活跃度高中文社简单issue开始,阅读代码学习最佳程Coursera和Udemy有大量付网有完整的安装配置指南Linux区推荐ChinaUnix、LinuxSir参实践提交pull request贡献代费精品课程B站、慕课网等中文内核文档kernel.org适合深入学与讨论,帮助他人也是学习过程码参与开源是提升技能的最快平台资源丰富系统化学习建立习途径完整知识体系推荐书籍《鸟哥的Linux私房菜》:中文经典入门书籍《Linux命令行与shell脚本编程大全》:深入命令行《UNIX环境高级编程》:系统编程权威指南第十八章职业发展路径:LinuxLinux系统管理员负责服务器日常运维、安全管理、性能优化需掌握Shell脚本、网络配置、故障排查入门级职位,薪资6K-15K运维工程师管理大规模服务器集群,实现自动化运维精通监控告警、日志分析、容量规划需要3-5年经验,薪资15K-30KDevOps工程师打通开发与运维壁垒,建设CI/CD流水线掌握Docker、Kubernetes、Jenkins、Ansible等工具高薪岗位,薪资25K-50K云计算架构师设计云基础设施,优化成本和性能精通AWS/阿里云等云平台,熟悉微服务架构资深职位,薪资40K-80K认证考试RHCERed Hat认证工程师:业界认可度高LFCS/LFCELinux基金会认证:厂商中立CKA/CKADKubernetes认证:云原生方向认证能证明技术实力,但实际经验更重要课程总结与学习建议学习方法论制定学习计划1动手实践第1-2个月:掌握基本命令、文件系统、权限管理每天1-2小时上机练习理论再多不如敲一行命令搭建虚拟机或云服务器,把学到的每个命令都亲自运行一遍第3-4个月:学习Shell脚本、网络配置、服务管理完成3-5个小项目第5-6个月:深入系统管理、性能调优、安全加固准备认证考试2解决实际问题持续进阶:学习容器技术、云计算、自动化运维工具参与开源项目贡献给自己设定小项目,如搭建个人博客、自动化备份脚本在解决问题过程中深化理解3阅读源码优秀开源项目的代码是最好的教材从简单工具开始,逐步理解设计思想和最佳实践4持续学习技术日新月异,保持好奇心和学习热情关注技术博客、订阅newsletter、参加技术会议附录一常用命令速查表:Linux文件操作系统管理•ls-lah:详细列表•sudo:提权执行•cd/path:切换目录•ps aux:查看进程•pwd:当前路径•top/htop:资源监控•mkdir-p:创建多级目录•kill-9PID:杀进程•rm-rf:强制删除•systemctl:服务管理•cp-r:递归复制•df-h:磁盘使用•mv:移动/重命名•free-h:内存状态•find:搜索文件•uptime:系统运行时间•chmod755:修改权限•reboot:重启•chown user:group:改所有者•shutdown-h now:关机网络命令文本处理•ip addr:查看IP•cat file:查看文件•ping:测试连通•less file:分页查看•netstat-tuln:端口监听•head-n10:前10行•ss-s:套接字统计•tail-f:实时查看•curl:HTTP请求•grep pattern:搜索文本•wget:下载文件•awk{print$1}:列处理•ssh user@host:远程登录•sed s/old/new/g:替换•scp:远程复制•wc-l:统计行数•nslookup:DNS查询•sort:排序•traceroute:路由追踪•uniq:去重快捷键技巧Ctrl+C:中断命令|Ctrl+Z:挂起进程|Ctrl+D:退出终端|Ctrl+R:搜索历史|Ctrl+L:清屏|Tab:自动补全|!!:执行上条命令|history:查看历史附录二:Shell脚本常用语法与示例变量与函数循环结构#定义变量NAME=LinuxCOUNT=10#使用变量echo Hello$NAMEecho Countis${COUNT}#定义函数function greet{local#for循环for iin{
1..5};do echoNumber:$idonefor filein*.txt;do echoProcessing$filedone#while循环user=$1echo Welcome,$user!}#调用函数greet Alicecounter=0while[$counter-lt5];do echoCounter:$counter counter++done#until循环num=0until[$num-ge5];do echoNum:$num num++done流程控制#if条件判断if[$COUNT-gt5];then echoCount大于5elif[$COUNT-eq5];then echoCount等于5else echoCount小于5fi#case语句case$NAME inLinux echoLinux系统;;Windows echoWindows系统;;*echo未知系统;;esac输入输出重定向#标准输出重定向echo textfile.txt#覆盖echo morefile.txt#追加#标准错误重定向command2error.log#同时重定向commandoutput.log21#管道cat file.txt|grep keyword|wc-l附录三系统安全加固要点:Linux用户权限最小化1禁用不必要的用户账户,删除默认账户普通用户通过sudo执行特权操作,精确控制sudo权限定期审计用户列表和权限配置设置强密码策略,强制定期更换密码网络安全配置2配置防火墙只开放必要端口SSH禁用root登录,修改默认22端口使用fail2ban防止暴力破解配置TCP Wrapper限制访问来源禁用不必要的网络服务系统加固措施3及时安装安全更新和补丁启用SELinux或AppArmor强制访问控制配置文件完整性监控如AIDE禁用不必要的内核模块设置合理的文件权限,敏感文件设为600或400日志审计4启用详细的系统日志记录配置远程日志服务器备份日志使用auditd审计系统调用定期分析日志发现异常行为使用SIEM工具集中管理日志数据保护5重要数据加密存储LUKS磁盘加密定期备份并测试恢复流程备份文件异地存储使用HTTPS加密传输敏感数据配置自动化备份脚本应用安全6及时更新应用软件版本从官方源安装软件,避免未知来源Web应用使用WAF防护数据库配置访问控制禁用不必要的服务和端口谢谢观看!开始你的探索之旅吧Linux!持续学习社区交流实践为王Linux世界浩瀚无垠,保持好奇心,每天进步一加入Linux社区,与全球开发者交流学习提理论知识只是起点,真正的技能来自无数次的点点,你会发现这段旅程充满惊喜与成就感问、解答、分享,在互助中共同成长动手实践搭建项目,解决问题,在实战中精进推荐资源《Linux101》在线教程-中国科学技术大学Linux用户协会出品Linux基金会免费课程、GitHub开源项目、StackOverflow问答社区欢迎提问与交流!Linux学习之路虽有挑战,但每一步都值得祝你成为Linux高手,在开源世界里自由翱翔!。
个人认证
优秀文档
获得点赞 0