Linux的學習筆記

學習Linux的目的:前端

1.瞭解linux以及學會linux的命令操做java

2.搭建javaee開發環境node

系統學習Linux流程:mysql

第一階段:linux環境下的基本操做命令,包括 文件操做命令(rm mkdir chmod, chown)編輯工具使用(vi vim) linux用戶管理(useradd userdel usermod)等linux

第二階段:linux的各類配置(環境變量配置,網絡配置,服務配置)c++

第三階段:linux下如何搭建對應語言的開發環境(大數據,javaEE,Python)程序員

Linux的學習方法:面試

1.創建一個總體框架,而後再細節。sql

2.不須要掌握全部Linux指令,學會查詢手冊和百度shell

3.先知道怎麼作,而後再問爲何。

4.計算器是一門「作中學」的學科,不是會了再作,而是作了纔會。

5.適當的囫圇吞棗,有卡住的點不要抓着不放,後面慢慢理解。

一.初始Linux:

Linux的應用領域:

1.我的桌面領域的應用

2.服務器領域:linux在服務器領域的應用是最強的。linux免費、穩定、高效等特色在這裏獲得了很好的體現,近些年來linux服務器市場的到了飛速的提高,尤爲在一些高端領域尤其普遍。

3.嵌入式領域:linux運行穩定、對網絡的良好的支持性、低成本,且能夠根據須要進行軟件裁剪,內核最小能夠達到幾百KB等特色,使其近些年在嵌入式領域的應用獲得很是大的提升。

虛擬機的配置:

1.網絡配置的選擇:

1)橋鏈接:Linux能夠和其餘系統同喜,可是可能形成ip衝突,由於在一個網段下,最多分配253個ip.

2)NAT(網絡地址轉換):linux能夠訪問外網,不會形成ip衝突。若是253個ip已經分配完成,windows會從新建立一個網段,而後linux也會從新分配該網段的ip,可是這樣其餘原網段的主機沒法訪問該網段的主機上的linux系統,而該主機能夠經過ip代理訪問原網段主機。

3)主機模式:你的linux是一個獨立的主機,不能訪問外網。

Linux的目錄結構:1.只有一個根目錄/。和Windows根目錄分C,D,E...盤符有區別。 2.Linux的文件系統採用級層式的樹狀目錄結構,在此結構中的最上層是根目錄「/」,而後再次目錄下再建立其餘的目錄。在Linux世界裏,一切皆目錄。

具體的目錄結構:

1)/bin:是Binary的縮寫,這個目錄存放着最常用的命令。

2)/susr:s就是Super User的意思,這裏存放的是系統管理員使用的系統程序。

3)/home:存放普通用戶的主目錄,在Linux中每一個用戶都有一個本身的目錄,通常該目錄名是以用戶的帳號命名的。

4)/root:該目錄爲系統管理員,也稱做超級權限者的用戶主目錄。

5)/lib:系統開機所須要最基本的動態鏈接共享庫,其做用相似於Windows裏的DLL文件。幾乎全部的應用程序都須要用到這些共享庫。

6)/lost+found:這個目錄通常狀況下是空的,當系統非法關機後,這裏就存放了一些文件。

7)/etc:全部的系統管理所須要的配置文件和子目錄my.conf。

8)/usr:這是一個很是重要的目錄,用戶的不少應用程序和文件都放在這個目錄下,相似與windows下的program files目錄。

9)/boot:存放的是啓動Linux時使用的一些核心文件,包括一些鏈接文件以及鏡像文件。

10)/proc:這個目錄是一個虛擬的目錄,它時系統內存的映射 ,訪問這個目錄來獲取系統信息。

11)srv:service縮寫,該目錄存放一些服務啓動以後須要提取的數據

12)sys:這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統sysfs.

13)tmp:這個目錄是用來存放一些臨時文件的。

14)dev:相似於windows的設備管理器,把全部的硬件用文件的形式存儲。

15)media:linux系統會自動識別一些設備,例如U盤、光驅燈等,當識別後,linux會把識別的設別掛載到這個目錄下。

16)mnt:系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,咱們能夠將外部的存儲掛載在/mnt/上,而後進入該目錄就能夠查看裏面的內容了。

 

Vi和Vim編輯器

1.文件讀寫操做

1).使用命令在桌面建立或打開文件: vim 文件名.後綴

