作為前端Web開發者,這12條基本命令不可不會
對于開發人員來說,終端是最重要的工具之一。掌握終端,能夠有效的提升開發人員的工作流程。使用終端,許多日常任務都被簡化為了編寫簡單的命令并按下 Enter 按鈕。
本文列舉了一系列 Linux 命令,旨在幫助大家充分利用終端這個工具。其中一些終端命令是內置的,其它的則是免費的工具,并且經過測試這些工具可以在不到一分鐘內進行安裝。
Curl
Curl 是一個命令行工具,用于通過 HTTP(s)、FTP 和數十種其它協議進行請求。使用Curl可以進行文件下載、檢查響應標題和自由訪問遠程數據。
在 Web 開發中,Curl 經常和 RESTful API 一起使用,用于測試連接。
- # Fetch the headers of a URL.
- 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
- # Make a GET request to a remote API.
- curl http://numbersapi.com/random/trivia
- 29 is the number of days it takes Saturn to orbit the Sun.
Curl 命令可能比上述代碼更復雜。有許多選項用于控制 headers、Cookie、身份驗證等。了解更多,請閱讀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
還可以使用簡單的 regEx 模式來過濾結果:
- tree -P '*.min.*'
- .
- ├── css
- │ ├── bootstrap.min.css
- ├── fonts
- └── js
- └── bootstrap.min.js
Tmux
根據維基的解釋,Tmux 是一個終端復用器。通俗的說,它是一個能將多個終端連接到單個終端會話的工具。
Tmux 允許用戶在終端中的程序之間切換,添加屏幕窗格,并將多個終端連接到同一個會話,使其保持同步。在遠程服務器上工作時,Tmux 特別有用,因為它允許用戶創建新的選項卡,而無需再次登錄。
du
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 Desktop
- 4.0K Documents
- 40G Downloads
- 4.0K Music
- 4.9M Pictures
- 844K Public
- 4.0K Templates
- 6.9M Videos
還有一個相似的命令 df(Disk Free),使用df會返回有關可用磁盤空間的各種信息。
Git
Git 是迄今為止***的版本控制系統,也是現代 web 開發的定義工具之一。
Git 有很多第三方應用和工具可以使用,但是大多數人都喜歡通過本地終端訪問 git。git CLI 非常強大,可以處理最混亂的項目版本問題。
想了解更多關于 git 的信息,推薦學習“ Learn Git in 30 Minutes”。
Tar
Tar 是用于文件存檔的默認 Unix 工具。Tar 允許用戶將多個文件快速綁定到一個包中,從而使之更容易存儲和移動。
- tar -cf archive.tar file1 file2 file3
使用-x選項也可以提取現有的 .tar 檔案。
- tar -xf archive.tar
請注意,其它大多數格式如 .zip 和 .rar 無法使用 tar 命令打開,要打開 .zip 和 .rar 這樣的文件還需要 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 來壓縮歸檔文件的大小。
md5sum
Unix 有幾個內置的哈希命令,包括 md5sum,sha1sum 等。這些命令行工具在編程中有很多種應用,但是最重要的功能是它們可以用于檢查文件的完整性。
例如,如果從不受信任的源下載了 .iso 文件,那么該文件就有可能包含有害的腳本。為了確保 .iso 是安全的,用戶可以從中生成 md5 或其它哈希。
- md5sum ubuntu-16.04.3-desktop-amd64.iso
- 0d9fe8e1ea408a5895cbbe3431989295 ubuntu-16.04.3-desktop-amd64.iso
然后,可以將生成的字符串與原作者提供的字符串(例如UbuntuHashes)進行比較。
Htop
Htop 是創建任務管理器中 top 任務的一個很強大的可選方案。它提供了一個高級界面,具有用于監視和控制系統進程的許多選項。
雖然 Htop 在終端中運行,但是 Htop 對鼠標控件有非常好的支持。這也使得能夠更容易地完成導航菜單,選擇進程,并組織排序和過濾的任務。
Ln
Unix 中的 Links 類似于 Windows 中的快捷方式,允許用戶快速訪問某些文件。Links是通過ln命令創建的,有兩種類型:hard 或 symbolic。每種都有不同的屬性,分別用于不同的對象。
以下是使用鏈接的示例。假設桌面上有一個名為 Scripts 的目錄。它包含了我們通常使用的 bash 腳本。每當我們想要調用腳本之一時,都必須這樣做:
- ~/Desktop/Scripts/git-scripts/git-cleanup
這樣顯然很不方便,因為每次都要寫絕對路徑。相反,我們可以創建一個從腳本文件夾到 /usr/local/bin 的符號鏈接,這樣會使腳本更容易執行。
- sudo ln -s ~/Desktop/Scripts/git-scripts/git-cleanup /usr/local/bin/
通過創建符號鏈接,就可以在任何打開的終端中,通過簡單地寫入名稱來調用腳本。
- 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 做很多事情,例如創建代理和隧道、使用私鑰保護連接、傳輸文件等等。了解更多有關ssh。
Grep
Grep 是一個用于在文本中查找字符串的標準 Unix 實用程序。Grep 以文件或直接流的形式進行輸入,通過正則表達式運行其內容,并返回所有匹配的行。
在對大文件進行過濾時,使用 Grep 會非常方便。下面我們使用 Grep 和 data 命令搜索來對一個大型日志文件進行搜索,并生成一個僅包含當天錯誤信息的新文件。
- // 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 更強大也更復雜,它可以執行幾乎任何與字符串相關的任務,包括添加、刪除或替換字符串。
Alias
許多 Unix 命令,包括本文中的一些功能,在添加所有的選項后,會是一個很長串的命令。為了使這些很長串的命令更容易記憶,用戶可以使用alias 命令來創建簡短的別名:
- # 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.
- server
- Serving HTTP on 0.0.0.0 port 9000 ...
只要保持終端處于開啟狀態,該別名將一直可用。為了使別名***可用,也可以將 alias 命令添加到 .bashrc 文件中。
前端開發工具推薦
SpreadJS 純前端表格控件是基于 HTML5 的 Java 電子表格和網格功能控件,提供了完備的公式引擎、排序、過濾、輸入控件、數據可視化、Excel 導入/導出等功能,適用于 .NET、Java 和移動端等各平臺在線編輯類 Excel 功能的表格程序開發。
總結
對于 Web 開發人員來說,如果上述的12個終端命令中,還有你不熟悉的命令,那么就應該通過本文快速的熟悉起來,并逐漸的運用到自己的開發工作中。