吐槽一下簡書居然不支持[TOC]...
Linux概述
Unix | Linux |
---|---|
商業付費軟件 | 免費公開源代碼 |
多數是與硬件配套的 | 可運行在多種硬件平臺上 |
對硬件的要求更為苛刻 | 對硬件要求沒有Unix高 |
安裝復雜 | 安裝相對簡易 |
使用比較復雜 | 使用相比Unix要簡單 |
最穩定 | 穩定性次之 |
Linux結構
- 硬件
- 內核kernel
- 操作系統的核心
- 指揮調度linux機器的運行,直接控制計算機的資源
- 保護用戶程序不受錯綜復雜的硬件世界的影響
- 外殼shell
- 是Linux的一個特殊程序,是用戶與內核之間的命令解釋器
- 應用程序
Linux特點
- 多任務,多用戶:CPU時間分片,分給不同的進程;允許多個用戶同時登陸使用。
- 管道,功能強大的shell: 管道-前一個程序的輸出作為后一個程序的輸入,shell是一種解釋型高級語言。
- 安全保護機制,穩定性好:防止系統及其數據未經許可而被非法訪問,穩定性Unix好于Linux,Linux好于Windows。
- 用戶界面,強大的網絡支持:常用命令行的方式,同時提供圖形界面;TCP/IP協議就是Linux的缺省網絡協議。
- 移植性好:源代碼用C語言寫成,便于移植到其它計算機上。
Linux文件和目錄管理
樹型結構
/bin:存放的是構建最小系統所需要的命令
/sbin:即為System bin,是與操作系統有關的命令
/boot:內核與啟動文件
/dev:存放的是各種設備文件
/etc:存放的是系統軟件的啟動和配置文件
/home:用戶的主目錄
/root:超級用戶root的家目錄
/usr:非系統的程序和命令
/var:系統專用的數據和配置文件
/opt:可選的應用軟件包
/tmp:臨時文件存放點
文件和目錄的基本操作
- 顯示當前的工作目錄:pwd
- 變更工作目錄:cd cd后面不跟任何路徑,則是回到當前目錄的家目錄。
- 新增目錄:mkdir -m指定存取模式 -p建立目錄時建立其所有不存在的父目錄。
- 刪除目錄:rmdir 刪除空目錄,如果刪除非空目錄,rm即可, –p刪除目錄及父目錄
- 復制文件或目錄 :cp+源文件或目錄+目的文件或目錄
- 移動文件或目錄:mv +源文件或目錄+目的文件或目錄
- 刪除文件或目錄:rm+文件或目錄
- 查找文件或目錄:find +路徑+參數 -name以指定字符串開頭的文件名 -user 查找指定用戶所擁有的文件
查看文件內容
- cat:直接查閱文件內容,不能翻頁
- more:翻頁查看文件內容
- less:翻頁閱讀,和more類似。但操作按鍵比more更加彈性。
- head:查看文檔的前面幾行內容,默認為10行
- tail:查看文件的后面幾行內容,默認為10行
Linux 文件系統管理
存儲在介質中數據的三個因素
- 文件名:定位存儲的位置
- 數據:文件的具體內容
- 元數據:文件有關的信息,例如文件的權限、所有者、文件的修改時間等
Linux支持的文件系統類型可查看/proc/filesystems
文件系統的分類
是否有日志
- 傳統型文件系統:寫入文件內容的時候,先寫數據,再寫元數據。例如 ext2
- 日志型文件系統:寫入文件內容的時候,先寫日志記錄文件(更安全)。 ext3=ext2+日志 ReiserFS基于平衡樹,搜索快
如何查找數據 - 索引式文件系統:文件屬性數據和實際內容放在不同的區塊,例如Linux中默認的ext2中,文件屬性數據存放在inode,實際內容放在block
- 非索引式文件系統:只有block,數據需要一個block接一個block讀?。ㄏ乱粋€block位置存放在上一個block中),效率低。 FAT
碎片整理:就是寫入的數據的block太過分散,此時讀取的效率會很低。磁盤整理的目的 就是將這些分散的block盡量的集中起來。
配置文件系統分區
創建分區:fdisk+設備名,輸入完該命令之后,可以通過參數m查看按鍵操作說明,通過參數p可以得到本磁盤的相關信息,輸入n命令可以新建一個分區。使用完n之后,新建分區的步驟如下:
- 選擇分區類型
- 選擇分區開始的磁柱
- 決定分區的大小
- 保存新建的分區
- 通過重啟服務器或使用partprobe命令通知內核
創建文件系統:mkfs 參數 設備名,-t指定文件系統類型 -b指定block大小,單位bytes,ext2和ext3僅支持1024/2048/4096三種
掛載文件系統:掛載的過程就是將文件系統和目錄樹上的某一個目錄結合。mount+設備名+掛載點 -t -b同上
管理Linux文件系統
查看分區使用情況:
- df:查看文件系統的磁盤空間占用情況 –h以容易理解的格式打印出文件系統大小 –i顯示inode信息而非塊使用量。
- du:查看文件或目錄的磁盤使用空間 –a顯示目錄下的每個文件所占的磁盤空間 –s只顯示大小的總和 -h以容易理解的格式輸出文件大小值
查看系統打開的文件:lsof
- Isof filename顯示打開指定文件的所有進程
- Isof –c string顯示以指定字符開頭的進程所有打開的文件
- Isof –u username顯示所屬user相關進程打開的文件
修復文件系統:
- fsck檢查文件系統并嘗試修復錯誤。執行fsck時,必須將要修復的設備進行 umount后,再執行fsck命令。
- e2fsck:檢查和修復ext2和ext3文件系統
Linux用戶和用戶組管理
- 用戶ID信息文件 /etc/passwd
- /etc/passwd的文件記錄的是單個用戶的登錄信息
- 里面有兩條記錄:root和smc
- 每一條記錄被冒號分割稱7個字段
- 分別是 用戶名:密碼:UID:GID:用戶的描述:用戶加目錄:用戶的shell類型
- 組ID信息文件 /etc/group
- /etc/group記錄的是GID和用戶組組名的一個對應關系
用戶管理常用命令
- 用戶查詢常用命令:id(查詢當前登錄用戶的GID、UID)、finger(查詢當前用戶屬性信息,如家目錄和用戶類型)
- 新增用戶
linux: ~ # useradd -d /home/ipcc -m -u 2000 -g mms -s /bin/csh ipcc
說明:useradd[參數] [用戶名] -d: 設置用戶的家目錄 -m: 設置的家目錄不存在時自動創建 -u: 設置用戶的UID -g: 設置初始GID或者組名 -s: 指定用戶的shell
如果沒有設定參數,系統會自動讀取/etc/default/useradd配置文件,指定相關用戶組、shell等參數。
如果要查詢,可以輸入linux:~ # useradd -D讀取基本配置。
- 刪除用戶
linux:~ # userdel ipcc //刪除ipcc用戶
linux:~ # userdel -r iptv //刪除iptv用戶及其家目錄
- 設置用戶密碼
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
- 建立在硬盤和分區之間的邏輯層
- 提高磁盤分區管理的靈活性
- 在傳統的存儲模型中,文件系統是直接構建在物理分區之上的,物理分區的大小決定了其上文件系統的存儲容量,調整文件系統的存儲容量變得比較繁瑣
- LVM設計的主要目標是實現文件系統存儲容量可擴展性,使對容量的調整更簡易
架構
物理分區:pp-physical partition,可以是硬盤的分區或者是RAID分區
物理卷:PV-physical volume,是pp的LVM抽象,維護了pp的結構信息,是組成VG的基本邏輯單元,一般一個PV對應一個PP
物理擴展單元:PE-physical extends,每個PV都會以pe為基本單元劃分,是lvm的最小存儲單元
卷組:vg-volume group,由一個或者數個PV組成,可以看做LVM組合起來的大磁盤
邏輯擴展單元:LE-logical extends,組成LV的基本單元,一個LE對應一個PE
邏輯卷:LV-logical volume,建立在VG之上,文件系統之下,由若干個LE組成,文件系統是基于邏輯卷的
LVM是通過交換PE的方式來達到彈性變更文件系統的大小
想擴增VG的容量則可以通過增加PV的方式
一般LVM默認的pe的大小是4M,最多有65534個PE,所以LVM的VG最大為256G
LV和磁盤的dev/sda2分區類似,是用來格式化的單位。當對LV進行寫入操作時LVM定位相應的LE,通過PV頭部的映射表將數據寫入到相應的PE上
LV實現的關鍵在于PE和LE之間建立的映射關系,不同的映射規則決定了不同的LVM存儲模型
優勢
- 文件系統可以跨多個磁盤
- 動態地擴展文件系統大小
- 增加新磁盤到LVM的存儲池中
注意要點
- 按需分配文件系統的大小,多余的空間放在存儲池中
- 把不同的數據放在不同的卷組中,在系統升級或者數據遷移的時候較為方便
LVM的配置流程
- 物理分區階段
- 通過fdisk將systernID修改為LVM標記
- PV階段
- 通過pvcreate將Linux分區處理成物理卷PV
- VG階段(含有多個PE)
- 通過vgcreate將創建好的物理卷處理成卷組vg
- LV階段(可用于格式化)
- 通過lvcreate將卷組分成若干個邏輯卷LV
- 操作系統使用階段
- 通過mkfs工具將LV格式化
- 最后掛載格式化后的LV到文件系統 mount
物理卷管理
- pvcreate創建物理卷
- 將普通的分區加上pv屬性
- 例如將分區/dev/sda6創建為物理卷:pvcreate /dev/sda6
- pvremove刪除物理卷(語法和pvcreate一致)
- pvscan查看物理卷信息
- pvdisplay查看各個物理卷的詳細參數
卷組管理命令
- vgcreate 創建卷組
- vgscan 查看卷組信息
- vgdisplay 查看卷組的詳細參數
- vgreduce 縮小卷組,把物理卷從卷組中刪除
- vgextend 擴展卷組,把某個物理卷添加到卷組中
- vgremove 刪除卷組
邏輯卷管理
- lvcreate 創建邏輯卷
- lvscan 查看邏輯卷的信息
- lvdisplay查看邏輯卷的具體參數
- lvextend增大邏輯卷的大小
- lvreduce減小邏輯卷的大小
- lvremove 刪除邏輯卷
管理文件系統空間
- 增大文件系統空間
- 先卸載邏輯卷
- 然后通過vgentend,lvextend等命令增大lv的空間
- 再使用resize2fs將邏輯卷容量增加
- 最后將邏輯卷掛載到目錄樹
- 縮小文件系統空間
- 先卸載邏輯卷
- 使用resize2fs將邏輯卷容量減小
- 然后通過vgreduce,lvreduce等命令減小lv的空間
- 最后將邏輯卷掛載到目錄樹