1. 程式人生 > >Linux環境常用工具

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環境都具備了,有需要的還沒有很好工具的,或者另外推薦的,歡迎補充。