每個Web開發者都該瞭解的12條命令列
轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。
原文出處:https://tutorialzine.com/2017/08/12-terminal-commands-every-web-developer-should-know
在開發者的彈藥箱裡,命令列是最具生產力的工具之一。掌握它們可以給你的工作流程帶來非常積極的影響。因為,許多日常任務都可以用一條命令然後按回車來解決。
在本文中,我們為你準備了一系列常用命令,幫你充分利用你的終端。這其中有些命令是系統內建的,另外的一些則是需要另外安裝的免費工具,不過這些免費工具是經歷了時間的考驗,所以你可以分分鐘將他們安裝完成。
curl
curl是一個傳送請求的命令列工具。可使用HTTP(s)、FTP,以及一些你可能從未聽過的協議傳送請求。它可以下載檔案,檢查響應頭,自由地訪問遠端資料。
在web開發中,curl常用於測試連線和RESTful APIs。
# 獲取一個URL的HTTP HEADER curl -I http://google.com HTTP/1.1 302 Found Cache-Control: private Content-Type: text/html; charset=UTF-8 Referrer-Policy: no-referrer Location: http://www.google.com/?gfe_rd=cr&ei=0fCKWe6HCZTd8AfCoIWYBQ Content-Length: 258 Date: Wed, 09 Aug 2017 11:24:01 GMT # 向遠端API發出GET請求 curl http://numbersapi.com/random/trivia 29 is the number of days it takes Saturn to orbit the Sun.
curl命令可以遠比上面的情況複雜。它有一大堆的選項來控制請求頭、cookies、許可權驗證等等。你可以在這本相當棒的免費書Everything curl中讀到更多。
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
tmux
根據維基百科所說,tmux是一個終端複用器,翻譯為人話就是說,它是一個把多給終端連線為一個終端會話的工具。
一個tmux分為3塊屏的終端如下:
它讓你在終端中的程式間切換,新增分屏,並講多個終端連線到同一個會話,並使之保持同步。尤其在遠端伺服器上工作時,tmux特別有用,因為它允許你無需再登入即可建立新的終端標籤頁。
disk usage - du
du命令能生成有關檔案和資料夾磁碟空間佔用情況的報告。它非常易於使用,能遞迴地遍歷每個子目錄,並返回單個檔案的大小。
一個du的常見用例是,你的磁碟空間不足了,而你不知道為啥。使用此命令,可快速看到每個資料夾佔用了多少儲存量,從而找到最佔空間的那個東西。
# 執行此命令將顯示當前目錄中每個資料夾的空間佔用情況。 # 使用 -h 命令選項將使報告更易讀。 # -s 可防止遞歸併顯示資料夾的總大小。 # 萬用字元(*),將在當前目錄中的所有檔案及資料夾上顯示所有資訊 du -sh * 1.2G Desktop 4.0K Documents 40G Downloads 4.0K Music 4.9M Pictures 844K Public 4.0K Templates 6.9M Videos
還有一個類似的命令列,叫做df(Disk Free)。與du相反的是,df返回的關於可用空間的許多資訊。
git
Git是目前最流行的版本控制系統。 它是現代web開發所使用的最典型的工具之一,我們絕不能將它排除在本文的列表之外。
有許多關於git的第三方應用和工具,但大部分人還是傾向於使用命令列原生的git。git的命令列介面真的很強大,甚至足以處理最雜亂的專案歷史。
如果你想學習關於git的更多知識,建議你檢視我們的30分鐘學會git的教程。
tar
tar是處理檔案打包的預設Unix工具。它讓你快速地把多個檔案打成一個包,這樣之後儲存和移動它們就會很方便。
tar -cf archive.tar file1 file2 file3
使用-x
選項也可以解壓縮.tar
格式的包檔案。
tar -xf archive.tar
請注意,大多數其他格式(如.zip和.rar)無法通過tar
開啟。它們需要其他命令列工具才行,比如unzip。
許多現代Unix系統上有tar
的擴充套件版本(比如GNU tar
),它也能進行檔案壓縮:
# 建立 gzip 壓縮包. tar -czf file.tar.gz inputfile1 inputfile2 # 解壓 .gz 壓縮包. tar -xzf file.tar.gz
如果你的作業系統裡沒有那個版本的tar
,你可以使用gzip,zcat或者compress來減少檔案存檔大小。
md5sum
Unix裡有幾個內建的做hash運算的命令,包括md5sum,sha1sum以及其他。
這些命令列工具在程式設計中有各種應用,但最重要的是,它們可用於檢查檔案的完整性。
例如,如果您從不受信任的源下載了.iso
檔案,可能裡面就包含有害指令碼。 你可以從中生成md5
或其他雜湊,以此確保該.iso
是安全的。
md5sum ubuntu-16.04.3-desktop-amd64.iso 0d9fe8e1ea408a5895cbbe3431989295 ubuntu-16.04.3-desktop-amd64.iso
然後,你就可以將本地生成的md5
和原始作者提供的字串相比較(比如UbuntuHashes)。
htop
htop
是比內建的top
任務管理更強大的命令。它提供了一個高階版的介面,具有豐富的選項,用於監視和控制系統程序。
儘管執行在命令列,htop
仍支援很好的滑鼠控制。這讓它更加容易地在選單間導航、選擇程序,以及通過排序和過濾來組織任務。
ln
Unix中的Links就好比是Windnows裡的快捷方式,它讓你快速訪問到某些檔案。Links通過ln
命令來建立。它可以有兩種型別:hard和symbolic。每種型別都有不同的屬性,用於不同的事務。(瞭解更多)
這裡有許多你可以使用Links的例子。比如,我們在桌面有一個資料夾叫做Scripts,乾淨地放著ix我們常用的bash指令碼。每當想呼叫這些指令碼時,我們需要這麼做:
~/Desktop/Scripts/git-scripts/git-cleanup
顯然,每次輸入此絕對路徑,並不是很方便。相反,我們可以為Script資料夾在/usr/local/bin
下建立一個symlink,這就讓在所有目錄下都可以執行Scripts裡的指令碼了。
sudo ln -s ~/Desktop/Scripts/git-scripts/git-cleanup /usr/local/bin/
有了建立好的symlink,我們現在可以開啟任一個命令列視窗,然後直接通過指令碼檔名執行它:
git-cleanup
ssh
使用ssh命令,使用者可以快速連線到遠端主機,並登入其Unix shell。 這使得我們可以方便地直接從本地計算機,向終端在伺服器發出命令。
要建立連線,只需給出正確的ip地址或url。首次連線到新伺服器時,將會有某種形式的身份驗證。
ssh username@remote_host
如果要快速執行在伺服器上的一些不需要登入的命令,你只需在url後新增命令即可。該命令將在伺服器上執行,然後返回結果。
ssh username@remote_host ls /var/www some-website.com some-other-website.com
有很多ssh
可做的事情,比如建立代理和隧道,使用私鑰加密你的連線,傳輸檔案等等。你可在這個指南里讀到更多。
grep
grep
是標準的Unix工具,用於在文字中查詢字串。它以檔案或流作為輸入,讓其內容跟正則表示式做運算,並返回所有匹配的行。
需要過濾大型檔案時,此命令很實用。具體來講就是,我們可以把grep
和date
命令一起使用,用來搜尋大的日誌檔案,並生成只包含今天錯誤資訊的新檔案。
// 搜尋今天的日期(格式為yyyy-mm-dd)並將結果寫入新檔案。 grep "$(date +"%Y-%m-%d")" all-errors-ever.log > today-errors.log
另一個很棒的、處理字串的命令是sed。它比grep
更強大(也更復雜),幾乎可執行任何與字串相關的任務,包括新增,刪除或替換字串。
alias
許多Unix命令,包括本文提到的一些,在向它們新增所有選項後,往往變得很長。為讓它們更好記,你可以使用內建的alias
命令建立簡短的別名:
# 建立用於啟動本地Web伺服器的別名。 alias server="python -m SimpleHTTPServer 9000" # 不是鍵入整個命令只需使用別名。 server Serving HTTP on 0.0.0.0 port 9000 ...
只要保持命令視窗開啟,別名就保持有效。要使其長久被記住,你可以將alias
命令新增到.bashrc
檔案中。
總結
以上就是我這總結出的12個Web開發者應該瞭解的命令列,可能不是那麼完整和全面,那麼希望如果大家還了解什麼命令或沒有在文中提到的,也歡迎大家補充和討論。
&n