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

2021-09-25 20:25:21 字數 3496 閱讀 2145

指令與檔案的搜尋

結語##直接查詢檔案內容

查閱乙個檔案的內容可以使用指令cat/tac/nl。

# [cat|tac|nl] 檔案
區別:

1.cat是直接把檔案內容輸出到螢幕上,並且從第一行開始輸出到末行

2.tal和cat相同,只不過tal是從末行反過來開始輸出到第一行

3.nl則是可以新增行號列印,第一行可以顯示1/01/001…

more

less

當檔案過大,內容過多時,我們可以抽取其中某幾行來檢視。

head(取出前面幾行)

# head [-n number] 檔案
-n : 代表的從頭開始顯示幾行。所以number我們寫的是數字,如果要顯示前面5行,那麼就是

head -n 5 file
tail(取出後面幾行)

tail [-n number] 檔案
number和上述一樣。

但是如果只檢視第11-20行呢?我們就可以先取前20行,然後再取後面十行。那麼就要用到管道啦。複習一下,管道的線是這個符號 " | ",簡稱管線。(瞎扯╭(╯^╰)╮)

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檔案系統生效,其他的檔案系統可能無法完全支援該指令(現在都2023年了,不知道完全支援不呢…)

# 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 : 連同子目錄也一併列出 ```

當s這個標誌出現在檔案擁有者的x許可權上時,例如 [-rwsr-xr-x],此時就被稱為set uid,簡稱suid特殊許可權,suid的特殊功能如下:

suid許可權僅對二進位制程式有效

執行者對改程式需要具有x的執行許可權

本許可權僅在執行該程式的過程中有效

執行者將具有該程式擁有者的許可權

當s標誌在所屬組的x標誌上,例如 [-rwx–s--x],此時成為set gid,簡稱sgid。對於檔案有以下功能:

sgid對二進位制程式有用

執行者需要具備相應的x許可權

執行該程式的使用者則會獲得該程式群組的支援

對於目錄有以下功能

使用者若對目錄有r和x許可權,則能進入該目錄

使用者在此目錄下的有效群組將會變成該目錄的群組(有效群組是使用者建立檔案的時候,檔案預設所屬的群組)

用途:若使用者具有w許可權,則使用者所建立的新檔案的群組則與該目錄的群組相同。

簡稱sbit,只對目錄有效:

使用者對於此目錄具有w,x許可權

使用者在此目錄下建立檔案,只有自己和root使用者有許可權刪除檔案。

suid/sgid/sbit 許可權設定

4 為 suid

2 為 sgid

1 為 sbit

第五章講過了修改許可權的命令,至於新增特殊許可權則如下操作:

chmod 4755 filename //這裡的4為suid的特殊許可權 後面的755就和以前的一樣

如果需要知道某個檔案是屬於什麼型別,例如是屬於ascii、binary還是其它的檔案。就是用這個型別

$ file test_file 

test_file: ascii text //返回ascii 的純文字檔案

$ which [-a] command

-a : 將所有path目錄中可以知道的指令列出

例如:$ which service

/usr/sbin/service

格式: 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私房菜

linux相關知識 鳥哥linux私房菜 真是人間美味啊!linux 基礎篇 引言 這部份包括了早期的red hat 6.x以及 鳥哥寫的 一 二版的基礎篇各章節文章彙整!第一部份 linux的規劃與安裝 第二部份 linux檔案 目錄與磁碟格式 第三部份 學習shell與shell scripts...

鳥哥的linux私房菜筆記

第零章 計算機概論 1.整部主機當中最重要的就是cpu與主記憶體,而cpu的資料來源通通來自於主記憶體,如果要由過去的經驗來判斷事情時,也要將經驗 硬碟 挪到目前的記憶 主記憶體 當中,再交由cpu來判斷喔 這點得要再次的強調啊!2.常見的單位與進製對應 進製km gtp二進位 1024 1024k...

鳥哥私房菜

鳥哥 linux 私房菜 ad 在我們平時使用unix命令的時候,需要平時多積累並且整理。下面,就是我們在平時時候整理的unix命令。而且是很全面的bash內建命令.bash內建unix命令 執行當前程序環境中的程式。同source。file dotunix命令從檔案file中讀取命令並執行。空操作...