Linux

第一章 Linux開山篇前端

  1.1 linux入門java

    

    

  1.2 Linux學習方向node

    

  1.3 Linux的應用領域mysql

    1.3.1 我的桌面應用領域linux

    1.3.2 服務器應用領域android

    1.3.3 嵌入式應用領域程序員

  1.4 Linux高手進階之路sql

    

 

第二章 Linux基礎篇 Linux入門shell

  2.1 Linux介紹數據庫

    1)Linux是一款操做系統,免費、開源,安全,高效,穩定,處理高併發很是強悍,如今不少的企業級的項目部署到Linux/Unix服務器運行

    2)Linux創始人:林納斯

    3)Linux的吉祥物:企鵝 tux

    4)Linux流行發行版

      

    5)目前主要的操做系統有

      windows、android、車載系統、IOS等

  2.2 Linux和Windows比較

      

 

第三章 Linux基礎篇 VM和Linux系統(CentOS)安裝

  3.1 安裝vm和Centos

    基本說明:學習Linux須要一個環境,咱們須要建立一個虛擬機,而後在虛擬機上安裝一個Centos系統來學習。

    1)先安裝virtual machine,vm12

    2)再安裝Linux(CentOS 6.8)

    3)原理示意圖:Windows和VM和Centos的關係說明

      

  3.2 vm軟件和CentOS的安裝軟件

    CentOS下載地址:

      > 網易鏡像:http://mirrors.163.com/centos/6/isos/

      > 搜狐鏡像:http://mirrors.sohu.com/centos/6/isos

    VM的下載地址:

      > 網上一搜一大把

  3.3 VM的安裝步驟

    1)去BIOS裏修改設置開啓虛擬化設備支持

    2)安裝虛擬機軟件(vm12)

  3.4 CentOS安裝的步驟

    1)建立虛擬機(空間)

    2)開始安裝系統(CentOS6.8)

  3.5 CentOS的終端使用和聯網

    1)終端的使用,點擊鼠標右鍵,便可選擇打開終端

    2)配置網絡:點擊右上角的兩個電腦圖標,選擇啓用eth0,便可聯網

  3.6 vmtools安裝

    3.6.1 介紹

      1)能夠直接粘貼命令在windows和centos系統之間

      2)能夠設置windows和centos的共享文件夾

      3)示意圖:

        

    3.6.2 安裝步驟  

      1)進入centos

      2)點擊vm菜單的install vmware tools

      3)centos會出現一個vm的安裝包  

      4)點擊右鍵解壓,獲得一個安裝文件

      5)進入該vm解壓的目錄,該文件在/root/桌面/vmware-tools-distrib/下

      6)安裝 ./vmware-install.pl

      7)所有使用默認設置便可

      8)須要reboot從新啓動便可生效

    3.6.3 使用vmtools來設置windows和linux的共享文件夾

      1)菜單-->vm-->setting,

      2)windows和centos可共享某個目錄

      3)在centos的 /mnt/hgfs/ 下(默認)

 

第四章 基礎篇Linux的目錄結構

  4.1 基本介紹

    linux的文件系統是採用級層式的樹狀目錄結構,在此結構中的最上層是根目「/」,而後在此目錄下再建立其餘的目錄。

    總之:在linux在世界裏,一切皆文件。

  4.2 目錄結構的具體介紹

    具體的目錄結構:

      

      

      

      

  4.3 總結

    1)linux的目錄中有且只有一個根目錄

    2)linux的各個目錄存放的內容是規劃好的,不要亂放文件

    3)linux是以文件的形式管理咱們的設備,所以linux系統,一切皆爲文件。

 

第五章 實操篇 遠程登陸Linux系統

  5.1 爲何要遠程登陸Linux

    5.1.1 示意圖

      

    5.1.2 說明

      1)linux服務器是開發小組共享的

      2)正式上線的項目是運行在公網的

      3)所以程序員須要遠程登陸到centos進行項目管理或者開發

      4)畫出簡單的網絡拓撲示意圖

      5)遠程登陸客戶端有Xshell5,Xftp5,

  5.2 遠程登陸Linux-Xshell5

    注:Xshell是目前最好的遠程登陸到Linux操做的軟件,流暢的速度且完美解決了中文亂碼問題,是目前程序員首選的軟件。

    Xshell是一個強大的安全終端模擬軟件,它支持SSH1,SSH2,以及Microsoft Windows平臺的telnet協議

    Xshell能夠在Wndows界面下來訪問遠端不一樣系統下的服務器,從而比較好的達到遠程控制終端的目的。

 

第六章 實操篇 vi和vim編輯器

  6.1 vi和vim的基本介紹

    全部的Linux系統都會內建vi文本編輯器

    vim具備程序編輯能力,能夠看作是vi的加強版本。能夠主動的以字體顏色辨別語法的正確性,方便程序設計。

  6.2 vi和vim的三種常見模式

    6.2.1 正常模式

      在正常模式下,咱們使用快捷鍵

      以vim打開一個檔案就直接進入通常模式。在此模式中,可使用【上下左右】按鍵來移動光標,可使用【刪除字符】或【刪除整行】來處理檔案內容,也可使用【複製粘貼】來處理你的文件數據

    6.2.2 插入模式/編輯模式

      在此模式下,程序員能夠輸入內容

      按下i,I,o,O,a,A,r,R等任何一個字母以後纔會進入編輯模式,通常來講按i便可

    6.2.3 命令行模式

      在此模式中,能夠提供相關指令,完成讀取、存盤、替換、離開vim、顯示行號等動做

  6.5 快捷鍵的使用案例

    1)拷貝當前行yy,拷貝當前行向下的5行 5yy,並粘貼(p)

    2)刪除當前行dd,刪除當前行向下的5行 5dd

    3)在文件中查找某個單詞

    4)設置文件行號,取消文件行號【命令行下 :set nu和 :set nonu】

    5)編輯/etc/profile文件,使用快捷鍵到底文檔的最末行【G】和最首行【gg】,注意這些都是在正常模式下執行的。

    6)在一個文件中輸入「hello」,而後又撤銷這個動做,在正常模式下輸入u

  6.6 vim和vi的快捷鍵鍵盤一覽圖

    

 

