<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          前端必會(huì)Linux常用命令,看這一篇就夠了!

          共 3733字,需瀏覽 8分鐘

           ·

          2020-08-06 11:33



          本文并不是一份完整的 Linux 實(shí)用命令列表,如果你的預(yù)期是這樣的,那這篇文章可能就要讓你失望了。

          本文主要針對(duì)于 FEer 們。作為前端,一開始我們總是和 HTML/JavaScript/CSS 三大塊打交道,但是久而久之,我們就會(huì)接觸更多的內(nèi)容,比如服務(wù)的部署。而這一塊對(duì)于我們的要求會(huì)更全面,其中對(duì) Linux 指令就有很多要求。如果你想要部署服務(wù),而又沒有成熟的工具或平臺(tái)可以借助,需要完全自己來操作的話,你就需要準(zhǔn)備好部署服務(wù)需要的所有文件、登錄指定的服務(wù)器、發(fā)布指定文件、啟動(dòng)服務(wù)、服務(wù)器啟動(dòng)不成功時(shí)候進(jìn)行調(diào)試以及服務(wù)維護(hù)過程中進(jìn)行問題的排查。本文就將從這一條線講起,分享歪馬在工作中所積累的一些實(shí)用指令。

          別看指令簡(jiǎn)單,熟練使用后,你將會(huì)收獲:“哇,牛 B!”。

          下面歪馬會(huì)從三個(gè)部分來講述相關(guān)的 Linux 命令,第一部分是服務(wù)部署前的準(zhǔn)備,第二部分是登錄服務(wù)器部署,第三部分是問題排查相關(guān)。

          一、部署前準(zhǔn)備

          前端的業(yè)務(wù)部署,簡(jiǎn)單說起來就是把編譯好的靜態(tài)文件準(zhǔn)備好,放到服務(wù)器就行。不簡(jiǎn)單的,我們也從這種簡(jiǎn)單的說起 ?。

          通常情況下,我們會(huì)將編譯后的文件以及服務(wù)啟動(dòng)相關(guān)的文件放到一個(gè)目錄里,然后將其壓縮打包好。我們會(huì)比較高頻的使用以下幾個(gè)命令。

          1. mkdir 創(chuàng)建打包目錄

          mkdir可以用來創(chuàng)建目錄,要求命令執(zhí)行用戶有當(dāng)前目錄的寫權(quán)限,且創(chuàng)建的目錄不能已存在。如果創(chuàng)建的目錄已存在會(huì)給予提示,但不會(huì)報(bào)錯(cuò)。如我們創(chuàng)建一個(gè)output目錄,提示如下。

          mkdir創(chuàng)建已存在目錄

          mkdir的命令格式如下:mkdir [選項(xiàng)] <目錄名>。比較有用的參數(shù)是-p/--parent,該參數(shù)可以是一個(gè)路徑名。如果路徑中的某些目錄上不存在,加上此選項(xiàng)后,可以自動(dòng)創(chuàng)建尚不存在的目錄,可以一次創(chuàng)建多個(gè)目錄。

          如下,帶有參數(shù) p 和不帶的對(duì)比:

          mkdir 參數(shù)p帶不帶對(duì)比

          可以看出帶有參數(shù) p 的命令會(huì)自動(dòng)創(chuàng)建不存在的目錄。

          2. cp 復(fù)制內(nèi)容

          準(zhǔn)備好了打包目錄之后,我們就需要復(fù)制我們需要的內(nèi)容了。這時(shí)候就需要用到cp命令了。cp命令可以將源文件復(fù)制到目標(biāo)文件,或者將多個(gè)源文件復(fù)制到目標(biāo)文件。

          命令格式如下:cp [選項(xiàng)] <源文件> <目錄>。歪馬覺得比較有用的參數(shù)有以下幾個(gè):

          • -n/--no-clobber: 不要覆蓋已存在文件,與下面的-i互斥使用。(經(jīng)測(cè)試,cp的默認(rèn)行為是覆蓋,至少 mac 是這樣的 ?)。
          • -i/--interactive: 覆蓋前詢問
          • -r: 遞歸復(fù)制,用于復(fù)制目錄
          • -f/--force: 強(qiáng)行復(fù)制文件或內(nèi)容,不論目的文件或目錄是否已存在
          • -u/--update:只有在源文件比目標(biāo)文件新時(shí)才復(fù)制

          一般我們會(huì)有兩種操作,一種是復(fù)制目錄下的所有內(nèi)容,一種是復(fù)制單個(gè)文件。

          如下我們將www目錄下的內(nèi)容整體拷貝到output目錄,并且復(fù)制了單個(gè)文件nginx.conf

          cp -r www/* output/www/;
          cp nginx.conf output/;

          3. tar 壓縮和解壓文件

          準(zhǔn)備好文件之后,接下來我們就可以打包壓縮文件了。

          tar 可以用來壓縮和解壓文件。準(zhǔn)備階段,我們只需要用到 tar 的壓縮功能,部署時(shí)會(huì)用到解壓功能。為了方便,放在一起講述。tar 的命令格式如下:tar [選項(xiàng)] <打包文件名> <文件>

          比如 output 目錄的壓縮和解壓可以如下操作:

          // 壓縮
          cd output
          tar -zcvf ../output.tar.gz *;

          // 解壓
          tar -zxvf ../output.tar.gz;

          其中壓縮和解壓只有一個(gè)參數(shù)之差,下面我們來看一下這幾個(gè)參數(shù)吧。

          • -z: 支持 gzip 解壓文件
          • -c: 建立新的壓縮文件
          • -v: 顯示操作過程
          • -f: 指定壓縮文件
          • -x: 從壓縮的文件中提取文件

          好了,上面我們說了部署前的整個(gè)準(zhǔn)備過程中,歪馬覺得最常用的三個(gè)命令。除了這些之外,可能還有一些你也會(huì)用到,如touch創(chuàng)建文件、rm刪除文件或目錄等,這些相信大家都用過。如果有需要可以回顧或者學(xué)習(xí)一下,這里歪馬就不廢話了。

          接下來讓我們看看部署階段會(huì)用到哪些命令。

          二、部署階段

          多數(shù)情況下,我們說的部署都不是本機(jī)部署,而是遠(yuǎn)程部署,這時(shí)候我們常常會(huì)用到scpssh兩個(gè)命令。下面我們就一一學(xué)習(xí)一下吧。

          1. scp 遠(yuǎn)程加密復(fù)制

          scp(secure copy 的縮寫)是 Linux 系統(tǒng)下基于 ssh 登陸進(jìn)行安全的遠(yuǎn)程文件拷貝命令。

          利用這一命令,我們就可以將打包好的文件拷貝到遠(yuǎn)程服務(wù)器,如下:

          scp output.tar.gz [email protected]:~/;

          這里解釋一下,代碼中最后的~/是指服務(wù)器的個(gè)人目錄。

          如果需要復(fù)制整個(gè)目錄,則添加-r參數(shù)即可,與cp類似。

          由于scp是基于ssh實(shí)現(xiàn)的。下面我們?cè)賮砜纯?code style="font-size: 14px;overflow-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">ssh命令。

          2. ssh 登錄遠(yuǎn)程服務(wù)器

          將打包好的內(nèi)容復(fù)制到遠(yuǎn)程服務(wù)器后,我們就需要登錄遠(yuǎn)程服務(wù)器,解壓文件,然后起服務(wù)了,具體怎么起服務(wù)就看大家各自的服務(wù)了。

          ssh可以用來登錄遠(yuǎn)程服務(wù)器,其命令格式如下:ssh @。如:ssh [email protected]。如果本地用戶名和登錄服務(wù)器用戶名一樣,則用戶名可以省略。

          此外,ssh默認(rèn)使用的是22端口,如果特殊需要修改端口,可以通過-p參數(shù)修改,如下:ssh -p @

          其中,ssh 登錄時(shí)會(huì)用到最常用的免密登錄,本文篇幅有限,不做介紹,歪馬會(huì)在下一篇進(jìn)行簡(jiǎn)單說明。

          三、問題排查階段

          經(jīng)過上面的兩個(gè)階段,如果順利的話,我們的服務(wù)應(yīng)該部署成功了。但是如果大家真的自動(dòng)部署過的話,往往會(huì)發(fā)現(xiàn),能一次成功的很少,經(jīng)常會(huì)出現(xiàn)各種問題。這時(shí)候我們就需要排查問題了。下面我們要說的命令就和排查問題息息相關(guān)。

          1. pingtelnet

          首先部署完之后,我們?cè)L問服務(wù)會(huì)發(fā)現(xiàn)可能無法訪問。這時(shí),我們可以先通過ping指令確定與目標(biāo)機(jī)器的連通性。下面分別是正常連通和不連通的效果。正常連通會(huì)收到返回值,不連通會(huì)收到超時(shí)提醒。

          正常連通
          不連通超時(shí)提醒(隨意的ip)

          如果確認(rèn)了與目標(biāo)機(jī)器可以連通,但是仍然無法訪問,則可以通過telnet確認(rèn)我們服務(wù)的端口是否可訪問。如下,確認(rèn)808080端口是否正常,正常和非正常提示如下。

          端口正常可訪問
          端口不可訪問

          如果不正常會(huì)一直在 Tring....

          如果端口不可用,可以通過下面的netstat來查看下端口的使用情況。

          2. netstat

          netstat可以用于顯示與 IP、TCP、UDP 和 ICMP 協(xié)議相關(guān)的統(tǒng)計(jì)數(shù)據(jù)。

          這里我們可以用來查看端口的使用情況。如通過netstat -apn查看所有端口的使用情況。

          端口使用情況

          如果想要搜索指定端口,可以結(jié)合grep一起使用,如netstat -apn | grep 8380

          通過查看端口的占用情況和開放狀態(tài),可以判斷服務(wù)未啟動(dòng)成功的原因。如果被占用,可以考慮更換一個(gè)端口。

          其中上面所有到的三個(gè)參數(shù)分別含義如下:

          • -a/-all: 顯示所有連線中的 Socket
          • -n/–numeric: 直接使用 IP 地址,而不通過域名服務(wù)器
          • -p/–programs: 顯示正在使用 Socket 的程序識(shí)別碼和程序名稱。這個(gè)很有用,顯示出當(dāng)前端口的進(jìn)程,可以便于我們kill掉 ?。

          3. ps 查看進(jìn)程狀態(tài)

          通過我們的不懈努力,我們的服務(wù)應(yīng)該已經(jīng)能正常跑起來了。就讓它自己跑著吧,走咯。

          別,等等,少年別走。你還有下面兩個(gè)命令需要了解一下。

          要知道,機(jī)器的運(yùn)行也是會(huì)出故障的,雖然我們的服務(wù)正常跑起來了,但是難保它不會(huì)出問題。所以當(dāng)?shù)弥覀兊姆?wù)出問題了的時(shí)候,我們可以通過ps來查看對(duì)應(yīng)進(jìn)程的狀態(tài),確定是否是進(jìn)程掛了。

          使用這一命令時(shí),我們也可以結(jié)合grep來查詢,如ps aux | grep node.js,通過起服務(wù)的腳本來查詢效率會(huì)高很多。

          如果你查詢之后發(fā)現(xiàn)進(jìn)程不在,那就重啟一下就可以了,so easy。

          5. tail -f 查看日志

          最后,如果我們的服務(wù)運(yùn)行正常,但是有部分功能出錯(cuò)了。這時(shí)就需要?jiǎng)邮植檫\(yùn)行日志了。一般情況下,我們都會(huì)將系統(tǒng)運(yùn)行的日志輸出到某個(gè)文件。可以通過以下命令來查看日志tail -f logs。這一命令會(huì)動(dòng)態(tài)更新新增加的日志內(nèi)容,非常適合用來調(diào)試。

          總結(jié)

          主要是梳理了一些自己常用的 Linux 命令,其中加入了場(chǎng)景化的過程,希望能夠給大家?guī)韼椭V劣谂2慌?B 我就不敢保證了,不牛 B 你就當(dāng)我在吹牛 B 吧 ?。

          另一篇推介的 Linux 實(shí)用文章:?<手摸手教你 CentOS 入門必備基礎(chǔ)知識(shí)(建議收藏)>?

          最后



          如果你覺得這篇內(nèi)容對(duì)你挺有啟發(fā),我想邀請(qǐng)你幫我三個(gè)小忙:

          1. 點(diǎn)個(gè)「在看」,讓更多的人也能看到這篇內(nèi)容(喜歡不點(diǎn)在看,都是耍流氓 -_-)

          2. 歡迎加我微信「qianyu443033099」拉你進(jìn)技術(shù)群,長(zhǎng)期交流學(xué)習(xí)...

          3. 關(guān)注公眾號(hào)「前端下午茶」,持續(xù)為你推送精選好文,也可以加我為好友,隨時(shí)聊騷。

          點(diǎn)個(gè)在看支持我吧,轉(zhuǎn)發(fā)就更好了



          瀏覽 63
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美 日韩 一 | 欧美性受XXXX黑人XYX性爽公 | 18成人网站在线观看 | 草草视频在线观看 | 欧美黄色录像 |