2).輸入i或a進行插入(寫)操做,寫完以後輸入(按)esc執行退出,輸入:或者/可繼續輸入命令,最後輸入wq退出並保存。

命令含義:

vim xxx 進入通常模式

i或者a 進入編輯模式

:或者/進入命令模式

在命令模式下: :wq(保存並退出) :q(退出) :q!(強制退出)

關機&重啓命令

shutdown:

shutdown -h now:表示當即關機

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

shutdown -r now:當即重啓

halt:就是直接使用,效果等價於關機

reboot:重啓系統

sync:把內存的數據同步到磁盤 (當咱們關機或者重啓時,都應該先執行sync命令,防止數據丟失)

 

用戶登陸&註銷

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

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

 

用戶管理:

說明

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

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

添加用戶:

useradd [選項] 用戶名

實際用例:

useradd xm(默認在home目錄建立一個xm的家目錄)

passwd xm(給xm設置密碼)

useradd -d 盤符 xm(在指定盤符建立xm用戶)

細節說明:

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

2.也能夠經過 useradd -d 指定一個新的目錄名。

刪除用戶:

userdel 用戶名

實際用例:

userdel xm(刪除用戶xm,但保留其家目錄)

userdel -r xm(刪除用戶xm,且刪除家目錄)

查詢用戶信息:

id 用戶名

實際用例:

id xm(查詢xm的信息,若是存在返回xm的相關信息,不然返回不存在)

切換用戶:

su - 用戶名

實際用例:

su - zf(切換用戶zf,高權限到低權限不須要密碼,低權限到高權限須要輸入密碼,退出切換用戶使用exit指令)

用戶組:

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

1)增長組:

groupadd 組名

實際用例:

groupadd wudang

2)刪除組:

groupdel 組名

實際用例:

groupdel wudang

增長用戶時直接加上組:

useradd -g 用戶組 用戶名

實際用例:

增長一個用戶zwj,直接將他指定到wudang:useradd -g wudang zwj(wudang組必須是存在的)

修改用戶組:

usermod -g 用戶組 用戶名

實際用例:

建立一個shaolin組,讓zwj用戶修改到shaolin組:usermod -g shaolin zwj

用戶和組的相關配置:

1)/etc/passwd 文件

用戶的配置文件,記錄用戶的各類信息

每行的含義:用戶名:口令:用戶標識號:組標識號:註釋性描述:主目錄:登陸Shell

2) /etc/shadow 文件

口令的配置文件

每行的含義:登陸名:加密口令:最後一次修改實踐:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌

3) /etc/group 文件

組的配置文件,記錄Linux包含的組的信息

每行含義:組名:口令:組標識號:組內用戶列表

Linux實用指令:

基本介紹:

運行級別說明:

0:關機  1:單用戶(找回丟失密碼)  2:多用戶狀態沒有網絡服務  3:多用戶狀態有網絡服務  4:系統未使用保留給用戶  5:圖形界面  6:系統重啓

經常使用運行級別是3和5,要修改默認的運行級別可更改文件

系統的運行級別配置文件目錄:/etc/inittab

基本語法:

切換到指定運行級別的命令:init[012356]

實際用例:

經過 init 來切換不一樣的運行級別,好比從 5 -> 3,而後關機:init 3(便可切換到3的狀態)

面試題:

如何找回root密碼,若是咱們不當心忘記root密碼,怎麼找回?

思路:進入到 單用戶模式,而後修改root密碼。由於進入單用戶模式,root不須要密碼就能夠登陸。

總結:

開機 -> 在引導時輸入 回車鍵 -> 看到一個界面輸入 e-> 看到一個新的界面,選中第二行(編輯內核) 在輸入 e-> 在這行最後輸入 1. 再輸入 回車鍵 ->再次輸入b,這時就會進入到單用戶模式。這時,咱們就進入到單用戶模式,使用passwd指令來修改。

設置運行級別:1)進入Linux終端 2)vim /etc/inittab 3)修改 id:5:initdefault這一行的數字修改爲0-6任意一個運行級別。

幫助指令:

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

man 得到幫助信息:

man [命令或配置文件](功能描述:得到幫助信息)

實際用例

查看ls命令的幫助信息:man ls

help 指令:

help 命令(功能描述:得到shell內置命令的幫助信息)

查看cd的幫助信息:help cd

文件目錄類

ls 指令:

ls [選項][目錄或是文件]

經常使用選項:

