用戶和群組
用戶和群組主要是為了區分用戶對文件的操作權限。
- 賬號在/etc/passwd
- 個人密碼在/etc/shadow
- 組信息在/etc/group
不要亂動這3個文件
文件權限和目錄配置
文件屬性
文件前綴解釋,例如:


-
第一個字符代表這個文件是『目錄、文件或鏈接文件等等』:
- 當為[ d ]則是目錄,例如上表檔名為『.gconf』的那一行;
- 當為[ - ]則是文件,例如上表檔名為『install.log』那一行;
- 若是[ l ]則表示為連結檔(link file);
- 若是[ b ]則表示為裝置文件里面的可供儲存的接口設備(可隨機存取裝置);
- 若是[ c ]則表示為裝置文件里面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)。
接下來的字符中,以三個為一組,且均為『rwx』 的三個參數的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute)。 要注意的是,這三個權限的位置不會改變,如果沒有權限,就會出現減號[ - ]而已。
文件類型:
d 目錄 directory- 文件 file
l 鏈接檔link-file
b 存儲文件block
c 外設文件character文件權限:
r 可讀 read
w 可寫 write
x 可執行 execute
- 沒有權限
改變文件屬性和權限
- chgrp: 改變文件的所屬組 change group
- chown: 改變文件的所有者
change own - chmod: 改變文件的權限,SUID《SGID《SBIT等 change mod
改變群組: chgrp [-R] 組名 文件名
改變文件擁有者: chown [-R] 用戶 文件名
注意: cp命令會拷貝源文件的組和所有者權限
改變文件權限:chmod
linux的權限共9個,三個一組,一組只有rwx權限,為了方便可以用數字124表示,沒有3是為了方便,因為3種權限可以有7中組合方式,而124加和為7,好機智是吧,不過也好反人類,不適合人看適合機器看。
x:1
w:2
r:4
可以這樣記憶:數字越大,權限越低
1:x--
2:w--
3:xw-
4:r--
5:xr-
6:wr-
7:wxr
更改文件權限:chmod [-R] 777文件名 最高權限
chmod 135 filename
設置文件可執行,則權限應該是-rwxr-xr-x 755
最高權限就是 -rwxrwxrwx 777
文件僅自己可見 -rwxr----- 740除了數字更改權限,chmod本身支持符號類型改變權限
9個權限每3個一組也可以這樣劃分user,group,other三種身份
用戶權限,組權限,其他用戶權限
于是可以用三個符號代替u,g,o
另外增加一個全部權限的all ,a符號

