吐槽一下簡書居然不支持[TOC]...
Linux概述
| Unix | Linux |
|---|---|
| 商業(yè)付費軟件 | 免費公開源代碼 |
| 多數(shù)是與硬件配套的 | 可運行在多種硬件平臺上 |
| 對硬件的要求更為苛刻 | 對硬件要求沒有Unix高 |
| 安裝復(fù)雜 | 安裝相對簡易 |
| 使用比較復(fù)雜 | 使用相比Unix要簡單 |
| 最穩(wěn)定 | 穩(wěn)定性次之 |
Linux結(jié)構(gòu)
- 硬件
- 內(nèi)核kernel
- 操作系統(tǒng)的核心
- 指揮調(diào)度linux機器的運行,直接控制計算機的資源
- 保護用戶程序不受錯綜復(fù)雜的硬件世界的影響
- 外殼shell
- 是Linux的一個特殊程序,是用戶與內(nèi)核之間的命令解釋器
- 應(yīng)用程序
Linux特點
- 多任務(wù),多用戶:CPU時間分片,分給不同的進程;允許多個用戶同時登陸使用。
- 管道,功能強大的shell: 管道-前一個程序的輸出作為后一個程序的輸入,shell是一種解釋型高級語言。
- 安全保護機制,穩(wěn)定性好:防止系統(tǒng)及其數(shù)據(jù)未經(jīng)許可而被非法訪問,穩(wěn)定性Unix好于Linux,Linux好于Windows。
- 用戶界面,強大的網(wǎng)絡(luò)支持:常用命令行的方式,同時提供圖形界面;TCP/IP協(xié)議就是Linux的缺省網(wǎng)絡(luò)協(xié)議。
- 移植性好:源代碼用C語言寫成,便于移植到其它計算機上。
Linux文件和目錄管理
樹型結(jié)構(gòu)
/bin:存放的是構(gòu)建最小系統(tǒng)所需要的命令
/sbin:即為System bin,是與操作系統(tǒng)有關(guān)的命令
/boot:內(nèi)核與啟動文件
/dev:存放的是各種設(shè)備文件
/etc:存放的是系統(tǒng)軟件的啟動和配置文件
/home:用戶的主目錄
/root:超級用戶root的家目錄
/usr:非系統(tǒng)的程序和命令
/var:系統(tǒng)專用的數(shù)據(jù)和配置文件
/opt:可選的應(yīng)用軟件包
/tmp:臨時文件存放點
文件和目錄的基本操作
- 顯示當(dāng)前的工作目錄:pwd
- 變更工作目錄:cd cd后面不跟任何路徑,則是回到當(dāng)前目錄的家目錄。
- 新增目錄:mkdir -m指定存取模式 -p建立目錄時建立其所有不存在的父目錄。
- 刪除目錄:rmdir 刪除空目錄,如果刪除非空目錄,rm即可, –p刪除目錄及父目錄
- 復(fù)制文件或目錄 :cp+源文件或目錄+目的文件或目錄
- 移動文件或目錄:mv +源文件或目錄+目的文件或目錄
- 刪除文件或目錄:rm+文件或目錄
- 查找文件或目錄:find +路徑+參數(shù) -name以指定字符串開頭的文件名 -user 查找指定用戶所擁有的文件
查看文件內(nèi)容
- cat:直接查閱文件內(nèi)容,不能翻頁
- more:翻頁查看文件內(nèi)容
- less:翻頁閱讀,和more類似。但操作按鍵比more更加彈性。
- head:查看文檔的前面幾行內(nèi)容,默認為10行
- tail:查看文件的后面幾行內(nèi)容,默認為10行
Linux 文件系統(tǒng)管理
存儲在介質(zhì)中數(shù)據(jù)的三個因素
- 文件名:定位存儲的位置
- 數(shù)據(jù):文件的具體內(nèi)容
- 元數(shù)據(jù):文件有關(guān)的信息,例如文件的權(quán)限、所有者、文件的修改時間等
Linux支持的文件系統(tǒng)類型可查看/proc/filesystems
文件系統(tǒng)的分類
是否有日志
- 傳統(tǒng)型文件系統(tǒng):寫入文件內(nèi)容的時候,先寫數(shù)據(jù),再寫元數(shù)據(jù)。例如 ext2
- 日志型文件系統(tǒng):寫入文件內(nèi)容的時候,先寫日志記錄文件(更安全)。 ext3=ext2+日志 ReiserFS基于平衡樹,搜索快
如何查找數(shù)據(jù) - 索引式文件系統(tǒng):文件屬性數(shù)據(jù)和實際內(nèi)容放在不同的區(qū)塊,例如Linux中默認的ext2中,文件屬性數(shù)據(jù)存放在inode,實際內(nèi)容放在block
- 非索引式文件系統(tǒng):只有block,數(shù)據(jù)需要一個block接一個block讀?。ㄏ乱粋€block位置存放在上一個block中),效率低。 FAT
碎片整理:就是寫入的數(shù)據(jù)的block太過分散,此時讀取的效率會很低。磁盤整理的目的 就是將這些分散的block盡量的集中起來。
配置文件系統(tǒng)分區(qū)
創(chuàng)建分區(qū):fdisk+設(shè)備名,輸入完該命令之后,可以通過參數(shù)m查看按鍵操作說明,通過參數(shù)p可以得到本磁盤的相關(guān)信息,輸入n命令可以新建一個分區(qū)。使用完n之后,新建分區(qū)的步驟如下:
- 選擇分區(qū)類型
- 選擇分區(qū)開始的磁柱
- 決定分區(qū)的大小
- 保存新建的分區(qū)
- 通過重啟服務(wù)器或使用partprobe命令通知內(nèi)核
創(chuàng)建文件系統(tǒng):mkfs 參數(shù) 設(shè)備名,-t指定文件系統(tǒng)類型 -b指定block大小,單位bytes,ext2和ext3僅支持1024/2048/4096三種
掛載文件系統(tǒng):掛載的過程就是將文件系統(tǒng)和目錄樹上的某一個目錄結(jié)合。mount+設(shè)備名+掛載點 -t -b同上
管理Linux文件系統(tǒng)
查看分區(qū)使用情況:
- df:查看文件系統(tǒng)的磁盤空間占用情況 –h以容易理解的格式打印出文件系統(tǒng)大小 –i顯示inode信息而非塊使用量。
- du:查看文件或目錄的磁盤使用空間 –a顯示目錄下的每個文件所占的磁盤空間 –s只顯示大小的總和 -h以容易理解的格式輸出文件大小值
查看系統(tǒng)打開的文件:lsof
- Isof filename顯示打開指定文件的所有進程
- Isof –c string顯示以指定字符開頭的進程所有打開的文件
- Isof –u username顯示所屬user相關(guān)進程打開的文件
修復(fù)文件系統(tǒng):
- fsck檢查文件系統(tǒng)并嘗試修復(fù)錯誤。執(zhí)行fsck時,必須將要修復(fù)的設(shè)備進行 umount后,再執(zhí)行fsck命令。
- e2fsck:檢查和修復(fù)ext2和ext3文件系統(tǒng)
Linux用戶和用戶組管理
- 用戶ID信息文件 /etc/passwd
- /etc/passwd的文件記錄的是單個用戶的登錄信息
- 里面有兩條記錄:root和smc
- 每一條記錄被冒號分割稱7個字段
- 分別是 用戶名:密碼:UID:GID:用戶的描述:用戶加目錄:用戶的shell類型
- 組ID信息文件 /etc/group
- /etc/group記錄的是GID和用戶組組名的一個對應(yīng)關(guān)系
用戶管理常用命令
- 用戶查詢常用命令:id(查詢當(dāng)前登錄用戶的GID、UID)、finger(查詢當(dāng)前用戶屬性信息,如家目錄和用戶類型)
- 新增用戶
linux: ~ # useradd -d /home/ipcc -m -u 2000 -g mms -s /bin/csh ipcc
說明:useradd[參數(shù)] [用戶名] -d: 設(shè)置用戶的家目錄 -m: 設(shè)置的家目錄不存在時自動創(chuàng)建 -u: 設(shè)置用戶的UID -g: 設(shè)置初始GID或者組名 -s: 指定用戶的shell
如果沒有設(shè)定參數(shù),系統(tǒng)會自動讀取/etc/default/useradd配置文件,指定相關(guān)用戶組、shell等參數(shù)。
如果要查詢,可以輸入linux:~ # useradd -D讀取基本配置。
- 刪除用戶
linux:~ # userdel ipcc //刪除ipcc用戶
linux:~ # userdel -r iptv //刪除iptv用戶及其家目錄
- 設(shè)置用戶密碼
linux:~ # passwd ipcc
- 修改用戶屬性
usedmod [用戶名] -d: 修改用戶家目錄 -g: 修改初始用戶組
用戶組管理常用命令
- 新增用戶組
linux:~ # groupadd ipcc //不指定GID
linux:~ # groupadd -g 2000 iptv //GID為2000
- 刪除用戶組
linux:~ # groupdel iptv
- 修改用戶組
linux:~ # groupmod -g 2500 -n ipcc1 ipcc //修改GID為2500,組名為ipcc1
Linux LVM配置
- Logical Volume Manager
- 建立在硬盤和分區(qū)之間的邏輯層
- 提高磁盤分區(qū)管理的靈活性
- 在傳統(tǒng)的存儲模型中,文件系統(tǒng)是直接構(gòu)建在物理分區(qū)之上的,物理分區(qū)的大小決定了其上文件系統(tǒng)的存儲容量,調(diào)整文件系統(tǒng)的存儲容量變得比較繁瑣
- LVM設(shè)計的主要目標是實現(xiàn)文件系統(tǒng)存儲容量可擴展性,使對容量的調(diào)整更簡易
架構(gòu)

