Shells命令行學習筆記

檢索工具

每一個命令都有很詳細甚至繁瑣的參數,此文只演示簡單的使用示例。具體參數以及使用方式能夠參照如下四種方式檢索:linux

  • 這個網站能夠查詢一部分命令: 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,適用於如下全部命令)。shell

traceroute

traceroute是一種計算機網絡工具。它可顯示數據包在IP網絡通過的路由器的IP地址。express

traceroute www.baidu.com
複製代碼

若是系統中不存在此命令,按如下方式安裝:json

sudo apt install inetutils-traceroute
sudo apt install traceroute
複製代碼

備註:若是某個網站掛了,能夠用這個命令檢測是哪一個環節出了問題。vim

nslookup

nslookup能夠指定查詢的類型,能夠查到DNS記錄的生存時間還能夠指定使用哪一個DNS服務器進行解釋。 在已安裝TCP/IP協議的電腦上面都可以使用這個命令。 主要用來診斷域名系統 (DNS) 基礎結構的信息。安全

nslookup www.baidu.com
複製代碼

curl

cURL是一個利用URL語法在命令行下工做的文件傳輸工具。bash

請求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就能夠了。

小結

以上都只是簡單示例,每一個命令的深刻使用須要在實際工做中查詢、實踐。(若是以上分享存在錯誤的地方,歡迎各位同窗指正~)

最後,讓咱們用命令行提升工做效率~衝鴨!(●´∀`●)ノ

相關文章
相關標籤/搜索