鳥哥的Linux私房菜筆記第六章(二)

文件內容查詢

直接查詢文件內容

查閱一個文件的內容可使用指令cat/tac/nl。less

# [cat|tac|nl] 文件

區別:
1.cat是直接把文件內容輸出到屏幕上,而且從第一行開始輸出到末行
2.tal和cat相同,只不過tal是從末行反過來開始輸出到第一行
3.nl則是能夠添加行號打印,第一行能夠顯示1/01/001...

ui

可翻頁查詢

morevagrant

空格鍵 :翻下一頁
enter : 翻下一行
/字符串 :向下查找該字符串
:f :顯示出文件名和目前顯示行數
q :離開
b : 往回翻頁code

lessci

空格鍵|[pagedown] :翻下一頁
[pageup]: 翻上一頁
/字符串 :向下查找該字符串
?字符串 :向上查找該字符串
q :離開
g : 跳轉到第一行
G : 跳轉到末行

rem

文件截取

當文件過大,內容過多時,咱們能夠抽取其中某幾行來查看。
head(取出前面幾行)字符串

# head [-n number] 文件

-n : 表明的從頭開始顯示幾行。因此number咱們寫的是數字,若是要顯示前面5行,那麼就是博客

head -n 5 file

tail(取出後面幾行)it

tail [-n number] 文件

number和上述同樣。
可是若是隻查看第11-20行呢?咱們就能夠先取前20行,而後再取後面十行。那麼就要用到管道啦。複習一下,管道的線是這個符號 " | ",簡稱管線。(瞎扯╭(╯^╰)╮)io

head -n 20 文件 | tail -n 20


非純文本檔 od

若是咱們須要查看非文本的文件,例如如何查看/usr/bin/passwd這個執行文件內容時。因爲執行文件一般是binary file(二進制文件),若是咱們使用上面的那些命令查看,就會出現亂碼的狀況。而查看這些文件咱們可使用od這個指令。

od [-t TYPE] 文件
TYPE: 
   a:使用默認的字符來輸出
   c:使用ASCII字符來輸出
   d[size]: (decimal)使用十進制來輸出,每一個整數佔用 size bytes;
   f[size]: (floating)使用浮點數來輸出,每一個整數佔用 size bytes;
   o[size]: (octal)使用八進制來輸出,每一個整數佔用 size bytes;
   x[size]: (hexadecimal)使用十六進制來輸出,每一個整數佔用 size bytes;


文件默認權限和隱藏權限

文件預設權限: umask

當咱們創建文件或者目錄時,那麼他的權限是多少呢?這個就要使用umask這個指令了,使用方式以下:

#umask //查看當前默認的權限值
0002


文件隱藏屬性

chattr(配置文件隱藏屬性)
除了rwx的那9個權限外,還有隱藏屬性(真是難受),該指令只在Ext2/Ext3/Ext4 的Linux文件系統生效,其餘的文件系統可能沒法徹底支持該指令(如今都9102年了,不知道徹底支持不呢...)

# chattr [+-=] [options] 文件或目錄
選項:
+ : 增長某一個參數
- : 移除某一個參數
= : 從新設置參數。  
  
參數(options)
a : 該文件只能增長數據,不能刪除數據,也不能修改數據,只有root用戶能設定該參數。
i : 該文件不能刪除、更名、設定連結,還沒法寫入或新增數據!只有root用戶能設定該參數。
... 
eg: 
# sudo chattr +a file1 //把file1文件設置隱藏屬性i
# rm -f test
rm: cannot remove 'test': Operation not permitted //提示不能執行該操做哦,由於設置了隱藏屬性i,是不能刪除該文件的。



lsattr(顯示文件隱藏屬性)
使用chattr設置了隱藏屬性後,就可使用lsattr查看啦

# lsattr [-adR] 文件或目錄
a : 查看隱藏文件屬性
d : 若是是目錄,僅列出目錄自己的屬性、而非目錄內的文件屬性
R : 連同子目錄也一併列出


文件特殊權限: SUID,SGID,SBIT

其實除了rwx的文件權限外,還有特殊權限s和t,s和t的做用分別放到第十三章和第十六章說明(按照我這個寫博客的進度不知道要等到猴年馬月,有想了解的童靴就去搜搜)。

Set UID

當s這個標誌出如今文件擁有者的x權限上時,例如 [-rwsr-xr-x],此時就被稱爲Set UID,簡稱SUID特殊權限,SUID的特殊功能以下:

SUID權限僅對二進制程序有效
執行者對改程序須要具備x的執行權限
本權限僅在執行該程序的過程當中有效
執行者將具備該程序擁有者的權限

Set GID

當s標誌在所屬組的x標誌上,例如 [-rwx--s--x],此時成爲Set GID,簡稱SGID。對於文件有如下功能:

SGID對二進制程序有用
執行者須要具有相應的x權限
執行該程序的用戶則會得到該程序羣組的支持

對於目錄有如下功能

用戶若對目錄有r和x權限,則能進入該目錄
用戶在此目錄下的有效羣組將會變成該目錄的羣組(有效羣組是用戶建立文件的時候,文件默認所屬的羣組)
用途:若用戶具備w權限,則用戶所創建的新文件的羣組則與該目錄的羣組相同。

Sticky Bit

簡稱SBIT,只對目錄有效:

用戶對於此目錄具備w,x權限
用戶在此目錄下創建文件,只有本身和root用戶有權限刪除文件。

SUID/SGID/SBIT 權限設定

4 爲 SUID
2 爲 SGID
1 爲 SBIT

第五章講過了修改權限的命令,至於添加特殊權限則以下操做:

chmod 4755 filename //這裏的4爲SUID的特殊權限 後面的755就和之前的同樣


觀察文件類型:file

若是須要知道某個文件是屬於什麼類型,例如是屬於ASCII、binary仍是其它的文件。就是用這個類型

$ file test_file 
test_file: ASCII text //返回ASCII 的純文本文件


指令與文件的搜索

指令查詢 which

$ which [-a] command
-a : 將全部PATH目錄中能夠知道的指令列出

例如:
$ which service
/usr/sbin/service


文件名查詢 find

格式: find [PATH] [option]
$ find /home mtime 0 //查看home目錄下24小時以內被修改的文件
$ find /home -user vagrant //查詢home目錄下用戶爲vagrant的目錄或文件
/home/vagrant
/home/vagrant/.cache
...

$ find /home -name test_file //查詢home目錄下名爲test_file的文件
/home/vagrant/test_file

結語

看了鳥哥的Linux的第六章後,我差很少把文章講到的命令有寫上了,不過比較詳細的東西可能並無在文章這裏寫到,並且我我的以爲寫這篇文章消耗我比較長的時間, 最大的緣由是無論什麼命令都寫上去,反正書裏說到的就寫。後面越寫我就愈加現,文章不能照搬書裏的內容,應該把比較經常使用的內容寫到上面才比較合適。 否則的話還不如看我文章的小夥伴看書去比較好,因此我日後的文章可能會盡量的寫現實當中比較經常使用的東西(我本身以爲經常使用的東西,可能不是真的經常使用)。 好了,文章畢竟寫得多才會有積累,寫得會更快,可是更快的狀況下我會盡量的保證內容的正確性。 文章如有不足之處,請在評論區留言指出或郵件發送到15915126689@163.com,謝謝你們。

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息