物理分區(qū):pp-physical partition,可以是硬盤的分區(qū)或者是RAID分區(qū)
物理卷:PV-physical volume,是pp的LVM抽象,維護了pp的結(jié)構(gòu)信息,是組成VG的基本邏輯單元,一般一個PV對應(yīng)一個PP
物理擴展單元:PE-physical extends,每個PV都會以pe為基本單元劃分,是lvm的最小存儲單元
卷組:vg-volume group,由一個或者數(shù)個PV組成,可以看做LVM組合起來的大磁盤
邏輯擴展單元:LE-logical extends,組成LV的基本單元,一個LE對應(yīng)一個PE
邏輯卷:LV-logical volume,建立在VG之上,文件系統(tǒng)之下,由若干個LE組成,文件系統(tǒng)是基于邏輯卷的
LVM是通過交換PE的方式來達到彈性變更文件系統(tǒng)的大小
想擴增VG的容量則可以通過增加PV的方式
一般LVM默認的pe的大小是4M,最多有65534個PE,所以LVM的VG最大為256G
LV和磁盤的dev/sda2分區(qū)類似,是用來格式化的單位。當(dāng)對LV進行寫入操作時LVM定位相應(yīng)的LE,通過PV頭部的映射表將數(shù)據(jù)寫入到相應(yīng)的PE上
LV實現(xiàn)的關(guān)鍵在于PE和LE之間建立的映射關(guān)系,不同的映射規(guī)則決定了不同的LVM存儲模型
優(yōu)勢
- 文件系統(tǒng)可以跨多個磁盤
- 動態(tài)地擴展文件系統(tǒng)大小
- 增加新磁盤到LVM的存儲池中
注意要點
- 按需分配文件系統(tǒng)的大小,多余的空間放在存儲池中
- 把不同的數(shù)據(jù)放在不同的卷組中,在系統(tǒng)升級或者數(shù)據(jù)遷移的時候較為方便
LVM的配置流程
- 物理分區(qū)階段
- 通過fdisk將systernID修改為LVM標記
- PV階段
- 通過pvcreate將Linux分區(qū)處理成物理卷PV
- VG階段(含有多個PE)
- 通過vgcreate將創(chuàng)建好的物理卷處理成卷組vg
- LV階段(可用于格式化)
- 通過lvcreate將卷組分成若干個邏輯卷LV
- 操作系統(tǒng)使用階段
- 通過mkfs工具將LV格式化
- 最后掛載格式化后的LV到文件系統(tǒng) mount
物理卷管理
- pvcreate創(chuàng)建物理卷
- 將普通的分區(qū)加上pv屬性
- 例如將分區(qū)/dev/sda6創(chuàng)建為物理卷:pvcreate /dev/sda6
- pvremove刪除物理卷(語法和pvcreate一致)
- pvscan查看物理卷信息
- pvdisplay查看各個物理卷的詳細參數(shù)
卷組管理命令
- vgcreate 創(chuàng)建卷組
- vgscan 查看卷組信息
- vgdisplay 查看卷組的詳細參數(shù)
- vgreduce 縮小卷組,把物理卷從卷組中刪除
- vgextend 擴展卷組,把某個物理卷添加到卷組中
- vgremove 刪除卷組
邏輯卷管理
- lvcreate 創(chuàng)建邏輯卷
- lvscan 查看邏輯卷的信息
- lvdisplay查看邏輯卷的具體參數(shù)
- lvextend增大邏輯卷的大小
- lvreduce減小邏輯卷的大小
- lvremove 刪除邏輯卷
管理文件系統(tǒng)空間
- 增大文件系統(tǒng)空間
- 先卸載邏輯卷
- 然后通過vgentend,lvextend等命令增大lv的空間
- 再使用resize2fs將邏輯卷容量增加
- 最后將邏輯卷掛載到目錄樹
- 縮小文件系統(tǒng)空間
- 先卸載邏輯卷
- 使用resize2fs將邏輯卷容量減小
- 然后通過vgreduce,lvreduce等命令減小lv的空間
- 最后將邏輯卷掛載到目錄樹