學習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的路徑