作為前端Web開發(fā)者,這12條基本命令不可不會(huì)
對于開發(fā)人員來說,終端是最重要的工具之一。掌握終端,能夠有效的提升開發(fā)人員的工作流程。使用終端,許多日常任務(wù)都被簡化為了編寫簡單的命令并按下 Enter 按鈕。
本文列舉了一系列 Linux 命令,旨在幫助大家充分利用終端這個(gè)工具。其中一些終端命令是內(nèi)置的,其它的則是免費(fèi)的工具,并且經(jīng)過測試這些工具可以在不到一分鐘內(nèi)進(jìn)行安裝。
Curl
Curl 是一個(gè)命令行工具,用于通過 HTTP(s)、FTP 和數(shù)十種其它協(xié)議進(jìn)行請求。使用Curl可以進(jìn)行文件下載、檢查響應(yīng)標(biāo)題和自由訪問遠(yuǎn)程數(shù)據(jù)。
在 Web 開發(fā)中,Curl 經(jīng)常和 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 命令可能比上述代碼更復(fù)雜。有許多選項(xiàng)用于控制 headers、Cookie、身份驗(yàn)證等。了解更多,請閱讀Everything curl。
Tree
Tree 是一個(gè)小型的命令行實(shí)用程序,它將目錄中的文件以可視化的方式進(jìn)行顯示。它采用遞歸運(yùn)行的方式,遍歷每個(gè)級別的嵌套并繪制所有內(nèi)容的格式樹。這樣就能快速的瀏覽并查找需要的文件。
- 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 模式來過濾結(jié)果:
- tree -P '*.min.*'
- .
- ├── css
- │ ├── bootstrap.min.css
- ├── fonts
- └── js
- └── bootstrap.min.js
Tmux
根據(jù)維基的解釋,Tmux 是一個(gè)終端復(fù)用器。通俗的說,它是一個(gè)能將多個(gè)終端連接到單個(gè)終端會(huì)話的工具。
Tmux 允許用戶在終端中的程序之間切換,添加屏幕窗格,并將多個(gè)終端連接到同一個(gè)會(huì)話,使其保持同步。在遠(yuǎn)程服務(wù)器上工作時(shí),Tmux 特別有用,因?yàn)樗试S用戶創(chuàng)建新的選項(xiàng)卡,而無需再次登錄。
du
du 命令用于生成關(guān)于文件和目錄的空間使用情況的報(bào)告。du很容易使用,可以遞歸地運(yùn)行,遍歷每個(gè)子目錄并返回每個(gè)文件的大小。
du 的常見用例是:當(dāng)某個(gè)驅(qū)動(dòng)器的空間不足,用戶不清楚每個(gè)存儲(chǔ)器的大小。使用此命令可以快速查看每個(gè)文件夾所占用的存儲(chǔ)空間,從而找到占用***空間的存儲(chǔ)器。
- # 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
還有一個(gè)相似的命令 df(Disk Free),使用df會(huì)返回有關(guān)可用磁盤空間的各種信息。
Git
Git 是迄今為止***的版本控制系統(tǒng),也是現(xiàn)代 web 開發(fā)的定義工具之一。
Git 有很多第三方應(yīng)用和工具可以使用,但是大多數(shù)人都喜歡通過本地終端訪問 git。git CLI 非常強(qiáng)大,可以處理最混亂的項(xiàng)目版本問題。
想了解更多關(guān)于 git 的信息,推薦學(xué)習(xí)“ Learn Git in 30 Minutes”。
Tar
Tar 是用于文件存檔的默認(rèn) Unix 工具。Tar 允許用戶將多個(gè)文件快速綁定到一個(gè)包中,從而使之更容易存儲(chǔ)和移動(dòng)。
- tar -cf archive.tar file1 file2 file3
使用-x選項(xiàng)也可以提取現(xiàn)有的 .tar 檔案。
- tar -xf archive.tar
請注意,其它大多數(shù)格式如 .zip 和 .rar 無法使用 tar 命令打開,要打開 .zip 和 .rar 這樣的文件還需要 unzip 這樣的命令。
許多現(xiàn)代 Unix 系統(tǒng)都在運(yùn)行擴(kuò)展版本的 tar(GNU tar),可以幫助壓縮執(zhí)行文件的大?。?/p>
- # Create compressed gzip archive.
- tar -czf file.tar.gz inputfile1 inputfile2
- # Extract .gz archive.
- tar -xzf file.tar.gz
如果你的操作系統(tǒng)沒有該版本的 tar,則可以使用 gzip,zcat 或 compress 來壓縮歸檔文件的大小。
md5sum
Unix 有幾個(gè)內(nèi)置的哈希命令,包括 md5sum,sha1sum 等。這些命令行工具在編程中有很多種應(yīng)用,但是最重要的功能是它們可以用于檢查文件的完整性。
例如,如果從不受信任的源下載了 .iso 文件,那么該文件就有可能包含有害的腳本。為了確保 .iso 是安全的,用戶可以從中生成 md5 或其它哈希。
- md5sum ubuntu-16.04.3-desktop-amd64.iso
- 0d9fe8e1ea408a5895cbbe3431989295 ubuntu-16.04.3-desktop-amd64.iso
然后,可以將生成的字符串與原作者提供的字符串(例如UbuntuHashes)進(jìn)行比較。
Htop
Htop 是創(chuàng)建任務(wù)管理器中 top 任務(wù)的一個(gè)很強(qiáng)大的可選方案。它提供了一個(gè)高級界面,具有用于監(jiān)視和控制系統(tǒng)進(jìn)程的許多選項(xiàng)。
雖然 Htop 在終端中運(yùn)行,但是 Htop 對鼠標(biāo)控件有非常好的支持。這也使得能夠更容易地完成導(dǎo)航菜單,選擇進(jìn)程,并組織排序和過濾的任務(wù)。
Ln
Unix 中的 Links 類似于 Windows 中的快捷方式,允許用戶快速訪問某些文件。Links是通過ln命令創(chuàng)建的,有兩種類型:hard 或 symbolic。每種都有不同的屬性,分別用于不同的對象。
以下是使用鏈接的示例。假設(shè)桌面上有一個(gè)名為 Scripts 的目錄。它包含了我們通常使用的 bash 腳本。每當(dāng)我們想要調(diào)用腳本之一時(shí),都必須這樣做:
- ~/Desktop/Scripts/git-scripts/git-cleanup
這樣顯然很不方便,因?yàn)槊看味家獙懡^對路徑。相反,我們可以創(chuàng)建一個(gè)從腳本文件夾到 /usr/local/bin 的符號鏈接,這樣會(huì)使腳本更容易執(zhí)行。
- sudo ln -s ~/Desktop/Scripts/git-scripts/git-cleanup /usr/local/bin/
通過創(chuàng)建符號鏈接,就可以在任何打開的終端中,通過簡單地寫入名稱來調(diào)用腳本。
- git-cleanup
SSH
使用 ssh 命令,用戶可以快速連接到遠(yuǎn)程主機(jī)并登錄到其 Unix shell。這也讓用戶可以直接從本地機(jī)器的終端操作遠(yuǎn)程的服務(wù)器,更方便地發(fā)出命令。
要建立連接,只需要指定正確的 IP 地址或 URL。***次連接到新服務(wù)器時(shí),會(huì)有一些形式的身份驗(yàn)證。
- ssh username@remote_host
如果要在服務(wù)器上快速執(zhí)行命令而不進(jìn)行登錄,可以在URL之后添加一個(gè)命令。該命令將在服務(wù)器上運(yùn)行,并返回該結(jié)果。
- ssh username@remote_host ls /var/www
- some-website.com
- some-other-website.com
可以使用 SSH 做很多事情,例如創(chuàng)建代理和隧道、使用私鑰保護(hù)連接、傳輸文件等等。了解更多有關(guān)ssh。
Grep
Grep 是一個(gè)用于在文本中查找字符串的標(biāo)準(zhǔn) Unix 實(shí)用程序。Grep 以文件或直接流的形式進(jìn)行輸入,通過正則表達(dá)式運(yùn)行其內(nèi)容,并返回所有匹配的行。
在對大文件進(jìn)行過濾時(shí),使用 Grep 會(huì)非常方便。下面我們使用 Grep 和 data 命令搜索來對一個(gè)大型日志文件進(jìn)行搜索,并生成一個(gè)僅包含當(dāng)天錯(cuò)誤信息的新文件。
- // 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
處理字符串的另一個(gè)很強(qiáng)大的命令是 sed,它比 grep 更強(qiáng)大也更復(fù)雜,它可以執(zhí)行幾乎任何與字符串相關(guān)的任務(wù),包括添加、刪除或替換字符串。
Alias
許多 Unix 命令,包括本文中的一些功能,在添加所有的選項(xiàng)后,會(huì)是一個(gè)很長串的命令。為了使這些很長串的命令更容易記憶,用戶可以使用alias 命令來創(chuàng)建簡短的別名:
- # 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 ...
只要保持終端處于開啟狀態(tài),該別名將一直可用。為了使別名***可用,也可以將 alias 命令添加到 .bashrc 文件中。
前端開發(fā)工具推薦
SpreadJS 純前端表格控件是基于 HTML5 的 Java 電子表格和網(wǎng)格功能控件,提供了完備的公式引擎、排序、過濾、輸入控件、數(shù)據(jù)可視化、Excel 導(dǎo)入/導(dǎo)出等功能,適用于 .NET、Java 和移動(dòng)端等各平臺(tái)在線編輯類 Excel 功能的表格程序開發(fā)。
總結(jié)
對于 Web 開發(fā)人員來說,如果上述的12個(gè)終端命令中,還有你不熟悉的命令,那么就應(yīng)該通過本文快速的熟悉起來,并逐漸的運(yùn)用到自己的開發(fā)工作中。