軟件開發工具集

jopen 9年前發布 | 37K 次閱讀 開發

Sublime Text

參考資料:

  • Setting up Sublime Text for Python development
  • Sublime Text 2 Documentation
  • SublimeREPL, Github - SublimeREPL
  • colorsublime
  • Package Control
  • </ul>

    VIM

    配置文件:https://github.com/youngsterxyf/mydotfiles

    快捷鍵

    • 跳到行尾:shift + a, 跳到行首:shift + b
    • 刪除N行:N + d,復制N行:N + yy
    • 跳到最后一行:G,跳到第一行:gg
    • 剪切:dd,粘貼:p
    • vim + ctags:
      • Ctrl + ]自動跳轉至定義;
      • Ctrl + t返回上一次查看位置。
    • 塊操作:
      1. ^→ 到行頭;
      2. <C-v>→ 開始塊操作;
      3. <C-d>→ 向下移動 (你也可以使用hjkl來移動光標,或是使用%,或是別的);
      4. I-- [ESC]→ I是插入,插入“--”,按ESC鍵來為每一行生效。

    插件

    • Vundle(插件管理)
    • vim-javascript(JavaScript語法高亮與自動縮進)
    • The-NERD-Tree(文件系統樹狀瀏覽窗口)
    • vim-markdown(Markdown格式高亮)
    • awk.vim(awk代碼自動縮進)
    • jedi-vim(Python代碼自動完成,對jedi自動完成庫的vim綁定)
    • pep8(檢查Python源碼是否符合PEP8風格)
    • vim-gitgutter(A Vim plugin which shows a git diff in the 'gutter' (sign column). It shows whether each line has been added, modified, and where lines have been removed.)
    • jshint.vim(jshint的vim前端插件)
    • vim-powerline(實現更美觀、功能更多的vim狀態欄)
    • molokai(Molokai Color Scheme for Vim)
    • vim-monokai-refined(Port of Monokai Refined for TextMate/Sublime Text)
    • indentLine(縮進線)
    • vim-css-color(css顯示顏色值代表的顏色)
    • vim-golang(go代碼高亮、自動縮進等)

    資料

    超級牛逼的VIM配置

    spf13-vim - The Ultimate Vim Distribution

    Learn Vimscript the Hard Way

    Practical Vim: Edit Text at the Speed of Thought

    VIM標簽頁(tab)

    Vim的分屏功能

    100 Vim commands every programmer should know

    Git

    書籍:

    Latex

    Beamer

    繪圖語言與繪圖工具

    • GnuPlot
    • Asymptote
    • MetaPost

    開發工具

    • VIM / Sublime Text / StackEdit(Markdown文本編輯)
    • InteliJ IDEA(Golang)
    • JetBrains PyCharm(Python)
    • JetBrains PhpStorm Zend Studio(PHP)
    • CodeBlocks(C/C++)
    • Racket(Scheme)
    • Wappalyzer(Chrome、Firefox插件,用于檢測網站所使用的技術,非常贊)
    • TeXstudio(Latex)(算開發工具么?)
    • Git/SVN(源碼控制),SourceTree(free Git & Mercurial client for Windows or Mac),ungit
    • jshint(JavaScript代碼檢查命令行工具)
    • virtualenv(Python虛擬環境)
    • IPython(可在virtualenv虛擬環境中通過pip install ipython安裝使用)
    • ack/codequery(代碼搜索工具)

    命令行工具與解決方案

    • The Linux Alternative Project

    • Windows命令行列表

    • (置頂)命令行樂園

    • 查看所有庫/模塊的docstring:python -m pydoc -p 8080

    • Linux中查看當前所有的資源限制:ulimit -a;設置內核可以同時打開的文件描述符的最大值為2048:ulimit -n 2048

    • 使用HTTP/HTTPS協議push大文件時失敗,提示RPC failed; result=22, HTTP code = 411,可能是因為Git默認post數據buffer比較小,需要自己設置下:git config http.postBuffer 524288000 #Set to 500MB

    • 當git不支持https協議時,可以通過禁用SSL認證來繼續使用:git config --global http.sslVerify false

    • Git簽出某個tag的代碼:git checkout -b branch_name tag_name或git checkout tag_name或git checkout tag/tag_name

    • Ubuntu為Firefox安裝Adobe Flash插件:sudo apt-get install flashplugin-installer

    • 從某網卡上刪除綁定的ip:ip addr del 192.168.2.201/32 dev eth0

    • 圖片縮放、格式轉換等:convert

    • Linux上如何刪除文本文件中來自Windows的CRLF(^M)的換行符:dos2unix filename

    • Windows命令行下查看本地路由表:route print

    • 系統監控工具:Glances,可以監控本機也可以通過客戶端服務器模式監控其他機器;Glances提供了基于 XML/RPC的API便于其他程序調用,可編程;Glances可以將數據輸出保存到csv或html格式的文件方便其他程序處理(報告或繪制圖形)。 Glances是用Python開發的,使用psutil庫來采集系統數據,在用戶的終端上實時動態的顯示重要的系統數據和變化。顯示的數據包括:CPU、內存、磁盤、網絡等使用情況,內核、運行隊列、負載、I/O 狀態、消耗資源最多的進程等等。

    • 修改文件編碼:iconv -f encoding -t encoding inputfile

    • 查看防火墻設置(包含防火墻規則綁定的網卡):iptables -nvL

    • 使用一行python命令查看/解壓縮/創建zip文件:1.查看 -python -m zipfile -l test.zip, 2.解壓縮 -python -m zipfile -e test.zip test, 3.創建 -python -m zipfile -c release.zip *.py

    • 查看所有用戶的crontab任務(root權限執行):for user in $(cut -f1 -d: /etc/passwd); do echo "### Crontabs for $user ####"; crontab -u $user -l; done

    • 刪除當前目錄下大小為0的文件,且不進一步遞歸查找:find -size 0 -prune -exec rm {} \;

    • 從命令行使用HTTP協議做測試的強大工具:cURL,參考 9 uses for cURL worth knowing

    • 追蹤命令執行過程中的系統調用和信號:strace

    • CPU/磁盤/網絡等系統資源統計工具:dstat(很好很強大,可替代vmstat,iostat,ifstat)

    • 查看PHP會動態加載的擴展模塊:php -m

    • 遞歸查找當前目錄下所有名為test.txt的文件:find ./ -name test.txt

    • Windows上查看端口占用情況:netstat -ano

    • 查看LINUX發行版的名稱及其版本號的命令:1.cat /etc/issue;2.lsb_release -a;3.cat /etc/redhat-release(針對redhat,Fedora)

    • ack-grep --- 比grep更好用的搜索工具,專為程序員優化

    • 禁用觸摸板:sudo rmmod psmouse,開啟觸摸板:sudo modprobe psmouse

    • 將man手冊轉換為pdf格式打印出來閱讀,如直接將man命令的手冊頁轉換為pdf格式:man -t man | ps2pdf - > man.pdf

    • 顯示進程樹:pstree

    • 更新Python第三方軟件包:pip install -U [package_name]

    • 從命令行安裝.deb文件:sudo dpkg -i package.deb

    • 打印環境變量:printenv

    • 查看通過USB接口連接的硬件:lsusb

    • 查看已安裝的軟件包:dpkg --get-selections

    • 由大到小輸出home目錄下的所有文件(遞歸的):du -a ~/ | sort -n -r | less

    • 每隔x秒執行命令command,顯示輸出:watch -n [number_of_seconds] [command]

    • 監聽來自端口的網絡輸入,存入文件中:netcat -l [recieving_port] > file_copied

    • 將命令的輸出通過管道經網絡傳遞給目標ip端口:[command] | netcat -w [number_of_seconds_before_timeout] [target_ip] [target_port]

    • 使用tar壓縮文件并將文件作為流輸出,通過管道經網絡傳遞給目標ip端口:sudo tar -czf - [filename] | netcat -w [number_of_seconds_before_timeout] [target_ip] [target_port]

    • traceroute:查看到目標機器/ip的網絡路由,如traceroute www.google.com.hk

    • nmap:掃描機器檢查開放的網絡端口,如nmap 127.0.0.1---掃描本地機器的開放端口

    • tee:在標準輸出顯示的同時輸出到文件,如ls | tee ls.txt

    • 顯示軟件包的詳細描述信息:apt-cache show [package_name]

    • ls按文件名逆序輸出結果:ls -r;遞歸遍歷目錄:ls -R;按時間順序:ls -t,按時間逆序:ls -tr;按文件大小排序:ls -S。(默認按文件名排序,-r表示逆序,-t表示按時間排序,-S表示按文件大小排序,-h表示以方便人閱讀的形式輸出)

    • 系統負載監控:top/htop/nmon

    • 查看所有進程:ps -e或ps aux,另外可通過ps -e | grep name來模糊查找是否存在特定進程

    • 根據進程名終止進程:sudo pkill process_name

    • 以樹狀分支羅列目錄內容:tree [dir_name]

    • 大數據傳輸:1.scp -P remoteport username@remoteip:remotedir localdir或scp -P remoteport localfile username@remoteip:remotedir;2.scp之外可以使用命令組合:gzip -c /home/xiayf/data | ssh username@ip "gunzip -c - > /home/xiayf/data"

    • ping ip -f:持續不斷地ping某臺服務器(泛洪?),可能會ping死那臺服務器

    • 重裝Ubuntu,一個個安裝程序太麻煩,可先在原來的Ubuntu上執行dpkg --get-selections|awk '{print $1}' > o.txt導出一個所有已安裝程序的列表,然后就可以一鍵安裝了:cat o.txt | xargs sudo apt-get install

    • 打包后,以 gzip 壓縮:tar -zcvf /tmp/etc.tar.gz /etc;打包后,以 bzip2 壓縮:tar -jcvf /tmp/etc.tar.bz2 /etc

    • 在Linux系統下, 可以用一個命令很容易批量刪除.svn的文件夾:find . -name .svn -type d -exec rm -fr {} \;

    • 查看當前正在監聽的網絡端口:lsof -i或者netstat -tlnp

    • linux下查看某目錄占用的空間大小:du -h -s或du -h -s /* | sort

    • python內嵌的簡單便捷HTTP Server:python -m SimpleHTTPServer Port

    • Python命令行美化輸出json數據:python -mjson.tool json_filename或者通過管道some_cmd | python -mjson.tool,也可以直接在命令行使用雙引號包圍一個json數據字符串來替代json_filename的位置。而且,如果你安裝了 Pygments 模塊,可以高亮地打印JSON:echo '{"json":"obj"}' | python -mjson.tool | pygmentize -l json。

    • 保存某個virtualenv中已安裝的package列表,并在另一個virtualenv中原樣恢復:1.(some_env)$pip freeze > requirements.txt; 2.(another_env)$pip install -r requirements.txt

    • Linux性能分析工具

    • 酷斃的Linux單行命令

    • Gnome/KDE鍵盤快捷鍵

    日常使用工具

    桌面環境:KDE

    Shell:zsh + oh-my-zsh Bash + powerline-shell

    輸入法:Fcitx + Google拼音,ibus拼音

    KX上網:Goagent + Chrome插件SwitchySharp或Firefox插件AutoProxy

    命令行窗口復用:tmux + tmux-powerline

    圖形化Web瀏覽器:Google Chrome/Firefox

    命令行Web瀏覽器:lynx

    終端:Terminator

    截屏:KSnapshot

    虛擬機:VirtualBox

    屏幕錄像:XVidCap

    音頻播放器:Songbird/深度音樂播放器/Audacious/cplay

    視頻播放器:VLC/MPlayer/SMPlayer/深度影音

    翻譯:Google Translate/有道詞典chrome插件

    圖片瀏覽:GPicView/Shotwell

    數據統計圖命令行繪制工具:GnuPlot

    PDF閱讀器:Okular(支持EPUB格式)

    BT下載器:Transmission

    FTP客戶端:FileZilla

    RSS閱讀:Akregator/Google Reader

    Email閱讀:Thunderbird/Gmail

    即時通訊(GTalk/MSN):Pidgin/KDE IM Contacts/WebQQ

    辦公套件:WPS office LibreOffice

    日程管理:Trello(Chrome插件+Andriod應用)

    思維導圖:XMind / Docear / www.mindmeister.com / www.wisemapping.com

    原型、系統結構圖:Lucidchart

    數據備份同步:Dropbox(+Andriod應用)(注:linux下安裝使用Dropbox)

    文檔記錄與在線編輯:Evernote(+chrome插件Web Clipper+Andriod應用)/Google Drive/Readability(僅可記錄閱讀,Chrome插件+Andriod應用)

    mRemote(支持多種協議-RDP、SSH、VNC、Telnet、HTTP/HTTPS等,但我用來訪問Windows服務器遠程桌面)

    Xshell(遠程訪問Linux服務器)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!