第七章 實操篇 開機、重啓和用戶登陸註銷

  7.1 關機&重啓命令

    7.1.1 基本介紹

      shutdown

        shutdown -h now:表示當即關機

        shutdown -h 1:表示一分鐘後關機

        shutdown -r now :當即重啓

      halt 

        直接使用,等效關機

      reboot

        重啓系統

      syn

        把內存的數據同步到磁盤

    7.1.2 注:

      當準備關機或重啓時,都應該先執行syn指令,把內存的數據寫入到磁盤,防止數據丟失。

  7.2 用戶登陸和註銷

    7.2.1 基本介紹

      1)登陸是儘可能少用root帳號登陸,由於它是系統管理員,最大的權限,避免操做失誤。能夠利用普通用戶登陸,登陸後再用「su -用戶名」命令來切換成系統管理員身份

      2)在提示符下輸入logout便可註銷用戶

 

第八章 實操篇 用戶管理

  8.1 基本介紹

    

    說明:1)Linux系統是一個多用戶多任務的操做系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個帳號,而後再以這個帳號進入系統

      2)Linux的用戶須要至少要屬於一個組

  8.2 添加用戶

    8.2.1基本語法

      useradd [選項] 用戶名

    8.2.2 細節說明

      1)當建立用戶成功後,會自動的建立和用戶同名的家目錄

      2)也能夠經過useradd -d 指定目錄,給新建立的用戶指定家目錄

  8.3 給用戶指定或修改密碼

    基本語法

      passwd 用戶名

  8.4 刪除用戶

    8.4.1 基本語法

      userdel 用戶名

  8.5 查詢用戶信息

    8.5.1 基本語法

      id 用戶名

  8.6 切換用戶

    8.6.1 介紹

      在操做Linux中,若是當前用戶的權限不夠,能夠經過su - 指令,切換到高權限用戶

    8.6.2 基本語法

      su - 切換用戶名

    8.6.3 細節說明

      1)從權限高的用戶切換到權限低的用戶,不須要輸入密碼,反之須要。

      2)當須要返回到原來的用戶時,使用exit指令

  8.7 用戶組

    8.7.1 介紹

      相似於角色,系統能夠對有共性的多個用戶進行統一的管理。

    8.7.2 增長組

      groupadd 組名

    8.7.3 刪除組

      指令(基本語法)

      groupdel 組名

  8.8 增長用戶時直接加上組

    8.8.1 指令(基本語法)

      useradd -g 用戶組 用戶名

  8.9 修改用戶的組

    8.9.1 指令(基本語法)

      usermod -g 用戶組 用戶名

 

