Linux環境常用工具
伺服器端常用的系統之一是Linux,對於偷懶的使用者,可以在自己電腦上也使用linux,這樣可以減少學習成本:)
發行版選型:名目眾多,日常使用推薦ubuntu LTS版(安裝學習成本低,社群支援大);學習折騰推薦使用Gentoo/Arch(確保有時間);其餘根據口味選擇各自喜歡的發行版。
日常生活的方方面面中,linux基本也有相應的工具提供:
視訊/音訊:
mplayer(大而全),vlc,audacity(專業音訊)
文件:
libreoffice(word/excel/ppt...)
evince(pdf)
gedit(txt)
calibre(電子書)
IM:
沒有特別好的,官方支援不佳,備用(pidgin/skype,Thunderbird的chat,或web端,或wine)
瀏覽器:
firefox/chromium/opera
圖片
gqview/qiv(圖片瀏覽)
shutter(截圖&編輯)
gimp(臨時替代ps)
shotwell(一站式圖片管理)
畫圖:
Dia(流程圖/UML等)
檔案:
Dolphin/xfe(資料夾瀏覽器)
Filezilla(Ftp)
Email:
Thunderbird-收郵件推薦imap協議,非pop協議。因為官方都是web端,現在越來越多是瀏覽器/手機客戶端/pc客戶端等多個終端同時使用,所以用imap適合同步。
其它常用工具:
Goldendict(翻譯,問題是比較耗cpu),arandr(顯示器配置),xosview(資源檢視器),vym(思維導圖工具),gpick(選取顏色,前端常用),curl(web除錯),ab(效能測試)
日程管理:沒有遇到過好用的客戶端,可以使用web的日程管理(google之類)或者自己寫一個。
終極後備:Virtualbox(虛擬個win,解決qq/迅雷/cs/ps/之類常用工具問題),Vagrant(技術使用,獨立開發環境)
終極必備:terminal(rxvt之類),ssh,vim,vifm,man,Linux就算有問題,可以在console下用這幾個查詢命令,編輯管理檔案,連線服務端,解決常用和緊急的問題。
上面聒噪這麼多,正經講點技術相關的:
編輯器:任何事情不外乎價效比,初用gedit/nano,常用subline text,如果你需要coding幾年甚至幾十年,不要錯過VIM/Emacs(付出的成本會有回報的);
資料庫:
常規儲存自然是關係資料庫,隨著mysql趨向閉源,可用postgresql,配合hstore外掛。如果資料量很小臨時用可以sqlite3。
如果就幾行程式碼的情況,資料丟了也不要命的話,用mongo就可以(官方driver,不用orm)
專用領域,比如計算分析,可以找領域內的資料庫,比如大資料,或者影象資料庫。
效能問題:一言難盡,資料量大的結合磁碟/檔案格式和儲存手寫起,到縱向和橫向擴充套件等;以前接觸一個KV儲存系統,基礎是百庫百表架構的mysql群,所以可以相信mysql等常規儲存的後續擴充套件能力。
檔案共享:
可以採用samba,配置好後即是windows的共享目錄功能,一般沒有連線數量和效能的問題。(備:windows下的filezilla的服務端,用下來部署配置也比較方便,可以快速搭建ftp伺服器。linux下配置ftp反而略麻煩)
最基礎的可以直接開啟一個linux帳號,通過ssh客戶端訪問和存取檔案,也非常方便。
ps:通過rsync這樣的工具,可以做定期同步或者備份,確保檔案安全;
服務端命令執行:
常見的情況是ssh連線伺服器後,執行一個命令,但是執行過程中連線斷開(網路問題/sshd配置問題等),導致程序異常終止,執行中斷的情況;
可以使用nohup 後面加命令的方式,這樣在連線斷開或者cosole關閉的情況下程序繼續,log會存在執行目錄下的nohup.out檔案中;
有條件的可以在服務端安裝tmux/screen,開啟服務後可以隨時斷開隨時再連線,保證操作場景隨時恢復;
console常用:
命令的輸入同時存到檔案,以備後面查詢使用,可以在命令後新增 command xxx |tee a.log;這樣介面的正常資訊輸出同時會儲存到a.log檔案。
鍵盤/滑鼠配置/重定義鍵:
xmodmap
程式碼查詢/替換
grep -nir "search_word" /xxx/xxx/xxxx: 用來查詢某目錄下包含某查詢詞的所有檔案和詞語所在位置,資料夾大的情況,耗時會比較多。 grep -nir "search_word" /xxx/xxx/xxxx 2>/dev/null可以把沒許可權等異常資訊忽略掉。
find -type f ! -path '*.git*' | xargs sed -i 's/old_word/new_word/g': 用來替換目錄下所有檔案中匹配的詞語;注意去除.git等庫檔案,這些地方的檔案不能被修改。
生成指定大小空檔案: dd if=/dev/zero of=./x.zip bs=1K count=200000
磁碟/映象copy:sudo dd if=/home/as/Tools/autoplayer.sys.img of=/dev/sdc :比如把映象檔案copy到u盤,當然可以把做好系統的u盤,copy一個同樣的u盤。 pv -tpreb Tools/autoplayer.sys.img |sudo dd of=/dev/sdb :使用pv可以看到copy進度。
sshd延長斷開時間: /etc/ssh/sshd_config 新增/修改配置:
ClientAliveInterval 60
ClientAliveCountMax 60
ping命令顯示時間戳: ping 203.166.163.219 -c 10 | awk '{ print $0"\t" strftime("%H:%M:%S",systime()) } '
系統資源檢視:top,iotop,iftop等
有以上這些,基本生活和coding環境都具備了,有需要的還沒有很好工具的,或者另外推薦的,歡迎補充。