-a : 顯示當前目錄全部的文件和目錄,包括隱藏的

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

實際用例:

1)ls -a 2)ls -l

cd 指令:

cd [參數](功能描述:切換到指定目錄)

經常使用參數:

cd~ 或者 cd : 回到家目錄

cd.. 回到當前目錄的上一級目錄

如何理解絕對路徑和相對路徑:

當前工做目錄是/root,咱們但願進入到/home下

絕對路徑:/home 即從根目錄開始定位: cd /home

相對路徑: ../home,從當前工做目錄開始定位到須要的目錄去: cd ../home(先退到/目錄再到指定目錄)

實際用例:

使用相對路徑到/root 目錄:

1)這裏咱們須要知道該用戶目錄在哪一個目錄下,才能寫出這個指令,假設在/usr/lib

2)cd ../../root(兩個點表明退一級)

mkdir 指令:

mkdir指令用於建立目錄(make directory)

語法:mkdir [選項] 要建立的目錄

實際用例:

1)在home目錄下建立dog:mkdir /home/dog (默認狀況只能建立單個目錄)

2)在home目錄下建立/animal/dog: mkdir -p /home/animal/dog

刪除目錄:

rmdir [選項] 要刪除的空目錄

實際用例:

1)刪除一個空目錄 /home/dog :rmdir /home/dog(rmdir不能刪除非空目錄)

2)刪除一個非空目錄 /home/dog(dog目錄下包含test.txt文件): rm -rf /home/dog

touch 指令:

touch指令建立空文件

語法:touch 文件名稱

實際用例:

1)建立一個空文件 hello.txt : touch hello.txt

2)一次建立多個空文件: touch hello.txt hello1.txt hello2.txt

cp指令:

cp 指令拷貝文件到指定目錄

語法:cp [選項] source dest

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

實際用例:

1)將 /home/aaa.txt 拷貝到 /home/bbb 目錄:cp aaa.txt bbb

2)遞歸複製整個文件夾:cp -r text bbb(必定要注意當前的目錄位置,而後要準確的定位 源目錄和目標目錄)

3)當複製文件存在使用指令會提示是否覆蓋,因此須要使用強制覆蓋指令:\cp -r text bbb

rm指令:

rm 指令移除文件或目錄

經常使用選項:

-r : 遞歸刪除整個文件夾

-f : 強制刪除不提示

實際用例:

將一個文件刪除:rm 1.txt

將整個目錄刪除: rm -rf aaa(強制刪除不提示)

mv指令:

mv 移動文件與目錄重命名

基本語法:

mv oldNameFile newNameFile (功能描述:重命名)

mv /temp/movefile /targetFolder(功能描述:移動文件)

實際用例:

mv aaa.txt bbb.txt(覆蓋重命名)

將/home/aaa.txt 移動到 /root/: mv /home/aaa.txt /root/

cat指令

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

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

經常使用選項:

-n : 顯示行號

實際用例:

1) 顯示 /etc/profile 文件內容,並顯示行號:cat -n /etc/profile

使用細節:

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

> 指令 和 >>指令:

介紹:

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

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

基本語法:

1) ls-l>文件 (功能描述: 列表的內容寫入文件a.txt中(覆蓋寫))

2)ls-al>>文件 (功能描述: 列表的內容追加到文件aa.txt的末尾)

3)cat 文件1 > 文件2 (功能描述: 將文件1的內容覆蓋到文件2)

4) echo "內容" >> 文件

實際用例:

給c.txt文件追加內容: echo "hello world" >> c.txt

將c.txt文件內容覆蓋: echo "hello world" > c.txt

echo指令:

echo輸出內容到控制檯

基本語法:

echo [選項] [輸出內容]

應用實例:

1)使用echo指令輸出環境變量,輸出當前的環境路徑: echo $SPATH

2)使用echo指令輸出hello:echo "hello"

head指令:

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

基本語法:

head 文件(功能描述:查看文件頭10行內容)

head -n 5 文件 (功能描述:查看文件頭5行內容,5能夠是任意行數)

tail指令:

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

基本語法:

tail 文件(功能描述:查看文件後10行內容)

tail -n 5 文件 (功能描述:查看文件後5行內容,5能夠是任意行數)

tail -f 文件(功能描述:實時追蹤該文檔的全部更新,工做常用)

應用實例:

