檢索工具
每個命令都有很詳細甚至繁瑣的引數,此文只演示簡單的使用示例。具體引數以及使用方式可以參照以下四種方式檢索:
- 這個網站可以查詢一部分命令: explainshell.com/
- 輸入manual命令:
man ${YOUR_COMMAND}
- 關於vi的部分:vimgifs.com/
- 當然,最後google一下(wink~)
命令
ping
ping是一種計算機網路工具,用來測試資料包能否透過IP協議到達特定主機。ping的運作原理是向目標主機傳出一個ICMP的請求回顯資料包,並等待接收回顯回應資料包。程式會按時間和成功響應的次數估算丟失資料包率(丟包率)和資料包往返時間(網路時延,Round-trip delay time)。
ping www.baidu.com
複製程式碼
備註:這個命令常用於檢測域名對應伺服器是否在啟動狀態中。(詳細使用引數man ping
,適用於以下所有命令)。
traceroute
traceroute是一種計算機網路工具。它可顯示資料包在IP網路經過的路由器的IP地址。
traceroute www.baidu.com
複製程式碼
如果系統中不存在此命令,按以下方式安裝:
sudo apt install inetutils-traceroute
sudo apt install traceroute
複製程式碼
備註:如果某個網站掛了,可以用這個命令檢測是哪個環節出了問題。
nslookup
nslookup可以指定查詢的型別,可以查到DNS記錄的生存時間還可以指定使用哪個DNS伺服器進行解釋。 在已安裝TCP/IP協議的電腦上面均可以使用這個命令。 主要用來診斷域名系統 (DNS) 基礎結構的資訊。
nslookup www.baidu.com
複製程式碼
curl
cURL是一個利用URL語法在命令列下工作的檔案傳輸工具。
請求www.baidu.com的網頁內容
curl www.baidu.com
複製程式碼
在輸出裡帶上Http Header(-i --include)
curl -i www.baidu.com
複製程式碼
nmap
nmap(“Network Mapper(網路對映器)”) 是一個網路探測和安全掃描程式,系統管理者和個人可以使用這個軟體掃描大型的網路,獲取那臺主機正在執行以及提供什麼服務等資訊。nmap支援很多掃描技術,例如:UDP、TCP connect()、TCP SYN(半開掃描)、ftp代理(bounce攻擊)、反向標誌、ICMP、FIN、ACK掃描、聖誕樹(Xmas Tree)、SYN掃描和null掃描。
nmap www.baidu.com
複製程式碼
備註:一般用來檢測該伺服器開放的埠。比如以上命令的輸出內容如下,可知開放了80、443埠。
Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-04 16:52 CST
Nmap scan report for www.baidu.com (14.215.177.38)
Host is up (0.0095s latency).
Other addresses for www.baidu.com (not scanned): 14.215.177.39
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 4.67 seconds
複製程式碼
ufw
UFW 全稱為Uncomplicated Firewall,是Ubuntu 系統上預設的防火牆元件, 為了輕量化配置iptables 而開發的一款工具。 UFW 提供一個非常友好的介面用於建立基於IPV4,IPV6的防火牆規則。
示例比如開啟伺服器的443(https)埠:
sudo ufw allow 443
sudo ufw enable
sudo ufw status
複製程式碼
ssh
Secure Shell(安全外殼協議,簡稱SSH)是一種加密的網路傳輸協議,可在不安全的網路中為網路服務提供安全的傳輸環境。 SSH通過在網路中建立安全隧道來實現SSH客戶端與伺服器之間的連線。
比如建立一個SSH key:
cd ~/.ssh/
ssh-keygen -t rsa
複製程式碼
將生成的公鑰放置遠端伺服器中,然後即可以使用私鑰登入遠端伺服器:
ssh -i ~/.ssh/my_key root@$YOU_SERVER_IP
複製程式碼
find
find是一個用於在檔案系統中尋找檔案的Unix命令列工具。它的用法包括檔名模式匹配,時間戳匹配。
常用的幾個選項為:
- -name
- -type
- -empty
- -executable
- -writable
通用格式如下:
find $YOU_DIRECTORY/ -name $YOU_FILES
複製程式碼
示例。比如想在express資料夾中尋找名稱含有Guide
的md檔案
find express/ -name *Guide*.md
複製程式碼
grep
grep是一個最初用於Unix作業系統的命令列工具。在給出檔案列表或標準輸入後,grep會對匹配一個或多個正規表示式的文字進行搜尋,並只輸出匹配(或者不匹配)的行或文字。
示例在package.json裡搜尋作者的名稱:
grep -w "author" express//package.json
複製程式碼
則會輸出匹配該author
單詞的一整行
"author": "TJ Holowaychuk <tj@vision-media.ca>",
複製程式碼
備註:這個命令也相當實用~可以查閱文件多多練習!
ls
常用命令之一,顯示當前資料夾的內容
ls
複製程式碼
比較常用的是這個組合
ls -laG
複製程式碼
cd
cd命令用來切換工作目錄至dirname。 其中dirName表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的home directory。
cd $PATH
複製程式碼
pwd
在類Unix系統和其他一些作業系統中,pwd(英語:print working directory)用於輸出當前工作目錄的絕對路徑
pwd
複製程式碼
mkdir/rmdir/rm/touch
新建資料夾
mkdir $FOLDER
複製程式碼
刪除資料夾
rmdir $FOLDER
複製程式碼
當然刪除資料夾也可以使用以下命令遞迴刪除檔案(這個命令需要小心使用)
rm -rf $FOLDER
複製程式碼
touch命令有兩個功能:一是用於把已存在檔案的時間標籤更新為系統當前的時間(預設方式),它們的資料將原封不動地保留下來;二是用來建立新的空檔案。
所以一般可以用來新建檔案,顯得十分方便
touch $FILE
複製程式碼
刪除檔案
rm $FILE
複製程式碼
cat/head/tail/more/less
cat是unix系統下用來檢視檔案連續內容用的指令,字面上的含意是“concatenate”(連續)的縮寫。除了用來作為顯示檔案內容外,cat指令也可用於標準流上的處理,如將顯示的訊息轉入或附加另一檔案上。
cat $YOUR_FILE
複製程式碼
結合標準輸出流>
可以有以下姿勢:
cat $FILE1 > $FILE2
複製程式碼
關於head/tail/more/less這些命令工作效果大致相似,但是具體不同之處可以使用以上提供的方式查閱
vi
vi是一種模式編輯器。不同的按鈕和鍵擊可以更改不同的“模式”;比如說:在“插入模式”下,輸入的文字會直接被插入到文件;當按下“退出鍵”,“插入模式”就會更改為“命令模式”,並且游標的移動和功能的編輯都由字母來響應,例如:“j”用來移動游標到下一行;“k”用來移動游標到上一行,“x”可以刪除當前游標處的字元,“i”可以返回到“插入模式”(也可以使用方向鍵)。
掌握簡單的vi命令使用十分必要。
使用vim編輯檔案
vi $FILE
複製程式碼
輸入i
進入INSERT模式,編輯完成後,輸入esc
退出輸入INSERT模式,進入命令模式,輸入:wq
寫入修改內容並退出vi。
具體使用十分複雜,可以多做練習。簡單的使用以上大概可以滿足,因為在伺服器中沒有圖形化介面,所以熟悉一定的vi操作是必須的。
sudo
sudo是linux系統管理指令,是允許系統管理員讓普通使用者執行一些或者全部的root命令的一個工具。
備註:普通使用者在執行需要root許可權的命令時,需要使用此命令。
sudo $command
複製程式碼
chown
chown 命令將 File 或 Directory 引數指定的檔案或目錄的所有者更改為 Owner 引數指定的使用者。
常見於某個檔案或資料夾沒有相關的許可權時,可以用此命令修改許可權。示例如下:
sudo chown -R $USER:$USER /var/www/
複製程式碼
ps/top
在大多數類Unix作業系統中,ps程式(“process status”的簡稱)可以顯示當前執行的程式。一個相關的Unix工具top則可以檢視執行程式的實時資訊。
ps
複製程式碼
top
複製程式碼
ps + grep可以快速找到對應程式的程式資訊:
ps -A | grep "vscode"
複製程式碼
top + grep實時顯示系統中對應程式程式(比如微信)的資源佔用狀況。
top | grep -i -w "wechat"
複製程式碼
(這裡使用到的|
是pipeline,可以粗略理解為資料流從左到右的流動)
pbcopy
將內容複製到貼上板,示例如下:
cat $FILE | pbcopy
複製程式碼
然後愉快的ctrl + v就可以了。
小結
以上都只是簡單示例,每個命令的深入使用需要在實際工作中查詢、實踐。(如果以上分享存在錯誤的地方,歡迎各位同學指正~)
最後,讓我們用命令列提高工作效率~衝鴨!(●´∀`●)ノ