linux系統學習
學習架構圖如下 ----->傳送門
一、說明
本篇文章,我將結合自己的實踐以及簡介,來對linux系統做一個直觀清晰的介紹,使得哪些剛接觸Linux的小伙伴可以快速入門,也方便自己以后進行復習查閱。
二、基本知識整理
1.Linux文件系統架構
1).文件或目錄起始於"/"根目錄,並且以樹裝結構呈現
2).最頂層以"/"開始
3).linux文件系統的文件或者目錄名嚴格區分大小寫,並且以/分隔開
4).".."表示上層目錄
5)."."表示當前目錄
6).隱藏目錄或者文件名稱都以"."開頭
7).#代表當前登陸用戶為root用戶
8).$代表當前登陸用戶為普通用戶
2.Linux重要文件目錄說明
1)./ 所有其他目錄的最頂級根目錄
2)./home 系統用戶的家目錄,每個用戶在該文件夾下有一個與登錄名同名的目錄作為該用戶的家目錄,但是root用戶的家目錄就在根目錄下。
3)./root root用戶的家目錄
4)./boot 系統內核和開機必須文件所在目錄
5)./etc 系統配置文件所在目錄
6)./dev 系統所有設備文件所在的目錄
7)./usr(unix system resource) 保存程序的相關文件
8)./tmp 臨時文件所在的目錄
9)./var 主要放置系統執行過程中經常變化的文件,例如緩存(cache)或者是隨時更改的登錄文件(log file)
10)./opt 用於存儲第三方軟件的目錄,不過我們還是習慣放在/usr/local下
11)./bin、/usr/bin 常用的可執行指令文件目錄
12)./sbin root用戶才有權限執行的指令
13)./lib、/usr/lib、/usr/local/lib 系統可復用類庫目錄
14)./mnt、/media 外部設備的mountpoint,當檢測到設備接入時會自動產生掛載點
15)./lost+found 每個分區都會創建一個該目錄,用戶系統異常時恢復丟失的東西
16)./proc 系統進程以及網絡狀態信息目錄,在內存中
3.Linux目錄和文件的命名規則
1).長度不能超過255個字符
2).嚴格區分大小寫
3).除了"/"以外,所有可用字符都合法
首字符避免使用"+"、"-"、"."等字符
避免使用空格、制表符、"@"、"#"、"$"、"%"、"["、"]"、"("、")"等字符
4).最好使用有意義的名稱來命名
4.相對路徑和絕對路徑
1).絕對路徑以"/"開頭,從根目錄開始
2).相對路徑以當前路徑開始,一般比較短
5.Linux安全性模型
1).linux使用User和Group控制使用者對文件的存取權
2).用戶使用賬號和口令登陸linux
3).每個文件都有Owner,且owner屬於某個Group
4).每個資源都有owner和group
6.Linux用戶概述
1).每個用戶都有一個唯一的UserID
2).User的信息存儲在/etc/passwd文件中
(1).存儲用戶名和home目錄等信息
(2)./etc/shadow文件來保存每個用戶的密碼信息
3).每個用戶都有一個專屬自己的home目錄
4).user未經授權將禁止讀寫或執行其他User的文件
5).root用戶
(1).是超級管理員賬號、具有至高無上的權限
(2).一般不要隨便用root登錄並操作系統
7.Linux用戶群組概述
1).每個用戶都屬於一個group,具有唯一的標識符gid
2).Group信息
(1)./etc/group存儲gid、成員等信息
(2)./etc/gshadow存儲群組的密碼信息
3).系統會為每個user關聯一個和user同名的group
(1).每個user至少存在於自己同名的group中
(2).user也可以加入其他group中
4).在同一個group中的成員可以共享其他成員的文件
8.Linux權限種類
1).只讀權限,用r表示(read)
2).可寫權限,用w表示(write)
3).可執行權限,用x表示(execute)
(1).可以執行可執行文件
(2).可以使用cd命令進入目錄
4).沒有任何權限用"-"表示
9.Linux文件和目錄權限解讀
ls -l命令將看到以下格式:
[d|-] [r|-w|-x|-] [r|-w|-x|-] [r|-w|-x|-]
d代表是目錄,-代表是文件
后面三個分別代表所屬用戶、組、用戶和組以外的角色擁有的權限
比如:d rwx-w---- 代表
1.是目錄
2.owner權限為可讀可寫可執行
3.group的權限為可寫
4.others沒有任何權限
- rwxrwxr-x 代表
1.文件
2.owner權限為可讀可寫可執行
3.group的權限為可讀可寫可執行
4.others的權限為可讀可執行
10.linux系統權限驗證流程
解讀:1.首先判斷是否為Root用戶
2.是root用戶則直接允許操作
3.非root用戶判斷文件的uid和當前用戶的uid是否一致
4.uid一致則根據文件的owner權限進行判斷是否可以對該文件進行操作
5.uid不一致,則判斷文件的gid和是否包含在當前用戶的gid中
6.包含則根據文件的group的權限進行判斷是否可以對該文件進行操作
7.不包含則根據文件的others的權限進行判斷是否可以對該文件進行操作
11.設置Linux文件和目錄的權限
1).字符表示法: chmod [-R] mode file_or_directory
-R 遞歸改變權限
mode模式類別
例:chmod u+r owner增加讀權限
chmod a= 所有角色取消所有權限
chmod -R a=rwx 遞歸給目錄及目錄下所有子目錄和文件增加讀寫執行權限
2.數字表示法
使用一組三位數字來表示,第一組代表owner的權限;第二組代表group的權限;第三組代表others的權限.
權限數字 r:4 w:2 x:1 -:0
例:rwx = 4+2+1=7
r-x = 4+0+1=5
12.用戶的主要群組和次要群組
1).主要群組:
每個文件必須有一個組所有者,因此必須有一個與每個用戶相關的默認群組,這個默認群組成為新建文件的組所有者,被稱為用戶的主要群組。
用戶的主要群組中在/etc/passwd文件中的第四個字段定義.
2).次要群組:除了主要群組,用戶也可以根據需要在隸屬於其他群組,這寫組被稱為次要群組,在/etc/group文件中的第四個字段中定義
3).使用groups命令可以查看當前用戶的所有群組,第一個為主要群組,后面的N個為次要群組
13.用戶的管理
1).useradd [-u UID] [-g 主要群組] [-G 次要群組] [-m|M] [-c 說明] [-d 家目錄位置] [-s shell]
1.-u 指定一個UID給該賬號
2.-g 指定一個主要群組名稱,會修改/etc/passwd文件
3.-G 指定一個次要群組名稱,會修改/etc/group文件
4.-m 強制建立用戶家目錄,一般賬號默認
5.-M 強制不要建立用戶家目錄,系統賬號默認
6.-c /etc/passwd文件中的第五個字段,賬號簡述
7.-d 指定用戶家目錄位置,不要使用默認的值
8.-s 指定默認的shell,如果沒有指定則默認是/bin/bash
2).usermod [-cdegGlsuLU] username
1.-c修改該賬號的說明文字
2.-d修改賬號的家目錄
3.-e指定用戶賬號禁用日期,格式YY-MM-DD
4.-G修改次要群組的名稱,會修改/etc/group文件
5.-g修改主要群組名稱
6.-a與-G合用,可增加次要群組
7.-l將當前賬號的名稱重命名為指定名稱
8.-u修改UID
9.-L暫時將用戶的密碼凍結無法登陸
10.-U解凍賬號,其實就是刪除/etc/shadow的!字符
3).userdel [-r] username
-r連同用戶的家目錄一起刪除
4).passwd 修改用戶密碼
14.用戶信息的檢查
1.finger [-s] username 查閱用戶相關的信息
-s僅僅列出用戶的賬號、全名、登錄時間等
2.id 可以查閱當前登陸用戶關聯的UID、GID信息
3.whoami|who|w 查看當前登錄用戶名
4.users 查看登陸系統的所有用戶
5.groups查看當前登錄用戶的組信息
15.默認權限的控制
1.內核級別,新建文件的默認權限是666
2.內核級別,新建目錄的默認權限是777
3.還要通過umask來阻止一些權限,從而產生最終的權限
4.非管理員賬號的umask為0002,root賬號的umask為0022
5.umask的作用原理
1.原理說明
2.做減法是錯誤的,實際結果應該是644
16.群組管理
1).groupadd [-g gid] [-r] 組名
-g 后面接特定GID,用來指定GID
-r 建立系統群組,系統群組小於500,普通群組大於500
2).groupmod [-g gid] [-n group_name] 群組名
3).groupdel [groupName] 刪除特定的群組
17.文件的壓縮和打包
1).文件壓縮
1.通過壓縮算法將文件的體積縮小,同時將多個文件合並至一起,方便交換、傳輸
2.Linux支持的壓縮格式
1.*.Z compress程序壓縮文件
2.*.gz gzip程序壓縮文件
3.*.bz2 bzip2程序壓縮文件
4.*.tar tar程序打包文件,並未壓縮
5.*.tar.gz tar程序打包后使用gzip壓縮
6.*.tar.bz2 tar程序打包后使用bzip2壓縮
3.gzip [-cdtv#] fileName 壓縮指定文件
拓展名為*.gz
-c將壓縮的數據輸出到屏幕上
-d解壓縮
-t進行文件一致性校驗看是否損壞
-v顯示和原文件相比的壓縮比
-#壓縮等級,-1最快,-9最慢,默認是-6
4.bzip2 [-cdkzv#] filename 壓縮指定文件
擴展名為*.bz2
-c將解壓的數據輸出到屏幕上
-d解壓縮參數,該參數代表執行解壓縮操作
-k保留原文件進行壓縮
-z壓縮參數,該參數代表執行壓縮操作
-v顯示和原文件對比的壓縮比
-#壓縮等級,-1最快,-9最慢,默認是-6
2.文件打包
1.將多個文件或者整個目錄合並成一個文件,用來進行文件的備份、分發、傳輸
2.tar 命令打包文件
1.將某個文件或者目錄打包並使用bzip2壓縮成一個文件
tar [-jcv] -f filename.tar.bz2 待壓縮的檔案或者目錄名
2.將壓縮文件解壓至特定的目錄
tar [-jxv] -f filename.tar.bz2 -C 解壓縮到的目錄
3.參數解釋
1.-c 建立打包檔案
2.-t 查看打包的文件都有哪些文件名
3.-x 解壓縮或者解打包文件,和-C搭配適用解壓縮到指定目錄
4.-j 通過bz2支持進行壓縮或者解壓縮
5.-z 使用gzip進行壓縮或者解壓縮
6.-v 將正在處理的文件名顯示出來
7.-f 緊跟要被處理的文件名,建議單獨寫一個選項
三、Linux基本操作及命令概述
1.cd:切換目錄
1).cd .. 切換到上級目錄
2).cd ~ 切換到用戶家目錄
3).cd - 切換到上個路徑
2.pwd:查看當前所在路徑
3.cp:復制文件和目錄
1).cp [options] file destination 復制文件到指定位置
2).cp [options] file file2... destination 復制多個文件到指定位置
3).cp -r dir1 destination_dir 遞歸復制目錄到指定位置
4.mv:移動和重命名文件和目錄
1).移動操作類似於cp
5.rm:刪除文件或目錄
rm [options] filenmes|directory ...
-i 交互式
-r 遞歸刪除
-f foce強制刪除
6.touch filename 新建文件
7.mkdir directoryName 新建目錄
8.file:確定文件的格式
file[options] filenames 打開文件前確定格式
9.查看文本文件
1).cat [options] filenames
2).less [options] [filename]
pageup/pagedown向上向下翻頁
g 到文件頂端
G 到文件底端
q 退出
/ keywords 根據關鍵字搜索
n:查找下一個
N:查找上一個