第九章 實操篇 實用指令

  9.1 指定運行級別

    運行級別說明:

    0:關機

    1:單用戶【找回丟失密碼】

    2:多用戶狀態沒有網絡服務

    3:多用戶狀態有網絡服務

    4:系統未使用保留給用戶

    5:圖形界面

    6:系統重啓

    經常使用運行級別是3和5,要修改默認的運行級別可改文件/etc/inittab的id:5:initdefault:這一行中的數字

  9.2 切換到指定運行級別的指令

    9.2.1基本語法

      init [0123456]

    9.2.2 找回密碼

      開機->在引導時輸入回車鍵->看到一個界面輸入e->看到一個新界面,選中第二行(編輯內核)在輸入e->在這行最後輸入1,再輸入回車鍵

      ->再次輸入b,這時就會進入到單用戶模式,就可使用passwd指定來修改root密碼

  9.3 幫助指令

    9.3.1 介紹

      當咱們對某個指令不熟悉時,咱們可使用Linux提供的幫組指令來了解這個指令的使用方法

    9.3.2 得到幫助信息

      基本語法:man[命令或配置文件]

    9.3.3 help指令

      基本語法:help 命令

  9.4 文件目錄類

    9.4.1 pwd指令

      基本語法:pwd

    9.4.2  ls指令

      基本語法:ls 【選項】【目錄或是文件】

      經常使用選項:-a:顯示當前目錄全部文件和目錄,包括隱藏的。

        -l:以列表的方式顯示信息

    9.4.3 cd指令

      基本指令:cd [參數]

      經常使用參數:絕對路徑和相對路徑

    9.4.4 mkdir指令

      mkdir指令用於建立目錄

      基本語法:mkdir【選項】要建立的目錄

      經常使用選項:-p:建立多級目錄

    9.4.5 rmdir指令

      介紹:rmdir指令刪除空目錄

      基本語法:rmdir [選項] 要刪除的空目錄

      使用細節:rmdir刪除的是空目錄,若是目錄下有內容時沒法刪除

      若是須要刪除非空目錄,須要使用 rm -rf 要刪除的目錄

    9.4.6 touch指令

      touch指令建立空文件

      基本語法:touch 文件名稱

    9.4.7 cp指令

      介紹:cp指令拷貝文件到指定目錄

      基本語法:cp【選項】 source dest

      經常使用選項:-r:遞歸複製整個文件夾

    9.4.8 rm指令

      介紹:rm指令移除【刪除】文件或目錄

      基本語法:rm [選項] 要刪除的文件或目錄

      經常使用選項:-r:遞歸刪除整個文件夾

          -f:強制刪除不提示

    9.4.9 mv指令

      介紹:mv移動文件與目錄或重命名

      基本語法:mv 老名字 舊名字

        mv 要移動的文件 移動的位置

    9.4.10 cat指令

      介紹:cat查看文件內容,是以只讀的方式打開

      基本語法:cat [選項] 要查看的文件

      經常使用選項:-n:顯示行號

      使用細節:cat只能瀏覽文件,而不能修改文件,爲了瀏覽方便,通常會帶上管道命令 | more

        cat 文件名 | more【分頁瀏覽】 

    9.4.11 more 指令

      介紹:more指令是一個基於VI編輯器的文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容。more指令中內置了若干快捷鍵

      基本語法:more 要查看的文件

      

    9.4.12 less指令

      介紹:less指令用來分屏查看文件內容,它的功能與more指令相似,但比more指令更強大,支持各類顯示終端。less指令在顯示文件內容時,並非一次將整個文件加載以後才顯示,而是根據顯示須要要加載的內容。

      基本語法:less 要查看的文件

      

    9.4.13 >指令和>>指令

      介紹:> 輸出重定向:會將原來的文件內容覆蓋

        >> 追加:不會覆蓋原來的文件內容,而是追加到文件的尾部。

      基本語法:1)ls -l > 文件(列表的內容寫入文件中,若該文件不存在,則建立)

        2)ls -al >> 文件(列表的內容追加到文件的尾部)

        3)cat 文件1 > 文件2(將文件1的內容覆蓋到文件2)

        4)echo "內容" >> 文件

    9.4.14 echo指令

      介紹:echo輸出內容到控制檯

      基本語法:echo 【選項】【輸出內容】

    9.4.15 head指令

      介紹:head用於顯示文件開頭部份內容,默認狀況下head指令顯示文件的前10行內容

      基本語法:head 文件(默認查看文件頭10行內容)

        head -n 5 文件(查看文件頭5行內容)

    9.4.16 tail指令

      tail用於輸出文件中尾部的內容,默認狀況下tail指令顯示文件的後10行內容

      基本語法:1)tail 文件

        2)tail -n 5 文件

        3)tail -f 文件(實時追蹤該文檔的全部更新)

    9.4.17 In指令

      介紹:軟連接也叫符號連接,相似於快捷方式

      基本語法:in -s [原文件或目錄] [軟連接名](給原文件建立一個軟連接)

    9.4.18 history指令

      介紹:查看已經執行過的歷史命令,也能夠執行歷史指令

      基本語法:history

  9.5 時間日期類

    9.5.1 date指令-顯示當前日期

      基本語法:1)date(顯示當前時間)

        2)date+%Y(顯示當前年份)

        3)date+%m(顯示當前月份)

        4)date+%d(顯示當前天分)

        5)date"+%Y-%m-%d%H:%M:%S"

    9.5.2 date指令-設置日期

      基本語法:date -s 字符串時間

    9.5.3 cal指令

      介紹:查看日曆指令

      基本語法:cal [選項]

  9.6 搜索查找類

    9.6.1 find指令

      介紹:find指令將從指定目錄向下遞歸地遍歷其各個子目錄,將知足條件的文件或者目錄顯示在終端

      基本語法:find [搜索範圍] [選項]

      選項說明:

        

    9.6.2 locate指令

      介紹:locate指令能夠快速定位文件路徑。locate指令利用事先創建的系統中全部文件名稱及路徑的locate數據庫實現快速定位給定的文件。Locate指令無需遍歷整個文件系統,查詢速度快。

        爲了保證查詢結果的準確度,管理員必須按期更新locate時刻。

      基本語法:locate 搜索文件

      特別說明:因爲locate指令基於數據庫查詢,因此第一次運行前,必須使用updatedb指令建立locate數據庫

    9.6.3 grep指令和管道符號 |

      grep過濾查找,管道符「|」,表示將前一個命令的處理結果輸出傳遞給後面的命令處理

      基本語法:grep [選項] 查找文件 源文件

      經常使用選項:

        

  9.7 壓縮和解壓類

    9.7.1 gzip/gunzip指令

      gzip用於壓縮文件,gunzip用於解壓

      基本語法:gzip 文件(只能將文件壓縮成*.gz文件)

        gunzip 文件.gz(解壓縮文件命令)

      細節:當咱們使用gzip對文件進行壓縮後,不會保留原來的文件

    9.7.2 zip/unzip指令

      zip用於壓縮文件,unzip用於解壓

      基本語法:zip 【選項】XXX.zip 將要壓縮的內容(壓縮文件或目錄命令)

        unzip 【選項】XXX.zip(解壓縮文件)

      zip經常使用選項:

        -r:遞歸壓縮,即壓縮目錄

      unzip經常使用選項:

        -d<目錄>:指定解壓後文件的存放目錄

    9.7.3 tar指令  

      tar指令是打包的意思,最後打包的文件是.tar.gz的文件

      基本語法:tar [選項] XXX.tar.gz 打包的內容

      選項說明:

        

      細節:指定解壓到的那個目錄,事先要存在才能解壓,不然會報錯

 