1)使用tail -f 實時監控文件info.txt : tail -f info.txt(打開另外一終端添加內容時tail -f監控到會隨時更新顯示)

ln 指令:

軟連接也叫符號鏈接,相似於windows裏的快捷方式,主要存放了連接其餘文件的路徑的基本語法

基本語法:

ln -s [原文件或目錄][軟連接名](功能描述:給原文件建立一個軟連接)

應用實例:

1)在桌面建立/root文件的軟連接:ln -s /root LinkToRoot

2)刪除軟連接:rm -rf LinkToRoot

細節說明

當咱們使用pwd指令查看目錄時,仍然看到的是軟連接所在目錄

history指令:

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

基本語法:

history (功能描述:查看已經執行過歷史命令)

應用實例:

1)顯示全部的歷史命令:history

2)顯示最近使用過的10個指令:history 10

3)執行歷史編爲5的指令:!5

時間日期類指令:

date指令-顯示當前日期

基本語法:

date - 顯示當前的時間信息

date "+%Y-%m-%d" - 顯示當前的年月日

date "+%Y-%m-%d %H:%M:%S" - 顯示當前的年月日時分秒

date指令-設置時間:

基本語法:

date -s 字符串時間

應用實例:

1)設置系統當前時間,好比設置成 2019-10-10 10:10:10:date -s "2019-10-10 10:10:10"

cal指令:

查看日曆指令

基本語法:

cal [選項] (功能描述:不加選項,顯示本月日曆)

應用實例:

1)顯示當前日曆:cal

2)顯示2018年整年日曆:cal 2018

find指令:

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

基本語法:

find [搜索範圍][選項]

選項說明:

name<查詢方式> 按照指定文件名查找模式查找文件

user<用戶名> 查找屬於指定用戶名全部文件

size<文件大小> 按照指定的文件大小查找文件

應用實例:

1)按名字:查找/home目錄下文件名爲hello.txt的文件:find /home -name hello.txt(也能夠經過*.txt通配符查找)

2)按擁有者:查找/opt目錄下,用戶名稱爲nobody的文件

3)查找整個linux系統下大於20M的文件:find / -size +20M

locate 指令:

locate指令能夠快速定位文件路徑。locate指令利用實現創建的系統中全部文件名稱及路徑的locate數據庫實現快速定位給定的文件。locate指令無需遍歷整個文件系統,查詢速度較快。爲了保證查詢結果的準確度。管理員必須按期更新locate時刻

基本語法

locate 搜索文件

特別說明:

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

應用實例:

1):使用locate指令快速定位hello.txt 文件所在目錄:locate hello.txt

壓縮、解壓命令:

grep指令 和 管道符號|

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

基本語法

grep [選項] 查找內容 源文件 

選項   功能

-n     顯示匹配行及行號

-i     忽略字母大小寫

 

1)在hello.txt文件中,查找"yes"所在行,而且顯示行號:cat hello.txt | grep -n yes

 

gzip 和 gunzip 指令:

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

基本語法

gzip 文件 (功能描述:壓縮文件,智能將文件壓縮爲*.gz文件)

gunzip 文件.gz (功能描述:解壓縮文件命令)

應用實例:

將/home/hello.txt壓縮成壓縮文件:gzip hello.txt

將/home/hello.txt.zp壓縮文件進行解壓:gunzip hello.txt.gz

zip 和 unzip 指令:

zip用於壓縮文件,unzip用於解壓的,這個在項目打包發佈中頗有用

基本語法:

zip [選項] xxx.zip 將要壓縮的內容(功能描述:壓縮文件和目錄的命令)

unzip [選項] xxx.zip (功能描述:解壓縮文件)

zip經常使用選項

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

unzip 的經常使用選項:

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

應用案例:

1)將/home下的全部文件壓縮到mypackage.zip:zip -r mypackage.zip /home/

2)將mypackage.zip文件解壓到/root/桌面:unzip -d /root/桌面 mypackage.zip

tar 指令:

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

基本語法:

tar [選項] xxx.tar.gz 打包的內容 (功能描述:打包目錄,壓縮後的文件格式.tar.gz)

選項說明:

選項     功能

-c       產生.tar打包文件

-v       顯示詳細信息

-f       指定壓縮後的文件名

-z       打包同時壓縮

-x       解包.tar文件

應用案例:

1)壓縮多個文件,將/home/a1.txt 和 /home/a2.txt 壓縮成 a.tar.gz:tar -zvcf a.tar.gz a1.txt a2.txt

