1.码上去学:C++从入门到进阶的脚脚本系列书籍推荐!
2.深入学习Repo
3.「自动化测试」新一代Web前端自动化测试框架——playwright快速上手!本学编程
4.webå®å
¨è¦å¦ä»ä¹
5.鸟哥的南源Linux私房菜:基础学习篇目录
码上去学:C++从入门到进阶的系列书籍推荐!
要多读书,入门读好书!脚脚本在学习编程的本学编程redis源码对象系统过程中,反复阅读书籍能带来新的南源收获,尤其在工作年限和经验积累之后,入门对内容的脚脚本理解会更加深刻。下面将为您推荐C++从入门到进阶需要阅读的本学编程一些经典书籍。
首先,南源C++的入门入门阶段,需要打好C语言的脚脚本基础。
1.1《C语言程序设计》(谭浩强著):这本书是本学编程学习C语言程序设计的优秀教材,被全国大多数高校选用,南源是学习C语言的主流用书。内容通俗易懂,是初学者的必备书籍。在排查编译问题时,翻阅相关章节,精准的文字表述让人豁然开朗,很多学生时代难以理解的内容,在工作后有了更深刻的理解。
1.2《C++ Primer 中文版(第5版)》:这是学习C++语言最经典的入门教材,详细讲解了C++语言的基础语法和概念。最新第5版全面采用C++标准,爱看tv直播源码体现了C++语言的重大进展。丰富的教学辅助内容、醒目的知识点提示以及精心组织的编程示范,使得本书在C++领域权威性更加强大。无论是初学者还是中高级程序员,本书都是首选。
接下来,学习C++应用开发阶段,可以关注以下书籍。
2.1《VC++深入详解》(孙鑫著):本书是学习Windows编程的入门经典教材,从实际应用出发,深入浅出地讲述Windows程序内部运行机制、MFC框架、文本、菜单、对话框、文件操作、网络编程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题。
2.2《深入浅出MFC》(侯捷著):本书是学习MFC编程的经典教材,分为四大篇。从学习MFC程序设计的php 源码反编译基础知识到掌握Visual C++开发环境,再到深入理解MFC框架的骨干程序,最后以微软公司提供的范例程序Scribble为主线,深入讲解Runtime Type Information (RTTI)、Dynamic Creation、Persistence (Serialization)、message Mapping、Command Routing等核心技术。
随后,C++的进阶阶段,推荐以下书籍。
3.1《Effective C++:改善程序与设计的个具体做法》(Scott Meyers著):本书被誉为C++程序员的必读书籍,世界顶级C++大师Scott Meyers的成名之作,读过此书将极大提升C++编程功力。
3.2《More Effective C++:个改善编程与设计的有效方法》:这是Scott Meyers的Effective系列书籍之一,是Effective C++的进阶版本,深入理解C++编译器如何解释代码,才能写出健壮的软件。
3.3《STL源码剖析》(侯捷著):本书详细讲解了STL在各种C++项目中的应用,深入剖析了vector、list、heap、deque、Red Black tree、hash table、set/map的爬虫程序python源码实现,以及各种算法(排序、查找、排列组合、数据移动与复制技术)的实现。
此外,掌握Windows编程,推荐以下书籍。
4.1《Win多线程程序设计》(Jim Beveridge/Robert Wiener著):本书详细讲解了Windows系统中的多线程编程技术,分为三篇,涵盖线程的启动、结束、核心对象、同步机制等。
4.2《Windows核心编程》(Jeffrey Richter/christophe Nasarre著):本书是Windows核心编程的经典指南,深入理解Windows特性,适合Windows开发人员使用,全面修订第5版针对Windows XP、Vista和Server 进行了内容更新。
对于Linux系统学习,推荐以下书籍。
5.1《鸟哥的Unix私房菜》:本书是Linux入门书籍,系统地介绍了Unix系统起源、文件系统、命令、Shell脚本、美丽说 swift 源码系统安全、系统特性等内容,适合初学者。
5.2《Linux内核源代码情景分析》:本书采用情景会话教学方法,全面深入剖析Linux核心源代码,对Linux的独特优点和改进点进行评述。
在汇编与软件调试方面,推荐以下书籍。
6.1《汇编语言》(王爽著):本书是汇编语言学习者的必备宝典,采用全新结构组织内容,深入讲解汇编语言的关键环节。
6.2《IDA Pro权威指南》(Chris Eagle著):本书介绍了应用广泛的静态反汇编工具IDA Pro的使用方法,给出大量图例和C代码实例,帮助读者掌握TCP/IP的实现。
在设计模式、数据结构与算法方面,推荐以下书籍。
8.1《boost程序库完全开发指南》(罗剑锋著):本书全面介绍了boost库的用法及其在实际开发中的应用。
8.2《大话设计模式》(程杰著):这本书通过趣味问答方式讲解设计模式,让初学者更容易理解设计原则和设计过程。
8.3《设计模式:可复用面向对象软件的基础》(Erich Gamma/Richard Helm/Ralph Johnson著):本书精选出个设计模式,总结面向对象设计的经验,并以简洁可复用的形式表达出来。
8.4《数据结构与算法分析》(Mark Allen Weiss著):本书是学习数据结构和算法的经典著作,通过C程序实现,强化了对抽象数据类型概念的理解。
8.5《算法导论》(Thomas H. Cormen著):本书全面讨论各类算法,注重严谨性和全面性,适合不同层次的读者学习。
以上书籍覆盖了从C++入门到进阶的各个阶段,无论你是初学者还是有一定经验的开发人员,都能从中找到适合自己的学习资料。希望这份推荐能帮助你进一步提升编程技能,欢迎持续关注码上去学!
深入学习Repo
深入理解Repo工具:简化Android源码管理与操作
Repo是AOSP(Android Open Source Project)开发过程中,为处理庞大源码仓库而设计的工具,它通过git管理各个仓库,并提供了一套命令行操作来简化管理和同步。以下是Repo的关键特性和使用场景:
1. 基础配置:Repo的shell脚本包括众多命令,如`checkout.py`、`sync.py`等,可以根据需要自定义和扩展。在Linux环境下推荐使用,Windows环境下虽然可运行,但稳定性较差。
2. 环境配置:使用时,需要在系统的PATH环境变量中添加必要的路径,如Git目录、Python安装路径等。
3. 配置细节:`--worktree`参数至关重要,不指定可能导致初始化错误。另外,可以通过环境变量设置仓库地址和分支,如使用`--repo-url`命令。
4. 仓库管理:Repo支持通过自定义URL托管在GitHub,只需在使用时更新对应的仓库地址。官方文档提供了Windows下的使用指南。
5. Manifest配置:Repo的Manifest定义了仓库的结构,包括远程获取设置、项目列表和子清单等,清单服务器需要实现特定的RPC方法。
6. 实际应用:比如,如果你需要管理私有仓库,避免ODM/客户/合作伙伴的访问,可以将这些仓库从默认清单中排除,只在内部使用。使用`repo forall`时,可以通过`project.list`文件指定特定操作的仓库,或者利用`annotation`元素标记长期不需要同步的仓库。
通过这些配置和技巧,Repo可以帮助开发者更灵活、高效地管理Android源码,提高开发效率。在实际操作中,需要根据项目需求和团队协作方式进行定制和调整。
「自动化测试」新一代Web前端自动化测试框架——playwright快速上手!
playwright上手内网如何安装项目依赖
注意:想运行playwright需要下载相关浏览器的二进制文件
由于默认情况下,Playwright会从MicrosoftCDN下载浏览器二进制文件。
公司内网会阻止对公共资源的直接访问,所以不能直接通过内网进行下载。
解决办法:
在外网,创建一个文件夹随后在该目录下呼出命令行并输入npmi-D@playwright/test
页面目录发生变化,并且命令行出现addedpackagesins代表下载完成
随后命令行输入npxplaywrightinstall开始安装浏览器二进制依赖
待下载完成后进入到对应的目录,示例为:C:\Users\winches\AppData\Local\ms-playwright
将如图所示4个文件选中复制
将选中的4个文件粘贴到内网中的ms-playwright文件下
playwright快速上手Playwright介绍Playwright是一个测试和自动化框架,可以实现网络浏览器的自动化交互。简而言之,您可以编写打开浏览器的代码,用代码实现使用所有网络浏览器的功能。自动化脚本可以实现导航到URL、输入文本、单击按钮和提取文本等功能。Playwright最令人惊喜的功能是它可以同时处理多个页面且不用等待,也不会被封锁。
Playwright支持大多数浏览器,例如GoogleChrome、Firefox、使用Chromium内核的MicrosoftEdge和使用WebKit内核的Safari。跨浏览器的网络自动化是Playwright的强项,可以为所有浏览器有效地执行相同的代码。此外,Playwright支持各种编程语言,例如Node.js、Python、Java和.NET。您可以编写代码用于打开网站并使用这些语言中的任何一种与之交互。
使用Node.js创建playwright项目Playwright有自己的testrunner用于端对端测试,我们称之为PlaywrightTest.
初始化项目并安装playwright/test库,只需要两个简单的命令既可以完成
npm?init?-ynpm?i?-D?@playwright/test创建一个简单的脚本test-1.spec.ts
const?{ ?test,?expect?}?=?require('@playwright/test');//?测试用例test('basic?test',?async?({ ?page?})?=>?{ ?//?打开一个页面并跳转到?搜索,用chromium驱动,将结果保存为test1.spec.ts的ts文件。npm?playwright?test6命令行输入后会自动打开浏览器,然后可以看见在浏览器上的一举一动都会被自动翻译成代码,如下所示。
通过vscodePlaywrightTestforVScode插件生成代码通过在浏览器中执行测试操作来记录新的测试。
保留已验证状态执行codegen并指定--save-storage参数来保存cookies和localStorage。这对于单独记录身份验证步骤并在以后负复用它非常有用。
npm?playwright?test7使用--load-storage参数来加载先前的存储。通过这种方式,所有的cookies和localStorage将被恢复,使大多数web应用程序进入认证状态。
npm?playwright?test8具有自定义设置的Codegen如果你想在一些非标准的设置中使用codegen(例如,使用browserContext.route(url,handler)),可以调用page.pause(),它将打开一个带有代码生成控件的单独窗口。
npm?playwright?test9检查选择器(selectors)在open或codegen期间,您可以在任何浏览器的developertools控制台中使用以下API。
playwright.$(selector)查询Playwright选择器,使用实际的Playwright
webå®å ¨è¦å¦ä»ä¹
å¦ä¹ Webå®å ¨éè¦ææ¡Webå®å ¨ç¸å ³æ¦å¿µãæ¸éæµè¯ç¸å ³å·¥å ·ãæ¸éå®ææä½ãçæWindows/Kali Linuxãä¸é´ä»¶åæå¡å¨çå®å ¨é ç½®ãèæ¬ç¼ç¨å¦ä¹ ãæºç 审计ä¸æ¼æ´åæãå®å ¨ä½ç³»è®¾è®¡ä¸å¼åççãç®ååä¸ä¸ªå¦ä¹ è§åï¼
第ä¸æ¥ï¼Webå®å ¨ç¸å ³æ¦å¿µ
建议å¦ä¹ æ¶é´ï¼2å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãçæåºæ¬æ¦å¿µ(SQLæ³¨å ¥ãä¸ä¼ ãXSSãCSRFãä¸å¥è¯æ¨é©¬ç)ã
2ãéè¿å ³é®å(SQLæ³¨å ¥ãä¸ä¼ ãXSSãCSRFãä¸å¥è¯æ¨é©¬ç)è¿è¡Googleã
3ãé 读ãWebå®å ¨æ·±åº¦åæãï¼ä½ä¸ºå ¥é¨å¦ä¹ è¿æ¯å¯ä»¥çã
4ãçä¸äºæ¸éç¬è®°/è§é¢ï¼äºè§£æ¸éå®æçæ´ä¸ªè¿ç¨ï¼å¯ä»¥Google(æ¸éç¬è®°ãæ¸éè¿ç¨ãå ¥ä¾µè¿ç¨ç)ã
第äºæ¥ï¼çææ¸éç¸å ³å·¥å ·
建议å¦ä¹ æ¶é´ï¼3å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãçæAWVSãSqlmapãBurpsuiteãNessusãChina chopper ãNmapãAppscançç¸å ³å·¥å ·ç使ç¨ã
2ãäºè§£è¯¥ç±»å·¥å ·çç¨éå使ç¨åºæ¯ã
3ãä¸è½½æ åé¨ççè¿äºè½¯ä»¶è¿è¡å®è£ ã
4ãå¦ä¹ 并è¿è¡ä½¿ç¨ï¼å ·ä½ææå¯ä»¥å¨ç½ä¸æç´¢ï¼ä¾å¦ï¼Burpsuiteçæç¨ãSqlmapã
5ã常ç¨çè¿å 个软件é½å¦ä¼åï¼å¯ä»¥å®è£ é³éå¯å¨åä¸ä¸ªæ¸éå·¥å ·ç®±
第ä¸æ¥ï¼æ¸éå®ææä½
建议å¦ä¹ æ¶é´ï¼5å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãææ¡æ¸éçæ´ä¸ªé¶æ®µå¹¶è½å¤ç¬ç«æ¸éå°åç«ç¹ã
2ãç½ä¸æ¾æ¸éè§é¢ç并æèå ¶ä¸çæè·¯ååçï¼å ³é®å(æ¸éãSQLæ³¨å ¥è§é¢ãæ件ä¸ä¼ å ¥ä¾µãæ°æ®åºå¤ä»½ãDedecmsæ¼æ´å©ç¨çç)ã
3ãèªå·±æ¾ç«ç¹/æ建æµè¯ç¯å¢è¿è¡æµè¯ï¼è®°ä½è¯·éèå¥½ä½ èªå·±ã
4ãæèæ¸é主è¦å为å 个é¶æ®µï¼æ¯ä¸ªé¶æ®µéè¦ååªäºå·¥ä½ï¼ä¾å¦è¿ä¸ªï¼PTESæ¸éæµè¯æ§è¡æ åã
5ãç 究SQLæ³¨å ¥çç§ç±»ãæ³¨å ¥åçãæå¨æ³¨å ¥æå·§ã
6ãç 究æ件ä¸ä¼ çåçï¼å¦ä½è¿è¡æªæã解ææ¼æ´å©ç¨çï¼åç §ï¼ä¸ä¼ æ»å»æ¡æ¶ã
7ãç 究XSSå½¢æçåçåç§ç±»ï¼å ·ä½å¦ä¹ æ¹æ³å¯ä»¥Googleã
8ãç 究Windows/Linuxææçæ¹æ³åå ·ä½ä½¿ç¨ï¼å¯ä»¥åèï¼ææã
9ãå¯ä»¥åè: å¼æºæ¸éæµè¯è弱系ç»ã
第åæ¥ï¼å ³æ³¨å®å ¨åå¨æ
建议å¦ä¹ æ¶é´ï¼1å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãå ³æ³¨å®å ¨åçææ°æ¼æ´ãå®å ¨äºä»¶ä¸ææ¯æç« ã
2ãæµè§æ¯æ¥çå®å ¨ææ¯æç« /äºä»¶ã
3ãéè¿å¾®åãå¾®ä¿¡å ³æ³¨å®å ¨åçä»ä¸äººå(éå°å¤§ççå ³æ³¨æè 好åææå ³æ³¨)ï¼å¤©å¤©æ½æ¶é´å·ä¸ä¸ã
4ãéè¿feedly/é²æ订é å½å å¤å®å ¨ææ¯å客(ä¸è¦ä» éäºå½å ï¼å¹³æ¶å¤æ³¨æ积累)ã
5ãå »æä¹ æ¯ï¼æ¯å¤©ä¸»å¨æ交å®å ¨ææ¯æç« é¾æ¥å°iæ¥ç§ç¤¾åºè¿è¡ç§¯æ·ã
6ãå¤å ³æ³¨ä¸ææ°æ¼æ´å表ï¼å¯ä»¥ççhackeroneãfreebufãå®å ¨å®¢çï¼éå°å ¬å¼çæ¼æ´é½å»å®è·µä¸ã
7ãå ³æ³¨å½å å½é ä¸çå®å ¨ä¼è®®çè®®é¢æè å½åã
8ãå å ¥ææ¯äº¤æµç¾¤ï¼ä¸ç¾¤å 大佬们讨æä¸äºç»éªåæå·§ã
第äºæ¥ï¼çæWindows/Kali Linux
建议å¦ä¹ æ¶é´ï¼3å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãå¦ä¹ Windows/Kali Linuxåºæ¬å½ä»¤ã常ç¨å·¥å ·ã
2ãçæWindowsä¸ç常ç¨çcmdå½ä»¤ï¼ä¾å¦ï¼ipconfig,nslookup,tracert,net,tasklist,taskkillçã
3ãçæLinuxä¸ç常ç¨å½ä»¤ï¼ä¾å¦ï¼ifconfig,ls,cp,mv,vi,wget,service,sudoçã
4ãçæKali Linuxç³»ç»ä¸ç常ç¨å·¥å ·ï¼å¯ä»¥åèãWeb Penetration Testing with Kali LinuxãããHacking with Kaliãçã
5ãçæmetasploitå·¥å ·ï¼å¯ä»¥åèãMetasploitæ¸éæµè¯æåãã
第å æ¥ï¼ä¸é´ä»¶åæå¡å¨çå®å ¨é ç½®
建议å¦ä¹ æ¶é´ï¼3å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãå¦ä¹ æå¡å¨ç¯å¢é ç½®ï¼å¹¶è½éè¿æèåç°é ç½®åå¨çå®å ¨é®é¢ã
2ãWindows serverç¯å¢ä¸çIISé ç½®ï¼ç¹å«æ³¨æé ç½®å®å ¨åè¿è¡æéã
3ãLinuxç¯å¢ä¸çLAMPçå®å ¨é ç½®ï¼ä¸»è¦èèè¿è¡æéãè·¨ç®å½ãæ件夹æéçã
4ãè¿ç¨ç³»ç»å åºï¼éå¶ç¨æ·ååå£ä»¤ç»éï¼éè¿iptableséå¶ç«¯å£ï¼é 置软件Wafå 强系ç»å®å ¨ï¼å¨æå¡å¨é ç½®mod_securityçç³»ç»ã
5ãéè¿Nessus软件对é ç½®ç¯å¢è¿è¡å®å ¨æ£æµï¼åç°æªç¥å®å ¨å¨èã
第ä¸æ¥ï¼èæ¬ç¼ç¨å¦ä¹
建议å¦ä¹ æ¶é´ï¼4å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãéæ©èæ¬è¯è¨ï¼Perl/Python/PHP/Go/Javaä¸çä¸ç§ï¼å¯¹å¸¸ç¨åºè¿è¡ç¼ç¨å¦ä¹ ã
2ãæ建å¼åç¯å¢åéæ©IDEï¼PHPç¯å¢æ¨èWampåXAMPPï¼IDE强çæ¨èSublimeã
3ãPythonç¼ç¨å¦ä¹ ï¼å¦ä¹ å 容å å«ï¼è¯æ³ãæ£åãæ件ãç½ç»ãå¤çº¿ç¨ç常ç¨åºï¼æ¨èãPythonæ ¸å¿ç¼ç¨ãã
4ãç¨Pythonç¼åæ¼æ´çexpï¼ç¶ååä¸ä¸ªç®åçç½ç»ç¬è«ã
5ãPHPåºæ¬è¯æ³å¦ä¹ 并书åä¸ä¸ªç®åçå客系ç»ï¼åè§ãPHPä¸MySQLç¨åºè®¾è®¡(第4ç)ããè§é¢ã
6ãçæMVCæ¶æï¼å¹¶è¯çå¦ä¹ ä¸ä¸ªPHPæ¡æ¶æè Pythonæ¡æ¶(å¯é)ã
7ãäºè§£Bootstrapçå¸å±æè CSSã
ç¬¬å «æ¥ï¼æºç 审计ä¸æ¼æ´åæ
建议å¦ä¹ æ¶é´ï¼3å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãè½ç¬ç«åæèæ¬æºç ç¨åºå¹¶åç°å®å ¨é®é¢ã
2ãçææºç 审计çå¨æåéææ¹æ³ï¼å¹¶ç¥éå¦ä½å»åæç¨åºã
3ãäºè§£Webæ¼æ´çå½¢æåå ï¼ç¶åéè¿å ³é®åè¿è¡æ¥æ¾åæã
4ãç 究Webæ¼æ´å½¢æåçåå¦ä½ä»æºç å±é¢é¿å 该类æ¼æ´ï¼å¹¶æ´çæchecklistã
å¦ä¹ å°åï¼iæ¥ç§å®ç½ï¼ä¼å®æ®¿ï¼
第ä¹æ¥ï¼å®å ¨ä½ç³»è®¾è®¡ä¸å¼å
建议å¦ä¹ æ¶é´ï¼5å¨
å¦ä¹ å 容å¦ä¸ï¼
1ãè½å»ºç«èªå·±çå®å ¨ä½ç³»ï¼å¹¶è½æåºä¸äºå®å ¨å»ºè®®æè ç³»ç»æ¶æã
2ãå¼åä¸äºå®ç¨çå®å ¨å°å·¥å ·å¹¶å¼æºï¼ä½ç°ä¸ªäººå®åã
3ã建ç«èªå·±çå®å ¨ä½ç³»ï¼å¯¹å ¬å¸å®å ¨æèªå·±çä¸äºè®¤è¯åè§è§£ã
4ãæåºæè å å ¥å¤§åå®å ¨ç³»ç»çæ¶ææè å¼åã
鸟哥的Linux私房菜:基础学习篇目录
鸟哥的Linux私房菜:基础学习篇目录
第一部分,深入理解Linux及其主机安装过程: 第1章:探索Linux的基本概念 第2章:Linux的学习路径与方法 第3章:Linux主机的合理规划 第4章:安装FC4并掌握多重启动技巧 第5章:启动与关机方式,以及在线求助和命令操作指南 第二部分,掌握Linux文件、目录与磁盘管理: 第6章:Linux文件属性与目录配置详解 第7章:文件和目录的高效管理 第8章:Linux磁盘与文件系统管理实践 第9章:文件压缩与打包技术 第三部分,学习Shell与脚本编程: 第章:vi文字处理工具的使用 第章:Bash Shell的深入认识 第章:正则表达式的应用 第章:Shell脚本编程入门 第四部分,Linux用户管理与权限控制: 第章:Linux账号与身份权限管理 第章:磁盘配额管理 第章:创建自动化命令任务 第章:程序与资源的有效管理 第五部分,系统管理员必备技能: 第章:启动与关机流程及加载程序理解 第章:源码与Tarball套件管理方法 第章:RPM与SRPM套件管理深入 第章:系统服务守护进程的管理 第章:登录文件的分析与应用 第章:Linux备份策略设计 第章:X Window的基本配置 第章:Linux硬件检测与维护技巧 第章:Linux内核编译与管理实践 附录A:GNU的GPL条款说明 附录B:ext2/ext3文件系统详解扩展资料
《鸟哥的Linux私房菜基础学习篇(第二版)》内容丰富全面,基本概念的讲解非常细致,深入浅出。各种功能和命令的介绍,都配以大量的实例操作和详尽的解析。本书是初学者学习Linux不可多得的一本入门好书。《鸟哥的Linux私房菜基础学习篇(第二版)》全面而详细地介绍了Linux操作系统。