第十章 實操篇 組管理和權限管理

  10.1 Linux組基本介紹

    在linux中的每一個用戶必須屬於一個組,不能獨立於組外。在Linux中每一個文件有全部者、所在組、其餘組的概念。

  10.2 文件/目錄 全部者

    通常爲文件的建立者,誰建立了該文件,就天然的成爲了該文件的全部者。

    10.2.1 查看文件的全部者

      1)指令:ls -ahl

    10.2.2 修改文件全部者

      1)指令:chown 用戶名 文件名

  10.3 組的建立

    10.3.1 基本指令

      groupadd 組名

  10.4 文件/目錄 所在組

    當某個用戶建立了一個文件後,默認這個文件的所在組就是該用戶所在的組

    10.4.1 查看文件/目錄所在組

      基本指令:ls -ahl

    10.4.2 修改文件所在的組

      基本指令:chgrp 組名 文件名

  10.5 其餘組

    除文件的全部者和所在組的用戶外,系統的其餘用戶都是文件的其餘組

  10.6 改變用戶所在組

    在添加用戶時,能夠指定將該用戶添加到哪一個組中,一樣的用root的管理權限能夠改變某個用戶所在的組

    10.6.1 改變用戶所在的組

      1)usermod -g 組名 用戶名

      2)usermod -d 目錄名 用戶名 改變該用戶登陸的初始目錄

  10.7 權限的基本介紹

    ls -l 中顯示的內容以下:

      

    說明:

    1)第0位肯定文件類型(d,-,l,c,b)

    2)第1-3位肯定全部者(該文件的全部者)擁有該文件的權限。

    3)第4-6位肯定所屬組(用用戶組的)擁有該文件的權限。

    4)第7-9位肯定其餘用戶擁有該文件的權限

  10.8 rwx權限詳解

    10.8.1 rwx做用到文件

      1)【r】表明可讀(read):能夠讀取,查看

      2)【w】表明可寫(write):能夠修改,但不表明能夠刪除該文件,刪除一個文件的前提條件是對該文件所在的目錄有寫的權限,才能刪除該文件

      3)【x】表明可執行(execute):能夠被執行

    10.8.2 rwx 做用到目錄

      1)【r】表明可讀(read):能夠讀取,ls查看目錄內容

      2)【w】表明可寫(write):能夠修改,目錄內建立+刪除+重命名目錄

      3)【x】表明可執行(execute):能夠進入該目錄

  10.9 修改權限-chmod

    10.9.1基本說明

      經過chmod指令,能夠修改文件或者目錄的權限

    10.9.2 第一種方式:+、-、= 變動權限

      u:全部者、g:全部組、o:其餘人、a:全部人

      1)chmod u=rwx,g=rx,o=x 文件目錄名

      2)chmod o+w 文件目錄名

      3)chmod a-x 文件目錄名

    10.9.3 第二種方式:經過數字變動權限

      規則:r=4 w=2 x=1 ,rwx=4+2+1=7

      chmod u=rwx,g=rx,o=x 文件目錄名 至關於chmod 751 文件目錄名

  10.10 修改文件全部者-chown

    10.10.1 基本介紹

      chown newowner file 改變文件的全部者

      chown newowner:newgroup file 改變用戶的全部者和全部組

      -R 若是是目錄,則使其下全部子文件或目錄遞歸生效

  10.11 修改文件所在組-chgrp

    10.11.1 基本介紹

      chgrp newgroup file 改變文件的所在組

 

第十一章 實操篇 crond任務調度

  11.1 原理示意圖

      

      

      crontab進行定時任務的設置。

  11.2 概述

    任務調度:是指系統在某個時間執行的特定的命令或程序

    任務調度分類:1.系統工做:有些重要的工做必須周而復始地執行。

      2. 個別用戶工做:個別用戶可能但願執行某些程序。

  11.3 基本語法

    crontab [選項]

    11.3.1 經常使用選項

      

  11.4 快速入門

    11.4.1 任務要求

      

    11.4.2 步驟以下

      

    11.4.3 參數細節說明

      

      特殊符號說明

      

      特定時間執行任務案例

      

  11.5 crond相關指令:

    1)crontab -r :終止任務調度

    2)crontab -l :列出當前有哪些任務調度

    3)service crond restart [重啓任務調度]

 

