pythonguide
㈠ 黑客的行為特徵。
這些多網路一下,就可以得到答案。以下僅供參考。
要想更好的保護網路不受黑客的攻擊,就必須對黑客的攻擊方法、攻擊原理、攻擊過程有深入的、詳細的了解,只有這樣才能更有效、更具有針對性的進行主動防護。下面通過對黑客攻擊方法的特徵分析,來研究如何對黑客攻擊行為進行檢測與防禦。
一、反攻擊技術的核心問題
反攻擊技術(入侵檢測技術)的核心問題是如何截獲所有的網路信息。目前主要是通過兩種途徑來獲取信息,一種是通過網路偵聽的途徑(如Sniffer,Vpacket等程序)來獲取所有的網路信息(數據包信息,網路流量信息、網路狀態信息、網路管理信息等),這既是黑客進行攻擊的必然途徑,也是進行反攻擊的必要途徑;另一種是通過對操作系統和應用程序的系統日誌進行分析,來發現入侵行為和系統潛在的安全漏洞。
二、黑客攻擊的主要方式
黑客對網路的攻擊方式是多種多樣的,一般來講,攻擊總是利用「系統配置的缺陷」,「操作系統的安全漏洞」或「通信協議的安全漏洞」來進行的。到目前為止,已經發現的攻擊方式超過2000種,其中對絕大部分黑客攻擊手段已經有相應的解決方法,這些攻擊大概可以劃分為以下六類:
1.拒絕服務攻擊:一般情況下,拒絕服務攻擊是通過使被攻擊對象(通常是工作站或重要伺服器)的系統關鍵資源過載,從而使被攻擊對象停止部分或全部服務。目前已知的拒絕服務攻擊就有幾百種,它是最基本的入侵攻擊手段,也是最難對付的入侵攻擊之一,典型示例有SYN Flood攻擊、Ping Flood攻擊、Land攻擊、WinNuke攻擊等。
2.非授權訪問嘗試:是攻擊者對被保護文件進行讀、寫或執行的嘗試,也包括為獲得被保護訪問許可權所做的嘗試。
3.預探測攻擊:在連續的非授權訪問嘗試過程中,攻擊者為了獲得網路內部的信息及網路周圍的信息,通常使用這種攻擊嘗試,典型示例包括SATAN掃描、埠掃描和IP半途掃描等。
4.可疑活動:是通常定義的「標准」網路通信范疇之外的活動,也可以指網路上不希望有的活動,如IP Unknown Protocol和Duplicate IP Address事件等。
5.協議解碼:協議解碼可用於以上任何一種非期望的方法中,網路或安全管理員需要進行解碼工作,並獲得相應的結果,解碼後的協議信息可能表明期望的活動,如FTU User和Portmapper Proxy等解碼方式。
6.系統代理攻擊:這種攻擊通常是針對單個主機發起的,而並非整個網路,通過RealSecure系統代理可以對它們進行監視。
三、黑客攻擊行為的特徵分析與反攻擊技術
入侵檢測的最基本手段是採用模式匹配的方法來發現入侵攻擊行為,要有效的進反攻擊首先必須了解入侵的原理和工作機理,只有這樣才能做到知己知彼,從而有效的防止入侵攻擊行為的發生。下面我們針對幾種典型的入侵攻擊進行分析,並提出相應的對策。
1.Land攻擊
攻擊類型:Land攻擊是一種拒絕服務攻擊。
攻擊特徵:用於Land攻擊的數據包中的源地址和目標地址是相同的,因為當操作系統接收到這類數據包時,不知道該如何處理堆棧中通信源地址和目的地址相同的這種情況,或者循環發送和接收該數據包,消耗大量的系統資源,從而有可能造成系統崩潰或死機等現象。
檢測方法:判斷網路數據包的源地址和目標地址是否相同。
反攻擊方法:適當配置防火牆設備或過濾路由器的過濾規則就可以防止這種攻擊行為(一般是丟棄該數據包),並對這種攻擊進行審計(記錄事件發生的時間,源主機和目標主機的MAC地址和IP地址)。
2.TCP SYN攻擊
攻擊類型:TCP SYN攻擊是一種拒絕服務攻擊。
攻擊特徵:它是利用TCP客戶機與伺服器之間三次握手過程的缺陷來進行的。攻擊者通過偽造源IP地址向被攻擊者發送大量的SYN數據包,當被攻擊主機接收到大量的SYN數據包時,需要使用大量的緩存來處理這些連接,並將SYN ACK數據包發送回錯誤的IP地址,並一直等待ACK數據包的回應,最終導致緩存用完,不能再處理其它合法的SYN連接,即不能對外提供正常服務。
檢測方法:檢查單位時間內收到的SYN連接否收超過系統設定的值。
反攻擊方法:當接收到大量的SYN數據包時,通知防火牆阻斷連接請求或丟棄這些數據包,並進行系統審計。
3.Ping Of Death攻擊
攻擊類型:Ping Of Death攻擊是一種拒絕服務攻擊。
攻擊特徵:該攻擊數據包大於65535個位元組。由於部分操作系統接收到長度大於65535位元組的數據包時,就會造成內存溢出、系統崩潰、重啟、內核失敗等後果,從而達到攻擊的目的。
檢測方法:判斷數據包的大小是否大於65535個位元組。
反攻擊方法:使用新的補丁程序,當收到大於65535個位元組的數據包時,丟棄該數據包,並進行系統審計。
4.WinNuke攻擊
攻擊類型:WinNuke攻擊是一種拒絕服務攻擊。
攻擊特徵:WinNuke攻擊又稱帶外傳輸攻擊,它的特徵是攻擊目標埠,被攻擊的目標埠通常是139、138、137、113、53,而且URG位設為「1」,即緊急模式。
檢測方法:判斷數據包目標埠是否為139、138、137等,並判斷URG位是否為「1」。
反攻擊方法:適當配置防火牆設備或過濾路由器就可以防止這種攻擊手段(丟棄該數據包),並對這種攻擊進行審計(記錄事件發生的時間,源主機和目標主機的MAC地址和IP地址MAC)。
5.Teardrop攻擊
攻擊類型:Teardrop攻擊是一種拒絕服務攻擊。
攻擊特徵:Teardrop是基於UDP的病態分片數據包的攻擊方法,其工作原理是向被攻擊者發送多個分片的IP包(IP分片數據包中包括該分片數據包屬於哪個數據包以及在數據包中的位置等信息),某些操作系統收到含有重疊偏移的偽造分片數據包時將會出現系統崩潰、重啟等現象。
檢測方法:對接收到的分片數據包進行分析,計算數據包的片偏移量(Offset)是否有誤。
反攻擊方法:添加系統補丁程序,丟棄收到的病態分片數據包並對這種攻擊進行審計。
6.TCP/UDP埠掃描
攻擊類型:TCP/UDP埠掃描是一種預探測攻擊。
攻擊特徵:對被攻擊主機的不同埠發送TCP或UDP連接請求,探測被攻擊對象運行的服務類型。
檢測方法:統計外界對系統埠的連接請求,特別是對21、23、25、53、80、8000、8080等以外的非常用埠的連接請求。
反攻擊方法:當收到多個TCP/UDP數據包對異常埠的連接請求時,通知防火牆阻斷連接請求,並對攻擊者的IP地址和MAC地址進行審計。
對於某些較復雜的入侵攻擊行為(如分布式攻擊、組合攻擊)不但需要採用模式匹配的方法,還需要利用狀態轉移、網路拓撲結構等方法來進行入侵檢測。
四、入侵檢測系統的幾點思考
從性能上講,入侵檢測系統面臨的一個矛盾就是系統性能與功能的折衷,即對數據進行全面復雜的檢驗構成了對系統實時性要求很大的挑戰。
從技術上講,入侵檢測系統存在一些亟待解決的問題,主要表現在以下幾個方面:
1.如何識別「大規模的組合式、分布式的入侵攻擊」目前還沒有較好的方法和成熟的解決方案。從Yahoo等著名ICP的攻擊事件中,我們了解到安全問題日漸突出,攻擊者的水平在不斷地提高,加上日趨成熟多樣的攻擊工具,以及越來越復雜的攻擊手法,使入侵檢測系統必須不斷跟蹤最新的安全技術。
2.網路入侵檢測系統通過匹配網路數據包發現攻擊行為,入侵檢測系統往往假設攻擊信息是明文傳輸的,因此對信息的改變或重新編碼就可能騙過入侵檢測系統的檢測,因此字元串匹配的方法對於加密過的數據包就顯得無能為力。
3.網路設備越來越復雜、越來越多樣化就要求入侵檢測系統能有所定製,以適應更多的環境的要求。
4.對入侵檢測系統的評價還沒有客觀的標准,標準的不統一使得入侵檢測系統之間不易互聯。入侵檢測系統是一項新興技術,隨著技術的發展和對新攻擊識別的增加,入侵檢測系統需要不斷的升級才能保證網路的安全性。
5.採用不恰當的自動反應同樣會給入侵檢測系統造成風險。入侵檢測系統通常可以與防火牆結合在一起工作,當入侵檢測系統發現攻擊行為時,過濾掉所有來自攻擊者的IP數據包,當一個攻擊者假冒大量不同的IP進行模擬攻擊時,入侵檢測系統自動配置防火牆將這些實際上並沒有進行任何攻擊的地址都過濾掉,於是造成新的拒絕服務訪問。
6.對IDS自身的攻擊。與其他系統一樣,IDS本身也存在安全漏洞,若對IDS攻擊成功,則導致報警失靈,入侵者在其後的行為將無法被記錄,因此要求系統應該採取多種安全防護手段。
7.隨著網路的帶寬的不斷增加,如何開發基於高速網路的檢測器(事件分析器)仍然存在很多技術上的困難。
入侵檢測系統作為網路安全關鍵性測防系統,具有很多值得進一步深入研究的方面,有待於我們進一步完善,為今後的網路發展提供有效的安全手段。
㈡ 求本適合學習python3.2的書或者電子版資料
首先想和你說的是,市面上絕對不存在只講Python 3.X的書籍。至於為什麼就說來話長了……Python 3並不向下兼容,2和3之間的差別體現在一些底層語句和函數的變化。Python3包含一個2to3的組件,可以將2的代碼改為3的代碼,但是沒有相對安全的3to2工具。其次,之所以Python會流行,就在於其有龐大的組件庫。但是,大部分的組件庫目前都只有2.x版本(這個今年之內不會變)。這兩個原因使整個Python社區使用3.x的人只佔很小的比例。學的話2.5以後的2.x版本都是絕對沒有問題的,不要過多糾結於版本問題。
說一下中文書籍,不推薦中國人寫的(這點所有技術類書籍都適用)。翻譯過來的書籍里,我唯一推薦《Python基礎教程(第2版)》(Beginning Python: From Novice to Professional)。這本書特色在於全面涵蓋了基礎語法,並提供了十個很典型的案例,並附有層次清晰的函數參考。而且書中關於Python3討論了很多,如果你用心看的話,可以同時將2和3的語法都掌握,這點其他的同類書籍做的都不夠好(很適合對3感興趣的你)。
另外,能適應並買到外文書的話,最新的Python基礎書籍《The Quick Python Book》也不錯(個人認為稍好於國外流行的《Python Programming for the Absolute Beginner, 3rd》)。有人會推薦O『Reilly出版社的《Learning Python》,10年前的這本確實不錯,但現在越來越差,作者並沒有從一個初學者的角度看問題,章節排布很混亂,尤其是對2和3區別的處理及其令人失望,中文版甚至沒有印全,就更不推薦了。同出版社的進階書籍《Programming Python (4th)》介紹的是實際項目中會用到的各種Python機制,但語言和邏輯都不好,不如直接看API。參考類的新書里《Python Essential Reference, 4th》好於《Python Pocket Reference, 4th》,項目需要經常翻看這種字典類書籍的話,可以買本。
基於Python的Web開發框架推薦學django,推薦書籍是Apress出版社的《The Definitive Guide to Django》。
希望能幫助你在Python之路上一個有好的開始!
㈢ 有打算學python的新手么
Python是一種計算機程序設計語言。你可能已經聽說過很多種流行的編程語言,比如非常難學的c語言,非常流行的java語言,適合初學者的Basic語言,適合網頁編程的JavaScript語言等等。
那Python是一種什麼語言?
首先,我們普及一下編程語言的基礎知識。用任何編程語言來開發程序,都是為了讓計算機幹活,比如下載一個MP3,編寫一個文檔等等,而計算機幹活的CPU只認識機器指令,所以,盡管不同的編程語言差異極大,最後都得「翻譯」成CPU可以執行的機器指令。而不同的編程語言,干同一個活,編寫的代碼量,差距也很大。
比如,完成同一個任務,C語言要寫1000行代碼,Java只需要寫100行,而Python可能只要20行。
所以Python是一種相當高級的語言。
你也許會問,代碼少還不好?代碼少的代價是運行速度慢,C程序運行1秒鍾,Java程序可能需要2秒,而Python程序可能就需要10秒。
那是不是越低級的程序越難學,越高級的程序越簡單?表面上來說,是的,但是,在非常高的抽象計算中,高級的Python程序設計也是非常難學的,所以,高級程序語言不等於簡單。
但是,對於初學者和完成普通任務,Python語言是非常簡單易用的。連Google都在大規模使用Python,你就不用擔心學了會沒用。
learning=input('DoyouwanttolearnPythonnow(YesorNo):')
a=str(learning)
ifa=='Yes':
print('QQ1129834903')
else:
print('Thanks!!')
㈣ GitHub 上有哪些值得推薦的開源電子書
語言無關類
操作系統
鳥哥的linux私房菜 (簡體)
Linux 系統高級編程
The Linux Command Line (中英文版)
Linux 設備驅動 (第三版)
深入分析Linux內核源碼
UNIX TOOLBOX
Docker中文指南
Docker —— 從入門到實踐
FreeRADIUS新手入門
Mac 開發配置手冊
FreeBSD 使用手冊
Linux 命令行(中文版)
- 智能系統
一步步搭建物聯網系統
- web伺服器
Nginx開發從入門到精通 (淘寶團隊出品)
- 版本控制
Git教程 (本文由 @廖雪峰 創作,如果覺得本教程對您有幫助,可以去 iTunes 購買)
git – 簡易指南
猴子都能懂的GIT入門
Git 參考手冊
Pro Git
Git Magic
GotGitHub
Git Community Book 中文版
Mercurial 使用教程
HgInit (中文版)
沉浸式學 Git
Git-Cheat-Sheet (感謝 @flyhigher139 翻譯了中文版)
GitHub秘籍
- NoSQL
NoSQL資料庫筆談 (PDF)
Redis 設計與實現
Redis 命令參考
帶有詳細注釋的 Redis 3.0 代碼
帶有詳細注釋的 Redis 2.6 代碼
The Little MongoDB Book
The Little Redis Book
Neo4j 簡體中文手冊 v1.8
Neo4j .rb 中文資源
- MySQL
MySQL索引背後的數據結構及演算法原理
- 項目相關
持續集成(第二版) (譯言網)
讓開發自動化系列專欄
追求代碼質量
selenium 中文文檔
Joel談軟體
約耳談軟體(Joel on Software)
- Web
關於瀏覽器和網路的 20 項須知
前端知識體系
瀏覽器開發工具的秘密
Chrome 開發者工具中文手冊
Chrome擴展開發文檔
Grunt中文文檔
移動Web前端知識庫
正則表達式30分鍾入門教程
前端開發體系建設日記
移動前端開發收藏夾
JSON風格指南
HTTP 介面設計指北
前端資源分享(一)
前端資源分享(二)
前端代碼規范 及 最佳實踐
w3school教程整理
- 大數據
大數據/數據挖掘/推薦系統/機器學習相關資源
- 編程藝術
程序員編程藝術
每個程序員都應該了解的內存知識(譯)【第一部分】
取悅的工序:如何理解游戲 (豆瓣閱讀,免費書籍)
- 其他
OpenWrt智能、自動、透明翻牆路由器教程
- 語言相關類 AWK
awk程序設計語言
- C/C++
C++ 並發編程指南 (@傅海平ICT)
Linux C編程一站式學習 (宋勁杉, 北京亞嵌教育研究中心)
CGDB中文手冊
100個gdb小技巧
100個gcc小技巧
ZMQ 指南
How to Think Like a Computer Scientist (中英文版)
跟我一起寫Makefile(PDF)
GNU make中文手冊
GNU make 指南
Google C++ 風格指南
C/C++ Primer (by @andycai)
簡單易懂的C魔法
Cmake 實踐 (PDF版)
C++ FAQ LITE(中文版)
C++ Primer 5th Answers
- CSS/HTML
學習CSS布局
通用 CSS 筆記、建議與指導
CSS參考手冊
Emmet 文檔
前端代碼規范 (騰訊alloyteam團隊)
- Dart
Dart 語言導覽
- Fortran
Fortran77和90/95編程入門
- Java
實時 Java 系列
Apache Shiro 用戶指南
使用 Eclipse 和 Java SE 6 創建獨立 Web Services 應用程序
第 1 部分: Web Services 服務端應用程序
第 2 部分: Web 服務客戶端應用程序
JavaServer Faces 1.2 入門
第 1 部分: 構建基本應用程序
第 2 部分: JSF 生命周期、轉換、檢驗和階段監聽器
用 Eclipse Europa 進行 Web 開發
第 1 部分: Eclipse Java EE
第 2 部分: PHP 開發工具
第 3 部分: Ruby Development Toolkit 和 RadRails
使用 JavaServer Faces 構建 Apache Geronimo 應用程序
第 1 部分: 使用 Eclipse 和 Apache MyFaces Core 構建基本的應用程序
第 2 部分: 在 JavaServer Faces 中使用 Tomahawk
第 3 部分: 使用 ajax4jsf 添加 Ajax 功能
第 4 部分: 使用 Apache Trinidad 組件擴展 JSF
第 5 部分: 將 JSF 應用程序與 Spring 集成
Apache Geronimo 和 Spring 框架
第 1 部分: 開發方法學
第 2 部分: 構建第一個應用程序
第 3 部分: 集成 DAO 與 ORM
第 4 部分: 混合使用 Spring AOP 和 Spring Web Flow
第 5 部分: Spring MVC
第 6 部分: Spring MVC:使用 Web 視圖技術
終極 mashup —— Web 服務和語義 Web
第 1 部分: 使用與組合 Web 服務
第 2 部分: 管理 Mashup 數據緩存
第 3 部分: 理解 RDF 和 RDFs
第 4 部分: 創建本體
第 5 部分: 切換 Web 服務
Jersey 2.x 用戶指南
MyBatis中文文檔
- JavaScript
Google JavaScript 代碼風格指南
Airbnb JavaScript 規范
JavaScript 標准參考教程(alpha)
Javascript編程指南 (源碼)
javascript 的 12 個怪癖
JavaScript 秘密花園
JavaScript核心概念及實踐 (PDF) (此書已由人民郵電出版社出版發行,但作者依然免費提供PDF版本,希望開發者們去購買,支持作者)
《JavaScript 模式》翻譯,此書中文版有售,但是紙質書翻譯的還沒有這個版本翻譯的好
命名函數表達式探秘 (注:原文由為之漫筆翻譯,原始地址無法打開,所以此處地址為我博客上的備份)
學用 JavaScript 設計模式 (開源中國)
深入理解JavaScript系列
ECMAScript 6 入門 (作者:阮一峰)
jQuery
jQuery 解構
簡單易懂的JQuery魔法
How to write jQuery plugin
Node.js
Node入門
七天學會NodeJS
Nodejs Wiki Book (繁體中文)
express.js 中文文檔
koa 中文文檔
使用 Express + MongoDB 搭建多人博客
Express框架
nodejs文檔
Node.js 包教不包會
Learn You The Node.js For Much Win! (中文版)
Node debug 三法三例
underscore.js
Underscore.js中文文檔
backbone.js
backbone.js入門教程 (PDF)
Backbone.js入門教程第二版
Developing Backbone.js Applications(中文版)
AngularJS
AngularJS最佳實踐和風格指南
AngularJS中譯本
AngularJS入門教程
構建自己的AngularJS
在Windows環境下用Yeoman構建AngularJS項目
zepto 簡明中文手冊
Sea.js
Hello Sea.js
CoffeeScript
CoffeeScript Cookbook
The Little Book on CoffeeScript中文版
ExtJS
Ext4.1.0 中文文檔
Chrome擴展及應用開發
JavaScript入門教程
- PHP
PHP調試技術手冊(PDF)
XDebug 2中文手冊(譯) (CHM)
PHP之道
PHP 最佳實踐
PHP安全最佳實踐
深入理解PHP內核
PHP擴展開發及內核應用
CodeIgniter 用戶指南
Laravel4 中文文檔
Laravel 入門
Symfony2中文文檔 (未譯完)
Phalcon中文文檔(翻譯進行中)
YiiBook幾本Yii框架的在線教程
簡單易懂的PHP魔法
swoole文檔及入門教程
- iOS
iOS開發60分鍾入門
iOS7人機界面指南
Google Objective-C Style Guide 中文版
iPhone 6 屏幕揭秘
Apple Watch開發初探
馬上著手開發 iOS 應用程序
網易斯坦福大學公開課:iOS 7應用開發字幕文件
- Android
Android Design(中文版)
Google Android官方培訓課程中文版
Android學習之路
- Python
小白的Python教程
簡明Python教程
零基礎學Python
Python 2.7 官方教程中文版
Python 3.3 官方教程中文版
深入 Python 3
PEP8 Python代碼風格規范
Google Python 風格指南 中文版
Python入門教程 (PDF)
Python的神奇方法指南
笨辦法學 Python (PDF版下載)
Django 文檔中文版
Django 最佳實踐
The Django Book 中文版
web.py 0.3 新手指南
Web.py Cookbook 簡體中文版
Dive Into Python 中文版
Bottle 文檔中文版 (需翻牆)
Flask 文檔中文版
Jinja2 文檔中文版
Werkzeug 文檔中文版
Flask之旅
Introction to Tornado 中文翻譯
Python自然語言處理中文版 (感謝陳濤同學的翻譯,也謝謝 @shwley 聯系了作者)
Python 繪圖庫 matplotlib 官方指南中文翻譯
Scrapy 0.25 文檔
ThinkPython
- Ruby
Ruby 風格指南
Rails 風格指南
笨方法學 Ruby
Ruby on Rails 指南
Ruby on Rails 實戰聖經
Ruby on Rails Tutorial 原書第 2 版 (本書網頁版免費提供,電子版以 PDF、EPub 和 Mobi 格式提供購買,僅售 9.9 美元)
編寫Ruby的C拓展
Ruby 源碼解讀
- Shell
Shell腳本編程30分鍾入門
- Go
Go編程基礎
Go入門指南
學習Go語言 (PDF)
Go Web 編程 (此書已經出版,希望開發者們去購買,支持作者的創作)
Go實戰開發 (當我收錄此項目時,作者已經寫完第三章,如果讀完前面章節覺得有幫助,可以給作者捐贈,以鼓勵作者的繼續創作)
Network programming with Go 中文翻譯版本
- Groovy
實戰 Groovy 系列
- LaTeX
一份其實很短的 LaTeX 入門文檔
一份不太簡短的 LATEX 2ε 介紹 (PDF版)
- LISP
ANSI Common Lisp 中文翻譯版
- Lua
Lua編程入門
- Haskell
Real World Haskell 中文版
- R
R語言忍者秘笈
- Scala
Scala課堂 (Twitter的Scala中文教程)
Effective Scala(Twitter的Scala最佳實踐的中文翻譯)
Scala指南
- Swift
The Swift Programming Language 中文版
- Perl
Modern Perl 中文版
Perl 程序員應該知道的事
- Prolog
笨辦法學Prolog
Vim中文文檔
- Vimscript
笨方法學Vimscript 中譯本
Vim中文文檔
- 讀書筆記及其它 讀書筆記
編譯原理(紫龍書)中文第2版習題答案
把《編程珠璣》讀薄
Effective C++讀書筆記
Golang 學習筆記、Python 學習筆記、C 學習筆記 (PDF)
Jsoup 學習筆記
學習筆記: Vim、Python、memcached
圖靈開放書翻譯計劃–C++、Python、Java等
蒂姆·奧萊利隨筆 (由譯言網翻譯,電子版免費)
Octave 入門 (PDF版)
SICP 解題集
精彩博客集合
正則表達式簡明參考
㈤ 什麼是黑客啊
---什麼是黑客?
Jargon File中對「黑客」一詞給出了很多個定義,大部分定義都涉及高超的編程技術,強烈的解決問題和克服限制的慾望。如果你想知道如何成為一名黑客,那麼好,只有兩方面是重要的。(態度和技術)
長久以來,存在一個專家級程序員和網路高手的共享文化社群,其歷史可以追溯到幾十年前第一台分時共享的小型機和最早的ARPAnet實驗時期。 這個文化的參與者們創造了「黑客」這個詞。 黑客們建起了Internet。黑客們使Unix操作系統成為今天這個樣子。黑客們搭起了Usenet。黑客們讓WWW正常運轉。如果你是這個文化的一部分,如果你已經為它作了些貢獻,而且圈內的其他人也知道你是誰並稱你為一個黑客,那麼你就是一名黑客。
黑客精神並不僅僅局限於軟體黑客文化圈中。有些人同樣以黑客態度對待其它事情如電子和音樂---事實上,你可以在任何較高級別的科學和藝術中發現它。軟體黑客們識別出這些在其他領域同類並把他們也稱作黑客---有人宣稱黑客實際上是獨立於他們工作領域的。 但在本文中,我們將注意力集中在軟體黑客的技術和態度,以及發明了「黑客」一詞的哪個共享文化傳統之上。
另外還有一群人,他們大聲嚷嚷著自己是黑客,實際上他們卻不是。他們是一些蓄意破壞計算機和電話系統的人(多數是青春期的少年)。真正的黑客把這些人叫做「駭客」(cracker),並不屑與之為伍。多數真正的黑客認為駭客們是些不負責任的懶傢伙,還沒什麼大本事。專門以破壞別人安全為目的的行為並不能使你成為一名黑客, 正如拿根鐵絲能打開汽車並不能使你成為一個汽車工程師。不幸的是,很多記者和作家往往錯把「駭客」當成黑客;這種做法激怒真正的黑客。
根本的區別是:黑客們建設,而駭客們破壞。
如果你想成為一名黑客,繼續讀下去。如果你想做一個駭客,去讀 alt.2600 新聞組,並在發現你並不像自己想像的那麼聰明的時候去坐5到10次監獄。 關於駭客,我只想說這么多。
---黑客的態度
黑客們解決問題,建設事物,信仰自由和雙向的幫助,人人為我, 我為人人。
要想被認為是一名黑客,你的行為必須顯示出你已經具備了這種態度。要想做的好象你具備這種態度,你就不得不真的具備這種態度。但是如果你想靠培養黑客態度在黑客文化中得到承認,那就大錯特錯了。因為成為具備這些特質的這種人對你自己非常重要,有助於你學習,並給你提供源源不斷的活力。同所有有創造性的藝術一樣,成為大師的最有效方法就是模仿大師的精神---不是僅從理智上,更要從感情上進行模仿。
So,如果你想做一名黑客,請重復以下事情直到你相信它們:
1 這世界充滿待解決的迷人問題
做一名黑客有很多樂趣,但卻是些要費很多氣力方能得到的樂趣。 這些努力需要動力。成功的運動員從健壯體魄,挑戰自我極限中汲取動力。同樣,做黑客,你必須
要有從解決問題,磨練技術,鍛煉智力中得到基本的熱望。如果你還不是這類人又想做黑客,你就要設法成為這樣的人。否則你會發現,你的黑客熱情會被其他誘惑無情地吞噬掉---如金錢、性和社會上的虛名。
(同樣你必須對你自己的學習能力建立信心---相信盡管你對某問題所知不多,但如果你一點一點地學習、試探,你最終會掌握並解決它。)
2. 一個問題不應該被解決兩次
聰明的腦瓜是寶貴的,有限的資源。當這個世界還充滿其他有待解決的有趣問題之時,他們不應該被浪費在重新發明輪子這些事情上。 作為一名黑客,你必須相信其他黑客的思考時間是寶貴的---因此共享信息,解決問題並發布結果給其他黑客幾乎是一種道義,這樣其他人就可以去解決新問題而不是重復地對付舊問題。
(你不必認為你一定要把你的發明創造公布出去,但這樣做的黑客是贏得大家尊敬最多的人。賣些錢來給自己養家糊口,買房買車買計算機甚至發大財和黑客價值也是相容的,只要你別忘記你還是個黑客。)
3. 無聊和乏味的工作是罪惡
黑客們應該從來不會被愚蠢的重復性勞動所困擾,因為當這種事情發生時就意味著他們沒有在做只有他們才能做的事情---解決新問題。這樣的浪費傷害每一個人。因此,無聊和乏味的工作不僅僅是令人不舒服而已,它們是極大的犯罪。 要想做的象個黑客,你必須完全相信這點並盡可能多地將乏味的工作自動化,不僅為你自己,也為了其他人(尤其是其他黑客們)。
(對此有一個明顯的例外。黑客們有時也做一些重復性的枯燥工作以進行「腦力休息」,或是為練熟了某個技巧,或是獲得一些除此無法獲得的經驗。但這是他自己的選擇---有腦子的人不應該被迫做無聊的活兒。)
4 自由就是好
黑客們是天生的反權威主義者。任何能向你發命令的人會迫使你停止解決令你著迷的問題,同時,按照權威的一般思路,他通常會給出一些極其愚昧的理由。因此,不論何時何地,任何權威,只要他壓迫你或其他黑客,就要和他斗到底。
(這並非說任何權力都不必要。兒童需要監護,罪犯也要被看管起來。 如果服從命令得到某種東西比起用其他方式得到它更節約時間,黑客會同意接受某種形式的權威。但這是一個有限的、特意的交易;權力想要的那種個人服從不是你的給予,而是無條件的服從。)
權力喜愛審查和保密。他們不信任自願的合作和信息共享---他們只喜歡由他們控制的合作。因此,要想做的象個黑客,你得對審查、保密,以及使用武力或欺騙去壓迫人們的做法有一種本能的反感和敵意。
5. 態度不能替代能力
要做一名黑客,你必須培養起這些態度。但只具備這些態度並不能使你成為一名黑客,就象這並不能使你成為一個運動健將和搖滾明星一樣。成為一名黑客需要花費智力,實踐,奉獻和辛苦。
因此,你必須學會不相信態度,並尊重各種各樣的能力。黑客們不會為那些故意裝模做樣的人浪費時間,但他們卻非常尊重能力---尤其是做黑客的能力,不過任何能力總歸是好的。具備很少人才能掌握的技術方面的能力尤其為好,而具備那些涉及腦力、技巧和聚精會神的能力為最好。
如果你尊敬能力,你會享受提高自己能力的樂趣---辛苦的工作和奉獻會變成一種高度娛樂而非賤役。 要想成為一名黑客,這一點非常重要。
---基本黑客技術
黑客態度是重要的,但技術更加重要。態度無法替代技術,在你被別的黑客稱為黑客之前,有一套基本的技術你必須掌握。 這套基本技術隨著新技術的出現和老技術的過時也隨時間在緩慢改變。例如,過去包括使用機器碼編程,而知道最近才包括了HTML語言。但現在明顯包括以下技術:
1 學習如何編程
這當然是最基本的黑客技術。如果你還不會任何計算機語言,我建議你從Python開始。它設計清晰,文檔齊全,對初學者很合適。盡管是一門很好的初級語言,它不僅僅只是個玩具。它非常強大,靈活,也適合做大型項目。
但是記住,如果你只會一門語言,你將不會達到黑客所要求的技術水平,甚至也不能達到一個普通程序員的水平---你需要學會如何以一個通用的方法思考編程問題,獨立於任何語言。要做一名真正的黑客,你需要學會如何在幾天內通過一些手冊,結合你現在所知,迅速掌握一門新語言。這意味著你應該學會幾種不同的語言。
如果要做一些重要的編程,你將不得不學習C語言,Unix的核心語言。其他對黑客而言比較重要的語言包括Perl和LISP。 Perl很實用,值得一學;它被廣泛用於活動網頁和系統管理,因此即便你從不用Perl寫程序,至少也應該能讀懂它。 LISP 值得學習是因為當你最終掌握了它你會得到豐富的經驗;這些經驗使你在以後的日子裡成為一個更好的程序員,即使你實際上可能很少使用LISP本身。
當然,實際上你最好四種都會。 (Python, C, Perl, and LISP). 除了是最重要的四種基本語言,它們還代表了四種非常不同的編程方法,每種都會讓你受益非淺。
這里我無法完整地教會你如何編程---這是個復雜的活兒。但我可以告訴你,書本和課程也不能作到。幾乎所有最好的黑客都是自學成材的。真正能起作用的就是去親自讀代碼和寫代碼。
學習如何編程就象學慣用自然語言寫作一樣。最好的做法是讀一些大師的名著,試著自己寫點東西,再讀些,再寫點,又讀些,又寫點....如此往復,直到你達到自己在範文中看到的簡潔和力量。
過去找到好的代碼去讀是困難的,因為很少有大型程序的可用源代碼能讓新手練手。這種狀況已經得到了很大的改善;現在有很多可用的開放源碼軟體,編程工具和操作系統(全都有黑客寫成)。這使我們自然地來到第二個話題...
2 得到一個開放源碼的Unix並學會使用、運行它
我假設你已經擁有了一台個人計算機或者有一個可用的( 今天的孩子們真幸福 :-) )。新手們最基本的一步就是得到一份Linux或BSD-Unix,安裝在個人計算機上,並運行它。
當然,這世界上除了Unix還有其他操作系統。但它們都是以二進制形式發送的---你無法讀到它的源碼,更不可能修改它。嘗試在DOS或Windows的機器上學習黑客技術,就象是在腿上綁了鐵塊去學跳舞。
除此之外,Unix還是Internet的操作系統。你可以不知道Unix而學會用Internet,但不懂它你就無法成為一名Internet黑客。因為這個原因,今天的黑客文化在很大程度上是以Unix為中心的。(這點並不總是真的,一些很早的黑客對此很不高興,但Unix和Internet之間的共生關系已是如此之強,甚至連微軟也無可奈何)
So,裝一個Unix---我個人喜歡Linux,不過也有其他選擇。(你也可以在同一台機器上同時運行DOS,Windows和Linux)學會它。運行它。用它跟Internet對話。讀它的代碼。試著去修改他。你會得到比微軟操作系統上好的多的編程工具(包括C,Lisp, Python, and Perl),你會得到樂趣,並將學到比你想像的更多知識。
關於學習Unix的更多信息,請看 The Loginataka.
要得到Linux,請看: 哪裡能得到 Linux.
3 學會如何使用WWW和寫HTML
大多黑客文化建造的東西都在你看不見的地方發揮著作用,幫助工廠、辦公室和大學正常運轉,表面上很難看到它對他人的生活的影響。Web是一個大大的例外。即便政客也同意,這個巨大而耀眼的黑客玩具正在改變整個世界。單是這個原因(還有許多其它的), 你就需要學習如何掌握Web。
這並不是僅僅意味著如何使用瀏覽器(誰都會),而是要學會如何寫HTML,Web的標記語言。如果你不會編程,寫HTML會教你一些有助於學習的思考習慣。因此,先建起自己的主頁。
但僅僅建一個主頁也不能使你成為一名黑客。 Web里充滿了各種網頁。多數是無意義的,零信息量垃圾。
要想有價值,你的網頁必須有內容---必須有趣或對其它黑客有用。這樣,我們來到下一個話題....
---黑客文化中的地位
象大部分不涉及金錢的文化一樣,黑客王國的運轉靠聲譽維護。你設法解決有趣的問題,但它們到底多有趣,你的解法有多好,是要有那些和你具有同樣技術水平的人或比你更牛的人去評判的。
相應地,當你在玩黑客游戲時,你知道,你的分數要靠其他黑客對你的技術的評估給出。(這就是為什麼只有在其它黑客稱你為黑客是,你才算得上是一名黑客)這個事實常會被黑客是一項孤獨的工作這一印象所減弱;它也會被另一個黑客文化的禁忌所減弱(此禁忌的效力正在減弱但仍很強大):拒絕承認自我或外部評估是一個人的動力。
特別地,黑客王國被人類學家們稱為一種精英文化。在這里你不是憑借你對別人的統治來建立地位和名望,也不是靠美貌,或擁有其他人想要的東西,而是靠你的奉獻。尤其是奉獻你的時間,你的才智和你的技術成果。
要獲得其他黑客的尊敬,你可以做以下五種事情:
1. 寫開放源碼的軟體
第一個(也是最基本和傳統的)是寫些被其他黑客認為有趣或有用的程序,並把程序的原代碼公布給大家共享。
(過去我們稱之為「自由軟體-free software」,但這卻使很多不知free的精確含義的人感到不解。現在我們很多人使用「開放源碼-open source」這個詞)
黑客王國里最受尊敬的大牛們是那些寫了大型的、具有廣泛用途的軟體,並把它們公布出去,使每人都在使用他的軟體的人。
2. 幫助測試並修改開放源碼的軟體
黑客們也尊敬也那些使用、測試開放源碼軟體的人。在這個並非完美的世界上,我們不可避免地要花大量軟體開發的時間在測試和抓臭蟲階段。 這就是為什麼任何開放源碼的作者稍加思考後都會告訴你好的beta測試員象紅寶石一樣珍貴。 (他知道如何清楚描述出錯症狀,很好地定位錯誤,能忍受快速發布的軟體中的bug,願意使用一些簡單的診斷工具) 甚至他們中的一個能判斷出哪個測試階段是延長的、令人精疲力盡的噩夢,哪個只是一個有益健康的玩意兒。
如果你是個新手,試著找一個趕興趣的正在開發的程序,作一個好的beta測試員。從幫著測試,到幫著抓臭蟲,到最後幫著改程序,你會不斷進步。以後你寫程序時,會有別人來幫你,你就得到了你當初善舉的回報。
3. 公布有用的信息
另一個好事是收集整理網頁上有用有趣的信息或文檔如FAQ。許多主要FAQ的維護者和其他開放源碼的作者一樣受到大家的尊敬。
4. 幫助維護基礎設施的運轉
黑客文化是靠自願者運轉的。要使Internet能正常工作,就要有大量枯燥的工作不得不去完成----管理mail list,newsgroup,維護大量文檔,開發RFC和其它技術標准等等。做這類事情的人會得到很多人的尊敬,因為每人都知道這些事情是耗時耗力的苦役,不象編碼那樣好玩。做這些事情需要毅力。
5. 為黑客文化本身服務
最後,你可以為這個文化本身服務(例如象我這樣,寫一個「如何成為黑客」的初級教程 :-) )(hehe,象我這樣把它翻成中文 :-) ) 這並非一定要在你已經在這里呆了很久,精通所有以上4點,獲得一定聲譽後後才能去做。
黑客文化沒有領袖。精確地說,它確實有些文化英雄和部落長者和歷史學家和發言人。若你在這圈內呆的夠長,你或許成為其中之一。
記住:黑客們不相信他們的部落長者的自誇的炫耀,因此很明顯地去追求這種名譽是危險的。你必須具備基本的謙虛和優雅。
---黑客和怪人(Nerd)的聯系
同流行的傳說相反,做一名黑客並不一定要你是個怪人。然而,很多黑客都是怪人。做一個出世者有助於你集中精力進行更重要的事情,如思考和編程。
因此,很多黑客都願意接受「怪人」這個標簽,更有甚者願意使用「傻子(geek)」一詞並自以為豪---這是宣布他們與主流社會不合作的聲明。
如果你能集中足夠的精力來做好黑客同時還能有正常的生活,這很好。今天作到這一點比我在1970年代是個新手是要容易的多。今天主流文化對技術怪人要友善的多。甚至有更多的人意識到黑客通常更富愛心,是塊很好的做戀人和配偶的材料。 更多信息見 Girl's Guide to Geek Guys.
如果你因為生活上不如意而為做黑客而吸引,那也沒什麼---至少你不會分神了。或許以後你會找到自己的另一半。
---風格的意義
重申一下,做一名黑客,你必須進入黑客精神之中。當你不在計算機邊上時,你仍然有很多事情可做。它們並不能替代真正的編程(沒有什麼能替代編程),但很多黑客都那麼做,並感到它們與黑客精神存在一種本質的關聯。
閱讀科幻小說。參加科幻小說討論會。(一個很好的尋找黑客的場合)
研究禪宗,或練功習武。
練就一雙精確的耳朵,學會鑒賞特別的音樂。學會玩某種樂器,或唱歌。
提高對雙關語的鑒賞。
學會流暢地用母語寫作。(令人驚訝的時,我所知道的所有最棒的黑客,都是很不錯的作家)
這些事情,你做的越多,你就越適合做黑客。至於為什麼偏偏是這些事情,原因並不很清楚,但它們都涉及到了左-右腦的綜合技巧,這似乎是關鍵所在。(黑客們既需要清晰的邏輯思維,有時也需要強烈的跳出邏輯之外的直覺)
最後,還有一些不要去做的事情。
不要使用愚蠢的,過於嘩眾取寵的ID
不要自稱為網路崩客(punk) ,也不要對那些人浪費時間
不要寄出充滿拼寫和語法錯誤的email,或張貼錯誤百出的文章
做以上的事情,會使大大損害你的聲譽。黑客們個個記憶超群---你將需要數年的時間讓他們忘記你的愚蠢。
---其它資源
Peter Seebach為那些不知如何同黑客打交道的經理們維護了一個非常精彩的黑客FAQ。
The Loginataka 有許多關於如何正確培養一個Unix黑客的態度的材料。
我也曾寫過一篇「黑客文化簡史」。
我還寫過另一篇文章,「大教堂與集市」,解釋了許多Linux和開放源碼文化的運做原理。我還在它的續集「開拓智域」一文中有更直接的論述。
---FAQ(常問問題解答)
問:你會教我如何做黑客嗎?
自從第一次發布此頁,我每周都會得到一些請求,要我「教會他如何做黑客」;遺憾的是,我沒有足夠的時間和精力來做這個;我自己的編程項目已經佔用了我110%的時間。
甚至即便我想教你也不可能,黑客基本上是一項需要你自行修煉的的態度和技術。你會發現即使真正的黑客想幫助你,如果你乞求他們填鴨一樣教你的話,你不會贏得他們的尊敬。
首先去學習。顯示你在嘗試,你能靠自己去學習。然後再去向黑客們請教問題。
問:你會幫我「黑」掉一個站點嗎?或者教我怎麼黑它?
No. 任何在讀完FAQ後還問此問題人,都是愚不可及的傢伙,即使有時間我也不會理睬。 任何發給我的此類mail都會被忽略或被痛斥。
問:哪裡能找到真正的可以與之交流的黑客?
最佳辦法是就近參加一個Unix或Linux的用戶組,參加他們的會議。
問:我該先學哪種語言?
HTML, 如果你還不會的話.
但它不是一個真正的編程語言。當你准備編程時,我建議你從 Python開始. 會有很多人向你推薦Perl,它比Python還受歡迎,但卻難學一些。
C 是非常重要的,但它卻是最難學的。不要一開始就嘗試學C。
問:開放源碼的自由軟體不會使程序員餓肚子嗎?
這似乎不大可能---到目前,開放源碼軟體產業創造了而不是消滅了大量工作機會。
如果寫一個程序比不寫一個程序只是個純粹經濟上的收益的話,無論它是否免費,只要它被完成,程序員都會從中得到回報。而且,無論軟體是由多麼的free的方法開發的,對更新的軟體應用的需求總是會有的。
問:我從何學起?哪裡有免費的Unix?
本頁的其他地方指向最常用的免費Unix。要做一名黑客,你需要自立自強,以及自我教育的能力。
現在開始吧......
㈥ 學了linux有什麼用啊
學習Linux的心得
通過這幾年來對Linux的學習,一步一步摸著石頭過河,到現在才剛剛上岸。我能起的作用可能可以告訴你一些學習的方法,當你遇到困難的時候有個人在旁邊給予幫助。說句心裡話,對於Linux的掌握我還只能算是很粗的東西,因為看了很多大師們的東西以後,發現自已離他們真得還很遠。我不是要打擊你的意思,是告訴你實情。但也可以告訴你,就這一點現在還是比較好混口飯吃。對她了解掌握的越深,你會發現他幾乎什麼都能做,有了實現自已商業機會的平台。
學習Linux分好幾種層次,我個人覺得可以用中學里學的課文《皰丁解牛》來對比。說白了也就是對事物的認識一般都是由表及裡的過程,學習Linux也是一樣的。以前總覺的學理的人只要會數理化就行了,很多老師們由於自身的素質問題也不由自主的暗示著我們這樣做。現在覺得很後悔當初沒有學好文,文太重要了,很多時候他真的可以指導我們的形為和思維方式。最近看的很多管理上的書,最終上升到都是哲學方面的問題,很多東西一追蹤根源到上升到哲學上來了。以前小的時候不懂事,覺得學這些東西有什麼用,現在成熟一些了才發現這些東西真的不是件簡單的事情。學習Linux有很多東西,我建議你首先要注意大師們在哲學上的思路。Linux是由Unix產生的,最終他的實現及他基礎上很多應用軟體都是基於一個哲學理念「把任務分解成一小塊一小塊完成」,可能現在你覺得這是件很簡單的道理。但他不簡單就在於所有有關Unix的東西都是基於這一理念的,看看我們常用的那些小工具吧,find,grep,gzip,tar,bash...等等,這個道理無不貫穿始終。現在IBM/MS等公司經常提到的WEB Service,實際上細想也是這樣的,無非是把很多服務分散開來,然後有個總的業務邏輯來進行迅速的組合成一個新的服務,滿足市場的迅速變化的需求。
結論1:首先要明白他的設計理念是緣自Unix的「把任務分解成一小塊一小塊完成」,建議你可以看這本電子書>。是由Eric Steven Raymond寫的,在google上很容易找到。這本書編重於編程,可以根據自已的興趣選相應章節。我也沒有全看完,也在研習中:-)
從使用著手,自已裝個系統。建議你從Redhat開始。現在Redhat的安裝基本上都是學習MS的做法,很圖形化了。只要按照圖形的指示,很容易讓一個系統跑起來。我覺得初學者應該從這個入手,這樣會快很多。因為Linux上的軟體包都是由不同的開發團隊做的,所以一般人不知道如果安裝,redhat公司做的事情就是把這些東西組織起來,然後把這些軟體賣給大家。因為他對這一行非常的精通,所以賣軟體是其次,賣服務是主業。現在redhat已停止出個人版的了,改成專做企業的了,版本發行最近有些變動。現在最後一個版本好象是RH9.1。
裝好系統後從使用應用軟體開始,建議你先學BASH SHELL編程。因為你將業想往Oracl DBA發展的話,精通SHELL可以在管理上給你帶來很大的便利。同時對於理解Linux系統的啟動和一些軟體的安裝很有幫助。比如說你可以很清楚的了解Linux的整個啟動過程,繼而知道為什麼要做那一步做了這個動作,對你將來處理實際碰到的問題至少可以明白知道問題出在哪。象很多我們日常在Unix/Linux的管理和腳本都是分不開的,精通BASH是我們需要完成的第一步。我指的是精通,不是一般的了解,因為你只有精通了,用的時間越長,你會發現script可以幫我們很方便的干很多事情。這里有一本電子書提供參考,是我至今見到寫BASH最全,最好的一本。名叫《Advanced Bash Scripting Guide》,你可以在www.linuxdoc.org里找到。
這里也提一下www.linuxdoc.org里的文章是你學習Linux的良師益友,裡面的很多文章都是非常不錯的教材。主要分為幾類:1、FAQ 2、HOWTO 3、Guider 4、man手冊。其中的Guider有幾本都是非常不錯的入門書,你基本上可以不用去買本,美國出的印刷書都奇貴,你把那裡的幾本書看完就差不多了。插一句,現在P2P很流行,我基本上都不買專業的書了,大部分都可以找到電子版的下載。裡面的HOWTO主要講的一些具體的問題如何處理,門類也很多很雜,你可以根據自已現在的需求去看相應的文章。有空的時候可以多看看,這裡面有些很好的solution,說不定什麼時候就可以用上。FAQ的文章不多,建議挑些重要的看下。對於man手冊,一般系統上都有,不過那裡應該是最近的,平時用的不多。
結論2:自已裝個Redhat,學好shell。
你用Unix/Linux時候,熟悉一個編輯器是必不可少的。用兩種建議選擇Emacs&VIM。Emacs比較大些,要花些空間,功能具強,以前用過一段時間但沒有深入下去,所以了解也是通過大師們文章中反復提到這個關鍵字和一些信息知道的,用好了功能具強,相當於一個MS下的IDE開發環境;vim比較小些,功能也很強,是vi的增強版,我現在主要是用她來編輯東西。vim支持多種語法,可以用來編腳本、C、Java,功能足夠我們用,學好需要一定的時間實踐。因為我們用Unix/Linux,免不了有時要用console來控制,如果用慣了MS的編輯的話,你會非常痛苦,建議如果以後想長時間使用unix/linux環境的話,學好一種這環境下的編輯器。vim也有windows的版本,開始用起來會覺得不方便,便很快你會發現用VIM可以解決很多MS下編輯器不能解決的問題,不信你可以試試看。
結論3:學會一種Unix/Linux下編輯器Emacs或Vim,建議Vim(因為我在用,可以給你些指導 )
學習Linux有幾種常用的服務軟體需要會用,1) apache(http) 2) bind(dns) 3) pro-ftp(ftp) 4)samba(file share) 。需要掌握這些軟體的安裝和簡單配置,這些軟體在網上都有很詳細的文檔。至少apache要會安裝和管理,因為這是最基本的WEB服務,今天在哪裡都能用到。對於這些常用服務軟體根據自已興趣和環境要求做出選擇,不一定要很精,但要會,建議精通。
結論4:學會常用服務軟體的安裝和配置,至少掌握apache
在Linux中還有很多小實用工具也需要掌握,這對你今後診斷問題和做相應的系統管理有很大幫助。如配置網卡地址的工具ifconfig,查找文件的工具find,行編輯的命令sed、awk,網路狀態檢查netstat、ping、nc等。這些工具可以在實踐中慢慢學習。
結論5:在實踐中學習一些常用小工具,如ifconfig netstat route等
掌握一到兩種Opensource的資料庫,如現在流行的兩種資料庫MySQL和PostgreSQL。MySQL用的人多些也比較簡單,速度又快,做一些簡單的資料庫應用很多都用他做backend databaes server。如果你自已想學Oracle的話,可以直接學Oracle。Oracle的東西多且全,基本上所用的功能都能在Oracle找到。但如果你想更深一層學習DB的話,你可以考慮學PostgreSQL,他有源程序而且支持事務處理(trans-action)、子查詢(sub-select),過程(procere)、自定義函數(function)、游標(cursor),支持了大部份SQL92和99的標准。他的文檔也比較全。
結論6:建議掌握一種Opensource的DB,如MySQL
建議對TCP/IP協議層深入了解,我想你們上研究生時應該講的很深。但我還是建議你再多復習相關的知識點,很多時候網路上的問題可以通對你對TCP/IP的了解找到問題所在。建議你買那個steven的書叫>,同時經常在身邊准備好那幾種狀態切換的圖,勞記在心,出問題的時候就可以知道是哪邊網路不通,還是應用程度出了什麼問題了。
結論7:建議再深入了解TCP/IP protocol
建議除了bash外,再學多一種在Unix環境下的RAD腳本語言python。我也正在學python,通過這段時間的了解發現,這個東東有很多功能而且在開發上可以比c/c++提高至少5倍效率。有時候偏向做系統管理,但掌握一本這種編程形的腳本對工作幫助很大,可以迅速的處理一些問題。BASH是側重於人機交復的腳本,有些事情用BASH是無法完成的。Python在很多Internet應用上有很多mole&package,你可以很方便的使用已有的功能,比如說自已做個小的WEB SERVER,做測試工具,做資料庫查詢等等。
結論8:建議學下Python
好了,今天先羅嗦到這里,還有很多想法愧於文筆有限,改天再詳談。
水平有限,權做參考,希望對於你的學習有所幫助。
客觀來說 對你毫無用處。
㈦ java加減乘除計算器界面編程
來源:Code Wizards HQ
智能觀 編譯
孩子想學編碼的話,有很多方法可以展開學習。可以讓他們學著構建視頻游戲、創建動畫、開發移動應用程序和搭建網站。不管孩子喜歡哪種形式,都有大量的編碼書供他們快速學起來!
但是,怎麼才能找到一本好的兒童編碼書呢?
沒經驗的孩子的編碼書,應該涵蓋基本內容。
許多好的兒童編碼書只用一種語言。
好的兒童編碼書有很多照片和插圖。
好的兒童編碼書提供有用的、可轉移的知識。
翻翻適合初學者的書,看看裡面是否有加減乘除基本數學運算,仔細看看帶變數、if / then語句、循環和函數的章節。你不需要理解這些概念是怎麼工作的,只要看看書的標題里有沒有提這些,如果沒有,這本書不適合新手。
好的兒童編碼書只側重一種語言,可以是Scratch、Javascript或Python。如果你不知道孩子應該學哪種語言,可以買兩三種不同語言的書。
對於那些第一次接觸代碼的孩子來說,視覺吸引力很重要。好的兒童編碼書每一頁上都有豐富多彩的插圖,充分吸引孩子的關注。
學一門特定的語言並不像理解基本的編碼概念那麼重要。寫代碼的人可以從任何語言開始學起,然後輕松地轉入其他語言。有些語言不太適合孩子,如C和C++,很多成年人都學不好。
因此,根據以上幾項挑選原則,我們推出一份教孩子編碼的書籍,涵蓋塊編程、編程基礎語言、Web開發、移動開發、游戲編程、機器人和物聯網等幾大類,並標出適合孩子學習的年齡段,可以說是史上最全的兒童編碼書籍匯總了!如果你正在苦惱怎麼給孩子選書,快收下這份開學禮物吧~
塊編程類
學齡前的兒童也可以學慣用塊編程語言編碼。塊語言是高度圖形化的,易於學習。Scratch是為孩子們設計的一種流行的塊語言。
1. Coding with Scratch Workbook
(用Scratch編碼)
作者:DK出版公司
適合年齡: 6-9歲
在短短40頁的篇幅里,讀者就能學會用Scratch做任何事,從解決簡單的數學問題到構建、分享游戲。每章都包含指導孩子們完成簡單編碼項目的分步說明。
2. Learn to Program with Scratch:A Visual Introction to Programming with Games, Art, Science, and Math
(學會用Scratch編程:游戲、藝術、科學和數學編程的可視化介紹)
作者:Majed Marji
適合年齡: 10歲及以上
這本將近300頁的書涵蓋了初學者需要了解的關於Scratch語言的所有內容。讀完這本書後,孩子們將會牢固掌握Scratch和適用於任何語言的編程思想。
3. Scratch for Kids For Dummies
(兒童Scratch傻瓜書)
作者:Derek Breen
適合年齡: 10-14歲
讀者將在構建16個項目中,學習變數、if / then語句、循環和基本編程邏輯。
4. The Official ScratchJr Book: Help Your Kids Learn to Code
(中文版:動手玩轉ScratchJr編程)
作者:Marina Umaschi Bers 、Mitchel Resnick
適合年齡: 5-9歲
對於那些還太小不能學習Scratch的孩子來說,Scratchr Jr是一種更簡單的塊編程語言。
5. MicroWorlds EX Books for Kids
(兒童MicroWorlds EX工具書)
作者:Steve Robson
適合年齡: 5-9歲
藉助MicroWorlds EX工具,孩子們通過圖形和文本來學習。他們沒有被一種純圖形語言和「固定」代碼所束縛,也不必100 %處理文本。
鏈接:
https://pan..com/s/1igfVJVV1UpBdIZvNzogv2Q
6. Coding for Kids For Dummies
(兒童編碼傻瓜書)
作者:Camille McCue
適合年齡: 10-14歲
書中指導孩子完成15個項目,包括繪畫、動畫和游戲,還帶領孩子們完成了創建計算機程序的過程,從構思到構建、測試。
編程基礎
盡管C++、Java和Python等語言之間存在著巨大的差異,但理解編碼基礎知識,孩子可以相對輕松地從一種語言遷移到另一種語言。
Python
7. Python for Kids
(適合孩子的Python學習)
作者:Jason R. Briggs
適合年齡: 10歲以上
這本書對孩子來說既全面又容易理解。內容適合小學生,但也適合許多成人學習者看。
鏈接:
https://pan..com/s/1GJUXzKUfVed3O-sfss3MDg
8. Coding Projects in Python
(Python編碼項目)
作者:DK出版公司
適合年齡: 9-12歲
不管孩子已經學了Scratch之類的塊語言,還是沒有做過任何編程,都可以在這本書里找到需要的一切來構建軟體。書後面的詞彙和參考部分對孩子來說很有幫助。
鏈接:
https://pan..com/s/1BJE0IgfeBc8uEHrdHAxuaw
9. Python in Easy Steps
(學習Python的簡單步驟)
作者:Mike McGrath
適合年齡:中學及以上
本書不是專門為孩子寫的,但它內容組織得很好,中學生,尤其是有一些Scratch或其他語言經驗的中學生,可以很容易地理解它。讀完本書,學生可以用Python構建簡單的網頁和編寫桌面應用程序。
10. Hello World! Computer Programming for Kids and Other Beginners
(中文版:父與子的編程之旅:與小卡特一起學Python)
作者:Warren Sande
適合年齡: 12歲以上
學習編碼時,大家編寫的第一個程序就是在屏幕上顯示「Hello World」。本書沿襲了這一傳統,並為新手提供構建任何類型有用軟體所需的必要技能。
鏈接:
https://pan..com/s/1tue23Fur36Q3l-8YoziJ1w
Java
Java是一種非常流行的語言,用於所有操作系統和Android設備。這也是高中計算機科學課程中最常見的語言。
11. Java Programming for Kids: Learn Java Step by Step and Build Your Own Interactive Calculator for Fun!
(面向兒童的Java編程:逐步學習Java,並構建自己的互動式計算器)
作者:R. Chandler Thompson
適合年齡: 13-17歲
這本書既有趣又簡單。青少年讀者可以通過Java編程語言,構建互動式計算器應用程序。
12. Java for Kids (and grown ups): Learn to Code and Create Your Own Projects with Java 8
(面向兒童和成年人的Java:學慣用Java 8編寫代碼並創建自己的項目)
作者:Nadia Ameziane Garcia
適合年齡: 10-12歲
這本書只介紹學習過程中每一步所需要的東西。每一章都建立在前文介紹的基礎上,孩子們可以在短時間內學會Java的基礎知識。
C++
這不是最容易學的語言,但精通C++的人會更了解計算機是如何工作的。
13. C++ Progamming In Easy Steps
(C++編程的簡單步驟)
作者:Mike McGrath
適合年齡:中學及以上
作者通過一系列簡單的課程介紹了C++,並提供大量專家提示,以幫助讀者獲得最佳編程實踐。這本書讓孩子們短時間內學會C++基礎知識,並可能沿用很多年。
14. C++ for Kids
(適合兒童的C++語言)
作者:Blaise Vanden-Heuvel、John C Vanden-Heuvel Sr.
適合年齡: 7-9歲
這本簡短多彩的書向孩子們展示了C++編程是如何工作的。示常式序各色各樣,這樣孩子們就能理解程序的各個部分實際上是做什麼的。
Web開發類
HTML和CSS
網頁用HTML構建,用CSS設計風格。這些不是真正的編程語言,但它們讓孩子接觸文本編輯器、構思想法,對日後探索Javascript或Python之類的語言很有用。
15. Build Your Own Website, a Comic Guide to HTML, CSS and WordPress
(建立你自己的網站,HTML、CSS和WordPress的漫畫指南)
作者:Nate Cooper、Kim Gee
適合年齡:中學及以上
在這本漫畫風格的網站搭建指南中,孩子們學習HTML標記語言,熟悉控制網頁樣式的CSS語言,了解內容管理系統WordPress。
鏈接:
https://pan..com/s/194OAJuxV47aUdHndpjzXhA
16. CoderDojo Nano: Building a Website: Create with Code
(用代碼搭建網站)
作者:Clyde Hatter、CoderDojo
適合年齡: 8-12歲
這本書只有96頁,引導孩子們完成建立網站的整個過程。孩子可以建立一個和書中例子完全一樣的網站,也可以試著建自己喜歡的網站。
17. Creating a Website: Design and Build Your First Site
(創建網站:設計和建立你的第一個網站)
作者:Greg Rickaby
適合年齡: 7-11歲
這本書為孩子設計網頁提供指南,從規劃網站的結構到添加使網站與眾不同的細節。同時提供了軟體工程師在現實世界中使用的許多技巧和操作過程。
JavaScript
許多程序員認為JavaScript是互聯網的未來,學習這種語言可以建立互動性強的、有用的網站。
18. Computer Coding with Javascript
(使用Javascript進行計算機編碼)
作者:DK出版公司
適合年齡: 8-12歲
從HTML、CSS轉到JavaScript可能容易暈,因為JavaScript更加復雜、強大。但這本書內容比較簡單,孩子們可以順利過渡。
19. Javascript for Kids: A Playful Introction to Programming
(面向兒童的JavaScript:有趣的編程入門)
作者:Nick Morgan
適合年齡: 10歲以上
本書從數組、變數類型討論到游戲編程。無論孩子想製作游戲、製作動畫還是使用虛擬現實,JavaScript都能讓他們把想法變成真實的程序。
鏈接:
https://pan..com/s/1JEs-oTMGwV2OgCcRdlfJEQ
20. Javascript for Kids For Dummies
(面向兒童的JavaScript傻瓜書)
作者:Chris Minnick、Eva Holland
適合年齡: 10-13歲
如果你有興趣讀編程書,幫孩子學習編碼,試試這本。這本書遠遠超出基本內容,方便讀者構建任何能想到的Web項目。
鏈接:
https://pan..com/s/1JfXJvj0xPSdGGw-Iwr_IJA
21. Get Coding! Learn HTML, CSS, Javascript & Build a Website, App & Game
(編碼!學習HTML,CSS,Javascript ;建立一個網站,應用程序和游戲)
作者:Young Rewired State
適合年齡: 9-12歲
這本書中的課程是以任務形式呈現的,教導孩子構建網站、應用程序和游戲。他們還會了解不同類型的編程語言以及每種語言的優點。
移動開發
安卓應用
App Inventor是一個完全在線開發的Android編程環境,具有類似Scratch的塊編程界面。它簡化了移動開發過程,是向孩子們介紹Android編程的理想方式。
22. Building a Mobile App
(構建移動應用程序)
作者:Guthals
適合年齡: 7-11歲
讀這本書的孩子不僅學習編碼,還學習規劃、開發自己的定製應用。本書提供了專業人員使用的應用程序開發的內容,包括原型製作和創建應用程序框架,對熱愛移動開發的孩子來說特別有價值。
23. Hello App Inventor
(你好,App Inventor)
作者:Paula Beer、Carl Simmons
適合年齡: 9歲以上
使用App Inventor構建的應用可以利用許多智能手機功能,如運動感測器、GPS和相機。本書通過30個示例項目向讀者展示了如何利用這些功能。
鏈接:
https://pan..com/s/1ybVo8tEVE5TE3T8F4wnaqw
iOS應用
為了構建蘋果產品應用程序,開發人員使用了一種叫Swift的語言。創建這種語言時,軟體工程師想讓沒經驗的人容易學習。對於從未編程的孩子來說,這是一個很好的選擇。
24. Coding iPhone Apps for Kids
(適合孩子的iPhone應用程序編碼)
作者:Gloria Winquist、Matt McCarthy
適合年齡: 10歲以上
本書介紹了Swift語言和編碼基礎,並讓孩子們構建兩個真正的應用程序:一個生日跟蹤器和一個滑板游戲。
25. Hello Swift
(你好,Swift)
作者: Tanmay Bakshi、Lynn Beighley
適合年齡: 9歲以上
Tanmay Bakshi可以說是我們的老朋友了,智能觀從去年開始就報道他的故事。他4歲編碼,9歲就發布第一個應用程序。通過他的書,讀者也會構建能在iOS應用商店上發布的應用程序。
如果還有人對他不了解,可以看看我們往期的報道。附傳送門:
13歲天才少年在IBM掀起一場人工智慧風暴
IBM少年工程師說:人工智慧的下一個前沿是心理健康
游戲編程
Scratch游戲編程
26. Coding Games in Scratch
(用Scratch編碼游戲)
作者:Jon Woodcock
適合年齡: 8-12歲
這本書讓孩子在瀏覽器中製作自己的游戲。
27. Code Your Own Games: 20 Games to Create with Scratch
(編碼自己的游戲: 用Scratch創建20個游戲)
作者: Max Wainewright
適合年齡: 6-11歲
這本書分5個層次遞進,20個游戲項目讓孩子們熟悉編碼和游戲開發的原理。每款游戲都鍛煉了孩子們的能力,比如控制玩家互動、在屏幕上設置對象動畫、添加聲音。
28. Star Wars Coding Projects
(星球大戰編碼項目)
作者:Jon Woodcock、Kiki Prottsman
適合年齡: 8-12歲
喜歡《星球大戰》的孩子可以通過C3PO、R2D2和其他角色學習編碼。讀者不需要任何編程經驗就可以看這本書。
Python游戲編程
29. Mission Python
(Python任務)
作者:Sean McManus
適合年齡: 10歲以上
雖然對於10歲的孩子來說,這本書有點簡單了,但它探索了Python游戲編程的深度。書從Python Essentials插件開始,逐漸深入更高級的概念,如音頻文件處理和3D圖形。
30. Invent Your Own Computer Games with Python
(中文版:Python編程快速上手——讓繁瑣工作自動化)
作者:Al Sweigart
適合年齡: 10歲以上
這本書通過對Hangman和Tic-Tac-Toe等幾款流行游戲進行詳細解釋來教授編程。
鏈接:
https://pan..com/s/1ncZTTrIPlBzA30e_BNjDAA
31. Learn to Program with Minecraft
(用我的世界學項目)
作者:Craig Richardson
適合年齡: 10歲以上
《我的世界》是一款受歡迎的3D游戲,孩子們可以在虛擬世界中探索、建造城堡等。本書介紹了如何使用Python編程擴展《我的世界》。
鏈接:
https://pan..com/s/13_FMKoqlMF8P1uu4gaqRNQ
32. Minecraft Modding for Kids For Dummies
(用我的世界教孩子建模的傻瓜書)
作者:Guthals、Stephen Foster、 Lindsey Handley
適合年齡: 10-13歲
通過9個JavaScript項目,孩子們從《我的世界》里的「玩家」化身為 「建模師」。讀者要有玩《我的世界》的經驗,但不需要以前學過編碼。
機器人和物聯網
Arino
Arino是一台微型計算機,可以用感測器、LED燈和馬達等小硬體控制各種電路。學習Arino不僅僅意味著學習編碼;它包括設計和建造真實世界的項目。
33. Adventures in Arino
(Arino歷險記)
作者:Becky Stewart
適合年齡: 11-15歲
喜歡機械和工程的孩子會喜歡本書中的項目。孩子們了解Arino,然後上手一些簡單的項目,比如讓LED燈亮起來。
鏈接:
https://pan..com/s/1JFopfxxfONYCGAKMM28yaQ
34. Sylvia』s Super-Awesome Project Book: Super-Simple Arino
(Sylvia的超棒項目書:超級簡單的Arino)
作者:Sylvia "Super-Awesome" Todd
適合年齡: 8-12歲
Sylvia介紹了如何建立Arino項目來控制燈光和製作音樂等。這些項目不是復制代碼,羅列事物,而是對事物如何工作以及為什麼工作進行了詳細解釋。
樹莓派
你可以把樹莓派(Raspberry Pi)當成Arino的升級版。兩台計算機的尺寸差不多,但是樹莓派的操作系統更接近筆記本電腦。
35. Raspberry Pi Projects Workbook
(樹莓派項目工作簿)
作者:DK出版公司
適合年齡: 7-12歲
孩子們可要通過這本書製作游戲,製作音樂,製作動畫,學習Scratch、Python和Raspberry Pi。
鏈接:
https://pan..com/s/1AzZ-ZubG41zOXUh2IFRA
36. Adventures in Raspberry Pi
(樹莓派歷險記)
作者:Carrie Anne Philbin
適合年齡: 11-15歲
本書介紹的9個項目讓孩子們快速上手樹莓派,涵蓋的概念編程有基礎、游戲編程、圖形創建等。
鏈接:
https://pan..com/s/1Ub365kwYczlN0E5k6b-57g
樂高機器人
樂高生產了幾個套件,包括機器人滾動、旋轉甚至攀爬的所有必要部件。他們也有自己的語言,孩子們用這些語言來創作。
37. The Art of Lego Mindstorms EV3 Programming
(樂高頭腦風暴EV3編程的藝術)
作者:Terry Griffin
適合年齡: 10歲以上
本書教孩子們在EV3頭腦風暴編程環境中,控制自己的機器人。他們學習如何建造樂高機器人並用代碼控制它。
38. Building Robots with Lego Mindstorms
(用樂高頭腦風暴套件製造機器人)
作者: Mario Ferrari、Giulio Ferrari、Ralph Hempel
適合年齡: 10歲以上
在本書中,孩子們使用電子電路和感測器,以及樂高頭腦風暴套件,學習製造機器人。書中有大量關於齒輪、馬達、氣動和其他工程概念的信息,對於嚴肅的機器人愛好者來說很重要。
適合學齡前兒童的編碼書
為低齡兒童設計的編碼書,幫助兒童建立對計算機程序的模式、顏色和其他基本要素的認知。
39. Baby Loves Coding
(寶貝喜歡編碼)
作者:Ruth Spiro
適合年齡:學前及以上
因為是給很小的孩子看的,書中沒有提供任何明確的編碼指導。它介紹了解決問題的方法,以及優秀程序員需要有的想法。
40. Learn to code: Robot Train』s Surprise Birthday Party (Volume 1)
(學會編碼:機器人火車的驚喜生日聚會I)
作者:by Jen Chiou
適合年齡:學前及以上
孩子在本書中了解編碼的先決條件,如決策和邏輯。通過觸摸書上像按鈕的圖片,孩子們幫助一輛虛構的機器人火車向生日派對運送用品,從而了解編碼邏輯是如何工作的。
41. HTML for Babies
(適合嬰兒的超文本標記語言)
作者:Sterling Children's
適合年齡: 3-5歲
HTML是一種簡單的標記語言,不需要復雜的邏輯,3-5歲的孩子可以通過本書,學會識別與網路編程相關的符號和顏色。
42. JavaScript for Babies
(適合嬰兒的JavaScript語言)
作者:Sterling Children's
適合年齡: 3-5歲
這本書讓孩子們了解JavaScript的一些基本結構和數據類型。
有趣的青少年編碼書
讓青少年讀一本編程類的書可能很困難,所以以下書籍通過游戲開發和其他有趣的項目,幫助青少年學習。
43. Computer Programming for Teens
(適合青少年的電腦編程)
作者:Mary E. Farrell
適合年齡:青少年
沒有編碼經驗的孩子和那些不知道學什麼語言的孩子,是本書的目標受眾。書中有一些C++、Python和Web編程語言的例子,孩子們將會找到最適合自己的編碼項目。
44. Game Programming for Teens
(適合青少年的游戲編程)
作者:Maneesh Sethi
適合年齡:青少年
本書介紹了一種名為BlitzMax的游戲專用語言,它使孩子們能在所有平台( Windows、Mac、Linux )構建游戲。
鏈接:
https://pan..com/s/1pe0gc_MlDdIeD3jp5YNE1w
適合女孩的編碼書,STEM入門
女孩可以通過編程提前接觸STEM。構建應用程序、開發游戲、編程機器人——這些活動為女孩們進入STEM領域奠定了堅實的基礎。
45. Women Who Launched the Computer Age
(開創計算機時代的女性)
作者:Laurie Calkhoven
適合年齡: 6-8歲
本書講述了6位在二戰期間為美國軍方從事秘密項目的天才女性。
46. Grace Hopper: Queen of Computer Code
(格雷斯·霍普:計算機代碼女王)
作者:Laurie Wallmark
適合年齡: 5歲以上
格雷斯·霍普是一位有創造力的計算機科學家和數學家,也是一位授勛的海軍軍官和總統自由勛章獲得者。孩子們會在她精彩的生活和成就中找到鼓勵。
47. Girls Who Code: Learn to Code and Change the World
(學會編碼並改變世界)
作者:Reshma Saujani
適合年齡: 10歲以上
Reshma Saujani是女孩編碼組織「Girls Who Code」的創始人,她在本書中介紹了電腦和編碼,以及在科技領域工作的女性的軼事。
培養兒童編碼興趣的通用讀物
編碼的孩子受益於問題解決、數學和決策能力。一些優秀的兒童計算機科學通用讀物側重於培養孩子對編碼的興趣。
48. Lauren Ipsum: A Story About Computer Science and Other Improbable Things
(勞倫·益普森:關於計算機科學和其他不可思議的故事)
作者:Carlos Bueno
適合年齡: 10歲以上
一個年輕的女孩需要找到回家的路,但要做到這一點,必須解決一個個難題……讀者不知不覺中,接觸到了編程邏輯、解決問題的技巧和其他計算機科學思想。
49. Once Upon an Algorithm
(從前有個演算法)
作者:Martin Erwig
適合年齡:中學及以上
演算法是解決問題的一組指令或過程。你可能覺得孩子們不太想看這個。但作者Martin Erwig通過類比、童話和電影引用,使演算法變得有趣。
原文鏈接:
http://www.codewizardshq.com/coding-books-for-kids/
—完—
擴展閱讀:
適合孩子學習編碼的7款工具套件
干貨|| 如何在線學習編碼?看看這 11個優秀的編程資源網站
教孩子編碼就夠了嗎?不!學校該培養的是計算思維
每個人都應該學習編碼嗎?吳恩達這樣回答……
如果學生編程能力勝於老師,編碼課該怎麼教?
親愛的朋友:
經常有讀者咨詢,有沒有適合孩子的編碼書推薦?
我們之前推薦過一些,但苦於無中文版,很多讀者找不到購買方式。
今天的推薦,內容比較全面,我們可愛的小編找遍了資源,將能找到電子版都找到,一並送給你。
其餘沒有資源的,網上也可以買到。
如果本文對你有幫助,別忘了轉發給你身邊的朋友,讓它幫助更多人。
祝安!
PS:為了方便與讀者探討,特意注冊了一個專用號。如果你也是我們的鐵桿讀者,想探討交流,可以加微信:znglmym。
智能觀 靈米
2018-9-12 於北京中關村
想知道AI加教育領域有哪些最新研究成果?
想要AI領域更多的干貨?
想了解更多專家的「智能觀」?
請前往:www.智能觀.com。
想交流溝通,請加負責人微信:znglmym
聲明:
編譯文章旨在幫助讀者了解行業新思想、新觀點及新動態,為原作者觀點,不代表智能觀觀點。
轉載智能觀原創文章,請聯系
智能觀小艾(微信號:zng2017618)!
關於我們
我們關注AI+教育。致力於提供高附加值的知識,以幫助每一位老師和我們的讀者不斷學習並提高技能。
我們努力讓發表的每一篇文章都具有最佳質量,以滿足讀者的需求。
㈧ NOLIA E72i 用360安全衛士掃描出Python plugin 與PIPS Installer 與 InstallGuide三個程序是惡意木馬正常
Python plugin 這不是惡意木馬, 我手機裡面也有,是360有問題,把Python plugin刪掉會出問題的。
㈨ 如何通過Python構造一個DNS查詢包
可以嘗試以下步驟:
ping一個域名,用wireshark抓一個DNS的query,看看各個欄位分別是什麼值;
用python的struct將這些欄位按順序pack成二進制數據;
用python的socket將構造好的數據發到DNS伺服器UDP的53號埠,本地埠可以自行指定;
用python的socket從buffer中讀取server返回的數據;
用python的struct將二進制數據中各個欄位按順序unpack回來;
列印顯示。
按照這個方法,同樣可以寫一個簡單的DNS伺服器,希望能有所幫助。
再具體點,可以參照The TCP/IP Guide 中的DNS message format來構造query的各個欄位:
Header部分
Identifier:16位的int,就是0-65535,可以用隨機數產生。
Flags:0x0100,其中:
#0... .... .... .... = Query/Response
Flag: query=0
#.000 0... .... .... = Opcode: standard query=0
#.... .0.. .... .... = Authoritative
Answer Flag
#.... ..0. .... .... = Truncated: not truncated=0
#.... ...1 .... .... = Recursion desired: recursively=1,如果想 iteratively就置1
#.... .... 0... .... = Recursion Available: response的東西,=0
#.... .... .000 .... = Zero: 保留欄位,=0
#.... .... .... 0000 = Response Code:=0
3.Question Count:16位的int,=0x0001
4.Answer Record Count:16位的int,=0x0000
5.Authority
Record Count:16位的int,=0x0000
6.Additional Record Count:16位的int,=0x0000
Question部分
QName:直接把域名打包進去;
QType:16位的int,我們要得到的是主機名,所以=0x0001,
QClass:16位的int,=0x0001
㈩ 《Python3程序開發指南》pdf下載在線閱讀,求百度網盤雲資源
《Python 3程序開發指南》([美] 薩默菲爾德(Mark Summerfield))電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:https://pan..com/s/1UqWQmiRdjPEqHOKku1n2Cg
書名:Python 3程序開發指南
作者:[美] 薩默菲爾德(Mark Summerfield)
譯者:王弘博
出版社:人民郵電出版社
出版年份:2015-2
頁數:518
作者簡介:
Mark Summerfield,Qtrac公司的所有人,同時還是一位在Python、C++、Qt以及PyQt等領域卓有專長的獨立培訓專家、顧問、技術編輯與作者。Mark Summerfield撰寫的書籍包括《Rapid GUI Programming with Python》以及《Qt:The Definitive Guideto PyQt Programming》(Addison—Wesley,2008),並與Jasmin Blanchette共同編寫了《C++GUI Programming with Qt 4》(Addison—Wesley,2006)。作為Trolltech的文檔管理者,Mark創立了並負責編輯Trolltech的技術雜志《Qt Quarterly》。