前端必會的Linux知識[#]

概要

1. 認識Linux

2. 安裝Linux環境

3. 認識Linux環境

4. 前端開發必需要懂的知識

5. 安裝linux開發環境

6. 關於某些網站沒法訪問的解決方法

1. 認識Linux

linux是什麼

  • linux是一個操做系統,它不是一個成型的東西,它的本質是內核「kernel」
    • kernel主要是用c寫的,裏面有各類算法和處理流程。
    • 內核對性能要求很是高,由於底層的東西須要向上提供各類api,或許一個api每秒鐘會執行成千上萬次,操做很是頻繁,須要很高的效率。
  • 咱們平時所說的Ubuntu、CentOS那些是指發行版,linux內核只是擁有最基本的功能,它自己有六大系統,這六大系統就組成了操做系統核心的功能。
  • 可是那些發行版,除了這六大系統所擁有的功能之外,還加上了不少外殼性的東西,還有各類軟件,各類服務等等,這樣才構成了完整的linux。

UNIX、linux與windows的區別

  • UNIX操做系統是一個至關古老的系統,它奠基了現代操做系統的基礎,它同時也制定了不少業界的規範。
    • mac是unix內核,是BSD內核,linux是另一種內核,BSD內核是有版權的。
    • unix它的lience(許可證)和linux定義的是不同的,開源軟件的lience各有特色,純粹的unix的版權是歸屬於貝爾實驗室的,貝爾實驗室是AT&T旗下的(美國的一個大通信公司)。
  • windows通常是用在客戶端的桌面上,可是也偶爾被用作服務器,用作服務器的windows也是有圖形界面的,但其實有圖形界面的服務器是對系統資源的浪費。
  • linux通常是用在服務器上,基本不使用圖形界面,由於服務器它對性能要求很高。linux的內核是從unix上繼承下來的,它主張以簡爲美。windows則比較複雜。

經常使用的linux發行版

  • 經常使用:Ubuntu(一年發行2次[四、10]lts)、CentOS(紅帽的社區維護版)、Fedora
  • 歐美經常使用:Deblan
  • 爲安全方面開發的:Kali(有不少網絡安全工具和黑客工具)
  • 服務器市場佔有比例較大:CentOS、Red Hat(紅帽[商業])
  • 桌面系統市場佔有比例較大:Ubuntu、Deblan、Fedora


2. 安裝Linux環境

注意事項

  1. 推薦安裝CentOS,有DVD和Minimal(迷你版),推薦安裝迷你版。
  2. 安裝CentOS須要依賴虛擬機,推薦使用VMware,在下載下面選擇「Workstation Pro」,而後找一個註冊碼註冊就能夠了,可是注意不要升級,不然會失效。
  3. 虛擬機環境:
       a. 內存: 若是帶圖形界面,推薦內存至少2g,若是是迷你版的CentOS,由於他只有500M,推薦內存至少1g。
       b. 網絡適配器: 配置網絡的時候不要使用NAT,不然網絡環境就會很是複雜了,它會給你自動配置一個虛擬的局域網來,處理事情的時候會產生一些干擾。推薦使用橋接模式。但使用橋接模式,必需要保證網絡的暢通,一旦把網絡斷開,橋接就會失效
       c. 專門的網絡管理: 專門的網絡管理在編輯中的虛擬網絡編輯器中,它默認配了兩個虛擬網絡除非是但願配置一個和外部隔絕的一個虛擬網
  4. 下載centos鏡像推薦:
    通常若是使用國外的連接地址下載鏡像會比較慢,這裏推薦使用國內的下載鏡像的地址:16三、jdcloud、aliyun、huaweicloud
  5. 比較老的機子可能不支持虛擬化:
    進入BIOS(主板),進入System Configuration,找到Virtualization Technology,選擇Enabled

新建虛擬機嚮導(Vmare14)

選擇自定義高級html

  1. 硬件兼容性 -> 選擇最新版
  2. 安裝程序光盤映像文件 -> 選擇鏡像文件(固定路徑)
    • 示例:「D:\vm\system」
  3. 虛擬機名稱 -> 虛擬機在左邊顯示的名稱
  4. 位置 -> 這是一個大坑,這裏的位置是指,在安裝好了虛擬機以後,要在硬盤上生成一個很是大的文件,實際上這個文件是一個虛擬磁盤,至少要有10g的富餘空間。通常不佔用系統空間(C盤)。
    • 示例:「D:\vm\CentOS7」
  5. 處理器數量 -> 1
  6. 每一個處理器的內核數量 -> 1-2
    • 處理器就是cpu,個人計算機只有一個處理器(cpu),6個內核。
    • 這裏的處理器數量和內核數量並非越多越好,通常這裏的選擇要小於你的計算機自己的cpu和內核,它取決於你的計算機。
  7. 此虛擬機的內存 -> 2048MB
  8. 網絡鏈接 -> 橋接
    • 橋接就是直接使用你物理機的地址
  9. 下面的控制器、虛擬磁盤那些都選默認
  10. 建立一個新的虛擬盤
  11. 最大磁盤大小 -> 默認不動
    • 下面當即分配全部磁盤空間不勾選,不然它會直接生成20G的大文件,通常若是不勾選的話,它是達不到20G的。
  12. 選擇將虛擬磁盤存儲爲單個文件
    • 分拆的意義在於把虛擬磁盤分紅若干個,這樣拷貝的時候速度會快一些,這是由底層的IO設備的特色來決定的,但通常建立了虛擬機以後,不會去動他,存儲爲單個文件,性能反而會高一些。
  13. 最後它就開始建立磁盤文件了。
    • 你要去選擇一下磁盤文件存放的位置
    • 示例:「D:\vm\CentOS7\CentOS7.vmdk」
  14. 點擊完成
    配置centos7詳解
  15. 選擇語言
  16. 等一段時間,本地化是自動讀取系統配置自動配置的
  17. 系統配置
    • 安裝位置 -> 選擇安裝位置(點一下)以後其餘默認,點擊完成
    • KDUMP -> 取消勾選啓用(禁用),它是供你調試用的,除非你要用C語言去作linux的開發,不然它開啓的話,意義不大,反而會影響它自己的運行性能,它會把內存的數據轉儲到你的磁盤上
    • 網絡和主機名 -> 點擊去以後,將以太網(我這裏名稱是ens33)打開,稍等一會,讓它獲取ip地址,ip地址獲取成功,說明網絡配置成功
    • SECURITYPOLICY -> 它是安全策略的配置,默認不動,不然後面使用會很是麻煩
  18. 設置root密碼(超級管理員),若是對安全的要求不高(本身的虛擬機),能夠設置弱密碼,設置弱密碼要點擊兩次完成才能設置成功,在公網上linux密碼必須至關複雜,不然很容易被攻破。在生產環境下,避免使用root。
  19. 建立用戶,這裏的全名是給系統用的(僅僅只是展現),這裏的用戶名是給用戶登錄用的。密碼的設置和上面相同。
  20. 接下來等待它安裝完成就完成了 。


3. 認識Linux環境

linux下的目錄是作什麼用的

  • linux和unix的目錄,它是一種文件樹的結構,linux屬於根目錄文件系統,但windows屬於多根目錄文件系統
  • 咱們在bin目錄下爲何不能找到ls、cd等的那些命令?這裏有一個概念,咱們如今用的終端,它叫「shell(貝殼)」,那些經常使用的ls、cd等那些是shell自己被內置的命令,而在bin底下是那些不能被內置的命令(由於它們個頭比較大或者使用頻率比較低)
  • etc是最重要的目錄,它專門用來放置配置文件的。其中以*.conf結尾的都是配置文件
  • /bin
    • 系統有不少放置執⾏檔的⽬錄,但/bin⽐較特殊。由於/bin放置的是在單⼈維護模式下還可以被操做的指令。
    • 在/bin底下的指令能夠被root與⼀般賬號所使⽤,主要有:
      cat、chmod(修改權限)、chown、date、mv、mkdir、cp, bash等等常⽤的指令。
  • /boot(是核心文件,不能碰)
    • 主要放置開機會使⽤到的檔案,包括Linux核⼼檔案以及開機選單與開機所需設定檔等等。
    • Linux kernel常⽤的檔名爲:vmlinuz,若是使⽤的是grub這個開機管理程式,則還會存在/boot/grub/這個⽬錄。引導操做系統的菜單。
  • /dev
    • 在Linux系統上,任何裝置與周邊設備都是以檔案的型態存在於這個⽬錄當中。
    • 只要經過存取這個⽬錄下的某個檔案,就等於存取某個裝置。
    • ⽐較重要的檔案有/dev/null,/dev/zero, /dev/tty , /dev/lp, / dev/hd, /dev/sd*等等
  • /etc
    • 系統主要的設定檔⼏乎都放置在這個⽬錄內,例如⼈員的賬號密碼檔、各類服務的啓始檔等等。
    • ⼀般來講,這個⽬錄下的各檔案屬性是可讓⼀般使⽤者查閱的,可是隻有root有權⼒修改。
    • FHS建議不要放置可執⾏檔(binary)在這個⽬錄中。
    • ⽐較重要的檔案有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/等等。
    • 另外,其下重要的⽬錄有:/etc/init.d/:全部服務的預設啓動script都是放在這⾥的,例如要啓動或者關閉iptables的話:/etc/init.d/iptables start、/etc/init.d/、iptables stop/etc/xinetd.d/:這就是所謂的super daemon管理的各項服務的設定檔⽬錄。
    • /etc/X11/:與XWindow有關的各類設定檔都在這⾥,尤爲是xorg.conf或XF86Config這兩個X Server的設定檔。
  • /home(管理員的home目錄是root)
    • 這是系統預設的使⽤者家⽬錄(home directory)。
    • 在你新增⼀個⼀般使⽤者賬號時,預設的使⽤者家⽬錄都會規範到這⾥來。
    • ⽐較重要的是,家⽬錄有兩種代號,「~」表明當前使⽤者的家⽬錄,⽽「~guest」則表明⽤戶名爲guest的家⽬錄。
  • /lib
    • 系統的函式庫⾮常的多,⽽/lib放置的則是在開機時會⽤到的函式庫,以及在/bin或/sbin底下的指令會呼叫的函式庫⽽已 。
    • 什麼是函式庫呢?妳能夠將他想成是外掛,某些指令必需要有這些外掛纔可以順利完成程式的執⾏之意。
    • 尤爲重要的是/lib/modules/這個⽬錄,由於該⽬錄會放置核⼼相關的模組(驅動程式)。
  • /media
    • media是媒體的英⽂,顧名思義,這個/media底下放置的就是可移除的裝置。 包括軟碟、光碟、 DVD等等裝置都暫時掛載於此。常⻅的檔名有:/media/floppy,/media/cdrom等等。
  • /mnt
    • 若是妳想要暫時掛載某些額外的裝置,⼀般建議妳能夠放置到這個⽬錄中。在早時候,這個⽬錄的⽤途與/media相同啦。只是有了/media以後,這個⽬錄就⽤來暫時掛載⽤了。
  • /opt
    • 這個是給第三⽅協⼒軟體放置的⽬錄。
    • 什麼是第三⽅協⼒軟體啊?舉例來講,KDE這個桌⾯管理系統是⼀個獨⽴的計畫,不過他能夠安裝到Linux系統中,所以KDE的軟體就建議放置到此⽬錄下了。
    • 另外,若是妳想要⾃⾏安裝額外的軟體(⾮本來的distribution提供的),那麼也可以將你的軟體安裝到這⾥來。不過,之前的Linux系統中,咱們仍是習慣放置在/usr/local⽬錄下。
  • /root
    • 系統管理員(root)的家⽬錄。
    • 之因此放在這⾥,是由於若是進⼊單⼈維護模式⽽僅掛載根⽬錄時,該⽬錄就可以擁有root的家⽬錄,因此咱們會但願root的家⽬錄與根⽬錄放置在同⼀個分區中。
    • 忘記密碼centos要進入單用戶模式 => passwd
  • /sbin
    • Linux有⾮常多指令是⽤來設定系統環境的,這些指令只有root纔可以利⽤來設定系統,其餘使⽤者最多隻能⽤來查詢⽽已。
    • 放在/sbin底下的爲開機過程當中所須要的,⾥⾯包括了開機、修復、還原系統所須要的指令。
    • ⾄於某些伺服器軟體程式,⼀般則放置到/usr/sbin/當中。
    • ⾄於本機⾃⾏安裝的軟體所產⽣的系統執⾏檔(system binary),則放置到/usr/local/sbin/當中了。常⻅的指令包括: fdisk, fsck, ifconfig, init, mkfs等等。
  • srv
    • srv能夠視爲service的縮寫,是⼀些⽹路服務啓動以後,這些服務所須要取⽤的資料⽬錄。
    • 常⻅的服務例如WWW, FTP等等。舉例來講, WWW伺服器須要的⽹⻚資料就能夠放置在/srv/www/⾥⾯。
    • 呵呵,看來平時咱們編寫的代碼應該放到這⾥了。
  • /tmp
    • 這是讓⼀般使⽤者或者是正在執⾏的程序暫時放置檔案的地⽅。這個⽬錄是任何⼈都可以存取的,因此你須要按期的清理⼀下。固然,重要資料不可放置在此⽬錄啊。由於FHS甚⾄建議在開機時,應該要將/tmp下的資料都刪除。

在windows下終端的類型

用來鏈接遠程的服務器前端

  • putty(開源的但不推薦)
  • xshell
    • 它是一個商業軟件,在英文官網上下載
    • 它不少年不升級(6.0),但並不落後
  • Cmdder(推薦)
    • 它是一個加強型的終端,放置了大量的linux命令
  • Terminal
    • 微軟發佈的一個終端


4. 前端開發必需要懂的知識

網絡端口

  • 什麼是端口
    • 若是想經過網絡去訪問另一臺電腦,必須得去開一個門,這個門,實際上操做系統上有不少門,它們都有它本身的用途,咱們究竟須要開什麼門,須要在上面編一個號,http這個門是80號門等等,這些門不能亂竄,若是亂竄,就會發生端口衝突。
    • 換句話說,一個端口,在同一個時間內,只能被一個進程去使用。
  • 默認端口
    • http默認端口80
    • https默認端口 443
    • http 代理端口 8080

什麼是服務

  • 什麼是服務
    • 服務是一種應用程序類型,它在後臺運行。服務應用程序一般能夠在本地和經過網絡爲用戶提供一些功能,例如客戶端/服務器應用程序、Web服務器、數據庫服務器以及其餘基於服務器的應用程序。
  • 在linux下查看服務
    • systemctl => 按ctrl+c退出
    • systemctl status nginx => 查看nginx服務狀態
    • systemctl start nginx => 開啓服務
    • systemctl stop nginx => 中止服務
    • systemctl restart nginx => 重啓服務
    • nginx -s reload => 不中止服務,從新讀取一次

什麼是終端

  • 終端(Terminal)也稱終端設備,是計算機網絡中處於網絡最外圍的設備,主要用於用戶信息的輸入以及處理結果的輸出等。
  • 在早期計算機系統中,因爲計算機主機昂貴,所以一個主機(IBM大型計算機)通常會配置多個終端,這些終端自己不具有計算能力,僅僅承擔信息輸入輸出的工做,運算和處理均由主機來完成。
  • 在我的計算機時代,我的計算機能夠運行稱爲終端仿真器的程序來模仿一個終端的工做。

如何使用Cmder鏈接遠程服務器

使用ssh命令
node

  • 示例:ssh root@192.168.0.115
  • 它會有一段提示,你正在登錄全新的服務器,而後告訴咱們服務器的特徵值(服務器指紋),問咱們是否繼續,而後輸入yes才能繼續,它是用來防止有人僞造服務器,套你的口令。
  • 而後輸入密碼,輸入密碼的時候它不回顯,由於安全性問題,別人不知道你的密碼會有多少位。

最簡單的linux命令

  • exit => 登出
    • 須要有安全意識,離開計算機及時退出終端
  • ip addr => 查看IP地址
    • ifconfig比較古老,使用ip組合命令
  • pwd => 查看當前的目錄

如何遠程傳輸文件到linux服務器

在cmder中使用scp命令linux

  1. 在windows環境下,進入某個盤符,找到某個文件,示例:
    e: => dir => mkdir test => cd test => echo 文件中的內容>a.txt => type a.txt
  2. 在linux環境下查看當前目錄,示例:
    pwd
  3. 到windows環境下,在windows的當前目錄下,把windows下找到的文件用scp傳到linux當前目錄下,示例:
    scp ./a.txt root@192.168.0.115:/root
    • 在這裏輸完ip以後要先加上冒號,再加/,後面帶linux下的路徑
  4. 輸入密碼,傳輸成功
  5. 到linux環境下,查看是否傳輸成功,示例:
    ls => cat a.txt

如何對linux中的網卡進行設置

  1. 先檢查虛擬硬件
    • 虛擬機配置必須橋接, 物理機(本身的電腦)網卡是否被激活
    • 若是安裝的時候沒有激活,就要在etc下找網卡的配置文件
  2. 先進入etc目錄。 cd etc
  3. 網卡的配置文件在sysconfig下面。
    cd sysconfig/network-scripts
  4. ll查看,帶前綴ifcfg,即網卡的配置文件(網卡的名字ens33)
  5. 查看配置文件
    cat ifcfg-ens33
  6. 若是沒有激活ONBOOT會顯示爲no,要用vi改爲yes
    • 輸入指令:vi ifcfg-ens33
    • 默認只讀狀態,敲一下i變成編輯狀態
    • 按一下esc最下角INSERT不見了
    • 輸入:wq保存並退出
      • w指write(寫[保存])
      • q指quit(退出)
      • 不能使用qw,必須先保存再退出
  7. 開啓網卡 ifup ens33
  8. 關閉網卡 ifdown ens33

vi命令(文本編輯器[行])

  • vi 文件名 => 進入某個文件的編輯
  • :q => 退出
  • :q! => 強行退出(不保存)

nano的安裝和使用

安裝nginx

  • yum是linux的軟件庫,使用yum安裝nano,示例:
    yum install nano
  • 繼續(y)
  • 確認指紋密鑰(y)
  • 輸入nano啓動文本編輯器

使用git

  • ^ 表示ctrl
  • ctrl + o 寫入
  • ctrl + x 退出

linux中的其餘命令

  • 解壓縮(*.tar.bz)
    • tar -xvvf *.tar.bz
    • -xvvf => 解壓縮.bz格式的參數,不用的壓縮包格式,參數不同,*.gz格式的參數則是-xzzf


5. 安裝linux開發環境

安裝node

不能直接使用yum安裝,要去下載安裝nodejs的源github

  1. 添加官方的yum源
    curl -sL https://rpm.nodesource.com/setup_11.x | bash -
  2. 用yum安裝nodejs(y表示一路肯定) yum install -y nodejs
  3. 查看安裝的版本 node -v

安裝xampp集成開發環境

待續算法



6. 關於某些網站沒法訪問的解決方法

在瀏覽器⾥執⾏下列代碼shell

var hexCharCodeStr =
'68747470733a2f2f737068617264322e6769746875622e696f2f6766772f'
var rawStr = hexCharCodeStr.trim();
var len = rawStr.length;
var curCharCode;
var resultStr = [];
for(var i = 0; i < len;i = i + 2) {
    curCharCode = parseInt(rawStr.substr(i, 2), 16);
    resultStr.push(String.fromCharCode(curCharCode));
}
console.log( resultStr.join("") );
複製代碼

~End~數據庫

相關文章
相關標籤/搜索