第十二章 實操篇 linux磁盤分區、掛載

  12.1 分區基礎知識

    12.1.1分區的方式

      1)mbr分區:1.最多支持四個主分區

        2.系統只能安裝在主分區

        3. 擴展分區要佔一個主分區

        4. MBR最大隻支持2TB,但擁有最好的兼容性

      2)gtp分區:1.支持無限多個分區(但操做系統可能會限制)

        2. 最大支持18EB的大容量(1EB=1024PB,1PB=1024TB)

        3. windows7 64位之後支持gtp

  12.2 Linux分區

    12.2.1 原理介紹

      1)Linux來講不管有幾個分區,分給哪個目錄使用,它歸根結底就只有一個根目錄,一個獨立且惟一的文件結構,Linux中每個分區都是用來組成整個文件系統的一部分

      2)Linux採用了一種叫「載入」的處理方法,它的整個文件系統中包含了一整套的文件和目錄,且將一個分區和一個目錄聯繫起來。這時要載入的一個分區將使它的存儲空間在一個目錄下得到

      3)示意圖

        

    12.2.2 硬盤說明

      1)Linux硬盤分IDE硬盤和SCSI硬盤,目前基本上是SCSI硬盤  

      2)對於IDE硬盤,驅動器標識符爲「hdx~」,其中「hd」代表分區所在設備的類型,這裏指IDE硬盤。「x」爲盤號(a爲基本盤,b爲基本從屬盤,c爲輔助主盤,d爲輔助從屬盤),「~」表明分區,

        前四個分區用數字1到4表示,它們是主分區或擴展分區,hdb2表示爲第二個IDE硬盤上的第二個主分區或擴展分區。

      3)對於SCSI硬盤則標識爲「sdx~」,SCSI硬盤是用「sd」來表示分區所在設備的類型的,其他則和IDE硬盤的表示方法同樣

    12.2.3 使用lsblk指令查看當前系統的分區狀況

       

  12.3 掛載的經典案例

      

    12.3.1 如何增長一塊硬盤

      1)虛擬機添加硬盤

      2)分區 fdisk/dev/sdb

      3)格式化 mkfs -t ext4 /dev/sdb1

      4)掛載 先建立一個/home/newdisk,掛載mout  /dev/sdb1  /home/newdisk

      5)設置能夠自動掛載

  12.4 具體步驟

    12.4.1 步驟一

      在【虛擬機】菜單中,選擇【設置】,而後設備列表裏添加硬盤,而後一路【下一步】,中間只有選擇磁盤大小的地方須要修改,直到完成。而後重啓系統

    12.4.2 步驟二

      分區命令 fdisk /dev/sdb

      開始對/sdb分區

      * m  顯示命令列表    

      * p  顯示磁盤分區

      * n  新增分區

      * d  刪除分區

      * w  寫入並退出

      說明:開始分區後輸入n,新增分區,而後選擇p,分區類型爲主分區。兩次回車默認剩餘所有空間。最後輸入w寫入分區並退出,若不保存退出輸入q

    12.4.3 步驟三

      格式化磁盤

      分區命令:mkfs -t ext4 /dev/sdb

      其中ext4是分區類型

    12.4.4 步驟四

      掛載:將一個分區與一個目錄聯繫起來

      * mount  設備名稱  掛載目錄

      * umount  設備名稱或者掛載目錄

    12.4.5 步驟五

      永久掛載:經過修改/etc/fstab實現掛載

      添加完成後,執行mount -a 即刻生效

  12.5 磁盤狀況查詢

    12.5.1 查詢系統總體磁盤使用狀況

      基本語法:df -h

    12.5.2 查詢指定目錄的磁盤佔用狀況

      基本語法:du -h /目錄(默認目錄爲當前目錄)  

        -s  指定目錄佔用大小彙總  

        -h  帶計量單位  

        -a  含文件

        -max-depth=1  子目錄深度

        -c  列出明細的同時,增長彙總值

  12.6 磁盤狀況-工做使用指令

    1)統計/home文件夾下文件的個數

      

    2)統計/home文件夾下目錄的個數

      

    3)統計/home文件夾下文件的個數,包括子文件夾裏的文件

      

    4)統計文件夾下目錄的個數,包括子文件夾裏的

      

    5)以樹狀顯示目錄結構

      

 

第十三章 實操篇 網絡配置

  13.1 Linux網絡配置原理圖(含虛擬機)

    

  13.2 查看網絡IP和網關

    13.2.1 查看虛擬網絡編輯器

      

    13.2.2 修改ip地址(修改虛擬網絡的ip)

      

    13.2.3 查看網關

      

    13.2.4 查看windows環境中的VMnet8網絡配置(ipconfig指令)

      1)使用ipconfig查看

      2)界面查看

  13.3 ping測試主機之間網絡聯通

    13.3.1 基本語法

      ping  目的主機(測試當前服務器是否能夠鏈接目的主機)

  13.4 Linux網絡配置

    13.4.1 第一種方法(自動獲取)

        

      缺點:Linux啓動後會自動獲取IP,缺點是每次自動獲取的ip地址可能不同,此方式不適合於作服務器。

    13.4.2 第二種方式(指定固定ip)

      直接修改配置文件來指定IP,並能夠鏈接到外網,編輯 vim etc/sysconfig/network-scripts/ifcfg-eth0

        

      修改後,要重啓服務:1)service network restart

        2)reboot 重啓系統

 

