終端是開發人員武器庫中最重要的生產力工具之一。掌握它可以對你的工作流程產生非常積極的影響,因為許多日常任務可以減少到只需編寫簡單的命令並按Enter。
下面為你準備了一系列 Unix 命令,可幫助你充分利用終端。其中一些是內置的,其他的是免費的工具,經過測試,可以在不到一分鐘內安裝好它們。
這裡還是要推薦下我自己建的前端學習群:657137906,如果你正在學習前端,小編歡迎你加入,大家都是前端黨,不定期分享乾貨(只有web前端相關的),包括我自己整理的一份2017最新的前端資料和零基礎入門教程,歡迎初學和進階中的小夥伴。
1.Curl
Curl 是一種用於通過 HTTP(s),FTP 和你可能尚未聽到的數十種其他協議提出請求的命令行工具。它可以下載文件,檢查響應標題和自由訪問遠程數據。
在 Web 開發中, curl 經常用於測試連接和使用 RESTful API 。
# Fetch the headers of a URL.curl -I http://google.comHTTP/1.1 302 FoundCache-Control: privateContent-Type: text/html; charset=UTF-8Referrer-Policy: no-referrerLocation: http://www.google.com/?gfe_rd=cr&ei=0fCKWe6HCZTd8AfCoIWYBQContent-Length: 258Date: Wed, 09 Aug 2017 11:24:01 GMT# Make a GET request to a remote API.curl http://numbersapi.com/random/trivia29 is the number of days it takes Saturn to orbit the Sun.
Curl 命令可以比這更復雜。有許多選項用於控制標題,Cookie,身份驗證等。你可以閱讀更多關於 curl 的信息。
2.Tree
Tree 是一個很小的命令行實用程序,它將目錄中的文件可視化表示。它遞歸地運行,遍歷每個級別的嵌套和繪製所有內容的格式樹。這樣,你可以快速瀏覽並查找你需要的文件。
tree.├── css│ ├── bootstrap.css│ ├── bootstrap.min.css├── fonts│ ├── glyphicons-halflings-regular.eot│ ├── glyphicons-halflings-regular.svg│ ├── glyphicons-halflings-regular.ttf│ ├── glyphicons-halflings-regular.woff│ └── glyphicons-halflings-regular.woff2└── js ├── bootstrap.js └── bootstrap.min.js
還可以使用簡單的正則表達式來過濾結果:
tree -P '*.min.*'.├── css│ ├── bootstrap.min.css├── fonts└── js └── bootstrap.min.js
3.Tmux
Tmux 是一個終端複用器,它是將多個終端連接到單個終端會話的工具。
你可以在一個終端中進行程序之間的切換,添加分屏幕窗格,並將多個終端連接到同一個會話,使其保持同步。在遠程服務器上工作時,Tmux 特別有用,因為它可以讓你在當前終端創建新的選項卡,而無需再次登錄。
4.Disk usage – du
du 命令生成有關文件和目錄的空間使用情況的報告。它很容易使用,可以遞歸地運行,遍歷每個子目錄並返回每個文件的大小。
du 的常見用例是當你的某個驅動器的空間不足時,使用此命令可以快速查看每個文件夾所佔用的存儲空間,從而找到最大的那個文件。
# Running this will show the space usage of each folder in the current directory.# The -h option makes the report easier to read.# -s prevents recursiveness and shows the total size of a folder.# The star wildcard (*) will run du on each file/folder in current directory.du -sh *1.2G Desktop4.0K Documents40G Downloads4.0K Music4.9M Pictures844K Public4.0K Templates6.9M Videos
還有一個類似的命令 df(Disk Free),它返回有關可用磁盤空間的各種信息(與 du 相反)。
5.Git
Git 是迄今為止最流行的版本控制系統。它是現代 Web 開發的必備工具之一。
雖然有很多第三方應用和工具可用,但大多數人喜歡通過終端訪問 git 。 git CLI 真的很強大,可以處理讓人糾結的項目歷史。
如果你想了解更多關於 git 的信息,搜索引擎中實在是太多啦,這裡不再詳細說明。(推薦和諧使用 google )
6.Tar
tar 是用於文件存檔的默認 Unix 工具。它可以將多個文件快速捆綁到一個包中,從而使之更容易存儲和移動。
tar -cf archive.tar file1 file2 file3
使用 -x 選項也可以提取現有的 .tar 檔案。
tar -xf archive.tar
請注意,大多數其他格式,如 .zip 和 .rar 無法由 tar 打開,需要使用其他命令實用程序,如 unzip 。
許多現代 Unix 系統運行擴展版本的 tar(GNU tar),還可以執行文件大小壓縮:
# Create compressed gzip archive.tar -czf file.tar.gz inputfile1 inputfile2# Extract .gz archive.tar -xzf file.tar.gz
如果你的操作系統沒有該版本的 tar ,則可以使用 gzip,zcat 或 compress 來減小歸檔文件的大小。
7.md5sum
Unix 有幾個內置的哈希命令,包括 md5sum,sha1sum 等。這些命令行工具在編程中有各種應用,但最重要的是它們可用於檢查文件的完整性。
例如,如果從不受信任的源下載了某個 .iso 文件,那麼該文件有可能包含有害的腳本。為了確保 .iso 是安全的,你可以從中生成 md5 或其他哈希。
md5sum ubuntu-16.04.3-desktop-amd64.iso 0d9fe8e1ea408a5895cbbe3431989295 ubuntu-16.04.3-desktop-amd64.iso
然後,你可以將生成的字符串與原始作者提供的字符串(例如 UbuntuHashes )進行比較。
8.Htop
Htop 是內置頂級任務管理器的更強大的替代方案。它提供了一個高級界面,具有用於監視和控制系統進程的許多選項。
雖然它在終端中運行,但是 htop 對鼠標控件有非常好的支持。這樣可以輕鬆導航菜單,選擇進程,並組織排序和過濾的任務。
9.Ln
Unix 中的鏈接與 Windows 中的快捷方式類似,可讓你快速訪問某些文件。鏈接是通過 ln 命令創建的,可以是兩種類型:hard 或 symbolic 。每種都有不同的屬性,用於不同的東西(閱讀更多)。
以下是使用鏈接的許多方法中的其中一個示例。假設我們的桌面上有一個名為 Scripts 的目錄。它包含我們通常使用的 bash 腳本。每次我們想要調用我們的腳本之一,我們必須這樣做:
~/Desktop/Scripts/git-scripts/git-cleanup
顯然,這不是很方便,因為我們每次都要寫絕對路徑。相反,我們可以從我們的 Scripts 文件夾創建一個符號鏈接到 /usr/local/bin ,這將使腳本可以從所有目錄執行。
sudo ln -s ~/Desktop/Scripts/git-scripts/git-cleanup /usr/local/bin/
使用創建的符號鏈接,我們現在可以通過在任何打開的終端中簡單地寫入其名稱來調用我們的腳本。
git-cleanup
10.SSH
使用 ssh 命令,用戶可以快速連接到遠程主機並登錄到其 Unix shell 。這使得可以從本地機器的終端直接在服務器上方便地發出命令。
要建立連接,只需要指定正確的 IP 地址或 URL 。第一次連接到新服務器時,會有某種形式的身份驗證。
ssh username@remote_host
如果要在服務器上快速執行命令而不登錄,則可以在 URL 之後添加一個命令。該命令將在服務器上運行,並返回該結果。
ssh username@remote_host ls /var/wwwsome-website.comsome-other-website.com
你可以使用 SSH 來創建代理和隧道,保護與私鑰的連接,傳輸文件等功能。你可以在本指南中閱讀更多內容。
11.Grep
Grep 是用於在文本中查找字符串的標準 Unix 實用程序。它以文件或文件流的形式輸入,通過正則表達式運行其內容,並返回所有匹配的行。
// Search for today's date (in format yyyy-mm-dd) and write the results to a new file. grep "$(date +"%Y-%m-%d")" all-errors-ever.log > today-errors.log
使用字符串的另一個偉大的命令是 sed 。它比 grep 更強大(更復雜),可以執行幾乎任何與字符串相關的任務,包括添加,刪除或替換字符串。
12.Alias
許多 Unix 命令,包括本文中的一些功能,在你添加所有選項後,往往會顯得很長。為了使它們更容易記住,你可以使用別名 bash 內置命令創建簡短的別名:
# Create an alias for starting a local web server.alias server="python -m SimpleHTTPServer 9000"# Instead of typing the whole command simply use the alias.serverServing HTTP on 0.0.0.0 port 9000 ...
只要你將該終端打開,該別名將可用。為了使其永久化,你可以將別名命令添加到 .bashrc 文件中。
最後在說幾句:
厲害程序員相對於普通程序員的優勢在於:
寫出的代碼更容易排錯,不是高手的代碼就不會錯,而是高手的代碼出了錯容易找。高手的代碼可讀性一定很好,模塊清晰,命名規範,格式工整,關鍵的地方有註釋,出了異常有log,自然容易排錯,即使交給別人去debug也是比較容易的。
這個話題到這裡就算是說完了,學習web前端的可以加我的群,每天分享對應的學習資料:657137906,歡迎初學和進階中的小夥伴。