web开发级Centos颠覆实战
web开发级Centos颠覆实战第一章:利用C语言开启奇葩学习之旅
第1讲:热身课:赚钱是我们的学习动力--开启我们的颠覆学习模式
我们的第一课开启啦。通过一个热身课程希望大家做好充分的“被颠覆、刷脑”准备。为什么要用centos?很简单,企业里用的比较多。为了赚钱我们要毫不犹豫的选择学习它
第2讲:把自己的名字也弄成命令行--秒懂所谓的命令行
很多同学一直觉得Linux命令行是一个高深莫测的东西,并真的以为每个命令都是操作系统来识别的。真的吗?本节课来颠覆大家的三观
第3讲:物理老师代课:为啥我下载的软件都要用make命令
上节课我们学会了gcc编译一个程序。然而问题来了,我下载PHP源码编译时然而并不是gcc啊。这是为啥呢?这节课来深度剖析。
第4讲:vi软件怎么极简用?老师逼你学过指针没?
为了后面的学习,这节课我们不得不先学个命令模式下的vi使用。学会后,立马用它来继续学习我们的C知识。譬如"噩梦般"的指针,用实战思维来学习一点不难
第5讲:不要让你的程序孤独存在:理解什么是依赖
很多web程序员甚至是有些经验的程序员都并不是十分理解依赖是怎么回事。为什么装一个软件还需要这么多的依赖库要另外安装?看完这堂课,你也许就明白了。
第6讲:让自己的小程序能够安装(make install)
我们以前下载的软件都需要执行make,然后还要make install。既然make 我们已经知道怎么玩了。那么make install又是什么鬼?
第7讲:让自己逐步成为Linux的"上帝":起步
本节课我们用最简单的c语言模拟Linux命令实现的功能。并创建一个程序叫做"god",未来我们将逐步成为"上帝"。本课时学到的命令有:pwd、echo、mkdir、which
第8讲:上帝之手:环境变量(一),并用C语言获取变量
不管是windows还是linux都要用到环境变量。本课时用命令模式和C语言同时对环境变量进行获取和设置
第9讲:上帝之手之:永久环境变量(装逼的方法)
我们在下载第三方软件时,经常很讨厌的被告知要设置环境变量才能运行。心里很烦躁,这节课我们也来装一下逼,自己写个程序,并要求用的人必须设置环境变量才能运行
第10讲:我用GOD程序模拟cat读文件
我们尽可能的通过C语言来模拟Linux原生命令,只有这样才能相对彻底、深入的了解Linux。同时为我们做web开发打下深厚的基础。譬如本课讲到的读取文件
第11讲:读取文件的花样学问(理科生反而学不好编程是因为英文不好?)
读取文件一直是我们程序员在维护系统如查看日志时的重要技能。其实Linux本身的文件命令还是很强大的,但是如果稍作创新自己也能模拟或超越Linux自带的命令。就看你愿意不愿意
第二章:逼自己学shell脚本
第12讲:开始逼自己学shell脚本,快速理解课
我们访问网站,中间隔了一个浏览器。否则你以为能直接访问网站?同样,shell也是隔在操作系统和我们之间的桥梁。那么浏览器有javascript,那么shell也有脚本。本节课开始快速入门
第13讲:用shell脚本初始化日志:学习if语句和变量赋值
假设我们做了一个很屌的软件,为了加强用户体验,我们肯定要写一个shell脚本文件对软件进行初始化。本课时假设做一个日志文件的初始化,通过模拟需求来学习shell脚本的条件语句和变量赋值
第14讲:模拟软件升级之下载命令和sed文件读取指定行
如果我们做了一个很屌的软件,要实现在线更新。那么使用shell脚本来完成是再好不过了。本节课模拟一个最简单的功能,自动下载和文件读取。其中学到了wget命令和sed命令。
第15讲:模拟软件自动升级之模拟POST提交:curl初步使用
如果我们做了一个很屌的软件,每次运行时需要自动到网上去匹配版本。如果版本小则需要下载更新包。本课时学到curl工具初步。并讲解如何简单获取网页上的功能。后面的课时还会继续深化使用
第16讲:模拟软件自动创建用户(一):创建用户学习
有时我们从网上下载的软件如apache,会自动创建一个用户来运行。那么这到底是为什么呢?我们这两课用一个功能来模拟实现和学习一下。本课学习useradd、userdel、usermod等常用命令
第17讲:模拟软件自动创建用户(二):判断用户是否存在的两种办法
本节课我们要学到1、grep命令 2、stdin参数使得修改密码不提示 3、学会通过$?来判断上一个命令执行状态。灵活使用各种知识点来完成一个功能。
第18讲:模拟软件自动创建用户(三):让程序只能普通用户执行
有时候我们下载了软件如apache等,装好后都会写一个启动脚本,让普通用户身份去执行。那么这个脚本该怎么实现呢?本课我们要学到1、su 命令 2、/dev/null黑洞 3、普通用户的环境变量文件等
第19讲:SSH学习(一):普通进程是怎么产生和消失的
本节课从学习SSH概念开始,我们发现SSH的概念中有个“守护进程“的说法。那么什么是进程?什么是守护进程?这节课我们先学习普通进程,本课学到ps命令
第20讲:我要为你生猴子之:怎么理解Linux中的多进程
为什么要了解进程?不管我们是运维人员还是web开发人员,未来对我们的系统进行维护或者开发扩展都会需要进程知识。那么怎么理解多进程呢?上节课我们用C语言创造了一个母猴子,这节课我们来生小猴子
第21讲:解开我们内心深处的迷惑:抱大腿就能成为守护进程
一直有同学很迷惑什么是守护进程。其实往往我们被"守护“两个字给迷惑了。守护进程也是一个普通进程,只不过它抱了一个大腿,那就是Linux的长老进程---init
第22讲:让我们自制的守护进程以服务的方式启动(一)
上节课我们做了一个丑陋的守护进程。那么怎么让它启动的时候比较高端呢?譬如service xxx start。本节课来解开这个疑惑。另外我们在学习过程中却发现了另外一个问题。。。。。
第23讲:自制守护进程以服务的方式启动(二):让我们的服务以xxoo的方式启动
很多学员一直觉得在Linux里执行service xx start是一个很神秘的事情。那么我们这两课就来破破这个逼格。譬如执行service shenyid xxoo 就可以启动我们的服务。本课有点污秽,请谨慎观看。
第24讲:自制守护进程以服务的方式启动(三):杀杀杀
前面我们通过自定义参数控制进程的启动。这节课我们来正式启动我们自己编写的守护进程。那么如果操作失误导致进程多启动了一个,我们该如何正确的杀掉进程呢?(本节课有思考题)
第三章:iptables+apache+python红蓝军大战篇
第25讲:iptables实战学习(一):随手拉一个apache做垫背快速入门
iptables是Linux里面安全层面很重要的环节,作为web程序员我们应该学到什么程度也是很重要的。这节课我们将随手拉一个apache作为垫背,进行学习iptables的开章。
第26讲:禁止IP访问,和查找通信IP初步
本节课完成上节课的思考题。同时开始学习netstat相关命令。为后面的python课时做准备
第27讲:python开始介入我们的课程啦
为了更好地理解本章节,本课时开始引入python。演示了常见的使用python的方法。下节课开始将在实战中学习Linux 级python
第28讲:Python模拟访问apache并分析(一):Python模拟访问apache并分析(一):用python模拟访问网站
本节课我们使用python+shell来提高我们的知识水平。这节课开始我们又要学python又要玩shell又要熟悉apache.有压力才会有动力
第29讲:Python模拟访问apache并分析(二):使用awk工具分析日志初步
上节课我们用python模拟访问了网站,那么这节课我们来分析,学习到一些命令如awk、sort、uniq等。分析出访问最高的IP地址
第30讲:Python模拟访问apache并分析(二):使用python分析日志初步
本节课使用python写代码来分析上节课的apache日志。大家可以比对一下,用 shell和python实现相同功能有什么区别,各有什么好处
第31讲:Python模拟访问网站并分析(三):python伪装初步、"臭骂"让人讨厌的IP请求
本节课我们使用python的 urllib2库来学习如何设置响应头,从而在apache日志中看不出我们的请求类型。同时如果我们揪出一个讨厌的请求IP,该怎么办?除了禁止它,还能臭骂它!!! 本节课结合有趣的案例给大家讲解iiptables nat转发
第32讲:Python模拟访问网站并分析(四):蓝军当道之python模拟登录和cookie伪装
沿着上节课的情节,网站管理员为了防止外部用工具访问,开始做起了防范。然后一开始的手段比较low. 仅仅是做了一个用户登录,也没有做任何加密。于是这节课,我们的python(蓝军)依然可以轻松的来伪造cookie用机器来访问网站
第33讲:Python模拟访问网站并分析(五):红军当道之再次防守
网站管理员(红军)为了再次阻挡python机器访问。又一次做出了防守,这次是用加密cookie的方式来防护。那么为什么要加密。加密有啥具体作用呢?请看视频
第34讲:Python模拟访问网站并分析(六):蓝军崛起之最简单的多线程疯狂访问
这节课蓝军又坐不住了。既然你加密了cookie,我没法篡改,但是我照样有其他办法来搞垮你、锤炼你。于是这节课我们的python用疯狂多线程攻击法来干我们的apache,请看视频
第35讲:Python模拟访问网站并分析(七):红军殊死阻拦之限制IP并发数
蓝军继续疯狂攻击,把访问线程增加到了3000个。那么这回红军该怎么防护呢?请看本课时情节
第四章:Apache应用和优化篇
第36讲:Apache应用和优化篇(一):编译安装最新的apache
本节课开始进入apache应用和优化篇。首先是全手工编译和安装最新的apache。并手动启动。
第37讲:Apache应用和优化篇(二):探一探apache工作模式之prefork
本节课我们正式开始学习apache的优化篇。首当其冲的是要学习apache的运行模式,对这个了解了 我们才有资格再去学什么配置网站。否则有啥卵用呢?
第38讲:Apache应用和优化篇(附加课时):编译安装以及重新认识PHP
Apache应用和优化篇(附加课时):编译安装以及重新认识PHP。
第39讲:Apache应用和优化篇(三):凭什么PHP和apache能够"苟合",我也要
上两节课我们手工装好了apache和编译好了PHP。并让PHP以模块的方式嵌入到apache 中。那么加入的配置行我们会发现一个问题,凭啥LoadModule后PHP就能解析?我也想要这样行不行?这节课用web程序员角度帮助大家理解。世界上没啥是不可能的
第40讲:Apache应用和优化篇(四):让PHP故意变慢,用户付钱立马提升性能
网上有篇文章叫做吐槽看到过的最操蛋代码,其中有个网友吐槽看到在网站提交部分故意写代码空等一秒,老大说,万一将来用户有需求,可以随时提高一倍性能。好吧,这节课我们索性来实现一下这个操蛋代码。
第41讲:Apache应用和优化篇(五):prefork模式下优化之的内存篇(自虐1)
本节课在前面几课装好PHP后,继续开始学习我们的apache优化。利用python小脚本完成站点测试,本课重点学习的awk命令统计内存
第42讲:Apache应用和优化篇(六):使用apache自带的压力测试工具--ab(自虐2)
这节课我们学习并使用apache的ab工具来压力测试。测试过程中我们来不断跳转apache的参数,以达到优化状态。注意,调整方法和机器环境有关系,并没有特定的、通用的公式
第43讲:Apache应用和优化篇(七):静态网站和动态网站的优化参数
Apache应用和优化篇(七个):静态网站和动态网站的优化参数、keepalive参数的设置方法
第44讲:Apache应用和优化篇:修改apache工作模式之worker模式
这节课我们来把apache的工作模式更改到worker模式。需要2次重新编译,有些坑视频中踩一踩给大家看。
第45讲:Apache应用和优化篇:apache2.4中的多站点配置
本课程主要讲述在apache2.4中进行多站点配置的方法。其配置方法和apache 2.2.x版本有不同,有几个坑需要注意。
第五章:Mysql应用和优化篇
第46讲:mysql5.7以上编译安装和启动
本课时开始进入mysql应用和优化篇,注意。这一章的角度和mysql专项课程角度不同,是从Linux角度学习mysql。
第47讲:mysql编译和安装好后为什么客户端连不上?
其实有很多同学踩过这个坑。连不上一定要深入理解为什么连不上,而不是疯狂的百度。否则下次换个原因连不上还是不知道怎么解决
第48讲:带着场景学习之商品和订单处理(1):mysql开发和shell结合初步
这节课我们开始设计一个场景,只有在场景中学习才是最快的。首先我们要学会使用mysql客户端,话说您真的了解mysql客户端吗?它怎么和shell结合呢?
第49讲:附加课:纯净手工编译的PHP如何加入pdo_mysql扩展 (不求人)
很多新手在解决这个问题时被网上很多抄来抄去的文章误导。换了其他扩展后依然不会处理。这节课看似简单,不过也许会有很多你不知道的细节在里面(高手绕道)
第50讲:shell完成商品销量排行的统计和交互(2):倒插数据库法
我们继续带着场景学习。前面的课程我们设计好了简单的商品表和订单表,这节课我们来完成商品排行的实现。在压力较大的系统中,商品的销售排行往往不可能是及时读取的,那么怎么做呢?今天讲第一种方法
第51讲:shell完成商品销量排行的统计和交互(3):纯爷们shell处理
上节课我们使用了shell+mysql客户端使用SQL语句的方式来完成,这节课我们几乎不使用SQL语句。而是纯爷们的干一次纯shell脚本来完成销量排行
第52讲:用shell的方式手撕mysql僵尸连接
本课主要演示了在shell中如何通过mysql客户端,批量杀掉“僵尸”连接,以释放服务器资源
第53讲:Mysql调优学习:两行代码探知mysql是否可用(上)
mysql作为我们系统的核心,有时候我们需要及时得知它是否有效。那么这节课我们用简单的方法来测试一下。请大家思考如何让我们的mysql"变得不可用呢?"
第54讲:手撕mysql使其无法连接以及定时任务检测mysql自动重启
上节课我们做了一个简单的脚本来判断mysql是否可用。如果不可用则重启。但是如果你想更好的呵护mysql,你首先得知道怎么破坏它。这节课我们来手撕mysql,使其无法连接。并且通过定时任务的方式每隔一分钟检测一下。
第55讲:[附加课]如何在一台机器上启动多个mysql实例?
我们在前面的课程配置了3306作为端口启动mysql实例,如果此时我们资金紧张,又想同时再启动1个或多个实例该怎么办?
第六章:Redis学习篇
第56讲:redis学习篇开张:手工安装和基本配置
本节课开始学习redis。要用好redis远没有大家想的那么简单。请不要跳课学习。本课讲解手工安装和有技巧的学习方法。
第57讲:redis学习篇:hash数据类型学习之设计网站在线人数功能 (上)
我们要设计一个实战需求来配合学习才能学得更好。这节课我们设计一个网站在线人数实现的需求。
第58讲:网站在线人数统计 (下)纯爷们使用shell处理超时用户
上节课我们无脑的实现了用户登录后插入数据进redis.这样我们只需执行hlen就可以获知在线人数。但是如果用户长时间无请求或死机了或昏厥过去了,怎么剔除这些数据呢?本节课我们用shell+redis来处理,纯爷们
第59讲:redis学习篇:Set数据类型学习和应用场景介绍
本节课我们来简单学习set数据类型,并介绍相关的应用场景
第60讲:redis实现消息队列(1):sorted set学习
redis可以实现非常强大的消息队列功能。在这之前我们要先把另外一个数据类型sorted set给学了。
第61讲:redis实现消息队列(2):基本消息队列构建(PHP+shell)单点处理
本节课讲解第一种简单的方法。用PHP在网页上发起任务队列,然后利用shell来获取后模拟处理。目前是单点处理,后面会讲到"抢任务“的情况
第62讲:redis实现消息队列(3):PHP读取redis队列之PHP多进程编程初步
PHP如果用的好,完全可以在某些层面上代替python。这节课我们来讲一下如何使用PHP开发多进程程序。从而为下节课进一步学习php+redis处理队列做准备
第63讲:redis实现消息队列(4):PHP读取redis队列并发处理、加锁简单实现
这节课我们学会使用PHP完成多进程的 redis队列调用。代码有点多,大家可以下载后根据视频提示点应用到实际项目中。
第七章:nginx学习篇
第64讲:Nginx学习篇(一)安装和基本配置
本章是本课程的最后一章。开始从web角度学习Nginx的基本应用。
第65讲:因为省钱:Nginx反向代理PHP+Apache初步
这节课我们来初步学习一下Nginx反向代理php+apache。为什么要怎么做?很大一部分原因和省钱有关
第66讲:Nginx负载均衡PHP+Apache和所谓的Session共享
Nginx负载均衡PHP+Apache的最简单配置学习。和“所谓的”session共享到底是什么?
第67讲:总结课:Nginx扩展知识点和”终极”实战建议
本课程是面向web程序员应该学习的Linux基础课程。
**** Hidden Message *****
页:
[1]