第十四章 實操篇 進程管理

  14.1 進程的基本介紹

    1)在Linux中,每一個執行的程序(代碼)都被稱爲一個進程。每一個進程都分配一個ID號

    2)每個進程,都會對應一個父進程,而這個父進程能夠複製多個子進程。

    3)每一個進程均可能以兩種方式存在。前臺與後臺,所謂前臺進程就是用戶目前的屏幕上能夠進行操做的。後臺進程則是實際在操做的,但因爲屏幕上沒法看到的進程,一般使用後臺方式執行

    4)通常系統的服務都是之後臺進程的方式存在,並且都會常駐在系統中。直到關機才結束

  14.2 顯示系統執行的進程

    14.2.1 說明:查看進行使用的指令是ps,通常來講使用的參數是ps -aux

      

      

    14.2.2 ps指令詳解

      1)指令:ps  -aux | grep xxx,

      2)指令說明:

        

  14.3 終止進程kill和killall

    14.3.1 介紹:如果某個進程執行一半須要中止時,或是已消了很大的系統資源時,此時能夠考慮中止該進程。使用kill命令來完成此項任務

    14.3.2 基本語法:

      kill  [選項] 進程號(經過進程號殺死進程)

      kill  進程名稱(經過進程名稱殺死進程,也支持通配符)

    14.3.3 經常使用選項:

      -9 :表示強制進程當即中止

  14.4 查看進程樹 pstree

    14.4.1 基本語法:

      pstree [選項],能夠更加直觀的來查看進程信息

    14.4.2 經常使用選項  

      -p :顯示進程的PID

      -u:顯示進程的所屬用戶

  14.5 服務(Service)管理

    14.5.1 介紹:服務的本質就是進程,可是是運行在後臺的,一般都會監聽某個端口,等待其餘程序的請求,好比(mysql,sshd,防火牆等),所以咱們又稱爲守護進程,是Linux中很是重要的知識點

      

    14.5.2 service管理指令  

      service  服務名  [start | stop | restart | reload | status]

      在CentOS7.0後,再也不使用service,而是systemctl

    14.5.3 細節討論

      1)關閉或者啓用防火牆後,當即生效。

      2)這種方式只是臨時的,當重啓系統後,仍是迴歸之前對服務的設置。若但願設置某個服務自啓動或關閉永久生效,要使用chkconfig指令。

    14.5.4 查看服務名:

      方式一:使用setup -> 系統服務 就能夠看到

        

      方式二:/etc/init.d/服務名稱

        

    14.5.5 服務的運行級別(runlevel):

      查看或者修改默認級別:vi/etc/inittab

      Linux系統有7種運行級別(runlevel):經常使用的是級別3和5

      

    14.5.6 開機流程說明

      

    14.5.7 chkconfig指令

      介紹:經過chkconfig命令能夠給每一個服務的各個運行級別設置自啓動/關閉

      基本語法:

      1)查看服務 chkconfig  -list | grep xxx

        

        

      2)chkconfig 服務名  --list

        

      3)chkconfig  --level  5  服務名  on/off

        

    14.5.8 使用細節

      chkconfig從新設置服務後自啓動或關閉,須要重啓機器reboot才能生效

  14.6 動態監控進程

    14.6.1 介紹:

      top與ps命令很類似。它們都用來顯示正在執行的進程。Top與ps最大的不一樣之處,在於top在執行一段時間能夠更新正在運行的進程

    14.6.2 基本語法:

      top [選項]

    14.6.3 選項說明

      

      交互操做說明

      

    14.6.4 查看系統網絡狀況netstat

      基本語法:

        netstat [選項]

        netstat -anp

      選項說明:

        -an 按必定順序排列輸出

        -p 顯示哪一個進程在調用

      

      

 

第十五章 實操篇 RPM和YUM

  15.1 rmp包的管理

    15.1.1介紹

      一種用於互聯網下載包的打包及安裝工具,它包含在某些Linux分發版中。它生成具備.RPM擴展名的文件。RPM是RedHat Package Manager(RedHat軟件包管理工具)的縮寫,相似windows的

    setup.exe,這一文件格式名稱雖然打上了RedHat的標誌,但理念是通用的。Linux的分發版本都有采用(suse,redhat,centos等等)

    15.1.2 rpm包的簡單查詢指令

      查詢已安裝的rpm列表 rpm -qa | grep xxx

      如查看一下當前的Linux是否安裝firefox

        

    15.1.3 rpm包名基本格式

      

      

    15.1.4 rpm包的其餘查詢指令

      rpm -qa:查詢所安裝的全部rpm軟件包

      rpm -qa | more [分頁顯示]

      rpm -qa | grep X [rpm -qa | grep firefox]

        

      rpm -q 軟件包名:查詢軟件包是否安裝  

        rpm -q firefox

      rpm -qi 軟件包名:查詢軟件包信息

        

        rpm -qi file

      rpm -ql 軟件包名:查詢軟件包中的文件

        rpm -ql firefox

        

      rpm -qf 文件全路徑名 :查詢文件所屬的軟件包

        

    15.1.5 卸載rpm包:

      基本語法:

        rpm-e RPM包的名稱

        

      細節問題:

        1)若其餘軟件包依賴於咱們要卸載的軟件包,卸載時會產生錯誤信息。

        2)若咱們就是要刪除該包,能夠增長參數 --nodeps,就能夠強制刪除,可是通常不推薦這樣作

    15.1.6 安裝rpm包

      基本語法:

        rpm -ivh RPM包全路徑名稱

      參數說明:

        i = install 安裝

        v = verbose 提示

        h = hash 進度條

  15.2 yum

    15.2.1 介紹:

      Yum是一個Shell前端軟件包管理器。基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件包。使用yum的前提是能夠聯網

    15.2.2 yum的基本指令

      查詢yum服務器是否有須要安裝的軟件    

        yum list | grep xx 軟件列表

      安裝指定的yum包  

        yum install xxx 下載安裝

 

