對于開發人員來說,終端是最重要的工具之一。掌握終端,能夠有效的提升開發人員的工作流程。使用終端,許多日常任務都被簡化為了編寫簡單的命令并按下 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 文件中。
總結
對于 Web 開發人員來說,如果上述的12個終端命令中,還有你不熟悉的命令,那么就應該通過本文快速的熟悉起來,并逐漸的運用到自己的開發工作中。
原文鏈接:https://tutorialzine.com/2017/08/12-terminal-commands-every-web-developer-should-know
轉載請注明出自:葡萄城控件
相關閱讀:
文章列表