原创 Mac上的gdb之:從入門到放棄

副標題:Mac上的gdb無法正常調試的問題 Mac上用brew install gdb安裝gdb後,無法正常的運行run命令,報錯如下: (gdb) break main Breakpoint 1 at 0x100000f66: file

原创 Python高級語法之:一篇文章瞭解yield與Generator生成器

Python高級語法中,由一個yield關鍵詞生成的generator生成器,是精髓中的精髓。它雖然比裝飾器、魔法方法更難懂,但是它強大到我們難以想象的地步:小到簡單的for loop循環,大到代替多線程做服務器的高併發處理,都可以基於yi

原创 正式的介紹「Mutt」:命令行的郵件大師 (一文詳解)

爲什麼要用Mutt?這個世界已經有了成百上千的漂亮郵件客戶端,爲什麼還要用命令行裏的?其實說什麼功能都沒用。說到本質上,其實是一種Geek精神,一種愛折騰的精神,一種Customizability的精神。就像明明有WhatsApp,還要用I

原创 進入IRC的世界

IRC是人類古代時期的聊天工具,比QQ還早。但是IRC因爲實現簡單,讓人與人之間聊天變得方便很多。我們可以在桌面上打開軟件和對方聊,可以從網頁裏和對方聊,更可以在終端命令行裏和對方聊。IRC不用複雜的註冊驗證,簡單到給自己起個暱稱就能開聊。

原创 BeautifulSoup4 入門

BeautifulSoup是Python包裏最有名的HTML parser分解工具之一。簡單易用 安裝: pip install beautifulsoup4 注意大小寫,而且不要安裝BeautifulSoup,因爲BeautifulSou

原创 Python 發送郵件

程序人員對於郵件自動化的日常需求還是很高的。但是入過了Linux的命令行郵件客戶端如Sendmail, Mutt, Alpine等坑之後,發現現代其實很少人真的在用它們實現郵件自動化,根據搜索引擎裏相關文章的數量就可知一二。取而代之的是,現

原创 Python解析郵件

郵件的解析是個大課題,遠超一般人的預期。它遠比發送郵件和接收郵件要複雜的多的多。這就是爲什麼網上中文外文搜郵件的問題,絕大多數都是講發送的而講接收的很少。 發送郵件好說,接收和下載郵件也好說。關鍵是下載下來的郵件是一種比HTML還複雜的嵌套

原创 Python Package Import 之痛

參考Python官方:Packages▶參考:Python相對導入一處不解參考:使用相對路徑名導入包中子模塊 理解Package Python裏,就像所有的.py文件被稱爲Module模塊一樣,所有的文件夾都被稱爲Package包。前提是,

原创 Exiftool 命令行操作圖片元信息(Megadata)

Exiftool 是命令行操作exif最強大的工具。 官方網址。 參考:圖片EXIF信息查看與Exiftool使用參考:如何批量將圖片文件名中的時間寫入 EXIF 信息? 知乎 安裝: # Mac上安裝 $ brew install exi

原创 Tmux的超絕便利 (基礎篇)

上面提到服務器的任務不間斷運行,就是利用了tmux的特性。就是說,一般ssh是斷開就會停止所有之前連接ssh期間運行的所有processes,而tmux的核心業務不在於把屏幕分成幾塊好看,而是它能保存session!而且還能多端實時直播se

原创 ImageMagick 強大的PDF工具集

ImageMagick是Linux上超強大、功能超豐富的圖片處理的命令行工具。而ImageMagick在做PDF相關的工作時,是基於Ghostscript進行處理的。所以兩個都要安裝。 首先確保本機已經安裝ImageMagick與Ghost

原创 利用命令行工具pdfimages來提取PDF中的圖片

pdfimages是一個非常簡便好用的PDF圖片提取工具,很簡單的一個命令就可以提取出PDF指定頁面裏的所有圖片。但是, 注意:pdfimages只能提取PDF中的圖片,和imagemagick的生成圖片有本質上的不同!也就是說,如果PDF

原创 利用命令行工具pdftk對PDF進行合併分割

pdftk是非常好用的PDF頁面操作工具,能夠切割、合併、提取指定頁面等。 參考:PDF 合併和分割工具--PDFtk參考官網:PDFtk server: the pdf tool kit 常用包括的功能如下: 合併 PDF; 分割 P

原创 深究cp拷貝文件夾時`/`的用法

假設現有一個source文件夾: source sub a.jpg b.jpg c.jpg 目標文件夾「不存在」的情況 $ cp -r source target $ cp -r source/ ta

原创 深究mv移動文件夾時`/`的用法

目標文件夾「不存在」的情況 $ mv source target ▲結果:把source文件夾「更名」爲target 目標文件夾「已存在」且爲空 $ mv source/ target $ mv source/ target/ $ mv