第十六章 JavaEE 定製篇 搭建JavaEE環境

  16.1 概述

    16.1.1 示意圖:

      

 

       若是須要在Linux下進行JavaEE的開發,還要安裝以下軟件

      

 

   16.2 安裝JDK

    16.2.1 安裝步驟

      1)先將軟件經過xftp5上傳到/opt目錄下

      2)解壓縮到/opt

      3)配置環境變量的配置文件vim /etc/profile

        

      4)須要註銷用戶,環境變量才能生效

      5)在任何目錄下就可使用java和javac

    16.2.2 測試是否安裝成功

      編寫一個簡單的HelloWorld.java 輸出「hello,world!」

  16.3 安裝tomcat

    16.3.1 步驟:

      1)解壓縮到/opt目錄下:tar -zxvf apache-tomcat-7.0.70.tar.gz

      2)啓動tomcat  ./startup.sh

        先進入到tomcat的bin目錄

        

 

       3)開放端口8080,這樣外網才能訪問到tomcat

        vim /etc/sysconfig/iptables

          

 

         重啓防火牆

          

 

     16.3.2 測試安裝是否成功

      在windows、linux下訪問 localhost:8080

  16.4 Eclipse的安裝

    16.4.1 步驟:

      1)解壓縮到/opt

        

      2)啓動eclipse,配置jre和server

        啓動方法1:建立一個快捷方式

        啓動方法2:進入到eclipse解壓後的文件夾,而後執行 ./eclipse便可

      3)編寫jsp頁面,並測試成功

  16.5 mysql的安裝和配置

    16.5.1 安裝的步驟和文檔

      去百度

 

