先後端分離以後前端對服務器的接觸愈來愈多,所以會 linux 也成了前端的必備技能之一,可是要學好 linux 並非一件容易的事情須要長時間的積累才行。然而公司並不會等你掌握了 linux 以後纔給你分配相關的任務。因此請收下這篇文章,即便不會 linux 也可以完成公司大部分的要求html
服務端不能像本地計算機同樣天天關機,他須要一直開機以保證無論用戶任什麼時候候訪問都能提供服務,所以服務器對穩定性的要求特別高。而 linux 正是這方面的佼佼者,linux 是有圖形化界面的。可是越少的功能就越能保證系統的穩定性,因此不多有給服務器安裝 UI 的公司,這樣作提升穩定性的同時還給系統節省了大量的資源可謂是一舉兩得。同時也缺點突出,致使 linux 使用的門楷高的可怕,能夠說是爲專業人員使用的。前端
爲了讓沒有太多 linux 基礎的前端同窗可以很快速的使用 linux 我特意刷了一天的 linux 基礎視頻。總結了日常使用的特別高的命令來詳細的講解其用法,即便記不住也不要緊,收藏一下文章。找到相應的命令直接複製進命令行中就能夠執行。node
// 大部分命令的格式以下,中括號中的內容爲非必填內容
命令 [-選項] [參數]
// 舉例
ls -a web/
複製代碼
linux 有 3000 ~ 4000 多命令。大部分基本上都能套用上面的命令格式,而經常使用的 linux 命令我想了一下主要是這些:代碼壓縮、文件的增刪改查、軟件的下載、軟件的啓動關閉、基本的權限瞭解、linux 的鏈接、文件的上傳下載、環境變量的配置linux
提供一個軟件 Xshell,下載的話百度一搜一堆,就不提供下載連接了。輸入相應的 linux 的 IP 地址和密碼就能夠登陸了,須要注意的是默認端口是 22,要是沒給你提供端口號就寫 22 就能夠了。git
mac 用戶的終端自己支持一個 ssh 命令。能夠直接經過 ssh 登陸對應的服務器,格式以下:web
ssh -t <帳號>@<ip 地址> -p <端口號>
// 舉例
ssh -t root@192.168.1.1 -p 22
複製代碼
回車以後就會然你輸入密碼,須要注意輸入密碼的時候是不會顯示 * 號的。不會有任何變化,你只須要輸入密碼而後回車就能夠了。如此就能夠進入 linux 了。shell
linux 上的命令太多了,因此要學會使用查看幫助文檔的命令。npm
man <命令>
man ls
複製代碼
上來就會用簡短的話介紹這個命令的做用,其次就是這個命令的格式。而後下面會有特別全的選項介紹,遺憾的是都是英文的。但我建議你仔細讀一下,不要被英語嚇到。由於讀這種資料不須要用到口語也不須要學習語法,僅僅是詞彙量。vim
// 建立文件夾
mkdir <文件夾的名字>
// 舉例
mkdir web
// 建立文件
touch <文件名字>
// 舉例
touch index.html
複製代碼
文件和文件夾的新增挺簡單的,套用就能夠了。要想一次添加多個文件/文件夾,參數之間用空格間隔開來就能夠了windows
// 移動文件 mv -> move
mv <文件> <移動的路徑>
複製代碼
這裏有幾個小技巧,
mv index.html pay.html
// 拷貝文件 cp -> copy
cp <文件> <移動的路徑>
複製代碼
跟 mv 用法相同
// 刪除 rm -> remove
rm -rf <文件名字 | 目錄名字>
// 舉例()
rm -rf index.html
複製代碼
這個命令須要重點講解一下,由於這個命令可能致使系統崩潰,喜歡刷掘金的朋友應該常常會看到刪庫跑路的文章(rm -rf /*
這個命令就是刪掉根目錄下全部的文件)。我就對公司的測試環境進行過刪庫(rm -rf *),好在公司配有運維,給建立了本身的帳號,要否則我可就成罪人了。
這裏須要注意在 windows 中刪除的文件會給你放入垃圾桶中。可是 linux 中可不會刪除了就刪除了。從代碼中能夠看到我加了倆個選項,刪除的選項不是必填的可是大部分的場景都是刪除不少文件和文件夾,因此上面的選項是很是經常使用的。來看看官方是怎麼解釋這裏個選項的:
// * 表明全部的內容
rm -rf web/*
複製代碼
上面列舉的是一個最多見的刪除命令:刪除某個文件下面的全部內容
linux 支持查看的命令特別多(less more cat),可是修改一般都會用 vim。衆所周知你不可能看不到文件內容就修改內容,因此我推薦你能夠用 vim 進行查看和修改命令。
vim 分爲三種狀態,命令、命令輸入和編輯狀態。理解這三種狀態是使用 vim 的基礎。一但瞭解了這三種狀態 vim 就會讓你順風順水。首先讓咱們用 vim 打開一個文件
vim index.html
複製代碼
經常使用的退出 vim 編輯器的四種操做
在命令狀態下輸入字母 i 就可以進入編輯狀態。最明顯的特徵就是左下角有個 插入的標識(英文 insert這個時候就可以像正常編輯器編輯內容同樣編輯了。輸入 esc 鍵就可以退出編輯狀態回到命令狀態了
總結
在命令狀態下輸入 i 可以進入編輯狀態,輸入 shift + : 可以進入命令輸入狀態 在編輯狀態或者是命令輸入狀態下,輸入 esc 鍵就可以回到命令輸入狀態
可不要小看了目錄操做,linux 的目錄跟 windows 的目錄是有區別的,windows 分爲多個盤,例如 C,D,E... 。而 linux 是沒有這個概念的,linux 一切目錄都是從根目錄( / )衍生而來的。因此瞭解 linux 的一級目錄很重要:
上面我提到了用戶的家目錄,他主要是用來區分多用戶的,好比用戶 a 和用戶 b。他們會共享一部份內容,同時也會有本身的東西,本身的東西都會放入本身的家目錄下面。root 用戶的家目錄是 /root
, 其餘用戶的家目錄是 /home/<用戶名>
。
對 linux 的目錄有了必定的理解了,接下來就是幾種跳轉方式了:
cd ..
cd web
cd ~
cd /home/a
有時候你跳轉多了忘記本身在哪裏了,想看一下本身所在的目錄就能夠用這個命令
// 查看當前目錄
pwd
複製代碼
想知道當前目錄下有什麼內容:
ll
ls
解壓和壓縮文件須要先了解一下經常使用的壓縮類型,在 windows 中常見的壓縮格式是 rar,zip。而 linux 中常見的是 gzip, zip。其中 zip 格式是在 windows 和 linux 中都支持的,由於他是特別古老的一種壓縮格式了。一般你見到的各類源碼包都是 .tar.gz 的格式。這種都是先經過 tar 打包,而後在經過 gzip 壓縮生成的。由於 gzip 沒法壓縮目錄,因此他須要用 tar 先打包一下。因此看起來是雙後綴的格式
經常使用的是 tar 命令。他的語法爲: tar [-選項] [文件名] [打包目錄]
它有一下幾個選項:
// 打包壓縮
tar -zcvf web.tar.gz web
// 解壓
tar -zxvf web.tar.gz
複製代碼
大部分狀況都是文件從本地客戶端轉移到服務器上,建議是使用 zip 壓縮格式。由於他是 windows 和 linux 都支持的一種壓縮格式。linux 上的文件壓縮以後上傳到 windows 上解壓還好說,若是你將 windows 上的 rar 文件傳到 linux 上就麻煩了,下載對應的解壓軟件很費勁的。那麼如何解壓縮 zip 文件呢?很簡單,命令以下:
// 壓縮
zip web.zip web
// 解壓
unzip web.zip
複製代碼
在 windows 下只須要在菜單欄點一下右鍵而後選擇任務管理器,從任務管理器列表中找到對應的進程選中點關閉進程便可。很顯然 linux 是不可能這麼方便的,須要經過幾部來搞定。
ps -le
記住要殺死的進程 pidkill pid
, 強制殺死進程 kill -9 pid
這裏須要注意的一個地方就是你要殺死的任務可能有多個 pid。這種狀況一般都是一個主進程幾個子進程。要想知道哪一個是主進程,哪一個是子進程可使用這個命令 pstree -g
。他會以樹的形式展現父子進程
有的時候你明確知道所運行的任務使用了哪一個端口號,你想經過端口號來殺死進程。因此先查詢出來佔用這個端口號程序的 pid 便可。
lsof -i:端口號
複製代碼
有時候你下載了某個軟件,可是隻能在下載的目錄使用這個命令,好比 node,git 等等。這是由於你沒有將他配置成爲環境變量,有點相似 js 中的全局變量跟局部變量。
linux 中配置環境變量有不少種方式,例如配置只對當前用戶有效的環境變量、配置臨時環境變量、配置全部用戶都能用的環境變量。
配置只針對本身的環境變量
在本身的家目錄下有一個 .bash_profile 的文件。使用 vim 編輯便可。(在 linux 中以點開頭的文件至關於 windows 下面的隱藏文件,所以 ls \ ll 是查詢不到的,須要用 ll -a
才能查詢到)
# Nodejs
export NODEJS_HOME=/usr/local/lib/nodejs/node-v10.15.0-linux-x64/bin
export PATH=$NODEJS_HOME:$PATH
複製代碼
你能夠採用上面的代碼來配置你的環境變量,第一行寫是什麼軟件的註釋,第二行建立一個指向該軟件運行命令的變量第三行將其中的變量替換成第二行寫的變量便可。
配置針對全局用戶的環境變量
跟配置針對本身的環境變量相同,只是配置文件的位置不一樣。 vim etc/profile
。
這裏須要注意寫完了還不行,須要從新加載一下配置文件才能生效,
sourch /etc/profile
// .bash_profile 也同樣
複製代碼
若是把 js 看作是一個系統,給這個系統添加軟件最簡單的方式是用 npm 。一樣的 linux 也有相似於 npm 的 yum。用 yum 安裝軟件跟 npm 同樣簡單。若是你不知道你要安裝的軟件的包名最簡單的辦法就是百度,舉個安裝 node 的例子。
搜索:yum 安裝 node 海量的答案等着你。不過結果可能沒有那麼滿意,由於 yum 並不可能支持全部的安裝包,有的可能沒有 yum 源須要添加 yum 源。有的多是經過 wget 讓你下載二進制壓縮格式。可是你須要知道有 yum 這個東西
在本身的電腦上下載東西都是經過瀏覽器找到下載文件單擊下載就能夠了,linux 上要想下載文件就須要經過 wget 了。基本使用命令是:
wget <下載連接>
複製代碼
windows 上能夠下載一些支持 ftp 協議的軟件進行下載,像我用的就是 xftp 跟前文介紹的 xshell 是同一家公司出的界面簡潔功能強大
mac 上可使用 ForkLift
這種軟件一般都會分爲倆欄,左邊一欄是本身本地的目錄,右邊一欄是服務器的目錄。上傳就是本身本地的文件拖拽到服務器上,下載就是服務器的文件拖拽到本身本地。使用起來是 so easy 的。
有的命令會執行很長時間,像下載文件,解壓大型文件。等着他下載或者是解壓完成是很是浪費時間的,固然你也能夠啓動多個命令窗口來執行不一樣的任務。可是當你關閉命令窗口的時候這個命令就會中斷。因此必定要學會如何讓程序後臺執行。
在運行的命令後面添加 &。舉個例子
tar -xzf web.tar.gz &
複製代碼
須要注意的是我將選項 v 給去掉了由於雖然拿到後臺運行了可是輸出信息仍是會打印到前臺來。若是想不打印能夠將內容指定到一個文件中例如:
tar -xzvf web.tar.gz > out.file &
複製代碼
想知道這個命令是否執行完只須要用 jobs
fg 1
1 是 jobs 中括號中的數值。有的時候咱們也不知道這個命令執行多久,須要中途將他拿到後臺執行能夠按 CTRL + Z (MAC 上按 command + z) 。這個並不會在後臺執行,而是掛起狀態要想讓他在後臺執行須要用
bg 1
其中的 1 跟
fg 1
同樣。固然了這種用法你關閉了終端他就中止了,徹底能夠多開幾個標籤頁執行命令。
使用這個命令即便終端關閉了也不會影響到程序的執行
nohup tar -xzvf web.tar.gz > out.file &
複製代碼
linux 上的命令真的太多了。仔細斟酌以後以爲上面的命令的頻率是最高的。爲了給他家提供好的交流環境我特意創建了交流羣,你有更好的命令歡迎加我微信(微信號:xu645352780 )討論,文章將會保持一致更新哦。