2)壓縮/home目錄下的整個文件:tar -zcvf myhome.tar.gz /home/

3)將a.tar.gz 解壓到當前目錄:tar -zxvf a.tar.gz

4)將a.tar.gz 解壓到指定目錄:tar -zxvf a.tar.gz -C /opt/

組的管理:

修改文件所在的用戶:chown 用戶名 文件

案例:

將apple.txt 修改到 tom用戶下:chown tom apple.txt

修改文件所在組:chgrp 組名 文件

案例:將orange.txt文件修改到police組中:chgrp police orange.txt

修改用戶到其餘組:usermod -g 組名 用戶名

案例:將tom修改到bandit組:usermod -g bandit tom

添加用戶名到指定用戶:

useradd -g 組名 用戶名

案例:將用戶名tom添加到police組:useradd -g police tom

權限詳細介紹:

下圖是tom用戶的ok.txt的文件詳情:

-① rw-② r--③ r--④ 1⑤ tom⑥ police⑦ 14 10月 12 02:59⑧ ok.txt⑨

①文件的類型:-普通類型 d:目錄 l:軟連接 c:字符設備[鍵盤,鼠標] b:塊文件,硬盤

②表示文件全部者權限rw

③文件所在組的用戶的權限r--,只有讀的權限

④表示文件其餘組的用戶的權限r--

⑤若是是文件,表示硬連接的數,若是是目錄則表示該目錄的子目錄個數

⑥文件所在用戶

⑦文件所在組

⑧文件最後一次修改的時間

⑨該文件名

rwx權限詳解:

rwx做用到文件:

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

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

3)[x]表明可執行(execute):能夠被執行

rwx做用到目錄:

1)[r]表明可讀:能夠讀取,ls查看目錄內容

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

3)[x]表明可執行:能夠進入該目錄

修改權限-chmod:

基本說明:

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

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

u:全部者 g:所在組 o:其餘人 a:全部人(u、g、o的總和)

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

2)chmod o+x 文件目錄名

3)chmod a-x 文件目錄名

應用案例:

1)給abc文件全部者增長rwx權限,所在組增長rx權限,其餘人增長rx權限:chmod u=rwx,g=rx,o=rx abc

2)給abc文件的全部者出去執行的權限,增長組寫的權限:chmod u-x,g+w abc

3)給abc文件的全部用戶添加讀的權限:chmod a+r

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

r=4 w=2 x=1     rwx=4+2+1=7

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

至關於 chmod 751 文件目錄名

應用案例:將/home/abc.txt文件的權限修改爲 rwxr-xr-x.使用數字的方式實現:chmod 755 /home/abc.txt

修改文件全部者-chown:

基本介紹:

chown newowner file 改變文件的全部者

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

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

應用案例:

1)將abc.txt文件的全部者修改成tom:chown tom abc.txt

2)將/home/kkk 目錄下全部的文件和目錄的全部者修改爲tom(首先使用root來進行操做):chown -R tom /home/kkk

修改文件所在組-chgrp

基本介紹:

chgrp newgroup file 改變文件的全部組

應用案例:

1) 請將 /home/abc.txt 文件的所在組修改爲bandit:chgrp bandit /home/abc.txt

2) 請將 /home/kkk 目錄下全部的文件和目錄的所在組都修改爲 shaolin:chgrp -R shaolin kkk

crond 任務調度:

crontab進行 定時任務的設置(定時的調度咱們的jiao本或者代碼 -》 crontab機制)

特殊說明:若是隻是簡單的任務,能夠不用寫腳本,直接在crontab中加入任務便可。對於比較複雜的任務,須要寫腳本(Shell編程)

概述:

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

任務調度分類:1系統工做:有些重要的工做必須周而復始的執行。如病毒掃描等

2.個別用戶工做:個別用戶可能但願執行某些程序,好比對mysql數據庫的備份。

基本語法:

crontab [選項]

經常使用選項:

-e     編輯crontab定時任務

-l     查詢crontab任務

-r       刪除當前用戶全部的crontab任務

service crond restart 重啓任務調度

任務的要求:

設置任務調度文件:etc/crontab

設置我的任務調度:執行 crontab -e 命令

接着輸入任務到調度文件如:*/1 * * * *ls -l /etc/ >> /tmp/to.txt 命令