+ 添加權限
- 刪除權限
= 設置權限
u 用戶
g 組
o 其他用戶
a 全部
r 可讀
w 可寫
x 可執行使用示例:
chmod u=rwx,g=rx,o=r 文件名
chmod a+w 文件名
目錄和文件權限的意義
安全,保護文件。
注意事項:
- 文件是否可以執行由x決定,跟檔名(文件擴展名)無關(windows才這樣做)
- w使文件擁有的是可寫權限,權限作用于文件內容,而非文件本身,可寫不代表可刪除。
- rwx對目錄的意義:r可讀取目錄結構列表,w可操作該目錄的文件,增刪改名,刪除,移動目錄等,此時文件就是目錄的內容,x代碼用戶能否進入該目錄成為工作目錄,
文件的種類和擴展名
linux下所有的外設等都是轉化為文件管理的
文件的擴展名并無太多作用
查看文件內容
- 直接查看 cat,tac,nl
- 翻頁查看 more,less
- 數據截取 head,tail
- 非純文字檔 od
- 修改文件時間與簡直新檔 touch
命令用途
- cat 從第一行開始顯示文件內容,cat是Concatenate連續的縮寫單詞
-tac 從最后一行開始顯示文件內容,cat倒過來就是tac,簡明達意 - nl 帶行號顯示文件內容
- more 一頁一頁的顯示文件內容
- less 與more相似,但是可以向前翻頁,more不可以
- head 只看頭幾行
- tail 只看尾巴幾行
- od 以二進制的形式讀取文件內容
使用例子
cat -n /etc/issue
tac /etc/issue
nl -b a /etc/issue
more /etc/man.config
- 空格鍵:向下一頁
- Enter:向下一行
- /字符串: 向下搜索關鍵字
- :f :顯示檔名和當前的行數
- q :退出more
- b或ctrl-b:往回翻頁,只對文件管用,管線無用
less /etc/man.config
- 空格鍵: 向下翻一頁
- pageDown:向下翻一頁
- pageUp: 向上翻一頁
- /字符串:向下搜索關鍵字
- ?字符串: 向上搜索關鍵字
- n :重復前一個搜索
- N:反向重復前一個搜索
q :退出less命令-- 數據擷取
以行為單位,采集文件的內容
head /ect/man.config
head -n -100 /etc/man.config
tail -n 20 /etc/man.config
-- 組合取文件中間的內容
比如取第11行到20行內容
先取前20行,然后取后10行即可
head -n 20 /etc/man.config |tail -n 10 -- od讀取二進制文件內容
修改文件時間或者建新檔
文件時間:
- modification time (mtime) 文件內容修改時間
- status time(ctime)文件狀態修改時間,比如權限或屬性被修改
- access time(atime)訪問時間,文件內容被讀取時間
touch可以創建一個新文件,可以修改文件的時間
文件與目錄的默認權限和隱藏權限
- 文件默認屬性 umask:目前使用者在創建文件或目錄時的默認權限
- chattr配置文件默認屬性
- lsattr 顯示文件默認屬性
- 文件特殊權限 SUID,SGID,SBIT
文件的搜索
- 運行檔,檔名搜索which 通過PATH搜索運行檔名
- 文件檔名搜索 type
- 搜索特定文件 whereis 搜索的是linux的數據庫
- locate 搜索的是已創建的數據庫/var/lib/mlocate
- find [path] [option] [action] 掃描硬盤
ext2,3,4 第2,3,4代擴展文件系統
管理物理硬件的一個軟件索引,idone/block/superblock等
文件系統通常會將這兩部份的數據分別存放在不同的區塊,權限與屬性放置到 inode 中,至于實際數據則放置到 data block 區塊中。 另外,還有一個超級區塊 (superblock) 會記錄整個文件系統的整體信息,包括 inode 與 block 的總量、使用量、剩余量等。
- superblock:記錄此 filesystem 的整體信息,包括inode/block的總量、使用量、剩余量, 以及文件系統的格式與相關信息等;
- inode:記錄文件的屬性,一個文件占用一個inode,同時記錄此文件的數據所在的 block 號碼;
-
block:實際記錄文件的內容,若文件太大時,會占用多個 block 。
inode4放置著文件的屬性權限等等信息,文件內容實際放置位置是2,7,13,15這些block或者是另一種方式,鏈式索引
data block 數據區塊 2代
目前4代ext4已經支持pb eb級別的存儲
文件系統操作
- df 列出文件系統的磁盤使用情況
- du 蘋果文件系統的磁盤使用情況(常用推估目錄所占容量)
ln 連接符
- 實體連接 ,通過文件系統的inode連接產生新檔名 需要加參數 -i
- 符號連接,連接到文件,類似windows的快捷方式 默認就是這種連接方式
- 實體連接
lb -i 文件路徑 文件路徑
- 符合連接
ln -s 文件路徑 文件路徑
磁盤的分割、格式化、校驗和掛載
- 磁盤分區 fdisk,partprobe
- 磁盤格式化 mkfs,mke2fs
- 磁盤檢驗 fsck,badblocks
- 磁盤掛載與卸除 mount,umount
- 磁盤參數修訂 mknod,e2label,tune2fs,hdparm
- 磁盤分區
fdisk [-l] 裝置名稱
- 磁盤格式化
mkfs [-t 文件系統格式] 裝置文件名
mke2fs [-b block大小] [-i block大小] [-L 標頭] [-cj] 裝置
- 磁盤檢驗
fsck [-t 文件系統] 裝置名稱
badblocks -[svw] 裝置名稱
- 磁盤掛載與卸除
mount [-t 文件系統] [-L Label名] [-o 額外選項] \[-n] 裝置文件名 掛載點umount [-fn] 裝置文件名或掛載點
配置啟動掛載
- 根目錄 / 是必須掛載的﹐而且一定要先于其它 mount point 被掛載進來。
- 其它 mount point 必須為已創建的目錄﹐可任意指定﹐但一定要遵守必須的系統目錄架構原則
- 所有 mount point 在同一時間之內﹐只能掛載一次。
- 所有 partition 在同一時間之內﹐只能掛載一次。
- 如若進行卸除﹐您必須先將工作目錄移到 mount point(及其子目錄) 之外。
文件壓縮
常用的壓縮命令
- compress
- gzip,zcat
- bzip2,bzcat
常見壓縮文件后綴標識
*.Z compress 程序壓縮的文件;
*.gz gzip 程序壓縮的文件;
*.bz2 bzip2 程序壓縮的文件;
*.tar tar 程序打包的數據,并沒有壓縮過;
*.tar.gz tar 程序打包的文件,其中并且經過 gzip 的壓縮
*.tar.bz2 tar 程序打包的文件,其中并且經過 bzip2 的壓縮
compress老舊的打包工具,linux已經默認不安裝了
gzip [-cdtv#] 檔名
zcat 檔名.gz
選項與參數:
-c :將壓縮的數據輸出到螢幕上,可透過數據流重導向來處理;
-d :解壓縮的參數;
-t :可以用來檢驗一個壓縮檔的一致性~看看文件有無錯誤;
-v :可以顯示出原文件/壓縮文件的壓縮比等資訊;
-# :壓縮等級,-1 最快,但是壓縮比最差、-9 最慢,但是壓縮比最好!默認是 -6 [root@www ~]# bzip2 [-cdkzv#] 檔名
[root@www ~]# bzcat 檔名.bz2
選項與參數:
-c :將壓縮的過程產生的數據輸出到螢幕上!
-d :解壓縮的參數
-k :保留原始文件,而不會刪除原始的文件喔!
-z :壓縮的參數
-v :可以顯示出原文件/壓縮文件的壓縮比等資訊;
-# :與 gzip 同樣的,都是在計算壓縮比的參數, -9 最佳, -1 最快!打包命令 tar
[root@www ~]# tar [-j|-z] [cv] [-f 創建的檔名] filename... <==打包與壓縮
[root@www ~]# tar [-j|-z] [tv] [-f 創建的檔名] <==察看檔名
[root@www ~]# tar [-j|-z] [xv] [-f 創建的檔名] [-C 目錄] <==解壓縮
選項與參數:
-c :創建打包文件,可搭配 -v 來察看過程中被打包的檔名(filename)
-t :察看打包文件的內容含有哪些檔名,重點在察看『檔名』就是了;
-x :解打包或解壓縮的功能,可以搭配 -C (大寫) 在特定目錄解開特別留意的是, -c, -t, -x 不可同時出現在一串命令列中。
-j :透過 bzip2 的支持進行壓縮/解壓縮:此時檔名最好為 *.tar.bz2
-z :透過 gzip 的支持進行壓縮/解壓縮:此時檔名最好為 *.tar.gz
-v :在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來!
-f filename:-f 后面要立刻接要被處理的檔名!建議 -f 單獨寫一個選項羅!
-C 目錄 :這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。其他后續練習會使用到的選項介紹:
-p :保留備份數據的原本權限與屬性,常用於備份(-c)重要的配置檔
-P :保留絕對路徑,亦即允許備份數據中含有根目錄存在之意;
--exclude=FILE:在壓縮的過程中,不要將 FILE 打包
完全備份工具
- dump 備份工具
- restore 恢復工具
vi和vim使用
編輯模式
- 一般模式,打開文檔就是一般模式,可以上下鍵移動光標,刪除字符x或者刪除整行dd,也可以復制/粘貼數據
- 編輯模式,按下i,I,o,O,a,A,r,R任何一個按鍵進入編輯模式,按esc鍵退出編輯模式
- 指令模式,一般模式下輸入: / ? 任意按鍵,進入指令模式,主要操作有:讀取、存盤、大量替換字符串、離開vi、顯示行號等動作
