1.å¦ä½ç³»ç»å°å¦ä¹ Shellç¼ç¨?沃土沃土源码看不懂
å¦ä½ç³»ç»å°å¦ä¹ Shellç¼ç¨?
æ¥éª¤/æ¹æ³
æ°æ®åºç®¡çç³»ç»ï¼DBMSesï¼
ãã诸å¦PostgreSQLã OracleãMicrosoft SQL Serverï¼ä»¥åInformixè¿ç§ä¸ä¸ãèç¨çæ°æ®åºç®¡çç³»ç»éè¿åå¨è¿ç¨æåå¨å½æ°æä¾äºèæ¬åè½ãæå广æ³è®¤å¯çè¯è¨é项ä¹è®¸æ¯Microsoft SQL ServeråSybaseæ使ç¨çTransactSQLï¼ä»¥åOracleæ使ç¨çPL/SQLã PostgreSQLæä¾äºä¸ä¸ªå为PL/pgSQLçç±»PL/SQLçç¨åºæ©å±å°SQLéï¼ä½å®ä¹æä¾äºå æ¬PL/PerlãPL/PythonãPL/Rubyå PL/Tclå¨å çå ¶ä»è¯è¨çéæ©èå´ã
ããè¿ç§ç¼ç¨æºä¼è½ç¶éå®äºä¸ç»ç¹å®çé®é¢é¢åï¼ä½å¦æä½ æ¯ä¸åDBAï¼æ°æ®åºç®¡çåï¼æä½ çå·¥ä½æ¶åæ°æ®åºå¼åæ¥åï¼å°ä¼äº²èº«ä½éªå°è¿æ¯é常æç¨çã
æ件
ãã 许å¤æ°ççµè游ææä¾äºç¼ååå è½½æ件çåè½ãä¾å¦ï¼âéå ½ä¸çï¼World of Warcraftï¼âæä¾äºä¸ä¸ªä½¿ç¨Luaèæ¬è¯è¨çæ件系ç»ãéçFirefox声åé¹èµ·å广æ³ä½¿ç¨ï¼ç°ä»£ç½é¡µæµè§å¨å¾å¾ä¹æä¾çµæ´»çæ件系ç»ï¼å¨æç®åçæ åµä¸ï¼Firefoxçæ件é½æ¯ç¨JavaScriptç¼åçãå¼æ¾æºç çæµè§å¨å¨æ件å¼åæ¹é¢å¾å¾æ¯å°éæºä»£ç çæµè§å¨æ´å ·å¸å¼åï¼å¹¶ä¸Chromiumæµè§å¨çæ件系ç»ï¼å¾å¯è½æ为æ件å¼åè 们ç第äºå¤§ç®æ ï¼è¿æ¯å 为谷æChromeæµè§å¨é«è°çè¥éçç¥ä»¥åä¸è®¾éç许å¯è¯ï¼permissive licensingï¼æ¿çã
ããå ¶ä»è®¸å¤åºç¨ç¨åºå ·ææ件åæ©å±ç³»ç»ï¼å¯ä»¥æä¾å åçæºä¼æ¥å¹å »è¿äºè¿ éåå±çç¼ç æè½ï¼çè³å æ¬ä¸äºç»ç«¯ä»¿çå¨ï¼terminal emulatorsï¼ååºäºæ§å¶å°çææ¬ç¼è¾å¨ï¼å¦Vimãï¼éé²ä¸ç¹å¥½æ¶æ¯ï¼æè´¡ç®äºä¸ç¹ä»£ç å°urlpicker项ç®ãï¼
å®è·µé®é¢
ããæ¨å¯ä»¥å°è¯è§£å³ä»£ç ä»»å¡ä¸çéç¨æ¸ åææä¾çé®é¢ï¼ä»£ç ä»»å¡æ¯ç¹å«ä¸ºäºç»ç¨åºåæä¾å®ä¹ æºä¼èä¸ä¸è®¾è®¡çã欧æï¼Project Eulerï¼æ¯ä¸ä¸ªæ¯è¾æµè¡çãä¸è®ºç¼ç¨è¯è¨ç项ç®ï¼å æ¬âä¸ç³»åå ·ææææ§çæ°å¦/计ç®æºç¼ç¨é®é¢âã欧æ项ç®æ¶éäºä¸ç¾ä¸ªé®é¢ï¼è¿äºé®é¢ä¸è¬ä»æå°é¾ï¼è¶³ä»¥è®©ä½ å¿ç¢å¾é¿ä¸æ®µæ¶é´ã
ããå ¶ä»ä¾åå æ¬RubyQuizï¼å®å¤å¹´æ¥ä¸ç´å¨ruby-talkçé®ä»¶å表ä¸å¹¿å欢è¿ãå¦å¤è¿æCodeKataï¼å®æ¯Dave Thomasçä¸ä¸ªè§æ¨¡è¾å°ã寿å½è¾çç项ç®ãDave Thomasæ¯ãThe Pragmatic Programmerï¼ç¨åºåä¿®ç¼ä¹éï¼ãä¸ä¹¦çåèè ä¹ä¸ã
ããè¿äºé项ä¸éåç¨ä½èªææ¿å±åæ¢ç´¢æ§å¦ä¹ çä»»å¡ï¼å 为å®ä»¬ä¼è®©äººæ ç ´å¤´ç®ï¼ä½å¦æåç°å ¶ä¸çä¹è¶£ï¼å®ä»¬å¯ä»¥åå ¶å®æ¹æ³ä¸æ ·ç¨äºç¼ç¨å®è·µæè²ã
æºè½ææºï¼Smartphonesï¼
ããåºç¨ç¨åºå¼åè¡ä¸ä¸æ大çæ°çæ½®æ¯æºè½ææºçåºç¨ç¨åºãè¿ç§è£ ç½®é常éè¦å¼å人å使ç¨ä¸ç§å¯å°è£ ç½®çåè½åæ¥å°æè³çç¹å®è¯è¨ä½ä¸ºåºç¨å¹³å°ï¼è³å°è¦ä»¥å®æ¹è®¤å¯çæ¹å¼è¿è¡ã
ããæºè½ææºå¼åä½ç³»çä¸ä¸ªæ°å ´äº§ä¸æ£å¨å´èµ·ï¼å³å 许å¼å人åç¨éæºè½ææºå¹³å°åççå ¶å®è¯è¨ç¼åèªå·±ç代ç ï¼ç¶å转å为åçè¯è¨çåºç¨ç¨åºã å 为ä¸éè¦å¦ä¹ ä»»ä½ç¹å®çæºè½ææºå¹³å°çå®æ¹åºç¨ç¨åºå¼åè¯è¨ï¼Webåºç¨ç¨åºä¹æ²¾äºå ï¼æ为æºè½ææºåºç¨ç¨åºå¼åçä¸ç§æ¹æ³ãéæ©è¯è¨çäºå¹³å°çå¦ä¸ä¸ªæ¹æ¡æ¯ä½¿ç¨å诺åºäºçNè¿æ ·ç设å¤ï¼å®è¿è¡Debianåè¡çLinuxç³»ç»ï¼å¯ä»¥è¿è¡ç软件èå´å¾å®½ââå æ¬å¾å¤ä¸æ¯ä¸ºæºè½ææºè®¾è®¡ç软件ã
ãã侧éäºå¤ç§æ¹æ³å¼åæºè½ææºåºç¨ç¨åºç书ç±åå¨çº¿æç¨çº·çº·åºç°ï¼ç¹å«æ¯AndroidåiPhoneç设å¤ãä¸äºç¬¬ä¸æ¹æ¡æ¶å°å¯ä»¥ä»HTML + JavaScript å° Ruby æ Pythonç¼åç代ç âç¼è¯â为å¤ç§å¹³å°çâæ¬å°âåºç¨ç¨åºï¼ææ¶ä¸ä» å æ¬æºè½çµè¯å¹³å°ï¼èä¸å æ¬æ¡é¢ç³»ç»ã对è¿ç§æ åµä¹è®¸æä»¤äººå ´å¥çæ¯ï¼è¿äºæ¡æ¶åç¸å ³çIDEä¸å¾åäºè¯å¾è§£å³ææçç¼ç¨é®é¢ï¼è¿ä¸åæ ·åºè²çç¼ç¨æ¹å¼ç主è¦æ¡æ¶ï¼å¦Visual Studioå.NETæ¡æ¶ææä¸åãè¿ä½¿å¾äººä»¬æå¯è½éè¿ç¼©å°é项è³ä¸ä¸ªæäºç®¡ççé®é¢é¢åæ¥æ¾èå°ç®åå¼åè¿ç¨ãå ¶ç»ææ¯è½¯ä»¶å¼åé£æ ¼ä»¤åå¦è æå°é常æäºæ¥åã
ããä¸è¶³ä¹å¤æ¯ï¼å¨å¦ä¹ å¦ä½ç¼ç¨æ¶ï¼ä½ å¯è½å¾é¾æ¯å¤©é½ç¼åæ°çæºè½ææºåºç¨ç¨åºãä½æ¯ï¼å¦ææ¨çæºè½ææºçæä½ç³»ç»æ¯ç±»Unixç³»ç»ï¼å¦Nçï¼ï¼åæ ·çå°å·¥å ·å¼å项ç®å¨å·¥ä½ç«åæå¡å¨ä¸é½é常æç¨ã
çµåè¡¨æ ¼
ããå¦æ使ç¨äºé带强大å®ç³»ç»ççµåè¡¨æ ¼ç¨åºï¼ä½ å°æ¥æä¸ä¸ªå¿«éçæ¹æ³æ¥é è¯»å ¶ä»äººï¼æç©ï¼ä»£ç ï¼å¹¶ç¼åèªå·±ç代ç ãé¦å ï¼å°ä½ æ§è¡æ¬¡æ°å¤ãé常éè¦éåæ°ä¸ªç¹çæ¥éª¤çä»»å¡è®°å½æä¸ä¸ªå®ãæ¥ä¸æ¥ï¼æå¼å®çæºä»£ç ï¼é 读并è¿è¡ç¼è¾ï¼ä½¿ä¹æ´éåäºä¸è¬ç¨éãè¿æ¯ä¸ä¸ªé常æéçæ¹æ³ï¼ä¸ä¼å¸¦æ¥å¤å¤§çé¿è¿ï¼ä½å¯è½ä¼å¸®å©ä½ ä¸è·¯ï¼èªç¶å°å欢ä¸ç®åçèæ¬ä»£ç ã
ãã使ç¨æ¤ç±»èæ¬çæ常è§ççµåè¡¨æ ¼ç¨åºå¯è½æ¯å¾®è½¯ExcelãExcelæ使ç¨çVBAæ¯ä¸ç§è´«ä¹çè¯è¨ï¼ä½æ¯å¦æä½ å¨æ¥å¸¸å·¥ä½ä¸å¤§é使ç¨Excelï¼è¿å¯è½æ¯æ 论å¦ä½ä½ é½è¯¥ææ¡çä¸ç§æè½ãOpenOffice.org使ç¨äºç±»ä¼¼çå®ç³»ç»ï¼ä½¿ç¨æ¹æ³å¤§è´ç¸åï¼LibreOfficeä¹å微软Officeä¸æ ·ï¼æä¾äºå¦ä¹ 代ç çæºä¼ã
ããå¨ä»»ä½æ åµä¸ï¼ç¼åç¨åºçé¨åé½æ¯ç¼åç®åçå½ä»¤è¡shellèæ¬ä»£ç ç¨é«ï¼å 为èåé项åæé®éè¦ç¹å»æè½å¯ç¨ãå ¥é¨çææ¬ç±»ä¼¼äºç¨å¸åºä¸çä¸ç§ä¸»è¦IDEå¼å§ä¸ä¸ªæ°é¡¹ç®ï¼ä½æ¯ä¸ä¸ªå¤§å¹ 缩水çâ项ç®âãè¿ä¼æ¯ä¸ä¸ªä¸éç主æï¼å¯ä»¥ç¡®ä¿è¿ä¸ä» ä» æ¯å¨æ¥å¸¸å¼åç¯å¢ä¸ç¼åèæ¬çæºä¼ï¼çè³æ¯å 以å©ç¨å°±ä¼å¾æ帮å©çã
Unix
ããå¦æä½ å®æ使ç¨ä¸äºç±»UNIXç³»ç»ï¼å¨å¯»æ¾é»ç¼åæç¼ç¨æè½çæ¹å¼æ¶å°±å ·æ巨大çä¼å¿ãUNIXå¨ç®åèæ¬èªå¨åæ¹é¢æä¾äºæ¯ä»»ä½å ¶ä»å®¶åºéç¨æä½ç³»ç»çæ´å¤ç使ç¨æºä¼ï¼è¿è¦æ谢平å°ä¸ç®¡çèæ¬çæ大çµæ´»æ§ãå¨æä¸å¤æçæ åµä¸ï¼ä¸ä¸ªç®¡çèæ¬å¯è½åªä¸è¿æ¯å°ä¸ç³»åshellå½ä»¤ä¿åå°ä¸ä¸ªæ件ä¸ãå¨æ¤åºç¡ä¸ï¼å¯ä»¥å©ç¨ç®åç循ç¯åæ¡ä»¶ç»æãè¾å ¥è¾åºå¤çãæ件读åã计åä»»å¡æ¥è¿è¡æ©å±ã
ããéè¿ç¼åç®åshellèæ¬ç½è¿ä¸æåï¼è±ä¸æ®µæ¶é´æ¥å¦ä¹ å¦ä½ç¨PerlãPythonåRubyç¼å管çèæ¬å¯¹ä»»ä½ä¸ä¸ªUnixç³»ç»ç®¡çåé½æ¯å¼å¾çãå¨Unixç¯å¢ä½¿ç¨è¿äºè¯è¨çå ³é®æè½å æ¬éè¿UNIX管éåéå®å访é®ææ¬æµï¼å¤çå½ä»¤è¡é项ï¼è¯»åæ件ï¼ä½¿ç¨æ£å表达å¼æç´¢åæä½ææ¬ã管çåä¹æ³ç¥éç¼ç¨çå ¬å ±åºç¡ç¥è¯ï¼æ¯å¦å¤çè¾åºï¼å¾ªç¯ï¼æå¨æäºæ åµä¸éå½ï¼ï¼ä»¥æç¡®çå®çæ å为åºç¡ï¼éè¿ä½¿ç¨æ¡ä»¶å¤æç»æç¼ç¨æ¥ä½åºå³çã
ããç¼åUnixå½ä»¤è¡å·¥å ·æ¯ä¸åæ²åï¼æ许å¤æºä¼å°èæ¬è¯è¨ç巨大è½åç¨äºç¼ç¨ãç±äºç®¡çèæ¬å¼åççµæ´»æ§åç®çº¦æ§è¦æ±ï¼ç¼åå·¥å ·çèå´å¯ä»¥ä»ä¸äºæç¨å·¥å ·çæç®ä¾åå°å¼ºå¤§çæå¡å¨è¿ç¨ï¼çè³å¤§è§æ¨¡å¹¶è¡ä»»å¡èªå¨åï¼è´è½½å¹³è¡¡ï¼å¯åå¼è¿æ»¤ï¼åä¸äºå ¶ä»æ趣çé®é¢è§£å³ä½ä¸ï¼è¿äºé®é¢æ¿èµ·äºä¸çä¸æ好çç¨åºåçå ´è¶£ã
ããè½ç¶å ä¹ææéç¨æä½ç³»ç»é½å ·æä¸äºä½¿ç¨ç®¡çèæ¬çè½åï¼å ¶ä¸ç¸å½ä¸é¨åç¨éæ¯è¾çªï¼å¦ä¸äºæä½ç³»ç»åæ¯è¾åè¡¡ãUnixå¨ç®¡çèæ¬çéç¨æ¡ä»¶æ¹é¢é«äººä¸çï¼å 为诸å¦ä¸»è¦Linuxåè¡çåBSD Unixç³»ç»çUnix类系ç»å ±äº«ç¸åçåºæ¬è¿è¡ç¯å¢è®¾è®¡ï¼ä»ä»¬é½å¯ä»¥ä»ç®¡çèæ¬åèæ¬å¹³å°ä¹é´çå¯ç§»æ¤æ§ä¸åç - åªè¦ä½ æå¯ç§»æ¤æ§è¦æ±æ¥åè¿äºèæ¬ï¼å¦éè¿ä½¿ç¨shæPerlèä¸æ¯bashï¼éæ©ç³»ç»æ åsysctlå¼èä¸æ¯æ°æ®æºçprocæ件系ç»ï¼ã
ããè¿äºå·¥ä½ä¹éç¨äºé¤å¼é常é«çº§ï¼å¨æï¼è§£éåè¯è¨ä¹å¤çå ¶å®è¯è¨ãCï¼C++ï¼Haskellï¼Objective-Cï¼Objective Camlï¼ä»¥å大éå ¶ä»é项æ£å¥½åéåç±»ç®åUnixå·¥å ·çç¼åä»»å¡ã对äºå ¶ä¸ç许å¤è¯è¨ï¼å³ä½¿è¦å®æåå°å管çå·¥å ·çè¿æ ·ç®åçå·¥ç¨é¡¹ç®ï¼ä¹å¿ é¡»å¦ä¼æ´å¹¿æ³çæè½ï¼è¿ä¸è¦æ±æ¯Perlï¼RubyåBourne shellçè¿æ ·çè¯è¨é«ãä½è¿äºä»»å¡ä¸GUIåºç¨ç¨åºå¼åãç³»ç»ç¼ç¨ãå ¶å®ç»å¸¸ä½¿ç¨ï¼ç¹å«æ¯å¨å ¶ä»å¹³å°ä¸çï¼çä»»å¡æ¯èµ·æ¥ï¼å ¶è°å·¨æ§å¯¹ç¼ç¨åå¦è æ¥è¯´è¦å°å¾å¤ã
ããå®é ä¸ï¼é´äºUnixå²å¦å¤å¹´æ¥æä¾äºå¤§é常ç¨å·¥å ·ï¼è¿äºå·¥å ·ä¸¥æ ¼åå·¥ï¼å¤§é¨åï¼ï¼å¹¶å·¥ä½è¯å¥½ï¼ç±»UNIXç¯å¢å¯¹ç¼ç¨æ°æçä»·å¼ä¸æä¸é¨åæ¯å åå©ç¨Unixå½ä»¤è¡ç¯å¢åéï¼é¼å±ç¨æ·åç¨åºåé£æ ·å»æèï¼èéè§ä¼ã
Webç½é¡µ
ããè¿æ¯ä¸ä¸ªå±é©ç建议ï¼éè¿ç©JavaScriptæ¥å¦ä¹ ç¼ç¨ãè¿ä¸æ¯å 为JavaScriptæ¯ä¸ç§ä¸å¥½çè¯è¨ï¼èæ¯å 为追æ±å¨æç¨æ·ä½éªçç¼æ ï¼ç½é¡µå·²ç»è¢«ä¸å éå¶å°æ»¥ç¨JavaSciprtå¼å¾ä¹±ä¸å «ç³ï¼å èå¨ç½é¡µä¸æ¾çºµç¨åºåæ°æå¯è½ä¼è¢«è®¤ä¸ºæ¯ä¸è´è´£ä»»çãå¨ç½é¡µä¸JavaScriptä¹æä¸äºç§¯æç¨æ³ï¼èä¸å¯ä»¥è®©æ°æ们对ç¼åå¨æµè§å¨ä¸è¿è¡çæ¡é¢åºç¨ç¨åºçæ³æ³ææ¥ææå ´è¶£ï¼è¿ç»äºæ们å¨ç¨åºåèä¸ç涯ä¸å°½æ©å¼å§å¦ä¹ JavaScriptçå¾å¤çç±ã
ããäºå®ä¸ï¼JavaScriptæ¯ä¸ç§æ常è§çãåç¬ç客æ·ç«¯ç½é¡µèæ¬ï¼è¿ä¹æå³çJavaScriptå¯è½æ¯æç®åçè¯è¨ï¼éè¿é 读å«äººç代ç å°±è½å¦ä¹ ãæ¾å°å ·æ客æ·ç«¯å¨æå ç´ çä»»ä½ç½é¡µï¼ç¶åå³é®åå»å¹¶éæ©æ¥ç页é¢æºä»£ç çé项ï¼ä½ å°±ä¼åç°å®å¸æ»¡äºJavaScriptçæ£è½ç段ã对äºæ´å¤æçå¨æ页é¢ï¼ï¼Xï¼HTMLçç½é¡µçè³å¯è½å¼ç¨ä¸ä¸ªçº¯ä»£ç çåç¬.jsæ件ã
å¨æ代ç ä¸ä¼ å°å ¬å ±è®¿é®çWebæå¡å¨åè¦ç»å¿æ£æ¥ï¼ç¡®ä¿å®æ¯å¥½çãå¦æä½ æ³è®©æ´å¤çæç¨èæ¬ä»¥æ¬å°æ¹å¼æ¥å¯å¨ï¼æµè§å¨æ©å±æ§å¯ä»¥è®©ä½ å°ä»»æèæ¬åºç¨å°ä½ æ¥ççç½é¡µä¸ââèä¸åªéç¨äºä½ 个人çæµè§ä½éªãFirefoxçGreasemonkeyæ¯ä¸ä¸ªä¾åã