每一個Web開發者都該瞭解的12條命令行

轉載請註明出處:葡萄城官網,葡萄城爲開發者提供專業的開發工具、解決方案和服務,賦能開發者。
原文出處:https://tutorialzine.com/2017...css


在開發者的彈藥箱裏,命令行是最具生產力的工具之一。掌握它們能夠給你的工做流程帶來很是積極的影響。由於,許多平常任務均可以用一條命令而後按回車來解決。html

在本文中,咱們爲你準備了一系列經常使用命令,幫你充分利用你的終端。這其中有些命令是系統內置的,另外的一些則是須要另外安裝的免費工具,不過這些免費工具是經歷了時間的考驗,因此你能夠分分鐘將他們安裝完成。前端

curl

curl是一個發送請求的命令行工具。可以使用HTTP(s)、FTP,以及一些你可能從未聽過的協議發送請求。它能夠下載文件,檢查響應頭,自由地訪問遠程數據。python

在web開發中,curl經常使用於測試鏈接和RESTful APIs。git

# 獲取一個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中讀到更多。  web

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

也有相似正則匹配的選項,用於過濾結果。shell

tree -P '*.min.*'
.
├── css
│   ├── bootstrap.min.css
├── fonts
└── js
    └── bootstrap.min.js

tmux

根據維基百科所說,tmux是一個終端複用器,翻譯爲人話就是說,它是一個把多給終端鏈接爲一個終端會話的工具。編程

一個tmux分爲3塊屏的終端以下:bootstrap

139239-20190604100359924-197811385.png

它讓你在終端中的程序間切換,添加分屏,並講多個終端鏈接到同一個會話,並使之保持同步。尤爲在遠程服務器上工做時,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開發者應該瞭解的命令行,可能不是那麼完整和全面,那麼但願若是你們還了解什麼命令或沒有在文中提到的,也歡迎你們補充和討論。  


本文是由葡萄城技術開發團隊發佈,轉載請註明出處:葡萄城官網

瞭解可嵌入您系統的在線 Excel,請前往SpreadJS純前端表格控件

相關文章
相關標籤/搜索