主要內容介紹
1、LINUX操作系統安裝及初始化配置(熟悉);
2、LINUX操作系統目錄組成結構及文件級增刪改查操作(重點);
3、LINUX操作系統用戶、權限管理(重點);
4、開源軟件及LINUX下軟件包的管理(重點);
5、LINUX操作系統磁盤管理(了解);
6、LINUX操作系統網絡基礎(重點);
7、LINUX操作系統狀態監控命令(了解);
8、LINUX操作系統進程管理(重點);
9、網絡服務基礎(了解);
第一單元 Linux的安裝及相關配置
計算機操作系統簡介
操作系統是什么
操作系統的內核是什么
兩種操作系統用戶界面
安裝Linux操作系統的准備工作
LINUX發行版(CENTOS、RHEL、FEDORA、UBUNTU、SUSE)
RHEL與CENTOS的關系
為什么選擇Red Hat Enterprise Linux
安裝Linux操作系統
圖形安裝
最小化安裝
課后作業
【本節內容】
1. 計算機操作系統簡介
1) 掌握操作系統的定義:操作系統是一個用來協調、管理和控制計算機硬件和軟件資源的系統程序,它位於硬件和應用程序之間。、
2) 掌握操作系統的內核的定義:操作系統的內核是一個管理和控制程序,負責管理計算機的所有物理資源,其中包括。文件系統、內存管理、設備管理和進程管理。
3) 了解兩種操作系統用戶界面 :圖形界面、命令行界面。
2. 了解LINUX主要發行版:CENTOS、RHEL、FEDORA、UBUNTU、SUSE
3. 安裝Linux操作系統的准備工作
1) 了解為什么選擇Red Hat Enterprise Linux:
因為它是所有Linux/UNIX系統中最容易安裝,同時也是應用最廣的一種Linux操作系統。而Linux操作系統多數是用作服務器的,由於使用Linux的成本十分低廉,因此目前許多Internet服務器都是使用Linux操作系統。
4. 安裝Linux操作系統(詳見鳥哥私房菜P102)。
1) 掌握安裝Linux操作系統時對內存的最低要求為:512M
2) 掌握安裝過程中的各選項的含義:
a) install or upgrade an existing system:安裝或升級現有的系統
b) install system witn basic video driver:安裝系統和基本的視頻驅動程序
c) rescue installed system:救援安裝系統
d) boot from local drive:從本地硬盤啟動
3) 了解安裝過程語言的選擇為簡體中文的選項為:
Chinese(Simplified)
4) 掌握默認的主機名為:localhost.localdomian
5) 掌握安裝過程中密碼的設置:無需復雜性要求。
6) 掌握選擇skip按鈕會跳過對安裝介質的檢測。
7) 掌握最小化安裝相關事項:
a) 掌握最小化安裝時無法開啟圖形桌面。
b) 掌握文本界面下用戶登陸輸入的密碼不顯示。
c) 掌握最小化安裝系統時默認缺失的程序為:x-window
(關於X-window的解釋詳見鳥哥私房菜第二十四章)
8) 掌握默認的管理員為root
5. 課后作業
1) 圖形安裝Linux操作系統(1小時)
2) 最小化安裝Linux操作系統(35分鍾)
第二單元 UNIX和Linux操作系統概述
UNIX是什么
UNIX操作系統的特點
UNIX 與Linux的關系
GNU項目與自由軟件
GUN計划
自由軟件意味着什么
Linux簡介
Linux是什么
Linux操作系統的主要用途及企業
常見的兩種桌面環境
登錄和退出Linux
init 0命令
什么是Linux終端
虛擬終端的切換
系統提示符“$”和“#”
exit命令
課后作業
【本節內容】
1. UNIX是什么
1) 掌握UNIX的定義: UNIX是一個計算機操作系統,一個用來協調、管理和控制計算機硬件和軟件資源的控制程序。
2) 了解UNIX操作系統的特點:多用戶和多任務
a) 多用戶表示在同一時刻可以有多個用戶同時使用UNIX操作系統而且他們互不干擾;
b) 多任務表示任何一個用戶在同一時間可以在UNIX操作系統上運行多個程序。
2. 了解UNIX的簡要發展史
(詳見鳥哥私房菜P40-P52或linux系統管理P13)
3. GNU項目與自由軟件
1) 了解GUN計划,是由Richard Stallman在1983年9月27日公開發起的,它的目標是創建一套完全自由的操作系統。
2) 了解GPL條款
GPL條款是為保證GNU軟件可以自由地使用、復制、修改和發布,所有GNU軟件都有一份在禁止其他人添加任何限制的情況下授予所有權利給任何人的協議條款。
3) 了解自由軟件意味着:
a) 你有自由以任何目的來運行該程序。
b) 你有修改程序滿足自己需求的自由。
c) 你有權利重新發布副件,既可以白送也可以收取一定費用。
d) 你有權利發布該程序修改過的版本,從而讓其他人得益於你的改進。
4. Linux簡介
1) 掌握Linux的定義:Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。
2) 掌握Linux操作系統的主要用途:主要用於服務器,特別是網絡服務器。
3) 掌握兩種常見的桌面環境:KDE和GNOME。
5. 登錄和退出Linux(操作演示圖解見linux系統管理P17-P22)
1) 掌握關閉Linux系統的命令:init 0
2) 掌握什么是Linux終端:Linux終端也稱為虛擬控制台。Linux終端采用字符命令行方式工作,用戶通過鍵盤輸入命令,通過Linux終端對系統進行控制。
3) 掌握切換虛擬終端的方法:Ctrl+Alt+F[1~6],如想切換到第二號虛擬終端,則同時按Ctrl+Alt+F2
4) 掌握普通用戶登錄后系統的提示符:$
5) 掌握root用戶登錄后系統的提示符:#
6) 掌握退出命令:exit
6. 課后作業 (用時25分鍾)
1) 開啟Linux操作系統,要求以root用戶登錄GNOME圖形界面,語言支持選擇為漢語
2) 使用快捷鍵切換到虛擬終端2,使用普通用戶身份登錄,查看系統提示符
3) 使用命令退出虛擬終端2上登錄的用戶
4) 使用快捷鍵切換到虛擬終端5,使用管理員身份登錄,查看系統提示符
5) 使用命令退出虛擬終端5上登錄的用戶
6) 切回圖形界面,右單擊桌面打開終端,輸入關閉系統的命令
第三單元 Linux命令及獲取幫助
Linux命令的格式
命令的語法格式
命令格式中命令、選項、參數的具體含義
whoami命令
whoami命令的功能
who命令
who命令的功能
who命令的輸出結果
date、cal、和clear命令及帶有參數的命令
date命令的功能
cal命令的功能
cal命令用法舉例
clear命令的功能
清屏快捷鍵
su和passwd命令
su命令的功能
su命令用法舉例
passwd命令功能
passwd用法舉例
利用man命令來獲取幫助信息
man命令功能
man命令用法舉例
使用“命令名 --help”獲取幫助
課后作業
【本節內容】
1. Linux命令的格式(詳見linux系統管理P23)
1) 了解Linux命令的語法格式:
命令 【選項】 【參數】
2) 掌握命令格式中命令、選項、參數的具體含義
a) 命令:告訴Linux(UNIX)操作系統做(執行)什么。
b) 選項:說明命令運行的方式(可以改變命令的功能)。選項部分是以“-”字符開始的。
c) 參數:說明命令影響(操作)的是什么(如一個文件、一個目錄或是一段正文文字)
Ls –a /
2. whoami命令(詳見linux系統管理P24)
1) 了解whoami命令的功能:列出目前登陸Linux系統所使用的用戶名(賬號)。
3. who命令(詳見linux系統管理P25)
1) 掌握who命令的功能:列出目前哪些用戶在系統上工作。
2) 掌握who命令的輸出結果:顯示當前登錄的所有用戶,以及當前的日期和時間。
4. date、cal、和clear命令及帶有參數的命令
(詳見linux系統管理P28-P29)
1) 掌握date命令的功能:顯示系統當前的日期和時間。
2) 掌握date命令設置時間時間的格式:date 月日時分年。
例如:將時間設定成2013年12月24日上午10點18的命令:
擴展(date 12241018201
hwclock –s 同步硬件 –w 同步系統)
3) 掌握cal命令的功能:顯示某月的日歷。
4) 靈活應用cal命令列出某一年某月的日歷:例如顯示2008年8月份日歷的命令為:cal 8 2008
5) 掌握clear命令的功能:清除屏幕
6) 掌握清屏快捷鍵:ctrl+l
5. su和passwd命令(詳見linux系統管理P29-P31)
1) 掌握su命令的功能:從當前的用戶切換到另一個指定的其他用戶。
2) 靈活應用su命令切換用戶:
例如:切到root用戶的命令:su – root
3) 掌握passwd命令功能:修改用戶(既可以是普通用戶,也可以是root用戶)的密碼,查看用戶的密碼狀態等。Useradd
4) 掌握使用passwd命令修改用戶密碼:
例如:修改dog用戶密碼的命令:passwd dog
6. 利用man命令來獲取幫助信息(詳見linux系統管理P34)
1) 掌握man命令的功能:獲取某個Linux命令的使用說明。
2) 掌握使用man命令查看某命令的使用說明:
例如:查看su命令的使用說明的命令為:man su
7. 使用“命令名 --help”獲取幫助
1) 例如:查看ls命令幫助的命令為:(不使用man方法)
ls –-help
8. 課后作業(用時30分鍾)
1) 要求以root用戶登錄系統,右擊桌面打開終端,查看當前登陸Linux系統所使用的用戶名
2) 查看哪些用戶在系統上工作
3) 修改當前時間為2018年8月26號11:28
4) 查看2015年10月份日歷
5) 使用兩種方法查看ls命令的使用說明
6) 清除屏幕
7) 使用“useradd tom”命令新建tom用戶,為tom用戶設置密碼“123”
8) 切換當前用戶為tom
9) 查看當前登陸Linux系統所使用的用戶名
第四單元 目錄文件的瀏覽、管理及維護(一)
Linux文件系統的層次結構
Linux文件系統的樹狀結構
目錄是什么
頂層根目錄的表示
文件系統中的兩個特殊目錄
Linux系統中的一些重要的目錄
bin目錄
sbin目錄
家目錄
dev目錄
etc目錄
掛載目錄/media或/mnt
其他常用目錄
絕對和相對路徑
絕對路徑
相對路徑
課后作業
【本節內容】
1. Linux文件系統的層次結構(詳見linux系統管理P40)
1) 了解Linux文件系統的樹狀結構:
在Linux或UNIX操作系統中,所有的文件和目錄都被組織成一個以根節點開始的倒置的樹狀結構。
2) 掌握目錄的定義:目錄相當於Windows中的文件夾,目錄中存放的既可以是文件,也可以是其他的子目錄。
3) 掌握頂層根目錄的表示:
使用“/”來表示根目錄
4) 了解文件系統中的兩個特殊目錄:
. 表示當前目錄,即用戶所在的工作目錄
.. 表示父目錄,即當前目錄的上一層目錄
2. Linux系統中的一些重要的目錄(詳見linux系統管理P41)
1) 掌握Linux中的一些重要目錄
a) bin目錄:用來存放常用的可執行文件
b) sbin目錄:用來存放系統的可執行文件
c) 家目錄:用來存放用戶自己的文件或目錄,其中,超級用戶root的家目錄是/root,而普通用戶的家目錄被存放在/home目錄下,並使用用戶名作為最后一級目錄(家目錄)的名稱,如cat用戶的家目錄為/home/cat
d) dev目錄:設備文件目錄
e) etc目錄:配置文件目錄
f) 掛載點(目錄):通常可移除式硬件會被掛載在/media或/mnt目錄之下
3. 絕對和相對路徑(詳見linux系統管理P43)
1) 掌握絕對路徑的定義:必須以一個正斜線(/)開始。絕對路徑包括從文件系統的根節點開始到要查找的對象(目錄或文件)所必須遍歷的每一個目錄的名字,它是文件位置的完整路標,因此在任何情況下都可以使用絕對路徑找到所需的文件。
2) 掌握相對路徑的定義:不是以正斜線(/)開始,相對路徑可以包含從當前目到要查找的對象(目錄或文件)所必須遍歷的每一個目錄的名字。
4. 課后作業(用時25分鍾)
1) 開啟Linux操作系統,要求以root用戶登錄GNOME圖形界面
2) 右擊桌面打開終端,使用“useradd lucy”命令創建lucy用戶
3) 使用鼠標點擊的方法進入根目錄
4) 點擊進入root用戶的家目錄
5) 點擊進入lucy用戶的家目錄
6) 點擊進入用來存放常用的可執行文件的目錄
7) 點擊進入用來存放系統的可執行文件的目錄
8) 點擊進入設備文件目錄
9) 點擊進入配置文件目錄
第五單元 目錄文件的瀏覽、管理及維護(二)
使用pwd和cd命令來確定和切換目錄
pwd命令的功能
cd命令的功能
cd ..
cd ~
cd –
cd
使用ls命令列出目錄中的內容
ls命令的功能
ls –a
ls –all
ls –l
使用cp命令復制文件和目錄
cp命令的功能
–i選項
–r選項
–p選項
–f選項
使用mv命令移動及修改文件和目錄名
mv命令的功能
mv命令的用法舉例
使用mkdir命令創建目錄
mkdir命令的功能
mkdir命令的用法舉例
使用touch命令創建文件
touch命令的功能
touch命令的用法舉例
使用rm命令刪除文件
rm命令的功能
–i選項
–r選項
–f選項
rm命令的用法舉例
使用rmdir或rm –r命令刪除目錄
rmdir命令的功能
rmdir命令的用法舉例
rm –r命令的功能
rm –r命令的用法舉例
使用cat命令瀏覽正文文件的內容
cat命令的功能
cat命令的用法舉例
使用head命令瀏覽文件中的內容
head命令的功能
–n選項
head命令的用法舉例
使用tail命令瀏覽文件中的內容
tail命令的功能
–n選項
tail命令的用法舉例
使用more命令瀏覽文件
more命令的功能
more命令的用法舉例
課后作業
【本節內容】
1. 使用pwd和cd命令來確定和切換目錄(詳見linux系統管理P43-P46)
1) 掌握pwd命令的功能:確定現在所在的工作目錄
2) 掌握cd命令的功能:切換當前目錄
3) 掌握“cd ..”命令:進入上一級目錄
4) 掌握“cd ~”命令:切換到用戶的家目錄
5) 掌握“cd”命令:同cd ~,也可切換到用戶的家目錄
6) 掌握“cd –”命令:切換到用戶之前的工作目錄
7) 掌握“cd 目錄名”命令:切換到指定的目錄。
a) 例如:切換到/home/dog目錄的命令為:cd /home/dog
2. 使用ls命令列出目錄中的內容(詳見linux系統管理P47-P50)
1) 掌握ls命令的功能:列出當前目錄(默認為當前目錄)或指定目錄中的內容
2) 掌握ls -a命令:列出目錄下的所有文件,包括以“.”開頭的隱含文件
a) 例如:列出/home/dog目錄中的所有文件,包括隱藏文件的命令:ls -a /home/dog
3) 了解ls –all命令:同ls –a
4) 掌握ls –l命令:列出某個目錄中每一個文件的詳細資料
例如:列出/home/dog目錄中所有非隱藏文件的細節的命令:
a) ls –l /home/dog
3. 使用cp命令復制文件和目錄(詳見linux系統管理P50)
1) 掌握cp命令的功能:將文件(可以是多個)復制成一個指定的目的文件或復制到一個指定的目標目錄中。
2) 掌握cp命令的常用選項:
Cp 源文件 目標文件
a) –r(recursive,遞歸的):遞歸地復制目錄。當復制一個目錄時,復制該目錄中所有的內容,其中包括子目錄的全部內容。
i) 例如:將/home/dog目錄中的內容全部復制目錄/home/cat中的命令為:
cp –r /home/dog /home/cat
b) -f(force,強制):在目標文件已經存在的時候不詢問直接強制復制
4. 使用mv命令移動及修改文件和目錄名(詳見linux系統管理P54)
1) 掌握mv命令的功能:既可以在不同的目錄之間移動文件和目錄,也可以重新命名文件和目錄。
2) 掌握mv命令的用法舉例:
a) 移動文件和目錄的例子:
將當前目錄中的lists文件移動到其子目錄babydog中的命令:
mv lists babydog
b) 重命名文件和目錄的例子:
將bigdog目錄名改為babydog的命令:
mv bigdog babydog
5. 使用mkdir命令創建目錄(詳見linux系統管理P55)
1) 掌握mkdir命令的功能:創建一個新目錄
2) 掌握mkdir命令的用法舉例:
創建目錄daddog的命令:mkdir dadgog
6. 使用touch命令創建文件(詳見linux系統管理P56)
1) 掌握touch命令的功能:可以創建一個空文件,也可以同時創建多個文件。
2) 掌握touch命令的用法舉例:
在當前目錄中創建一個名為babydog1的文件的命令:
touch babydog1
7. 使用rm命令刪除文件(詳見linux系統管理P57)
1) 掌握rm命令的功能:永久地在文件系統中刪除文件或目錄。
2) 掌握rm命令的常用選項:
a) –r(recursive,遞歸的):遞歸地刪除目錄。當刪除一個目錄時,刪除該目錄中所有的內容,其中包括子目錄中的全部內容。
b) –f(force,強制):系統並不詢問而是強制刪除,即直接刪除原有的文件。
3) 掌握rm命令的用法舉例:
刪除當前目錄中的babydog1文件的命令:rm babydog1
8. 使用rmdir或rm –r命令刪除目錄(詳見linux系統管理P59)
1) 掌握rmdir命令的功能:刪除空目錄。
2) 掌握rmdir命令的用法舉例:
刪除空目錄 mumdog/girldog/babydog的命令:
rmdir mumdog/girldog/babydog
3) 掌握rm –r命令的功能:刪除包含文件和子目錄的目錄。
4) 掌握rm –r命令的用法舉例:
刪除非空目錄mumdog的命令:
rm –r mumdog
9. 使用cat命令瀏覽正文文件的內容(詳見linux系統管理P73)
5) 掌握cat命令的功能:將一個或多個文件的內容顯示在屏幕上,該命令會不停的以只讀的方式顯示整個文件的內容。
6) 掌握cat命令的用法舉例:
a) 瀏覽game.txt文件中的全部內容的命令:
cat game.txt
10. 使用head命令瀏覽文件中的內容(詳見linux系統管理P75)
1) 掌握head命令的功能:默認將顯示一個文件的前10行。
2) 掌握head命令的常用選項:
-n 改變顯示的行數
3) 掌握head命令的用法舉例:
a) 查看/etc/passwd文件中前10行的詳細信息的命令:
head /etc/passwd
b) 查看/etc/passwd文件中前5行的詳細信息的命令:
head –n 5 /etc/passwd
11. 使用tail命令瀏覽文件中的內容(詳見linux系統管理P76)
1) 掌握tail命令的功能:默認顯示文件最后10行的內容。
2) 掌握tail命令的常用選項:
-n 顯示從文件末尾算起的n行
3) 掌握tail命令的用法舉例:
a) 查看/etc/passwd文件中最后10行的詳細信息的命令:
tail /etc/passwd
b) 查看/etc/passwd文件中最后5行的詳細信息的命令:
tail –n 5 /etc/passwd
12. 使用more命令瀏覽文件(詳見linux系統管理P78)
1) 掌握more命令的功能:使用more命令之后,每次在屏幕上顯示一屏(一頁)的文件內容,並且在屏幕的尾部將會出現“—More--(n%)”的信息,其中,n%是已經顯示文件內容的百分比。
2) 靈活應用more命令
a) 分頁瀏覽learning.txt文件內容的命令:
more learning.txt
13. 課后作業(用時60分鍾)
1) 開啟Linux操作系統,要求以root用戶登錄GNOME圖形界面,右擊桌面打開終端
2) 使用命令切換到root用戶的家目錄
3) 確定當前用戶所在的工作目錄
4) 創建目錄wg
5) 使用絕對路徑的方法在wg目錄下新建文件a.txt
6) 進入wg目錄
7) 使用相對路徑的方法在當前目錄下新建wg01目錄和b.txt文件
8) 以長列表格式列出當前目錄下的內容
9) 刪除空目錄wg01
10) 進入上一級工作目錄
11) 強制刪除非空目錄wg
12) 復制/etc/passwd到當前目錄,名為file1
13) 不停的以只讀的方式查看file1文件的內容
14) 查看file1文件的前3行內容
15) 查看file1文件的后2行內容
16) 以百分比的方式分頁查看file1文件的內容
17) 以上下翻頁的方法分頁查看file1文件的內容
第六單元 用戶、群組和權限
用戶及passwd文件
/etc/passwd文件的功能
/etc/passwd文件每個字段的具體含義
shadow文件
/etc/shadow文件的功能
/etc/shadow文件每個字段的具體含義
群組及group文件
/etc/group文件的功能
/etc/group文件的功能
怎樣在Linux系統中添加一個新的用戶賬戶
useradd命令的功能
useradd命令的常用選項
useradd命令的用法舉例
使用usermod命令修改用戶賬戶
usermod命令的功能
usermod命令修改用戶賬戶信息時的常用選項
usermod命令的用法舉例
使用usermod命令鎖住用戶及將用戶解鎖
usermod –L命令
usermod –U命令
使用userdel命令刪除用戶賬號
userdel命令的功能
userdel的常用選項
userdel的用法舉例
群組的管理
groupadd命令的功能
groupadd命令的常用選項
groupadd命令的用法舉例
groupmod命令的功能
groupmod命令的常用選項
groupmod命令的用法舉例
groupdel命令的功能
groupdel命令的用法舉例
課后作業
【本節內容】
詳見:http://cn.linux.vbird.org/linux_basic/0410accountmanager.php
1. 用戶及passwd文件
1) 掌握/etc/passwd文件的功能:存儲所有用戶的相關信息,該文件也被稱為用戶信息數據庫(Database)。
2) /etc/passwd文件每個字段的具體含義:
a) 第1個字段(列)記錄的是這個用戶的名字(在創建用戶時root用戶起的)。
b) 第2個字段(列)如果是x,表示該用戶登錄Linux系統時必須使用密碼;如果為空,則該用戶在登錄時無須提供密碼。
c) 第3個字段(列)記錄的是這個用戶的uid。
d) 第4個字段(列)記錄的是這個用戶所屬群組的gid。
e) 第5個字段(列)記錄的是有關這個用戶的注釋信息(如全名或通信地址)。
f) 第6個字段(列)記錄的是這個用戶的家目錄的路徑。
g) 第7個字段(列)記錄的是這個用戶登錄后,第一個要執行的進程。
2. shadow文件(詳見linux系統管理P133)
1) /etc/shadow文件的功能:存儲所有用戶的密碼,每一個用戶占用一行記錄,該文件實際上就是存放用戶密碼的數據庫(Database)。
2) /etc/shadow文件每個字段的具體含義:
a) 第1個字段(列)是用戶名。
b) 第2個字段(列)是密碼,這個密碼是經過MD5加密算法加密過的密碼。
3. 群組及group文件(詳見linux系統管理P135)
1) /etc/group文件的功能:存放了Linux系統中所有群組的信息,它實際上就是一個存放群組信息的數據庫(Database)。
2) /etc/group文件每個字段的具體含義:
a) 第1個字段是這個群組的名字。
b) 第2個字段中的x表示這個群組在登錄Linux系統時必須使用密碼。
c) 第3個字段記錄的是這個群組的gid。
d) 第4個字段記錄的是這個群組里還有哪些群組成員。
4. 怎樣在Linux系統中添加一個新的用戶賬戶(詳見linux系統管理P449)
1) 掌握useradd命令的功能:新增一個用戶。
2) 了解useradd命令的常用選項:
a) –u:指定用戶的UID
b) –g:指定用戶所屬的群組
c) –d:指定用戶的家目錄
d) –c:指定用戶的備注信息
e) –s:指定用戶所用的shell
3) 靈活應用useradd命令的舉例:
a) 例如:在系統中新增一個fox(狐狸)用戶的命令:useradd fox
b) 例如:在系統中新增一個用戶user01,屬組為police以及uid為600的命令:
useradd –u 600 –g police user01
5. 使用usermod命令修改用戶賬戶(詳見linux系統管理P458)
1) 掌握usermod命令的功能:修改用戶的賬戶信息。
2) 了解usermod命令的常用選項:
a) –u:修改用戶的UID
b) –g:修改用戶的GID
c) –G:將一個用戶加入到指定的群組中
d) –d:修改用戶的家目錄
e) –c:修改用戶的備注信息
f) –s:修改用戶所用的shell
3) 靈活應用usermod命令的舉例:
a) 修改babydog4用戶的家目錄為/home/babies的命令:
usermod –d /home/babies babydog4
b) 將babydog4這個用戶添加到babydog6這個群組中的命令:
usermod –G babydog6 babydog4
c) 將babydog4這個用戶的的gid變更為dog群組的命令:
usermod –g dog babydog4
6. 使用usermod命令鎖住用戶及將用戶解鎖(詳見linux系統管理P461)
1) 了解usermod –L命戶令的功能:將用戶的賬號鎖住
2) 了解usermod –L命戶令的用法舉例:
例如:將babydog6用戶的賬號鎖住的命令:usermod –L babydog6
3) 了解usermod –U命戶令的功能:將用戶的賬號解鎖
4) 了解usermod –U命戶令的用法舉例:
例如:將babydog6用戶的賬號解鎖的命令:usermod –U babydog6
7. 使用userdel命令刪除用戶賬號(詳見linux系統管理P462)
1) 掌握userdel命令的功能:刪除用戶。
2) 了解userdel命令的常用選項:
a) –r:在刪除用戶的同時刪除這個用戶的家目錄及其郵箱。
3) 靈活應用userdel命令刪除用戶的舉例:
a) 例如:刪除babydog5用戶不刪除其家目錄的命令:
userdel babydog5
b) 例如:刪除babydog5用戶,同時刪除其家目錄的命令:
userdel –r babydog5
8. 群組的管理
1) 掌握groupadd命令的功能:創建一個新的群組賬號。
2) 了解groupadd命令的常用選項:
c) –g:指定群組的GID
3) 靈活應用groupadd命令的舉例:
例如:在系統中新增加一個名為boydogs的群組的命令:
groupadd boydogs
4) 掌握groupmod命令的功能:修改一個群組賬號的信息。
5) 了解groupmod命令的常用選項:
a) –g:修改群組的GID
b) –n:修改群組的名稱
6) 靈活應用groupmod命令的舉例:
a) 例如:修改police群組的gid為521的命令:
groupmod –g 521 police
b) 例如:將群組boydogs改名為daddogs的命令:
groupmod –n daddogs boydogs
7) 掌握groupdel命令的功能:刪除一個群組賬號。
8) 靈活應用groupdel命令的舉例:
例如:刪除daddogs群組的命令:groupdel daddogs
9. 課后作業(用時50分鍾)
1) 新建用戶natasha,uid為1000,gid為555,備注信息為“master”
2) 修改natasha用戶的家目錄為/Natasha
3) 查看用戶信息配置文件的最后一行
4) 為natasha用戶設置密碼“123”
5) 查看用戶密碼配置文件的最后一行
6) 將natasha用戶賬戶鎖定
7) 將natasha用戶賬戶解鎖
8) 新建組police,gid為999
9) 查看組配置文件的最后一行
10) 將natasha用戶加入police組
11) 修改police組的組名為jingcha
12) 刪除natasha用戶,連家目錄和郵箱一起刪除
13) 刪除jingcha組
第七單元 用戶、群組及權限的深入討論
怎樣查看文件的權限
ls命令詳解
root用戶及文件的安全控制
什么是root用戶
用戶分類
文件操作權限
文件操作權限的字符表示
chown
chgrp
使用符號表示法設定文件或目錄上的權限
chmod命令的功能
chmod命令的-R選項
什么是符號表示法
權限狀態的3個部分
符號表示法舉例
使用數字表示法設定文件或目錄上的權限
什么是數字表示法
數字代表的資源權限狀態
數字表示法舉例
課后作業
【本節內容】
1. 怎樣查看文件的權限(詳見linux系統管理P138)
1) 掌握使用ls –l命令查看文件上所設定的權限。
2) 掌握ls –l命令的顯示結果中的第一列分成4組,其中;
a) 第1個字符為第1組,代表這是一個文件(-)或是一個目錄(d),也可以是其他資源。
b) 第2、3、4個字符為第2組,定義了文件或目錄的所有者(owner)所具有限的權,使用u代表所有者(owner)對文件的所有權限。
c) 第5、6、7個字符為第3組,定義了文件或目錄的所有者所在的群組中其他(用戶)所具有的權限,使用g代表這一組(group)權限。
d) 第8、9、10個字符為第4組,定義了既不是owner也不和owner在同一群組的其他用戶對文件或目錄所具有的權限。使用o代表這一組(other)權限。
3) 掌握ls –l命令的顯示結果中的第三列、第四列為文件的屬主和屬組。
2. root用戶及文件的安全控制(詳見linux系統管理P136)
1) 掌握root用戶的定義:root用戶也稱為超級用戶,它可以完全不受限制地訪問任何用戶的賬戶和所有文件及目錄。
2) 了解Linux系統中用戶分類:
Linux系統是將系統中的所有用戶分成了3類:
a) 第1類:所有者
b) 第2類:同組用戶(修正:所屬組,因為你創建一個用戶的過程會以為這個用戶名為名字創建一個同名的組)
c) 第3類:非同組的其他用戶
3) 掌握文件操作權限包括讀(read)、寫(write)和執行(execute)
4) 掌握Linux操作系統在顯示權限時,使用如下4個字符來表示文件操作權限:
a) r:表示read權限,也就是可以閱讀文件或者ls命令列出目錄內容的權限。
b) w:表示write權限,也就是可以編輯文件或者在一個目錄中創建和刪除文件的權限。
c) x:表示execute權限,也就是可以執行程序或者使用cd命令切換到這個目錄以及使用帶有-l選項的ls命令列出這個目錄中詳細內容的權限等。
d) -:表示沒有相應的權限(與所在位置的r、w或x相對應)。
3. 掌握使用chown修改文件的屬主
chown 屬主:屬組 文件
chown :屬組 文件
chown 屬主 文件
a) 例如,修改文件file1的屬主為root的命令為:chown root file1
4. 掌握使用chgrp修改文件的屬組
chgrp 屬組 文件
a) 例如,修改文件file1的屬組為wg的命令為:chgrp wg file1
5. 使用符號法設定文件或目錄上的權限(詳見linux系統管理P132)
1) 掌握chmod命令的功能:設定或更改文件或目錄上的權限。
2) 掌握-R選項:不但設置(或更改)該目錄權限,而且還要遞歸地設置(或)更改該目錄中所有文件或子目錄的權限。
3) 掌握是符號表示法的定義:
符號表示法是使用幾個特定的符號來設定權限的狀態。
4) 掌握權限狀態可以分為3個部分:
a) 第1個部分,表示要設定或更改誰的權限狀態。其中的具體表示如下:
u:表示所有者(owner)的權限。
g:表示群組(group)的權限。
o:表示既不是owner也不與owner在同一個group的其他用戶(other)的權限。
a:表示以上3組,也就是所有用戶(all)的權限。
b) 第2部分,是運算符(operator),也有人稱為操作符,其中的具體表示如下:
+:表示加入權限
-:表示去掉權限
=:表示設定權限
c) 第3部分,表示權限(permission),其中的具體表示如下:
r:表示read(讀)權限。
w:表示write(寫)權限。
X:表示execut(執行)權限。
5) 靈活應用符號表示法設定或更改文件或目錄上的權限:
a) 例如:在dog_wolf文件上添加所有者和同組用戶的可執行權限的命令:
chmod ug+x dog_wolf
b) 例如:在babydog目錄上為其他用戶添加寫權限的命令:
chmod o+w babydog
6. 使用數字表示法設定文件或目錄上的權限(詳見linux系統管理P143)
1) 掌握數字表示法的定義:
數字表示法是指使用一組三位數的數字來表示文件或目錄上的權限狀態。其中:
第1個數字代表所有者(owner)的權限(u)。
第2個數字代表群組(group)的權限(g)。
第3個數字代表其他用戶(other)的權限(o)。
2) 數字代表的資源權限狀態:
4:表示具有讀(read)權限。
2:表示具有寫(write)權限。
1:表示具有執行(execute)權限。
0:表示沒有相應的權限。
3) 靈活應用數字法表示法設定或更改文件或目錄上的權限:
a) 例如:使用數字表示法對owner開放/home/dog/babydog目錄和其中所有文件的一切權限,但是對同組用戶開放讀和執行權限,而對其他用戶只開放讀權限的命令:
chmod -R 754 /home/dog/babydog
7. 課后作業(用時60分鍾)
1) 在用戶的主目錄下創建目錄test,進入test創建空文件file1
2) 以長格式形式顯示文件信息,注意文件的權限和所屬用戶和組
3) 為文件file1設置權限,使其他用戶可以對此文件進行寫操作。
4) 查看設置結果,
5) 取消同組用戶對文件file1的讀取權限,並查看設置結果。
6) 用數字表示法為文件file設置權限,所有者可讀、可寫、可執行,所屬組用戶和其他用戶只具有讀和執行的權限。設置完成后查看設置結果。
7) 用數字形式更改文件file1的權限,使所有者只能讀取此文件。其他任何用戶都沒有權限。查看設置結果。
8) 回到上層目錄,查看test的權限
9) 為其他用戶添加對此目錄的寫權限
第八單元 正文處理命令及tar命令
使用cat命令進行文件的縱向合並
兩種文件的縱向合並方法
歸檔文件和歸檔技術
歸檔的目的
什么是歸檔
tar命令的功能
tar命令的常用選項
使用tar命令創建、查看及抽取歸檔文件
使用tar命令創建歸檔文件
使用tar命令查看歸檔文件
使用tar命令抽取歸檔文件
文件的壓縮和解壓縮
什么是壓縮
壓縮的目的
什么是解壓縮
gzip命令和gunzip命令
bzip2命令和bunzip2命令
在使用tar命令的同時進行壓縮和解壓縮
在使用tar命令的同時進行壓縮和解壓縮的用法舉例
課后作業
【本節內容】
1. 使用cat命令進行文件的縱向合並
1) 掌握使用cat命令實現文件的縱向合並:
a) 例如:使用cat命令將baby.age、baby.kg和baby.sex這三個文件縱向合並為baby文件的方法:
cat baby.age baby.kg baby.sex >baby
b) 例如:使用cat命令將baby.age文件的內容添加到baby2文件中的方法:
cat baby.age >>baby2
2. 歸檔文件和歸檔技術(詳見linux系統管理P209)
1) 掌握歸檔的定義:歸檔(archiving)就是將許多文件(或目錄)打包成一個文件。
2) 了解歸檔的目的:歸檔的目的就是方便備份、還原及文件的傳輸操作。
3) 掌握tar命令的功能:將多個文件(也可能包括目錄,因為目錄本身也是文件)放在一起存放到一個磁帶或磁盤歸檔文件中。並且將來可以根據需要只還原歸檔文件中的某些指定的文件。
4) 掌握tar命令的常用選項:
c:創建一個新的tar文件。
t:列出tar文件中目錄的內容。
x:從tar文件中抽取文件。
f:指定歸檔文件或磁帶(也可能是軟盤)設備(一般都要選)。
v:顯示所打包的文件的詳細信息,v是verbose的第1個字母。
z:使用gzip壓縮算法來壓縮打包后的文件。
j:使用bzip2壓縮算法來壓縮打包后的文件。
3. 使用tar命令創建、查看及抽取歸檔文件(詳見linux系統管理P210)
1) 掌握使用tar命令創建歸檔文件的用法舉例:
例如:使用tar命令將arch目錄打包成一個名為arch.tar的歸檔文件的方法(要求顯示所有打包的文件和目錄):
tar cvf arch.tar arch
掌握使用tar命令查看歸檔文件的用法舉例:
例如:使用tar命令顯示arch.tar這個歸檔文件(包)中的所有文件的方法:
tar tf arch.tar
2) 掌握使用tar命令抽取歸檔文件的用法舉例:
例如:使用tar命令恢復arch.tar中的全部內容的方法:
tar xvf arch.tar -C 路徑
4. 文件的壓縮和解壓縮(詳見linux系統管理P212)
1) 掌握壓縮的定義:壓縮就是將一個大的文件通過一些壓縮算法變成一個小文件。
2) 了解壓縮的目的:主要是縮小文件的大小,這樣會節省存儲文件的磁盤或磁帶的空間,另外在網絡上傳輸這些小文件也會減少網絡的瀏覽(也就是節省網絡的帶寬)。
3) 掌握解壓縮的定義:解壓縮就是將一個通過一些壓縮算法的文件恢復到壓縮之前的樣子。
4) 掌握gzip命令和gunzip命令的用法舉例:
a) 例如:將文件file1壓縮成.gz格式的壓縮包應該使用的命令為:gzip file1 –c > /路徑/name.gz
b) 例如:將壓縮文件file1.gz解壓縮的命令為:
gunzip file1.gz >
5) 掌握bzip2命令和bunzip2命令的用法舉例:
a) 例如:將文件file1壓縮成.bz2格式的壓縮包應該使用的命令為:bzip2 file1 >
b) 例如:將壓縮文件file1.bz2解壓縮的命令為:
bunzip2 file1.bz2 >
5. 在使用tar命令的同時進行壓縮和解壓縮(詳見linux系統管理P214)
1) 掌握在使用tar命令的同時進行壓縮和解壓縮的用法舉例
a) 例如:使用tar命令將arch目錄打包而且同時使用gzip的技術壓縮打包后文件的方法(打包后的文件名為arch.tar.gz):
tar cvfz arch.tar.gz arch
b) 例如:使用tar命令將arch目錄打包而且同時使用bzip2的技術壓縮打包后文件的方法(打包后的文件名為arch.tar.bz2):tar cvfj arch.tar.bz2 arch
6. 課后作業(用時65分鍾)
1) 將用戶信息數據庫文件和組信息數據庫文件縱向合並為一個文件/1.txt(覆蓋)
2) 將用戶信息數據庫文件和用戶密碼數據庫文件縱向合並為一個文件/2.txt(追加)
3) 將/1.txt、/2.txt兩個文件打包為/1.tar
4) 使用gzip命令壓縮1.txt文件名為1.txt.gz
5) 解壓縮1.txt.gz
6) 使用bzip2壓縮1.txt壓縮后文件名為1.txt.bz2
7) 解壓縮1.txt.bz2
8) 解包1.tar,解包后文件存放到/tmp目錄下
9) 使用tar命令打包並且壓縮/1.txt、/2.txt,得到的文件名為1.tar.gz
10) 解包1.tar.gz,解包后文件存放到/tmp目錄下
第九單元 利用vi編輯器創建和編輯正文文件
vi編輯器簡介
什么是vi
vi編輯器的操作模式
vi編輯器的3種基本模式
在vi編輯器中光標的移動
移動光標位置的鍵與光標移動間的關系
進入插入模式
從命令行模式進入插入模式的命令
在命令行模式下刪除與復制的操作
刪除與復制命令
粘貼命令
復原和重做命令
擴展模式與文件的存儲和退出
擴展模式下常用的命令
快速移動光標在文件中的位置
快速移動光標在屏幕中的位置
課后作業
【本節內容】
1. vi編輯器簡介(詳見linux系統管理P252)
1) 掌握vi的定義:vi是一個UNIX和Linux系統內嵌的標准正文(文字)編輯器,它是一種交互類型的正文編輯器,它可以用來創建和修改正文文件。
2. vi編輯器的操作模式(詳見linux系統管理P255)
1) 掌握vi編輯器的3中基本模式:
a) 命令行模式:vi的默認模式。在這一模式中,所有的輸入被解釋成vi命令,可以執行修改、復制、移動、粘貼和刪除正文等命令,也可以進行移動光標、搜索字符串和退出vi的操作等。
b) 編輯模式:在編輯模式中,可以往一個文件中輸入正文。在這一模式下,輸入的每一個字符都被vi編輯器解釋為輸入的正文。使用ESC鍵返回命令行模式。
c) 擴展模式:在一些UNIX系統上也叫最后一行模式。在這一模式下,可以使用一些高級編輯命令,如搜尋和替代字符串、存盤或退出vi編輯器等。要進入最后一行模式,需要在命令行模式中輸入冒號(:),冒號這一操作將把光標移到屏幕的最后一行。
3. 在vi編輯器中光標的移動(詳見linux系統管理P256)
1) 掌握在vi編輯器中用來移動光標位置的鍵與光標移動之間的關系,如下表:
4. 進入插入模式(詳見linux系統管理P258)
1) 掌握從命令行模式進入插入模式的命令:
a:進入插入模式並在光標之后進行添加。
i:進入插入模式並在光標之前進行插入。
o:進入插入模式並在當前(光標所在)行之下開啟新的一行。
5. 在命令行模式下刪除與復制的操作(詳見linux系統管理P259)
1) 掌握常用的刪除與復制的常用按鍵
6.粘貼命令
1) 掌握粘貼命令:
7. 復原和重做命令
1) 掌握常用的復原和重做命令:
8.擴展模式與文件的存儲和退出
1)掌握擴展模式下常用的命令:
9.快速移動光標在文件中的位置
1)掌握快速移動光標在文件中的位置的命令
10.快速移動光標在屏幕中的位置
1)掌握快速在屏幕中移動光標的位置的命令
11.課后作業(用時40分鍾)
1) 使用vi編輯器編輯文件/1.txt進入編輯模式寫入內容“hello world”
2) 進入命令行模式復制改行內容,在下方粘貼80行
3) 快速移動光標到文件的最后一行
4) 快速移動光標到當前屏幕的中間一行
5) 快速移動光標到文件的第五行
6) 在下方插入新的一行內容“welcome to beijing”
7) 刪除剛插入的一行
8) 撤銷上一步的操作
9) 進入擴展模式,執行文件的保存退出操作
第十單元 系統的初始化和服務
Linux系統引導的順序
Linux系統引導的順序
BOIS的初始化和引導加載程序
什么是BIOS
GRUB程序和grub.conf文件
什么是grub
grub配置文件grub.conf
內核的初始化和init的初始化
init的配置文件/etc/inittab
init程序要做的工作
run levels(運行級別)
各運行級別對應的功能
關閉系統及重啟系統
關閉系統的命令
重啟系統的命令
單用戶模式修改用戶密碼
救援模式
課后作業
【本節內容】
1. Linux系統引導的順序(詳見linux系統管理P312)
1) 掌握Linux系統引導的順序:(詳見附1)
其中,BIOS的工作是檢查計算機的硬件設備,如CPU、內存和風扇速度等;
MBR會在啟動盤的第1個塊中,大小為512B。其中前446中的程序代碼是用來選擇boot partition(分區),也就是由哪個分區來裝入開機用的代碼;
在內核部分主要是裝機計算機設備的驅動程序以便操作系統可以控制計算機上的設備。並且以只讀的方式掛載/(根)文件系統,也就是此時的操作系統只能讀到根文件系統(目錄)所在的分區;
init程序的進程id為1,即Linux操作系統第1個執行的程序。
1. BOIS的初始化和引導加載程序(詳見linux系統管理P313)
1) 掌握BIOS的定義:BIOS(Basic Input/Output System)(基本輸入/輸出系統的縮寫),它是硬件與軟件之間的接口,而且是非常基本的接口。
2. GRUB程序和grub.conf文件(詳見linux系統管理P317)
1) 掌握GRUB的定義:GRUB是Grand Unified Bootloader(多重操作系統啟動管理器)的縮寫。
2) 掌握grub的配置文件為:grub.conf
設置grub Md5加密命令 grub-MD5-crypt
Password = 明文或 password --md5 密文(編輯grub配置文件的密碼)
Title red hat 標題
Password = 明文或 password --md5 密文(加載內核系統引導必須的密碼)
3. 內核的初始化和init的初始化(詳見linux系統管理P322)
1) 掌握init的配置文件為:/etc/inittab
2) 了解init程序要做的工作:
a) 決定預設(默認)要使用哪個run levels(運行級別)。
b) 執行一些系統初始化的腳本(程序)來初始化操作系統。
c) 根據run level的設置來執行所對應目錄中的程序,以決定要啟動哪些服務。
d) 設定某些組合鍵。
e) 定義UPS不間斷電源系統,即當電源出現問題時或電源恢復時要執行哪些程序。
f) 產生6個virtual consoles,也就是tty1~tty6。
4. run levels(運行級別)(詳見linux系統管理P326)
1) 掌握所有的運行級別及每一個運行級別對應的功能:
5. 關閉系統及重啟系統(詳見linux系統管理P342)
1) 掌握常用的可以關閉系統的命令:
shutdown -h now
halt
poweroff
init 0
2) 掌握常用的可以重啟系統的命令:
shutdown -r now
reboot
init 6
Ctrl+Alt+Delete鍵
6. 掌握單用戶模式修改用戶的密碼
7. 掌握救援模式
8. 課后作業(用時70分鍾)
1) 以root用戶登錄系統
2) 修改grub配置文件,默認以第1個操作系統啟動,將默認的讀秒修改為10秒
3) 設置grub菜單密文密碼“123”
4) 修改系統的默認運行級別為3
5) 使用與運行級別有關的命令重啟系統
6) 使用單用戶模式修改用戶的密碼為“123”
7) 使用救援模式刪除grub菜單密碼
第十一單元 系統監控
系統監視和進程控制工具—top和free
top命令的功能
top命令顯示結果中一些常用狀態信息的具體含義
free命令的功能
系統中進程的監控—ps
什么是進程
什么是守護進程
什么是父進程、子進程
ps命令的功能
系統中進程的監控—pstree、kill、pkill、pgrep
pstree命令的功能
pstree命令的用法舉例
kill命令的功能
kill命令的用法舉例
kill -9
pkill、pgrep命令的功能
課后作業
【本節內容】
1. 系統監視和進程控制工具—top和free
1) 掌握top命令的功能:top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似於Windows的任務管理器。
2) 了解使用top命令列出系統狀態時,系統默認每5秒刷新一下屏幕上的顯示結果。
1. 第一行是任務隊列信息
12:38:33 |
當前時間 |
up 50days |
系統運行時間,格式為時:分 |
1 user |
當前登錄用戶數 |
load average: 0.06, 0.60, 0.48 |
系統負載。 三個數值分別為 1分鍾、5分鍾、15分鍾前到現在的平均值。 |
2. 第二、三行為進程和CPU的信息
Tasks: 29 total |
進程總數 |
1 running |
正在運行的進程數 |
28 sleeping |
睡眠的進程數 |
0 stopped |
停止的進程數 |
0 zombie |
僵屍進程數 |
Cpu(s): 0.3% us |
用戶空間占用CPU百分比 |
1.0% sy |
內核空間占用CPU百分比 |
0.0% ni |
用戶進程空間內改變過優先級的進程占用CPU百分比 |
98.7% id |
空閑CPU百分比 |
0.0% wa |
等待輸入輸出的CPU時間百分比 |
0.0% hi |
硬件中斷占用CPU時間的百分比 |
0.0% si |
軟件中斷占用CPU時間的百分比 |
3. 第四五行為內存信息。
4. 進程信息
列名 |
含義 |
PID |
進程id |
PPID |
父進程id |
RUSER |
Real user name |
UID |
進程所有者的用戶id |
USER |
進程所有者的用戶名 |
GROUP |
進程所有者的組名 |
TTY |
啟動進程的終端名。不是從終端啟動的進程則顯示為 ? |
PR |
優先級 |
NI |
nice值。負值表示高優先級,正值表示低優先級 |
P |
最后使用的CPU,僅在多CPU環境下有意義 |
%CPU |
上次更新到現在的CPU時間占用百分比 |
TIME |
進程使用的CPU時間總計,單位秒 |
TIME+ |
進程使用的CPU時間總計,單位1/100秒 |
%MEM |
進程使用的物理內存百分比 |
VIRT |
進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES |
SWAP |
進程使用的虛擬內存中,被換出的大小,單位kb。 |
RES |
進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA |
CODE |
可執行代碼占用的物理內存大小,單位kb |
DATA |
可執行代碼以外的部分(數據段+棧)占用的物理內存大小,單位kb |
SHR |
共享內存大小,單位kb |
nFLT |
頁面錯誤次數 |
nDRT |
最后一次寫入到現在,被修改過的頁面數。 |
S |
進程狀態。 |
COMMAND |
命令名/命令行 |
WCHAN |
若該進程在睡眠,則顯示睡眠中的系統函數名 |
Flags |
任務標志,參考 sched.h |
cpu利用率與load average
cpu是用來干活的,按照這個層面去理解,每個碼農都是一個cpu
cpu利用率:上一天班的時間是8個小時,而碼農敲代碼的時間為2個小時,2/8=0.25 ,25%就是碼農在一天的時間內的利用率(正常情況,cpu利用率<70%)
cpu負載:公司在一分鍾內為某個碼農安排了3個任務,而1分鍾內該碼農能做6個任務,那么該碼農一分鍾內的負載為0.5
如果公司在5分鍾內為某個碼農安排了100個任務,而5分鍾內該碼農只能做50個任務,那么該碼農5分鍾內的負載為2.0,即超負荷運轉
cpu負載<=1:能正常應付
cpu負載>1:超負荷運轉
如果有4核,相當於將100個任務交給4個碼農去干,如果每個碼農的負載都是100%,那么整體的cpu負載達到4.0則是很正常的現象
多核cpu, load average 應該 <= cpu核數 * 0.7
為何要有1分鍾,5分鍾,15分鍾三種cpu負載?
其實之所以要給出3個值,就是希望我們能結合起來看。或者說希望展示一個動態的圖表式的數據,比如最近一分鍾顯示負載120%。而最近5分鍾和15分鍾顯示負載為50%。可能你不用太過擔心。但是如果你發現系統的負載一直維持在120%以上,就必須要提高硬件配置了。
cpu利用率和cpu負載過高,都是不好的現象,但是也有可能出現,低利用率,高負載的情況:
為一個碼農分配了100個項目,毫無疑問,該碼農的負載是很高的,但是碼農在具體去做一個項目時,可能會碰到需要購買機器,或者查詢資料等耗費時間的問題,真正動手寫代碼的時間可能很短,而這段時間才是碼農真正為公司干活的時間,如果每個項目都有類似這種問題,那么100個項目加到一起,碼農真正工作的時間也不會太多,這就造成了低利用率。
在兩種情況下會導致一個進程在邏輯上不能運行,
1. 進程掛起是自身原因,遇到I/O阻塞,便要讓出CPU讓其他進程去執行,這樣保證CPU一直在工作
2. 與進程無關,是操作系統層面,可能會因為一個進程占用時間過多,或者優先級等原因,而調用其他的進程去使用CPU。
因而一個進程有三種狀態
3) 掌握free命令的功能:顯示內存的使用狀態。(下圖centos6中查看效果,用二維數組代表FO即free output)
1 2 3 4 5 6 1 total used free shared buffers cached 2 Mem: 24677460 23276064 1401396 0 870540 12084008 3 -/+ buffers/cache: 10321516 14355944 4 Swap: 25151484 224188 24927296
從操作系統的角度:
物理內存FO[2][1]=24677460KB
物理內存被使用的內存FO[2][2]=23276064KB
可以用內存F[2][3]=1401396KB
等式:FO[2][1] = FO[2][2] + FO[2][3]
共享內存F[2][4]=0,表示幾個進程共享的內存(數據共享)
F[2][5]=870540表示已經分配但是還未使用的buffers大小
F[2][6]=12084008表示已經分配但是還未使用的buffers大小
buffer和cache的解釋:
- A buffer is something that has yet to be "written" to disk.
- A cache is something that has been "read" from the disk and stored for later use.
也就是說buffer是用於存放要輸出到disk(塊設備)的數據的,而cache是存放從disk上讀出的數據。這二者是為了提高IO性能的,並由OS管理。
Linux和其他成熟的操作系統(例如windows),為了提高IO read的性能,總是要多cache一些數據,這也就是為什么FO[2][6](cached memory)比較大,而FO[2][3]比較小的原因。我們可以做一個簡單的測試
- 釋放掉被系統cache占用的數據;
echo 3>/proc/sys/vm/drop_caches
- 讀一個大文件,並記錄時間;
- 關閉該文件;
- 重讀這個大文件,並記錄時間;
第二次讀應該比第一次快很多。
free輸出的第二行是從一個應用程序的角度看系統內存的使用情況。
- 對於FO[3][2],即-buffers/cache,表示一個應用程序認為系統被用掉多少內存;
- 對於FO[3][3],即+buffers/cache,表示一個應用程序認為系統還有多少內存;
因為被系統cache和buffer占用的內存可以被快速回收,所以通常FO[3][3]比FO[2][3]會大很多。
這里還用兩個等式:
- FO[3][2] = FO[2][2] - FO[2][5] - FO[2][6]
- FO[3][3] = FO[2][3] + FO[2][5] + FO[2][6]
free命令的所有輸出值都是從/proc/meminfo中讀出的。
4) 掌握free命令的功能:顯示內存的使用狀態。(下面均為centos7中查看效果)
http://www.linuxatemyram.com/提到使用free
命令查看Linux
系統使用內存時,used
一項會把當前cache
的大小也會加進去,這樣會造成free
這一欄顯示的內存特別少:
$ free -m
total used free shared buff/cache available
Mem: 1504 1491 13 0 855 869
Swap: 2047 6 2041
可是實際上,cache
根據應用程序的需要是可以回收利用的,因此free
這一欄並不能真實地表現有多少“可以使用”的內存。實際系統可用內存應該以available
數據為准。
linuxatemyram
所提到的free
命令也許是比較老的版本,我嘗試了RHEL 7.2
,Ubuntu 16.04
和Arch Linux
這3
個Linux
發行版,均沒有出現used
包含cache
的情況:
$ free -m
total used free shared buff/cache available
Mem: 64325 47437 3150 1860 13737 14373
另外,從man free
命令中也可以得到,目前計算used
的值是要減掉free
和buff/cache
的:
used Used memory (calculated as total – free – buffers – cache)
可以使用-w
命令行選項得到buff
和cache
各自使用的數量:
$ free -wm
total used free shared buffers cache available
Mem: 64325 48287 2476 1859 1430 12131 13524
需要注意的是,free
表示的是當前完全沒有被程序使用的內存;而cache
在有需要時,是可以被釋放出來以供其它進程使用的(當然,並不是所有cache
都可以釋放,比如當前被用作ramfs
的內存)。而available
才真正表明系統目前可以提供給應用程序使用的內存。/proc/meminfo
從3.14
內核版本開始提供MemAvailable
的值;在2.6.27
~3.14
版本之間,是free
程序自己計算available
的值;早於2.6.27
版本,available
的值則同free
一樣。
2. 系統中進程的監控—ps(詳見linux系統管理P363)
1) 掌握進程的定義:進程是程序的一次動態執行。
2) 掌握守護進程的定義:守護進程是在后台運行並提供系統服務的一些進程。
3) 掌握父進程、子進程的定義:當一個進程創建另一個進程時,第1個進程被稱為新進程的父進程,而新進程被稱為子進程。
4) 掌握ps命令的功能:用來顯示當前進程的狀態。
Ps –aux 顯示所有的與用戶相關的完整信息
系統中進程的監控pstree、kill
centos7默認沒有pstree,需要yum -y install psmisc
1) 掌握pstree命令的功能:以樹狀圖顯示程序。
2) 掌握pstree命令的用法舉例:
例如:列出PID為4729的進程的進程狀態樹的命令:pstree 4729
3) 掌握kill命令的功能:把一個信號發送給一個或多個進程。默認發送終止信號。
4) 靈活應用kill命令終止進程
例如:終止PID為3852的進程的命令:kill 3852
5) 靈活應用kill -9命令殺死進程
例如:殺死PID為3906的進程的命令:kill -9 3906
3. 掌握pgrep命令的功能:通過名稱或其他屬性查找進程
例如:查找名為firefox的進程的命令為:pgrep firefox
4. 掌握pkill命令的功能:通過名稱或其他屬性發信號給進程
例如:殺死名為firefox的進程的命令為:pkill firefox
5. 課后作業(用時30分鍾)
1) 實時動態監控系統狀態
2) 退出上一步的操作
3) 開啟top進程
4) 使用ps命令查看top命令的pid並殺死
5) 查看pid為2的進程的進程樹
6) 打開火狐瀏覽器
7) 查找名為firefox的進程
8) 殺死名為firefox的進程
第十二單元 硬盤分區、格式化及文件系統的管理一
硬件設備與文件名的對應關系
硬盤的結構及硬盤分區
為什么進行硬盤分區
硬盤的邏輯結構
Linux系統中硬盤的分區
硬盤分區的分類
分區數量的約束
使用fdisk和partprobe命令來管理硬盤分區
fdisk 命令的功能
fdisk命令列表中常用的命令
partprobe命令
創建文件系統(數據的管理)
什么是格式化
什么是文件系統
文件系統類型
mkfs命令的功能
mkfs命令的用法舉例
為一個分區設定label(分區名)
e2label命令的功能
e2label命令的用法舉例
課后作業
【本節內容】
1. 硬件設備與文件名的對應關系(詳見linux系統管理P297)
1) 掌握在Linux系統中,每個設備都被當初一個文件來對待。
2) 掌握各種設備在Linux中的文件名
2. 硬盤的結構及硬盤分區(詳見linux系統管理P301)
1) 了解為什么要進行硬盤分區:
a) 更容易管理和控制系統,因為相關的文件和目錄都放在一個分區中。
b) 系統效率更高。
c) 可以限制用戶使用硬盤的份額(磁盤空間的大小)。
d) 更容易備份和恢復。
2) 掌握硬盤的邏輯結構:
一個硬盤邏輯上可以被划分成塊、磁道、磁柱和分區。
3) 掌握塊的定義:塊是盤片上尋址(訪問)的最小單位,一個塊可以存儲一定字節的數據。
4) 掌握磁道的定義:磁道是由一系列頭尾相連的塊組成的圓圈。
5) 掌握磁柱的定義:磁柱是由一疊磁道,由在相同半徑上每個盤面的磁道所組成。
6) 掌握分區的定義:分區是由一組相鄰的磁柱所組成。
3. Linux系統中硬盤的分區(詳見linux系統管理P303)
1) 掌握硬盤分區的分類:硬盤的分區可以分為主分區、擴展分區和邏輯分區。
2) 掌握主分區的數量:在一個硬盤上最多可以划分出4個主分區。
3) 了解Linux操作系統的內核支持每個硬盤上的分區數量還是有一定限制的,Linux內核在每個硬盤上可以最多支持:
a) 在SCSI硬盤上划分15個分區(Partitions)。
b) 在IDE硬盤上划分63個分區(Partitions)。
4. 使用fdisk和partprobe命令來管理硬盤分區(詳見linux系統管理P394)
1) 掌握fdisk命令的功能:創建磁盤分區。
2) 掌握fdisk命令列表中常用的命令:
a) d:刪除一個(已經存在的)分區,其中d是delete的第1個字母。
b) l:列出(已經存在的)分區的類型,其中l是list的第1個字母。
c) m:列出fdisk中使用的所有命令,其中m是menu的第1個字母。
d) n:添加一個新的分區,其中n是new的第1個字母。
e) p:列出分區表的內容,其中p是print的第1個字母。
f) q:退出fdisk,但是不存儲所做的變化,其中q是quit的第1個字母。
g) t:改變分區系統的id,其中t是title的第1個字母。
h) w:退出fdisk並存儲所做的變化,其中w是write的第1個字母。
3) 掌握partprobe命令的功能:重新初始化內存中內核的分區表。
5. 創建文件系統(數據的管理)(詳見linux系統管理P399)
1) 掌握格式化的定義:所謂的格式化就是將分區中的硬盤空間划分成大小相等的一些數據塊(Blocks),以及設定這個分區中有多少個i節點可以使用等。
2) 掌握文件系統的定義:文件系統是操作系統用於明確磁盤或分區上的文件的方法和數據結構;即在磁盤上組織文件的方法。
3) 了解常用的文件系統類型
ext2:Linux系統中標准的文件系統
ext3:一種日志式文件系統
ext4:一種針對ext3系統的擴展日志式文件系統
lvm:邏輯盤卷管理
iso9660:目前唯一通用的光盤文件系統
4) 掌握mkfs命令的功能:格式化磁盤。
5) 靈活應用常用的格式化命令:
mkfs.文件系統類型
例如,將分區/dev/sdb1格式化為ext4文件系統的命令為:
mkfs.ext4 /dev/sdb1
6. 為一個分區設定label(分區名)(詳見linux系統管理P405)
1) 掌握e2label命令的功能:設定或查看一個設備的label名稱。
2) 靈活應用e2label命令設定label:
a) 例如:查看/dev/sdb1分區的label的命令為:
e2label /dev/sdb1
b) 例如:將/dev/sdb1分區的label設定為wg的命令:
e2label /dev/sdb1 wg
7. 課后作業(用時40分鍾)
1) 開啟Linux系統前添加一塊大小為20G的SCSI硬盤
2) 開啟系統,右擊桌面,打開終端
3) 為新加的硬盤分區,一個主分區大小為10G,剩余空間給擴展分區,在擴展分區上划分兩個邏輯分區,大小各5G
4) 格式化主分區為ext3系統
5) 格式化兩個邏輯分區為ext4系統
6) 為主分區添加卷標wg
7) 查看主分區的卷標
第十三單元 硬盤分區、格式化及文件系統的管理二
文件系統的掛載與卸載
什么是掛載
mount命令的功能
mount命令的用法舉例
umount命令的功能
umount命令的用法舉例
利用/etc/fstab文件在開機時自動掛載文件系統
虛擬內存的概念以及設置與管理
什么是虛擬內存
創建swap分區的步驟
使用硬盤分區創建和使用系統交換分區的實例
mkswap 命令的功能
mkswap 命令的用法舉例
swapon命令的功能
swapon -a
swapon -s
swapon命令的用法舉例
i節點
什么是i節點
符號(軟)鏈接
什么是符號鏈接
使用ln命令創建軟連接
硬鏈接
什么是硬鏈接
使用ln命令創建硬鏈接
Linux系統中的文件類型
Linux系統中的常見文件類型
怎樣檢查磁盤空間
df命令
du命令
課后作業
【本節內容】
1. 文件系統的掛載與卸載(詳見linux系統管理P406)
1) 掌握掛載的定義:掛載指將一個設備(通常是存儲設備)掛接到一個已存在的目錄上。
2) 掌握mount命令的功能:實現文件系統的掛載。
3) 靈活應用mount命令實現文件系統的掛載:
例如:將/dev/sdb1分區掛載到/wg目錄上的命令:
mount /dev/sdb1 /wg
4) 掌握umount命令的功能:實現文件系統的卸載。
5) 靈活應用umount命令實現文件系統的卸載:
例如:卸載/wg上的文件系統的命令:
umount /wg
2. 虛擬內存的概念以及設置與管理(詳見linux系統管理P414)
1) 掌握虛擬內存的定義:所謂虛擬內存就是一塊硬盤空間被當做內存使用,也被稱為交換分區(swap)。
2) 了解Linux交換分區的類型為:0x82
3) 掌握mkswap命令的功能:設置交換分區。
4) 掌握使用mkswap命令設置交換分區的用法舉例:
例如:將分區/dev/sdb2設置為交換分區的命令:mkswap /dev/sdb2
5) 掌握swapon命令的功能:啟動交換分區。
6) 掌握swapon –a命令的功能:啟動全部的交換分區。
7) 掌握swapon –s命令的功能:列出當前正在使用的所有系統交換分區的狀態。
8) 掌握使用swapon命令的用法舉例:
例如:啟用交換分區/dev/sdb2的命令:swapon /dev/sdb2
3. i節點(詳見linux系統管理P170)
1) 掌握i節點的定義:i節點實際上是一個數據結構,它存放了有關一個普通文件、目錄或其他文件系統對象的基本信息。
4. 符號(軟)鏈接(詳見linux系統管理P174)
1) 掌握符號鏈接的定義:符號鏈接是指向另一個文件的一個文件。
2) 掌握ln命令創建軟連接的用法舉例:
a) 為wolf/dog.wolf.baby文件建立一個dog_ wolf.boy符號鏈接並放在bodydog目錄中的命令:
ln –s wolf/dog.wolf.baby bodydog/dog_ wolf.boy
5. 硬鏈接(詳見linux系統管理P179)
1) 掌握硬鏈接的定義:一個硬鏈接(hard link)是一個文件名與一個i節點之間的對應關系,也可以認為一個硬鏈接是在所對應的文件上添加了一個額外的路徑名。
2) 掌握ln命令創建硬連接的用法舉例:
a) 為wolf/wolf.dog文件在backup目錄中建立一個名為wolf.dog2的硬鏈接命令:
ln wolf/wolf.dog backup/wolf.dog2
6. Linux系統中的文件類型(詳見linux系統管理P183)
1) 掌握Linux系統中常見的文件類型:
-:普通文件(regular file),也有人稱為正規文件。
d:目錄(directory)。
l:符號(軟)鏈接。
b:塊特殊文件(b是block的第1個字符),一般指塊設備,如硬盤。
c:字符特殊文件(c是character的第1個字符),一般指字符設備,如鍵盤。
7. 怎樣檢查磁盤空間(詳見linux系統管理P185)
1) 掌握df命令的功能:顯示文件系統中磁盤使用和空閑區的數量。
-a 顯示所有磁盤
-h 單位轉換
2) 掌握du命令的功能: 顯示目錄和文件的大小a h同上
8. 課后作業(用時65分鍾)
1) 開啟Linux系統前添加一塊大小為15G的SCSI硬盤
2) 開啟系統,右擊桌面,打開終端
3) 為新加的硬盤分區,一個主分區大小為5G,剩余空間給擴展分區,在擴展分區上划分1個邏輯分區,大小為5G
4) 格式化主分區為ext3系統
5) 將邏輯分區設置為交換分區
6) 啟用上一步的交換分區
7) 查看交換分區的狀態
8) 新建目錄/dir1
9) 將主分區掛載到/dir1目錄
10) 查看整個磁盤的使用情況
11) 查看/分區的使用總量
12) 在root用戶的家目錄新建文件file1
13) 為file1創建硬鏈接file2
14) 為file1創建符號鏈接file3
15) 以長列表格式顯示root用戶家目錄下的內容,要求顯示i階段,並比較硬鏈接、符號鏈接的i節點和原文件的關系
第十四單元 Linux網絡原理及基礎設置
使用ifconfig命令來維護網絡
ifconfig命令的功能
ifconfig命令的用法舉例
使用ifup和ifdown命令啟動和停止網卡
ifup命令的功能
ifdown命令的功能
ifup命令的用法舉例
ifdown命令的用法舉例
網絡配置文件
網卡對應的網絡配置文件
什么是網絡配置
ip命令
ping命令
setup命令
課后作業
【本節內容】
1. 使用ifconfig命令來維護網絡(詳見linux系統管理P422)
1) 掌握ifconfig命令的功能:顯示所有正在啟動的網卡的詳細信息或設定系統中網卡的IP地址。
2) 靈活應用ifconfig命令設定網卡的IP地址:
例如:修改eth0網卡的IP地址為172.18.48.56和子網掩碼255.255.255.128的命令:
ifconfig eth0 172.18.48.56 netmask 255.255.255.128
2. 使用ifup和ifdown命令啟動和停止網卡(詳見linux系統管理P424)
1) 掌握ifup命令的功能:啟動系統上指定的網卡。
2) 掌握ifdown命令的功能:停止系統上指定的網卡。
3) 掌握使用ifup命令啟用指定網卡的舉例:
例如:啟動eth0網卡的命令:ifup eth0
4) 掌握使用ifdown命令停用指定網卡的舉例:
只能作用於配置文件
例如:停用eth0網卡的命令:ifdown eth0
3. 網絡配置文件 (詳見linux系統管理P425)
1) 了解網卡的配置文件存放在/etc/sysconfig/network-scripts目錄中,且每個網卡對應的配置文件的文件名以ifcfg-開始,如eth0這個網卡對應的網絡配置文件就是ifcfg-eth0。
補:虛擬機新添加網卡沒有配置文件需手動添加配置或圖形添加網卡
λ 掌握網絡配置的定義:所謂的網絡配置(設定)就是要修改網卡所對應的網絡配置文件,可以通過使用文字編輯器(vi)直接編輯網絡配置文件來重新配置網絡。
4. 課后作業(用時35分鍾)
1) 查看當前所有正在啟動的網卡的詳細信息
2) 激活系統的第一塊網卡
3) 為系統臨時設置ip為192.168.1.10/24
4) 查看第一塊網卡的詳細信息
5) 修改網卡配置文件將系統的第一塊網卡的ip地址設定為192.168.3.2,子網掩碼設置為255.255.255.0,是否啟動設置為yes
6) 使用setup命令為系統第一塊網卡設置ip為10.0.0.1/8
route:http://blog.csdn.net/chenlycly/article/details/52141854
第十五單元 軟件包的管理
使用RPM安裝及移除軟件
什么是RPM
rpm的文件名
rpm軟件安裝與移除工作中經常使用的選項
查看RPM軟件包中的信息
查詢已安裝的軟件包信息
RPM包的屬性依賴性問題
什么是RPM包的屬性依賴性問題
RPM包的屬性依賴性問題解決方法
將nginx編譯為rpm包
課后作業
【本節內容】
1. 使用RPM安裝及移除軟件(詳見linux系統管理P374)
1) 掌握RPM的定義:RPM就是Red Hat Package Manger(紅帽軟件包管理工具)的縮寫。
2) 了解rpm的文件名分為5部分,其中:
第1部分是name,表示這個rpm軟件包的名稱;
第2部分是version,表示這個rpm軟件包的版本編號;
第3部分是release,表示這個rpm軟件包的版本發布次數(修正號碼);
第4部分是architectures,表示這個rpm軟件包適用於哪些平台;
最后一部分是rpm,表示這個rpm軟件包的文件擴展名。
3) 掌握rpm軟件安裝與移除工作中經常使用的選項:
a) –i:安裝(Install)軟件。
b) –U:升級(Upgrade)舊版本的軟件。
c) –e:移除/刪除(Erase)軟件。
d) –v:顯示詳細的處理信息。
e) –h:顯示安裝進度。卸載不能用
2. 查看RPM軟件包中的信息(詳見linux系統管理P379)
1) 掌握常用的查詢已安裝的軟件包信息的命令:
a) rpm –qa:顯示目前操作系統上安裝的全部軟件包,其中q是query(查詢)的第1個字母,a是all(全部)的第1個字母。
Rpm –qa | grep dhcp
b) rpm –qf 文件名:顯示這個文件是由哪個軟件包安裝的,f是file(文件)的第1個字母。
例如:列出安裝/bin/tar文件的軟件包的命令為:rpm –qf /bin/tar
c) rpm –qi 軟件包名:顯示這個軟件包的信息,i是information(信息)的第1個字母。
例如:列出tar-1.14-10.RHEL4這個軟件包的詳細信息的命令:rpm –qi tar-1.14-10.RHEL4
d) rpm –ql 軟件包名:列出這個軟件包中所包含的全部文件,其中l是list的第1個字母。
例如:列出tar-1.14-10.RHEL4這個軟件包中所包含的全部文件的命令:rpm –ql tar
p數據包
3. RPM包的屬性依賴性問題(詳見linux系統管理P388)
1) 掌握RPM軟件包的屬性依賴性問題的定義:所謂的RPM軟件包的屬性依賴性問題,即這個軟件包的安裝依賴於其他軟件包的安裝。
4. 課后作業(用時40分鍾)
1) 掛載光盤文件到/media目錄
2) 進去/media目錄下的Packages目錄
3) 查看系統已安裝的所有rpm包
4) 查看系統是否安裝dhcp軟件包
5) 安裝dhcp軟件包
6) 查看dhcp軟件包的信息
7) 查看dhcp軟件包中所包含的所有文件
8) 查看/bin/ls文件是由哪個軟件包產生
9) 卸載dhcp軟件包
第十六單元 yum管理RPM包
yum的功能
本地yum配置
光盤掛載和鏡像掛載
本地yum配置
網絡yum配置
網絡yum配置
Yum命令的使用
使用yum安裝軟件
使用yum刪除軟件
安裝組件
刪除組件
清除緩存
查詢
課后作業
【本節內容】
1. yum的功能:yum是Yellow dog Updater, Modified的縮寫,目的就是為了解決RPM的依賴關系的問題,方便使用者進行軟件的安裝、升級等等工作。
2. 掌握光盤掛載和鏡像掛載
a) 光盤掛載
mount /dev/sr0 掛載點
或者
mount /dev/cdrom 掛載點
b) 鏡像文件的掛載
mount -o loop -t iso9660 鏡像文件 掛載點
其中,-o loop:用來把一個文件當成硬盤分區掛接上系統
3. 掌握yum的配置
yum的配置一般有兩種方式,一種是直接配置/etc目錄下的yum.conf文件,另外一種是在/etc/yum.repos.d目錄下增加.repo文件。
4. 掌握本地yum配置
[root@localhost ~]# mount /dev/cdrom /mnt #掛載光盤到/mnt目錄
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
rhel-source.repo
[root@localhost yum.repos.d]# cp rhel-source.repo rhel.repo #拷貝一份配置文件
[root@localhost yum.repos.d]# vi rhel.repo #編輯配置文件如下[rhel-local] #模塊名稱,須修改不能與其他.repo文件中的重名name=Red Hat Enterprise Linux 6 local repo #名稱隨便起baseurl=file:///mnt #指定rpm倉庫的位置
enabled=1 #1開啟該配置,0為關閉
gpgcheck=1 #1為校對軟件
[root@localhost ~]# yum install vsftpd httpd #安裝vsftpd及httpd服務
5. 掌握遠程yum配置方法
6. 利用vsftpd搭建yum源服務器:
Vsftpd默認的配置文件是允許匿名訪問,這里直接啟動就可以了:
[root@localhost ~]# umount /dev/cdrom #卸載光盤
[root@localhost ~]# mount /dev/cdrom /var/ftp/pub/ #掛載光盤到vsftpd的公眾目錄
[root@localhost ~]# service vsftpd restart #重啟vsftpd服務
必須關閉防火牆和selinux
Service iptables stop
Getenforce :查看selinux狀態
臨時關閉:不用重啟:setenforce 0
0 permissive允許 1 enforcing 執行
配置客戶機:
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls #rhel.repo是按照本地yum配置生成的
rhel.repo rhel-source.repo
[root@localhost yum.repos.d]# cat rhel.repo #修改為以下內容
[rhel-ftp]
name=Red Hat Enterprise Linux 6
baseurl=ftp://192.168.8.42/pub #指定yum源地址
enabled=1
gpgcheck=1
測試:
[root@localhost ~]# yum install bind #安裝DNS服務
7. 掌握使用yum安裝軟件
yum –y install 軟件名
8. 掌握使用yum刪除軟件
yum –y remove 軟件名
9. 掌握使用yum安裝組件
yum –y groupinstall 組件名
10. 掌握使用yum刪除組件
yum –y groupremove 組件名
11. 掌握清除yum緩存
yum clean all
12. 使用yum查找軟件包
yum search
13. 課后作業(用時45分鍾)
1) 以最小化開啟Linux系統
2) 配置本地yum
3) 安裝vim
4) 清除yum緩存
5) 安裝組件“KDE 桌面”
第十七單元 Samba服務
Samba的功能
Samba的安裝
Samba服務的啟動、停止、重啟
Samba服務的配置
Samba服務的主配置文件
samba服務器配置實例
Samba客戶端設置
windows客戶端
Linux客戶端
課后作業
【本節內容】
1. 掌握samba的功能: samba是一個網絡服務器,用於Linux和Windows之間共享文件。
2. 掌握samba服務的啟動、停止、重啟
service smb start|stop|restart
3. 掌握samba的主配置文件為:/etc/samba/smb.conf
4. 掌握配置samba服務
注意:
1 客戶端要對目錄是否有權限,必須samba軟件放權+系統放權
2 每個用戶的訪問方式是:\\服務端ip\用戶名,默認訪問自己的家目錄(該用戶對該目錄有w權限,且samba對用戶的家目錄開啟了writeable=yes的權限)
3 對於共享的目錄,是所有人打開目錄進行操作的,而不是一個打印機,所以printable一定要設置no
4 writeable=yes代表對所有用戶放行了寫權限,write list=user1,user2無效,因為放行的所有用戶中已然包含user1和user2
5 writeable=no,write list=user1,user2代表所有人都沒有寫權限,唯獨user1和user2有
comment = ...... 設置共享注譯
path = 設置共享目錄的物理路徑
valid users = @組名,用戶名 設置允許哪些合法組或用戶訪問
public = yes|no 設置共享資源是否能給游客帳號訪問
browseable = yes|no 設置該共享為隱藏共享
writable = yes|no 設置是否允許客戶端寫入數據
hosts allow = 設置允許訪問該共享的合法網段或IP
samba安全認證掌握兩種:share (匿名訪問)user:用戶名密碼
添加smb用戶和設置密碼:smbpasswd –a 用戶
Useradd u
5. 掌握windows客戶端的訪問方式
6.掌握Linux客戶端的訪問方式
7.課后作業(用時50分鍾)
1) Linux服務器上安裝Samba服務軟件
2) 對Samba的主配置文件進行資源共享設置
3) 在Samba服務器上設置用戶登錄賬號
4) 分別在Linux和Windows客戶端進行連接測試
第十八單元 nginx服務
源碼安裝:
yum install gcc-* glibc-* openssl openssl-devel pcre pcre-devel zlib zlib-devel -y
ls
tar xvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
ls
./configure
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --without-http_rewrite_module #--without-http_rewrite_module代表不使用重寫功能,即不會引用pcre庫,如果安裝過程中出現pcre相關問題,可以指定該參數
make
make install
說明:
pcre: 用來作地址重寫的功能。
zlib:nginx 的gzip模塊,傳輸數據打包,省流量(但消耗資源)。
openssl:提供ssl加密協議。
安裝:http://www.cnblogs.com/crazyacking/p/5138146.html
相關參數:http://blog.csdn.net/xifeijian/article/details/20956605
location:http://www.tuicool.com/articles/Jr63qy
正向代理,反向代理,透明代理:http://blog.csdn.net/u012572955/article/details/49357219
代理:A訪問B,A把自己的請求讓C代理,C去訪問B
正向代理:A明確地知道自己的代理C的存在,A明確地指定自己的代理地址是C,讓C去訪問B,拿到結果再給A,通常用來翻牆
反向代理:用戶請求發給nginx后,由nginx負載給代理的機器,拿到結果,再由nginx返回給客戶端(如此,nginx便把一堆自己代理的機器隱藏到后端,外界訪問的就是nginx)
透明代理:用戶不知道代理的存在,用戶->交換機->路由器->代理服務器,代理服務器可以控制用戶的上網行為,比如限制用戶可以訪問和不可以訪問的網站,多用於用戶行為管理
LB:http://nginx.org/en/docs/http/load_balancing.html
第十九單元 nfs服務
===============服務端
介紹:
NFS 是Network File System的縮寫,即網絡文件系統。一種使用於分散式文件系統的協定,由Sun公司開發,於1984年向外公布。功能是通過網絡讓不同的機器、不同的操作系統能夠彼此分享個別的數據,讓應用程序在客戶端通過網絡訪問位於服務器磁盤中的數據,是在類Unix系統間實現磁盤文件共享的一種方法。
NFS 的基本原則是“容許不同的客戶端及服務端通過一組RPC分享相同的文件系統”,它是獨立於操作系統,容許不同硬件及操作系統的系統共同進行文件的分享。
NFS在文件傳送或信息傳送過程中依賴於RPC協議。RPC,遠程過程調用 (Remote Procedure Call) 是能使客戶端執行其他系統中程序的一種機制。NFS本身是沒有提供信息傳輸的協議和功能的,但NFS卻能讓我們通過網絡進行資料的分享,這是因為NFS使用了一些其它的傳輸協議。而這些傳輸協議用到這個RPC功能的。可以說NFS本身就是使用RPC的一個程序。或者說NFS也是一個RPC SERVER。所以只要用到NFS的地方都要啟動RPC服務,不論是NFS SERVER或者NFS CLIENT。這樣SERVER和CLIENT才能通過RPC來實現PROGRAM PORT的對應。可以這么理解RPC和NFS的關系:NFS是一個文件系統,而RPC是負責負責信息的傳輸。
安裝:
yum install rpcbind nfs-utils -y
配置:
NFS服務的配置文件為 /etc/exports,這個文件是NFS的主要配置文件,不過系統並沒有默認值,所以這個文件不一定會存在,可能要使用vim手動建立,然后在文件里面寫入配置內容。
/etc/exports文件內容格式:
<輸出目錄> [客戶端1 選項(訪問權限,用戶映射,其他)] [客戶端2 選項(訪問權限,用戶映射,其他)]
a. 輸出目錄:
輸出目錄是指NFS系統中需要共享給客戶機使用的目錄;
b. 客戶端:
客戶端是指網絡中可以訪問這個NFS輸出目錄的計算機
客戶端常用的指定方式
- 指定ip地址的主機:192.168.0.200
- 指定子網中的所有主機:192.168.0.0/24 192.168.0.0/255.255.255.0
- 指定域名的主機:david.bsmart.cn
- 指定域中的所有主機:*.bsmart.cn
- 所有主機:*
c. 選項:
選項用來設置輸出目錄的訪問權限、用戶映射等。
NFS主要有3類選項:
訪問權限選項
- 設置輸出目錄只讀:ro
- 設置輸出目錄讀寫:rw
用戶映射選項
- all_squash:將遠程訪問的所有普通用戶及所屬組都映射為匿名用戶或用戶組(nfsnobody);
- no_all_squash:與all_squash取反(默認設置);
- root_squash:將root用戶及所屬組都映射為匿名用戶或用戶組(默認設置);
- no_root_squash:與rootsquash取反;
- anonuid=xxx:將遠程訪問的所有用戶都映射為匿名用戶,並指定該用戶為本地用戶(UID=xxx);
- anongid=xxx:將遠程訪問的所有用戶組都映射為匿名用戶組賬戶,並指定該匿名用戶組賬戶為本地用戶組賬戶(GID=xxx);
其它選項
- secure:限制客戶端只能從小於1024的tcp/ip端口連接nfs服務器(默認設置);
- insecure:允許客戶端從大於1024的tcp/ip端口連接服務器;
- sync:將數據同步寫入內存緩沖區與磁盤中,效率低,但可以保證數據的一致性;
- async:將數據先保存在內存緩沖區中,必要時才寫入磁盤;
- wdelay:檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率(默認設置);
- no_wdelay:若有寫操作則立即執行,應與sync配合使用;
- subtree:若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限(默認設置);
- no_subtree:即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率;
修改配置
[root@MiWiFi-R3-srv nginx]# cat /etc/exports
/share 192.168.31.0/24(rw,sync,fsid=0)
開權限(nfs開啟了w權限還不行,others還需要對/share目錄有w權限)
chmod -R o+w /share
先為rpcbind和nfs做開機啟動:
[root@MiWiFi-R3-srv nginx]# systemctl enable nfs-server.service
[root@MiWiFi-R3-srv nginx]# systemctl enable rpcbind.service
啟動(必須先啟動rpcbind服務)
[root@MiWiFi-R3-srv nginx]# systemctl start rpcbind.service
[root@MiWiFi-R3-srv nginx]# systemctl start nfs-server.service
確認nfs服務器啟動成功
[root@MiWiFi-R3-srv nginx]# rpcinfo
[root@MiWiFi-R3-srv nginx]# exportfs
/share 192.168.31.0/24
[root@MiWiFi-R3-srv nginx]# showmount -e #默認查看自己共享的服務,前提是要DNS能解析自己,不然容易報錯
Export list for MiWiFi-R3-srv:
/share 192.168.31.0/24
[root@MiWiFi-R3-srv nginx]# showmount -a #顯示已經與客戶端連接上的目錄信息
All mount points on MiWiFi-R3-srv:
=====================客戶端
yum install rpcbind nfs-utils -y
systemctl enable rpcbind.service && systemctl start rpcbind.service
showmount -e NFS服務器IP #檢查 NFS 服務器端是否有目錄共享
mount -t nfs 192.168.31.106:/share /var/www/html/
=====================測試
基於nginx的負載均衡配置,打開后端被代理服務的access.log日志,tail -f access.log來觀察訪問,訪問LB刷新頁面發現內容保持一致,但是每台被代理的機器的access.log日志都有新的內容進來
第二十單元 計划任務crond服務
什么是計划任務:
后台運行,到了預定的時間就會自動執行的任務,前提是:事先手動將計划任務設定好。這就用到了crond服務
crond服務相關的軟件包
[root@MiWiFi-R3-srv ~]# rpm -qa |grep cron
cronie-anacron-1.4.11-14.el7.x86_64
crontabs-1.11-6.20121102git.el7.noarch
cronie-1.4.11-14.el7.x86_64
這些包在最小化安裝系統時就已經安裝了,並且會開機自啟動crond服務,並為我們提供好編寫計划任務的crontab命令。
計划任務分為兩類:系統級和用戶級
首先需要知道的是,無論是系統級還是用戶級的cron計划都是文本文件,系 統的計划文件存放在/etc/crontab路徑下。用戶的計划文件放在/var/spool/cron/用戶名,不管是哪一種,都可以滿足我們定制計划任務的需求。
root用戶可以直接對文件進行修改來編寫計划任務也可以使用 crontab -e命令,而普通用戶只能使用后者。除此之外,系統crontab文件中任務的定義也有所不同,在前五個部分之后插入了一個“用戶”部分。
[root@MiWiFi-R3-srv ~]# cat /etc/crontab #查看全局計划任務
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
* * * * * root run-parts /test #run-parts命令,可以執行一個目錄下所有的可執行文件,目錄下文件必須有執行權限
You have new mail in /var/spool/mail/root
[root@MiWiFi-R3-srv ~]# crontab -u tom -l #通過命令查看用戶tom的計划任務
*/1 * * * * echo 123213123213
[root@MiWiFi-R3-srv ~]# cat /var/spool/cron/tom #從文件中查看用戶tom的計划任務
*/1 * * * * echo 123213123213
crontab命令編寫計划任務
語 法:crontab [-u <用戶名稱>][配置文件] 或 crontab [-u <用戶名稱>][-elr]
crontab任務配置基本格式:
* * * * * command
分鍾(0-59) 小時(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天) 命令
第1列表示分鍾1~59 每分鍾用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令
參 數:
-e 編輯該用戶的計時器設置。
-l 列出該用戶的計時器設置。
-r 刪除該用戶的計時器設置。
-u<用戶名稱> 指定要設定計時器的用戶名稱。
注意:
1 查看計划任務的執行:tail -f /var/log/cron
2 寫計划任務時,命令必須加上絕對路徑,否則會出現這種情況:從日志中看,確實觸發了計划任務的執行,但是命令卻沒有執行成功,比如* * * * * reboot就會出現這種情況,需要將reboot寫成/usr/sbin/reboot
crontab例子:
30 21 * * * /usr/local/etc/rc.d/apache restart #每晚的21:30 重啟apache
45 4 1,10,22 * * /usr/local/etc/rc.d/apache restart #每月1、10、22日的4 : 45重啟apache
10 1 * * 6,0 /usr/local/etc/rc.d/apache restart #每周六、周日的1 : 10重啟apache
0,30 18-23 * * * /usr/local/etc/rc.d/apache restart #每天18 : 00至23 : 00之間每隔30分鍾重啟apache
0 23 * * 6 /usr/local/etc/rc.d/apache restart #每星期六的11 : 00 pm重啟apache
* 23-7/1 * * * /usr/local/etc/rc.d/apache restart #晚上11點到早上7點之間,每隔一個小時的每分鍾重啟 apache
0 */1 * * * /usr/local/etc/rc.d/apache restart #每一小時重啟apache
0 11 4 * mon-wed /usr/local/etc/rc.d/apache restart #每月的4號與每周一到周三的11點重啟apache
0 4 1 jan * /usr/local/etc/rc.d/apache restart #一月一號的4點重啟apache
*/30 * * * * /usr/sbin/ntpdate 210.72.145.44 #每半小時同步一下時間
0 */2 * * * www /usr/bin/somecommand >> /dev/null 2>&1 #以用戶www的身份每兩小時就運行某個程序:
0 1 * * * /home/testuser/test.sh #每天1點調用/home/testuser/test.sh
*/10 * * * * /home/testuser/test.sh #每10鍾調用一次/home/testuser/test.sh
30 21 * * * /usr/local/etc/rc.d/lighttpd restart #每天的21:30重啟lighttpd
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart #每月1、10、22日的4 : 45重啟lighttpd
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart #每周六、周日的1 : 10重啟lighttpd
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart #上面的例子表示在每天18 : 00至23 : 00之間每隔30分鍾重啟apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart #上面的例子表示每星期六的11 : 00 pm重啟lighttpd
* */2 * * * /usr/local/etc/rc.d/lighttpd restart #每兩小時的每分鍾重啟lighttpd
0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart #晚上11點到早上7點之間,每隔一小時重啟lighttpd
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart #每月的4號與每周一到周三的11點重啟lighttpd
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart #一月一號的4點重啟lighttpd
*/30 * * * * /usr/sbin/ntpdate 210.72.145.44 #每半小時同步一下時間
對於一些常見的時間格式可以用如@yearly的方式代替
@reboot 代表的意思Run once, at startup.
@yearly 代表的意思Run once a year, "0 0 1 1 *".
@annually 與@yearly相同意思
@monthly 代表的意思Run once a month, "0 0 1 * *".
@weekly 代表的意思Run once a week, "0 0 * * 0".
@daily 代表的意思Run once a day, "0 0 * * *".
@midnight 與@daily的意思相同
@hourly 代表的意思Run once an hour, "0 * * * *".
除此之外,系統還有一些自帶的計划任務
cron默認配置了調度任務,分別為:hourly、daily、weekly、mouthly,默認配置文件為/etc/anacrontab
將需要執行的腳本放到相應的目錄下即可,目錄分別為:
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/ect/cron.mouthly
查看cron服務是否起作用:
如果我們要查看定時任務是否准時調用了可以/var/log/cron中的運行信息
cat /var/log/cron
也可以用tail -f /var/spool/mail/用戶名,來查看普通用戶的計划任務執行情況
此處需要記住兩點:
第一:cron 守護進程每分鍾都檢查 /etc/crontab 文件、etc/cron.d/ 目錄、以及 /var/spool/cron 目錄中的改變。如果發現了改變,它們就會被載入內存。這樣,當某個 crontab 文件改變后就不必重新啟動守護進程了。
第二:crontab的用戶手冊中推薦每一個命令使用絕對路徑,例如調用rm命令時寫作:/bin/rm,這是為了防止由於每一個用戶的PATH環境變量不同而導致命令無法找到的錯誤。
網上查詢到的資料crontab不執行的問題:
轉自:http://blog.csdn.net/jbgtwang/article/details/7995801
第一,腳本的原因:大多數情況下,我們要相信科學,相信計算機,不是有鬼,就是我們的腳本的問題,這種問題導致crontab不能執行的概率占到 70%以上。因為程序執行到某一步導致crontab終止執行,我就碰到一次在遷移代碼的時候將數據庫連錯了。導致無法訪問而死在那里了。
第二,執行環境問題,當我們碰到第一情況下,一般都可以通過手動執行程序將問題扼殺在搖籃里,一般情況下高手是不應該犯第一種錯誤的。問題是當我們 手動執行成功而crontab不能執行的時候,筆者碰到一次就是執行環境的問題,例如相關路徑的設置問題。解決方案:在代碼最前面執行 source /home/user/.bash_profile
第三,系統時間不正確。這種問題最好理解,也是比較常見和隱蔽的問題,解決方案:date -s ********
第四,就是我們的腳本是否有可執行權限。必須保證執行腳本的用戶有執行改文件的權限。
第五,crontab 守護進程死掉了。這種情況是極少發生的,但也不排除,當我們實在是找不到其他原因的時候可以用。解決方案:重啟該進程。
第六,crontab不執行的問題困擾了好長時間,腳本寫的都正確,但是就是不執行,最終解決方法如下:
crontab -u root /var/spool/cron/root
這樣root用戶的crontab就生效了
service crond restart
重啟下服務就好了
第七,crond沒有啟動
第八,腳本編碼問題,腳本在window下編寫,傳到linux下后報“鍩?!/bin/bash”,用vi編輯器新建新shell腳本,輸入內容后保存。
第九
* * * * * tar czf /tmp/`date '+%Y'` /etc 該計划任務中命令的執行流程是crond->tar命令,而crond在執行tar命令時,無法識別通配符%的意思(shell能識別),所以該命令無法正常執行
改正結果:* * * * * tar czf /tmp/`date '+\%Y'` /etc
通常都會把要執行的操作放到文件中,然后/bin/bash a.sh去執行,* * * * * /bin/bash a.sh ,這樣的執行流程就變成了crond->bash shell->a.sh,這樣a.sh內即便是寫%號,也能被識別出來
第二十一單元 Shell編程
附件1 linux系統啟動流程
最初始階段
當我們打開計算機電源,計算機會自動從主板的BIOS(Basic Input/Output System)讀取其中所存儲的程序。這一程序通常知道一些直接連接在主板上的硬件(硬盤,網絡接口,鍵盤,串口,並口)。現在大部分的BIOS允許你從軟盤、光盤或者硬盤中選擇一個來啟動計算機。
下一步,計算機將從你所選擇的存儲設備中讀取起始的512 bytes(比如光盤一開是的512 bytes,如果我們從光盤啟動的話)。這512 bytes叫做主引導記錄MBR (master boot record)。MBR會告訴電腦從該設備的某一個分區(partition)來裝載引導加載程序(boot loader)。Boot loader儲存有操作系統(OS)的相關信息,比如操作系統名稱,操作系統內核 (kernel)所在位置等。常用的boot loader有GRUB和LILO。
隨后,boot loader會幫助我們加載kernel。kernel實際上是一個用來操作計算機的程序,它是計算機操作系統的內核,主要的任務是管理計算機的硬件資源,充當軟件和硬件的接口。操作系統上的任何操作都要通過kernel傳達給硬件。Windows和Linux各自有自己kernel。狹義的操作系統就是指kernel,廣義的操作系統包括kernel以及kernel之上的各種應用。
(Linus Torvalds與其說是Linux之父,不如說是Linux kernel之父。他依然負責Linux kernel的開發和維護。至於Ubuntu, Red Hat, 它們都是基於相同的kernel之上,囊括了不同的應用和界面構成的一個更加完整的操作系統版本。)
實際上,我們可以在多個分區安裝boot loader,每個boot loader對應不同的操作系統,在讀取MBR的時候選擇我們想要啟動的boot loader。這就是多操作系統的原理。
小結:BIOS -> MBR -> boot loader -> kernel
kernel
如果我們加載的是Linux kernel,Linux kernel開始工作。kernel會首先預留自己運行所需的內存空間,然后通過驅動程序(driver)檢測計算機硬件。這樣,操作系統就可以知道自己有哪些硬件可用。隨后,kernel會啟動一個init進程。它是Linux系統中的1號進程(Linux系統沒有0號進程)。到此,kernel就完成了在計算機啟動階段的工作,交接給init來管理。
小結: kernel -> init process
init process
(根據boot loader的選項,Linux此時可以進入單用戶模式(single user mode)。在此模式下,初始腳本還沒有開始執行,我們可以檢測並修復計算機可能存在的錯誤)
隨后,init會運行一系列的初始腳本(startup scripts),這些腳本是Linux中常見的shell scripts。這些腳本執行如下功能:
設置計算機名稱,時區,檢測文件系統,掛載硬盤,清空臨時文件,設置網絡……
當這些初始腳本,操作系統已經完全准備好了,只是,還沒有人可以登錄!!!init會給出登錄(login)對話框,或者是圖形化的登錄界面。
輸入用戶名(比如說vamei)和密碼,DONE!
在此后的過程中,你將以用戶(user)vamei的身份操作電腦。此外,根據你創建用戶時的設定,Linux還會將你歸到某個組(group)中,比如可以是stupid組,或者是vamei組。
所以你將是用戶vamei, 同時是vamei組的組員。(注意,組vamei和用戶vamei只是重名而已,就好想你可以叫Dell, 同時還是Dell公司的老板一樣。你完全也可以是用戶vamei,同時為stupid組的組員)
總結
BIOS -> MBR -> boot loader -> kernel -> init process -> login
用戶,組