意思是每小時的每分鐘執行ls -l/etc/ >> /tmp/to.txt 命令

步驟以下:

1) crontab -e

2)*/1 * * * * ls -l /etc/ >> /tmp/to.txt

3)當保存退出後就執行

4)在每一分鐘都會自動的調用ls -l/etc/ >> /tmp/to.txt 命令

參數細節說明:

5個佔位符的說明:

項目        含義            範圍

第一個"*"      一個小時當中的第幾分鐘   0-59

第二個"*"      一天當中的第幾個小時    0-23

第三個"*"      一個月當中的第幾天      1-31

第四個"*"      一年當中的第幾月      1-12

第五個"*"      一週當中的星期幾      0-7(0和7都表明星期日)

特殊符號      含義

*           表明任什麼時候間。好比第一個"*"就表明一小時每分鐘都執行一次的意思

,          表明不連續的時間。好比"0 8,12,23 * * *命令",就表明在天天的8點0分,12點0分,16點0分都執行一次命令

-           表明連續的時間範圍。好比"0 5 1-7 1,6 1,2命令",表明一個月的第一天到第七天都要執行命令

*/n          表明每隔多久執行一次。好比"*/10 * * * * 命令",表明每隔10分鐘就執行一次命令。

任務調度的幾個應用實例:

1)每隔1分鐘,就將當前的日期信息,追加到 /tmp/mydate 文件:

腳本的方式:

①先編寫一個文件 /home/mytask1.sh:date >> tmp/mydate

②給mytask1.sh  一個能夠執行權限 : chmod 744 mytask1.sh

③crontab -e 

④* /1 * * * * /home/mytask1.sh

2)每隔1分鐘,就將當前的日期和日曆都追加到 /home/mycal 文件中:同上

3)天天凌晨2:00將mysql數據庫 testdb,備份到文件中:同上

Linux磁盤分區、掛載:

分區的方式:

1)mbr分區:

①最多支持四個主分區

②系統行只能安裝在主分區

③擴展分區要佔一個主分區

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

2)gtp分區(更優):

①支持無限多個主分區(但操做系統可能限制,好比windows下最多128個分區)

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

③windows7 64位之後支持gtp

Linux分區:

原理介紹:

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

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

硬盤說明:

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

查看系統分區和掛載狀況指令:lsblk -f
掛載的經典案例:

需求是給咱們的Linux系統增長一個新的硬盤,而且掛載到/home/newdisk

如何增長一塊硬盤:

1)虛擬機添加硬盤 -設置添加

2)分區   fdisk /dev/sdb

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

4)掛載  

先建立一個目錄 /home/newdisk

掛載 mount /dev/sdb1   /home/newdisk,卸載 umount /home/newdisk 或者 umount /dev/sdb1

5)設置自動掛載(永久掛載,當你重啓系統,仍然能夠掛載到/home/newdisk)

①vim /etc/fstab 添加一行/dev/sdb1      /home/newdisk           ext4    defaults        0 0

②mount -a 

磁盤狀況查詢:

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

基本語法:

df -h

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

基本語法:

du -h /目錄

查詢指定目錄的磁盤佔用狀況,默認爲當前目錄

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

-h 帶計量單位

-a 含文件

--max-depth=1 子目錄深度

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

應用案例:

查詢/opt 目錄的磁盤佔用狀況,深度爲1:du -ach --max-depth /opt

磁盤狀況-工做實用指令:

1)統計/home 文件夾下文件的個數(統計數目指令:wc -l):ls -l /home | grep "^-" | wc -l

2)統計/home 文件夾下目錄的個數:ls -l /home | grep "^d" | wc -l

3)統計/home 文件夾下文件的個數,包括子文件夾裏的:ls -lR(R表明遞歸出全部文件目錄) /home | grep "^-" | wc -l

4)統計文件夾下目錄的個數,包括子文件夾裏的:ls -lR(R表明遞歸出全部文件目錄) /home | grep "^-d | wc -l

5)以樹狀顯示目錄結構:tree

安裝指令的指令:yum install 指令

Linux網絡配置:

查看虛擬網絡編輯器:

編輯 -> 虛擬網絡編輯器

修改ip地址:修改虛擬網卡的ip

查看網關:

編輯 -> 虛擬網絡編輯器 -> nat設置

ping 測試主機之間網絡連通性

基本語法:

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

應用實例:

