前端應該掌握的linux命令和工具

大部分前端應用都部署在linux上,若想全局hold住一個項目,linux命令是一項必不可少的技能。許多前端對linux命令並不重視,其實這是一個學習性價比很是高的知識點,沒有太多須要理解的地方,大部分靠「記憶+使用」便可掌握,掌握後可解決許多問題,也能提升平常效率,還能成爲面試的加分項。
linux命令很是多,有時參數也挺複雜,所有學習挺枯燥,本文主要從實際的場景和問題出發,總結幾條經常使用的命令,但願能對你們學習linux有所幫助。css

查看文件

# 首先要學會查看文件屬性
ls -l

# 目錄遞歸的查詢
ls -Rl

clipboard.png

顯示結果如上圖。第一列十個字符,第一個表示文件類型(-爲文件,d爲目錄,l爲軟鏈),後九位分三組,分別表明用戶、用戶組、其餘用戶對文件的的讀(r)寫(w)執行(x)權限;第二列表示文件數;第三列表示所屬用戶;第四列表示所屬用戶組;第五列表示文件大小;第六七八列分別表示文件最後修改的月、日、時間;最後一列爲文件名。html

查看文件內容有許多命令,以下:前端

# 查看一個文件的內容
cat a.txt

# cat支持多個文件鏈接顯示,並可輸出到文件
cat a.txt b.txt > c.txt

# tac就是cat反過來寫,做用和cat相反,是從末尾開始向前顯示
tac a.txt

# tail只顯示文件的最後若干行,-n 指定顯示的行數
tail test.log -n 100

# 實時顯示內容,看日誌時很是有用
tail test.log -f

修改文件全部者

# 同時修改用戶和用戶組
chown zhangsan:app

# 只修改用戶
chown zhangsan

# 只修改用戶組
chown :app

修改文件權限

# 權限主體有三種,用戶(u)、用戶組(g)、其餘(o),權限有讀(r)、寫(w)、執行(x)三種
# +表示賦予權限,-表示回收權限
chmod ug+rw test.js # 給用戶、用戶組賦予讀寫權限

# 遞歸改變目錄需加-R
chmod -R go-wx ./src # 回收用戶組和其它的寫和執行權限

# 數字表示法也比較經常使用。4:讀,2:寫,1:執行,其和可組合出全部權限。數字是三位數,對應三個主體,用戶、用戶組、其餘。
chmod 751 test.js # 用戶具有讀寫執行權限、用戶組具有讀和執行權限、其餘用戶具有執行權限

修改文件

linux下修改文件主要用vi或vim,vim是vi發展過來的,最基本的命令是同樣的。vim編輯器命令很是強大,掌握最最基本的就能夠解決問題了。node

# 在編輯器裏打開文件
vim test.txt

學習vim最重要的是掌握三種模式
普通模式:剛進入編輯器時爲普通模式,普通模式下全部的輸入都看成命令,當即執行且不在終端顯示。通常esc可回到普通模式。
編輯模式:普通模式下按i進入編輯模式。編輯模式下可對內容進行修改。
命令模式:普通模式下輸入「shift」 + 「:」 進入命令模式。命令模式下接受命令輸入且顯示在終端,回車生效。常見的命令有,q退出,q!強制退出,w保存,wq保存並退出。linux

搜索文件內容

# 第一個參數是一個正則表達式,第二個參數是一個文件
grep "html" src/index.html

# 在目錄中搜索時須要加-R參數
grep -R "var" ./src

# 其餘命令能夠管道鏈接到grep命令進行結果篩選
ls -R ./src | grep ".test"

搜索文件名

# 列出src目錄下的全部文件
find ./src

# 列出src目錄下文件名爲index.js的文件
find ./src -name index.js

# 經過正則過濾
find ./src | grep 'scss'

複製或移動文件

# 基本的文件複製
cp a.txt ./test/a.txt

# 複製目錄時需加-R參數
cp -R ./src ../test/src

# 大多時候不須要文件copy,軟鏈也是一種選擇,能用軟鏈就用軟鏈,開銷小
ln -s ./bin/run.js ~/.bin/run.js

# 移動一個文件
mv abc.txt ~/test/abc.txt

跨機器同步文件

# 將本地文件同步到遠程機器,相對於cp命令,就多了一個ip而已
scp ./conf/nginx.conf 10.9.188.2:/opt/nginx/conf

# 反之從遠程向本地同步亦可
10.9.188.2:/opt/nginx/conf/nginx.conf ./conf

# 須要ssh登陸時,請加上用戶名
scp ./conf/nginx.conf user@10.9.188.2:/opt/nginx/conf

# scp只能同步普通文件,rsync能同步文件夾,並且是增量同步
# -a表示保持文件的屬性不變,-v顯示進度信息,-z傳輸中進行壓縮
rsync -avz logs/ 10.9.166.19:/data/users/liwei/logs

# rsync一樣支持方向同步
rsync -avz 10.9.166.19:/data/users/liwei/logs ./logs

查看進程id

# 查出全部在內存中的進程,結果顯示可看到到pid,用戶,啓動命令等信息,grep用做篩選
ps aux | grep node

# 殺進程
kill pid
# 強殺進程
kill -9 pid

查看端口占用

# -a顯示全部選項,-p顯示創建相關連接的程序名
# 顯示出程序名以後就可以使用前面的方法找到pid
netstat -ap | grep 9000

發個http請求

# -X 可設置請求方法,GET POST PUT DELTE ...,-i能打印返回頭
curl 'http://cn.bing.com' -X GET -i

# -H 可設置請求頭
curl 'http://cn.bing.com/' -H 'Customer-Header: helo'

# -d 可設置請求body
curl 'http://cn.bing.com/' -d 'a=1&b=2'

抓包

# -c代表抓多少個包就中止,能夠缺省
# -i指定網絡設備
# host 指定ip地址
# port 指定端口
# src|dst 限定host、port是源地址仍是目標地址
# 能夠經過邏輯運算符連接 and or not
# -w 能夠把抓包結果寫到文件
sudo tcpdump -c100 -i eth0 dst host 10.9.96.32 -w test.cap

對於http請求,tcpdump的可讀性比較差。能夠將抓包結果寫到文件後,下載到本地用wireshark查看,一目瞭然。nginx

相關文章
相關標籤/搜索