第十七章 大數據定製篇 Shell編程

  17.1 爲何要學習Shell編程

    1)Linux運維工程師在進行服務器集羣管理時,須要編寫Shell程序來進行服務器管理

    2)對於JavaEE 和Python程序來講,工做的須要,編寫一些Shell腳本進行程序或着是服務器的維護,好比編寫一個定時備份數據庫的腳本

    3)對於大數據程序員來講,須要編寫Shell程序來管理集羣

  17.2 Shell是什麼

    

 

     Shell是一個命令行解析器,它爲用戶提供了一個向Linux內核發送請求以便運行程序的界面系統級程序,用戶能夠用Shell來啓動、掛起、中止甚至是編寫一些程序

  17.3 shell編程快速入門-Shell腳本的執行方式

    17.3.1 腳本格式要求

      1)腳本以#!/bin/bash開頭

      2)腳本須要有可執行權限

    17.3.2 編寫第一個Shell腳本

      需求:建立一個Shell腳本,輸出hello world!

        

 

     17.3.3 腳本的經常使用執行方式

      方式1(輸入腳本的絕對路徑或相對路徑)

        1)首先要賦予helloworld.sh腳本的執行權限

        2)執行腳本

          

 

       方式2 (sh+腳本),不推薦

        說明:不用賦予腳本執行權限,直接執行便可

          

 

   17.4 shell的變量

    17.4.1 Shell的變量介紹

      1)Linux Shell中的變量分爲,系統變量和用戶自定義變量

      2)系統變量:$HOME、$PWD、$SHELL、$USER等等

      3)顯示當前shell中全部變量:set

    17.4.2 shell變量的定義

      基本語法:1)定義變量:變量=值

        2)撤銷變量:unset 變量

        3)聲明靜態變量:readonly 變量,注:不能unset

      快速入門:

        定義變量A、撤銷變量A

          

 

         聲明靜態變量B=2,不能unset

          

 

     17.4.3 定義變量的規則

      1)變量名稱能夠由字母、數字、下劃線組成,可是不能以數字開頭

      2)等號兩側不能有空格

      3)變量名稱通常習慣爲大寫

    17.4.4 將命令的返回值賦給變量

      1)A=`ls -la` 反引號,運行裏面的命令,並把結果返回給變量A

      2)A=$(ls -la)等價於反引號

        

 

   17.5 設置環境變量

    17.5.1 基本語法

      1)export 變量名=變量值 (功能描述:將shell變量輸出爲環境變量)

      2)source 配置文件 (功能描述:讓修改後的配置文件當即生效)

      3)echo $變量名 (功能描述:查詢環境變量的值)

        

 

     17.5.2 快速入門

      1)在/etc/profile文件中定義TOMCAT_HOME環境變量

        

      2)查看環境變量TOMCAT_HOME的值:

          echo $TOMCAT_HOME

      3)在另一個shell程序中使用TOMCAT_HOME

        

 

         注:在輸出TOMCAT_HOME環境變量前,須要讓其生效--->source /etc/profile

  17.6 位置參數變量

    17.6.1 介紹

      當咱們執行一個shell腳本時,若但願獲取到命令行的參數信息,就可使用到位置參數變量,好比:./myshell.sh 100 200 ,這個就是一個執行shell的命令行,能夠在myshell腳本中獲取到參數信息

    17.6.2 基本語法

      $n(功能描述:n爲數字,$0表明命令自己,$1~$9表明第一到第九個參數,十以上的參數須要用大括號包含,如${10})

      $*(功能描述:這個變量表明命令行中全部的參數,$*把全部的參數當作一個總體)

      $@(功能描述:這個變量也表明命令行中全部的參數,不過$@把每一個參數區分對待)

      $#(功能描述:這個變量表明命令行中全部參數的個數)

    17.6.3 應用實例

      編寫一個shell腳本positionPara.sh,在腳本中獲取到命令行的各個參數信息

        

 

         

 

   17.7 預約義變量

    17.7.1 基本介紹

      就是shell設計者事先已經定義好的變量,能夠直接在shell腳本中使用

    17.7.2 基本語法

      $$(功能描述:當前進程的進程號(PID))

      $!(功能描述:後臺運行的最後一個進程的進程號(PID))

      $?(功能描述:最後一次執行的命令的返回狀態。若這個變量爲0,證實上一個命令正確執行;若這個變量爲非0,則證實上一個命令執行錯誤)

    17.7.3 應用實例

      在一個shell腳本中簡單使用一下預約義變量

      

  17.8 運算符

    17.8.1 基本介紹

      學習如何在shell中進行各類運算操做

    17.8.2 基本語法

      1)「$((運算符))」或「$[運算符]」

      2)expr m + n  

        注意expr運算符之間要有空格

      3)expr m - n

      4)expr \*,/,%  乘,除,取餘

    應用實例:

      1、計算(2+3)× 4 的值

      1)$((運算符))

        

 

       2)$[運算符]

        

      3)expr

        

 

       2、請求出命令行的兩個參數【整數】的和

        

 

  17.9 條件判斷

    17.9.1 基本語法

      [ condition ] (注意condition先後要有空格)

      #非空返回true,可以使用$?驗證(0爲true,> 1爲false)

    17.9.2 應用實例

      [ atguigu ]  返回true

      []      返回false

      [ condition ]&&echo OK || echo notok  條件知足,執行後面的語句

    17.9.3 經常使用判斷條件

      1)兩個整數的比較

        = 字符串比較

        -lt 小於

        -le 小於等於

        -eq 等於

        -gt 大於

        -ge 大於等於

        -ne 不等於

      2)按照文件權限進行判斷

        -r 有讀的權限 [ -r 文件 ]

        -w 有寫的權限

        -x 有執行的權限

      3)按照文件類型進行判斷

        -f 文件存在而且是一個常規的文件

        -e 文件存在

        -d 文件存在而且是一個目錄

    17.9.4 應用實例

      1.「ok」是否等於「ok」

        

 

       2.23是否大於等於22

        

 

       3. /root/install.log目錄中的文件是否存在

        

 

   17.10 流程控制

    17.10.1 if判斷

      基本語法:

      if [ 條件判斷式 ];then

        程序

      fi

      或者

      if [ 條件判斷式 ]

        then

          程序

        elif [ 條件判斷式 ]

        then

          程序

      fi

      注:1)[ 條件判斷式 ],中括號和條件判斷式之間必須有空格 2)推薦使用第二種方式

    應用實例:

      請編寫一個shell程序,若輸入的參數,大於等於60,則輸出「及格了」,若小於60,則輸出「不及格」

      

 

     17.10.2 case語句

      基本語法:

      case $變量名 in

      "值1")

        若變量的值等於值1,則執行程序1

        ;;

      "值2")

        若變量的值等於值2,則執行程序2

        ;;

      ……省略其餘分支……

      *)

        若變量的值都不是以上的值,則執行此程序

        ;;

      esac

    應用實例:

      當命令行參數是1時,輸出「週一」,是2時,輸出「週二」,其餘狀況輸出「other」

      

 

     17.10.3 for循環

      基本語法1:

      for 變量 in 值1 值2 值3...

        do

          程序

        done

      應用實例:

        打印命令行輸入的參數

        

      基本語法2:

      for((初始值;循環控制條件;變量變化))

        do

          程序

        done

      應用實例:

        從1加到100的值輸出顯示

        

 

     17.10.4 while循環

      基本語法:

      while [ 條件判斷式 ]

        do

          程序

        done

      應用實例:

        從命令行輸入一個數n,統計從1+..+n的值是多少?

        

 

   17.11 read讀取控制檯輸入

    17.11.1 基本語法

      read(選項)(參數)

      選項:

        -p:指定讀取值時的提示符;

        -t:指定讀取值時等待的時間(秒),若沒有在指定的時間內輸入,就再也不等待了

      變量:指定讀取值的變量名

    17.11.2 應用實例

      

 

   17.12 函數

    17.12.1 函數介紹

      shell編程和其餘編程語言同樣,有系統函數,也能夠自定義函數。

    17.12.2 系統函數

      basename 基本語法

      功能:返回完整路徑最後/的部分,經常使用於獲取文件名

      basename [pathname][suffix]

      basename [string][suffix](功能描述:basename命令會刪除全部的前綴包括最後一個('/')字符,而後將字符串顯示出來)

      選項:

        suffix爲後綴,若suffix被指定了,basename會將pathname或string中的suffix去掉

      dirname基本語法

      功能:返回完整路徑最後/的前面的部分,經常使用於返回路徑部分

      dirname文件絕對路徑(功能描述:從給定的包含絕對路徑的文件名中去除文件名(非目錄部分),而後返回剩下的路徑(目錄部分))

    17.12.3 應用實例

      1.請返回 /home/aaa/test.txt的「test.txt」部分

        

 

       2.請返回 /home/aaa/test.txt的 /home/aaa

        

    17.12.4 自定義函數

      基本語法:

        [ function ] function[()]

        {

          Action;

          [return int;]

        }

        調用直接寫函數名:funcname [值]

      應用實例:

        計算輸入兩個參數的和(read),getSum

        

 

   17.13  Shell編程綜合案例

    需求分析:

      1)天天凌晨2:10備份數據庫atguiguDB到/data/backup/db

      2)備份開始和備份結束可以給出相應的提示信息

      3)備份後的文件要求以備份時間爲文件名,並打包成.tar.gz的形式

      4)在備份的同時,檢查是否有10天前備份的數據庫文件,如有就刪除

    思路分析:

      

 

     代碼實現:

      

 

       

相關文章
相關標籤/搜索