測試當前服務器是否能夠鏈接百度:ping www.baidu.com

Linux網絡環境配置:

說明:登錄後,經過界面的倆設置自動獲取ip

第一種方式:經過界面設置獲取(缺點:linux啓動後會自動獲取IP缺點是每次自動獲取的ip地址可能不同。這個不適用於作服務器,由於咱們的服務器的IP須要是固定的

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

說明:

直接修改配置文件來指定IP,並能夠鏈接到外網(程序員推薦),編輯 vi /etc/sysconfig/network-scripts/ifcfg-eth0

要求:將ip地址配置成靜態的,ip地址爲192.168.204.128

重啓網絡服務或者重啓系統生效:service network restart

Linux進程管理:

進程的基本介紹:

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

2)每個進程,都會對應一父進程,而這個父進程能夠複製多個子進程。例如www服務器。

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

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

顯示系統執行的進程:

說明:查看進行使用的指令是 ps -[選項]。通常來講使用的參數是 ps -aux

選項說明:

ps -a:顯示當前終端的全部進程信息

ps -u:以用戶的格式顯示進程信息

ps -x:顯示後臺進程運行的參數

顯示進程指令:ps -aux(顯示內容信息:①USER:用戶名 ②PID:進程id ③%CPU:佔用的cpu ④$MEM:佔用內存 ⑤VSZ:使用的虛擬內存 RSS:使用的物理內存狀況

STAT:進程的狀態 START:啓動時間 TIME:佔用CPU總時間 COMMAND:進程執行時的命令行)

查看進程的父進程:ps -ef

應用案例:

查看sshd的父進程:ps -ef | grep sshd

終止進程kill和killall

介紹:

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

kill 進程號(功能描述:經過進程名稱殺死進程)

killall 進程名稱(功能描述:經過進程名稱殺死進程,也支持通配符,這在系統因負載過大而變得很慢時頗有用)

經常使用選項:

-9 表示強迫進程當即中止

應用案例:

1)踢掉非法用戶:kill 4410(4410爲用戶的進程號)

2)終止遠程登陸服務sshd,在適當時候再次重啓sshd服務:

①經過ps -ef | grep sshd 找到該服務

②kill 3200(該服務的進程號)

3)終止多個gedit編輯器[killall經過名稱殺死進程]:killall gedit

4)強制殺掉一個終端:kill -8 該進程號

查看進程樹pstree

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

經常使用選項:

-p:顯示進程的PID

-u:顯示進程所屬用戶

應用案例:

1)以樹狀的形式顯示進程的pid:pstree -p

2)以樹狀的形式顯示進程的用戶id:pstree -u

服務(Service)管理:

介紹:

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

service 管理指令:

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

在CentOs7.0後,再也不使用service,而是systemct|

應用案例:

查看當前防火牆的情況,關閉防火牆和重啓防火牆:

①service iptables status

②service iptables stop

③service iptables restart

在Windows命令行下經過telnet指令檢查Linux的某個端口是否在監聽,而且能夠訪問: telnet ip 端口號

細節說明:

1)關閉或者啓用防火牆後,當即生效。[telnet 測試 某個端口便可]

2)這種方式知識臨時生效,當重啓系統後,仍是迴歸之前對服務的設置。

3)若是但願設置某個服務自啓動或關閉永久生效,要使用chkconfig指令。

查看服務名:

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

方式2: /etc/init.d/服務名稱: ls -l /etc/init.d

Linux開機流程:

開機 -> BIOS -> /boot -> init進程1 -> 運行級別 -> 運行級對應的服務

若是不當心將運行級別設置成0或者6的任意一個,在開機時進入單用戶模式,修改便可

chkconfig指令:

介紹:

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

基本語法

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

2)chkconfig 服務名 --list

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

應用案例:

1)查看sshd的服務:chkconfig  --list | grep sshd 或者 chkconfig sshd --list

2)設置sshd服務在運行級別爲5的狀況下不要自啓動:chkconfig --level 5 sshd off

3)顯示當前系統全部服務的各個運行級別的運行狀態:chkconfig --list

4)在全部運行級別下,關閉防火牆: chkconfig iptables off

細節:

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

監控網絡狀態:(能夠查看誰正在訪問該系統)

查看系統網絡狀況netstat

基本語法:

netstat [選項]

選項說明

-an 按必定順序排列輸出

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

應用案例:

1)查看系統全部的網絡服務:netstat -anp | more

