<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # extra practice ## 使用oh-my-zsh * 官網?[http://ohmyz.sh/](http://ohmyz.sh/) * 代碼?[https://github.com/robbyrussell/oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) 安裝步驟 * 先安裝zsh * 安裝oh-my-zsh 以后環境變量在~/.zshrc里 ## alias 俗稱別名,是一個linux命令 舉例:在git里面我們最常用的命令是查看狀態,可以又太長 于是 ~~~ vi ~/.zshrc ~~~ 增加如下別名定義 ~~~ alias gs='git status' ~~~ source使環境變量生效(如果不想重啟電腦的話) ~~~ source ~/.zshrc ~~~ 如果不理解環境變量,自己去閉門思過去 它的作用是讓長命令變短 有個經典說法:“演進就應該像女生的裙子” ## 殺死所有nodejs相關進程 天天寫nodejs的都有這個痛苦,起了太多實例,分不清哪個是哪個 索性都干掉吧 ~~~ ps -ef|grep node|awk '{print $2}'|xargs kill -9 ~~~ 這是非常經典的一條命令 說明 * ps -ef查看進程 * grep node是過濾進程里的和node相關的所有進程 * awk '{print $2}' 取出進程號 * xargs kill -9 殺掉該進程 `|`是pipe,即管道的意思:上一個的輸出,是下一個的輸入 nodejs里stream和pipe是一樣的概念 如此理解變掌握了shell的精髓 “上一個的輸出,是下一個的輸入,組合著用” 每一個命令把它寫到極致 這是unix的哲學 ## 命令行查找代碼 ack是一個perl腳本,是grep的一個可選替換品。其可以對匹配字符有高亮顯示。是為程序員專門設計的,默認遞歸搜索,省提供多種文件類型供選。 [http://beyondgrep.com/install/](http://beyondgrep.com/install/) Ubuntu * Package "ack-grep" Mac * brew install ack mac下面直接用,linux記得自己alias一下 檢索文本內的key是非常高效的 ~~~ ? vsc-doc git:(master) ? ack i5ting extra.md 72:https://github.com/i5ting/awesome-mac-practice2/blob/master/app/Dash.zip?raw=true preview/index.html 434:<li><a href="http://i5ting.github.io/nodejs-video/node-inspector.mov">node-inspector視頻</a></li> 435:<li><a href="http://i5ting.github.io/nodejs-video/node-debug.mov">node-debug視頻</a></li> 525:<p>這其實和<a href="http://i5ting.github.io/How-to-write-jQuery-plugin/build/jquery.plugin.html#10501">jquery插件里的配置項</a>原理是類似的</p> 1307:<p>詳見 http://i5ting.github.io/vsc-course/ </p> preview/README.html 434:<li><a href="http://i5ting.github.io/nodejs-video/node-inspector.mov">node-inspector視頻</a></li> 435:<li><a href="http://i5ting.github.io/nodejs-video/node-debug.mov">node-debug視頻</a></li> 525:<p>這其實和<a href="http://i5ting.github.io/How-to-write-jQuery-plugin/build/jquery.plugin.html#10501">jquery插件里的配置項</a>原理是類似的</p> 1307:<p>詳見 http://i5ting.github.io/vsc-course/ </p> preview/toc/js/ztree_toc.js 2:* https://github.com/i5ting/jQuery.zTree_Toc.js README.md 313:- [node-inspector視頻](http://i5ting.github.io/nodejs-video/node-inspector.mov) 314:- [node-debug視頻](http://i5ting.github.io/nodejs-video/node-debug.mov) 427:這其實和[jquery插件里的配置項](http://i5ting.github.io/How-to-write-jQuery-plugin/build/jquery.plugin.html#10501)原理是類似的 1266:詳見 http://i5ting.github.io/vsc-course/ ~~~ 這其實就是全文檢索 其實go寫的[fzf](https://github.com/junegunn/fzf)也很棒 這個命令非常非常常用,尤其是閱讀源碼,或者特別復雜的項目里 ## 查詢文檔神器 * [http://zealdocs.org/](http://zealdocs.org/)?(推薦,離線下載) 有很多doc在[dash](https://github.com/i5ting/awesome-mac-practice2/blob/master/app/Dash.zip?raw=true)(mac)里默認是沒有的; see here :?[http://kapeli.com/docset_links](http://kapeli.com/docset_links) 如果是下載到本地的docset,放到zealdocs目錄下面,需要重啟zeal * linux 叫zeal * mac 叫dash 都是基于docset的神器 本地文檔的好處是,盡量少依賴網絡,沒有網也能干活,這是本事 培養自己的獨立思考能力,而不是acv的庸才 ## 目錄切換神器 autojump是一個命令行工具,它允許你可以直接跳轉到你喜愛的目錄,而不用管你現在身在何處。 [https://github.com/wting/autojump](https://github.com/wting/autojump) Linux ~~~ sudo apt-get install autojump ~~~ Mac os ~~~ brew install autojump ~~~ 需要修改~/.zshrc里的plugin,修改為 ~~~ plugins=(git autojump) ~~~ 然后 ~~~ source ~/.zshrc ~~~ 至此,已經完成了安裝。 此后cd到任意目錄,以后就可以使用j這個直達到某個目錄了,下面是示例: ~~~ ? nodejs-newbie git:(master) ? cd ~/workspace/github/nodejs-newbie ? nodejs-newbie git:(master) ? cd ~ ? ~ j nodejs-n /Users/sang/workspace/github/nodejs-newbie ? nodejs-newbie git:(master) ? ~~~ 這樣就會跳到上一次cd進去的目錄,是不是非常方便? 我本地有非常多的github上的項目,彼此依賴,就采用這種方式切換,省了不少腦細胞 如果想玩的更high,可以參見[https://github.com/clvv/fasd](https://github.com/clvv/fasd) ## 根據端口號查看進程 nodejs寫web程序,都要起一個端口,反復打開,關閉,就難免有僵尸進程,怎么也殺不掉 只知道端口如何查看進程呢? lsof是系統管理/安全的工具,列出打開文件(lists openfiles) ~~~ $ lsof -i:3005 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 30438 sang 26u IPv6 0xd9428cd06d17f6af 0t0 TCP *:geniuslm (LISTEN ~~~ 3005是端口號 于是衍生一下,根據端口殺進程,比如express默認是3000端口,難免有時有僵尸進程,如果直接根據端口殺死,是不是很爽? ~~~ lsof -i:3005|xargs killall ~~~ 全干掉,想不死都不行 再衍生一下,能不能封裝成一個nodejs模塊,端口號作為參數,完成上述功能呢? 于是有了kp kp is a tool for kill process by server port 我寫的一個模塊,上面就是原理,下面說一下用法 ~~~ [sudo]npm install -g kp kp 3002 ~~~ [https://github.com/i5ting/kp](https://github.com/i5ting/kp) 是不是簡單實用呢? ## mongodb客戶端 推薦 www.robomongo.org * 支持win * 支持linux * 支持mac(mac10.10下中文亂碼,需要robomongo v0.8.5+) 這個是最好用的,但是每次啟動都比較麻煩 * mac下面使用quicksilver或spotlit * linux使用alias rogo='robomongo' 別名alias,有用吧,得學會偷懶 ## 使用node-inspector調試Node代碼 上面講了vsc調試nodejs,可是如果你想了解更深的原理 看我寫的三法三例調試教程 [https://cnodejs.org/topic/5463f6e872f405c829029f7e](https://cnodejs.org/topic/5463f6e872f405c829029f7e) ## 使用mongoose-cli數據庫建模 隨時隨地,測試model,融合bluebird等promise庫,讓業務處理更簡單 [https://cnodejs.org/topic/55c44f0db98f51142b367b54](https://cnodejs.org/topic/55c44f0db98f51142b367b54) ## mongo here 如果你同時有多個項目,它們有不同的mongodb,你會哭的,而且又是啟動有特別容易出問題 mongo here就是解決這個問題的 當前目錄啟動mongodb 在新建目錄執行 ~~~ mh ~~~ 它會創建tmp目錄,然后日志,數據都放到tmp里。 全局啟動mongodb ~~~ mhg ~~~ 它會創建~/mongo/目錄,當前用戶下起mongo服務,即用戶下全局共享 [https://github.com/i5ting/mongo-here](https://github.com/i5ting/mongo-here) 核心原理很簡單,寫個shell腳本,執行命令mh的時候執行它就好了 ~~~ #! /bin/bash mkdir -p tmp/db mkdir -p tmp/pids mkdir -p tmp/logs # remove lock file [ -f tmp/db/mongod.lock ] && rm -rf tmp/db/mongod.lock touch tmp/pids/mongodb.pid # mongod --bind_ip 192.168.1.100 --port 27017 --dbpath tmp/db --logpath tmp/logs/mongodb.log --pidfilepath tmp/pids/mongodb.pid nohup mongod --bind_ip 127.0.0.1 --port 27017 --dbpath tmp/db --logpath tmp/logs/mongodb.log --pidfilepath tmp/pids/mongodb.pid >mongod.log 2>&1 & ~~~ 此處是在當前目錄下面建立tmp目錄,所以保證了權限等問題 mhg其實更簡單,就是在用戶主目錄`~`下建 懂shell就是好,可以干很多壞事兒,是不是? ## json editor 我平常經常api,大部分api都是返回json字符串,結構看起來特別惡心 那能不能可視化呢? ~~~ [sudo] npm install -g je je ~~~ 詳見[https://github.com/i5ting/je](https://github.com/i5ting/je) ## nodejs里的csv處理 ~~~ [sudo] npm install -g j2csv json2csv ~~~ 詳見[https://github.com/i5ting/json2csv](https://github.com/i5ting/json2csv) 上面給出的方案適合3000條以內的數據,受限于瀏覽器 更大量的數據,需要 ~~~ [sudo] npm install -g ej ej input.json output.csv ~~~ [https://github.com/i5ting/ej](https://github.com/i5ting/ej) 很多時候,實現導入導出,見 [https://github.com/i5ting/i-csv](https://github.com/i5ting/i-csv) ## upload-cli 服務器上有些上傳、刪除的工作,ssh進去之后,操作太麻煩了 于是寫了upload-cli :a node cli tools for uploads ui [https://github.com/i5ting/upload-cli](https://github.com/i5ting/upload-cli) * 目前已經支持通過命令行`uci`上傳,可指定host ## 編寫markdown文檔 大部分人都有的需求 * 生成markdown模塊 * markdown編譯成html * 支持table of content * 能夠push到git pages上 為了markdown toc,我寫了[https://github.com/i5ting/i5ting_ztree_toc](https://github.com/i5ting/i5ting_ztree_toc) 然后寫了一個nodejs模塊[https://github.com/i5ting/tocmd.npm,用于編譯markdown,按照toc模板編譯](https://github.com/i5ting/tocmd.npm%EF%BC%8C%E7%94%A8%E4%BA%8E%E7%BC%96%E8%AF%91markdown%EF%BC%8C%E6%8C%89%E7%85%A7toc%E6%A8%A1%E6%9D%BF%E7%BC%96%E8%AF%91) 當然,每次發布到gitpages,我很不爽,于是使用gulp里的`gulp-gh-pages`直接自動化 最后我想更懶點 于是就有了[https://github.com/i5ting/docto](https://github.com/i5ting/docto) 一條命令全部搞定
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看