指令與檔案的搜尋
結語##直接查詢檔案內容
查閱乙個檔案的內容可以使用指令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許可權僅對二進位制程式有效當s標誌在所屬組的x標誌上,例如 [-rwx–s--x],此時成為set gid,簡稱sgid。對於檔案有以下功能:執行者對改程式需要具有x的執行許可權
本許可權僅在執行該程式的過程中有效
執行者將具有該程式擁有者的許可權
sgid對二進位制程式有用對於目錄有以下功能執行者需要具備相應的x許可權
執行該程式的使用者則會獲得該程式群組的支援
使用者若對目錄有r和x許可權,則能進入該目錄簡稱sbit,只對目錄有效:使用者在此目錄下的有效群組將會變成該目錄的群組(有效群組是使用者建立檔案的時候,檔案預設所屬的群組)
用途:若使用者具有w許可權,則使用者所建立的新檔案的群組則與該目錄的群組相同。
使用者對於此目錄具有w,x許可權suid/sgid/sbit 許可權設定使用者在此目錄下建立檔案,只有自己和root使用者有許可權刪除檔案。
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中讀取命令並執行。空操作...