2)查看服務名爲sshd的服務的信息:netstat -anp | grep sshd

動態監控進程:

介紹:

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

基本語法:

top [ 選項]

選項說明:

選項    功能

-d     指定top命令每隔幾秒更新,默認是3秒在top命令的交互模式當中能夠執行的命令

-i     使top不顯示任何閒置或者僵死進程

-p     經過指定監控進程ID來僅僅監控某個進程的狀態

交互操做說明:

操做  功能

P    以CPU使用率排序,默認就是此項

M    之內存的使用率排序

N    以PID排序

q    退出top  

應用案例:

1)監視特定用戶

top:輸入此命令,按回車鍵,查看執行的進程

u:而後輸入「u」 回車,再輸入用戶名,便可

2)終止指定的進程:

top:輸入此命令,按回車鍵,查看執行的進程

k:而後輸入"k"回車,再輸入要結束的進程ID號

3)指定系統狀態更新的時間(每隔10秒自動更新,默認是每三秒刷新一次):top -d 10

rpm包的管理:

rpm包的簡單查詢指令:

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

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

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

查詢文件所屬的軟件包:rpm -qf 文件全路徑名  案例:rpm -qf /etc/passwd

yum安裝指令:

介紹:

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

yum的基本指令:

查詢yum服務器是否有須要安裝的軟件:yum list | grep xx軟件列表

安裝指定的yum包:yum install xxx 下載安裝

應用案例:

1).查詢本機的firefox是否須要安裝:yum list | grep firefox

2).使用yum的方式來安裝firefox:yum install firefox(默認安裝最新版本的軟件)

Linux之JavaEE的開發環境的搭建:

概述:

若是須要在Linux下進行JavaEE的開發,咱們須要安裝以下軟件:mysql,jdk,eclipse,apache

安裝JDK:

安裝步驟:

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

2)解壓縮到 /opt

3)配置環境變量的配置文件:vim /etc/profile(環境便利那個配置文件)

4)JAVA_HOME=/opt/jdk1.7.0_79

5)PATH=/opt/jdk1.7.0/bin:$PATH

6)export JAVA_HOME PATH

須要註銷用戶環境變量纔會生效:

若是是在3運行級別,使用logout

若是是在5運級別:點擊右上角的root用戶便可

測試是否安裝成功:編寫一個Hello.java 輸出 "hello,world!":

①建立.java文件

②編輯該文件,輸出helloWorld!

③使用javac 編譯該文件:javac 文件名.java

④運行編譯以後的class文件:java 文件名.class

Linux tomcat的安裝:

 步驟:

1)解壓縮到/opt

2)啓動tomcat(在bin目錄下):./startup.sh

3)開放端口 vim /etc/sysconfig/iptables:複製22端口的一行,修改成8080,這樣便可打開8080端口,而後重啓防火牆生效,這樣就能夠經過windows打開8080端口

測試是否安裝成功:

在windows、Linux下訪問 localhost:8080

Eclipse的安裝:

步驟:

1)解壓縮到/opt

2)啓動eclipse,配置jre和server

①快捷方式啓動

②./ 方式啓動

3)編寫hello world 程序並測試成功

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

mysql的安裝和配置:

注意:先刪除Mysql相關的軟件

1)首先卸載舊版本

使用下面的命令減產是否安裝有Mysql Server:rpm -ga | grep mysql(若是查詢到mysql-libs就進行刪除)

刪除指令:rpm -e mysql-libs

強制刪除:rpm -e --nodeps mysql-libs

2)安裝編譯代碼須要的包:

yum -y install make gcc-c++ cmake bison-devel ncurses-devel

①下載安裝mysql:

tar -zxvf mysql

②使用如下指令編譯安裝:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

③編譯並安裝:

make && make install

3)建立mysql的用戶和組:

groupadd mysql

useradd -g mysql mysql

修改/usr/local/mysql權限:

chown -R mysql:mysql /usr/local/mysql  

4)初始化配置,進入安裝路徑(再執行一下指令),執行初始化配置腳本,建立系統自帶的數據庫和表:

scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

5)若是存在/etc/my.cnf,將其刪除,由於它會干擾mysql文件中的my.cnf

6)啓動mysql:mysql -u root -p

7)環境變量配置:

①打開/etc/profile

②在配置環境變量一行加入mysql的路徑

相關文章
相關標籤/搜索