一、Linux 檔案
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuMjM1ETN0IzMz0SN4ATN1ADN5AjMyIDM3EDMy0SO0ETMzATMvwlMwcTMwIzLclDNxEzMwEzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
根據上文Linux 檔案說明
1.檔案的rwx
d開頭表示檔案夾,
-開頭的表示檔案,
l開頭表示連結檔案
r:read,w:write,x:execute
三部分分别表示
檔案所有者的權限、所屬組的權限、其他人的權限
2.連結數
3.所有者
4.所屬組
5.檔案大小
6.檔案的建立或修改時間
7.檔案的名稱
二、檔案處理指令
指令:touch
文法:touch[檔案名]
描述:建立一個空檔案
指令:mkdir
文法:mkdir [-p] [檔案夾名稱]
描述:[遞歸]建立檔案夾
指令:cp(copy)
文法:cp [源檔案][目标檔案]
cp -r [源目錄][目标目錄]
描述:複制檔案或目錄
指令:rm(remove)
文法:rm -f [檔案]
rm -r [目錄]
rm -rf [目錄,包含目錄下的内容]
描述:删除檔案或目錄
指令:cat
文法:cat [檔案名稱]
描述:檢視檔案内容(内容過多,顯示内容可能不全)
指令:more
文法:more [檔案名稱]
描述:檢視檔案内容,可完全顯示
用法:使用空格進行法爺,回車顯示下一行,q退出(或者ctrl+c)
指令:head
文法:head -number [檔案名]
描述:檢視檔案的前多少行
指令:tail
文法:tail -number [檔案名]
描述:檢視檔案的後多少行
mv 1 修改檔案名稱的功能:mv [源檔案名][新檔案名]
2 移動檔案位置:mv [源檔案名稱][新檔案位置+新檔案名稱]
指令:ln(link)
文法:ln -s [源檔案][目标檔案](硬連接配接則不需要加-s選項)
描述:建立軟連接配接檔案
軟連接配接的特點:權限是所有人都可以通路,并且軟連接配接指向源檔案,就類型win的快捷方式
硬連結的特點:cp源檔案,兩個檔案是同步修改的
另外:硬連結是不可以跨檔案系統分區的,而軟連接配接可以。
指令:chmod
文法:chmod[{ugo}{+-=}{rwx}][檔案或目錄]
chmod[mode=421][檔案或目錄]
421分别表示rwx,4+2+1 = 7
描述:改變檔案或目錄的權限
形如:chmod g+w filename
形如:chmod 761 filename
問題示例:建立一個目錄,下面一個檔案,用普通使用者删除檔案
嘗試:在root下将檔案的權限設定成777然後用普通使用者删除檔案
嘗試:在root下将檔案夾的權限設定成777然後用普通使用者删除檔案
結論:檔案夾的寫權限表示能否删除檔案夾下的檔案
檔案的寫權限表示能否編輯檔案,不代表能否删除檔案
檔案的rwx權限
r:可執行catch、more等讀操作
w:修改檔案的内容等寫操作,單不代表可以把這個檔案删除
x:對檔案進行執行操作
檔案夾的rwx權限
r:刻度操作,可以列出目錄的内容,比如ls指令。
w:表示可以在目錄下建立或者删除檔案的權限
x:表示可以進入這個目錄(基本上所有目錄都會有rx權限)
root使用者切換到普通使用者是不需要輸入密碼的
普通使用者切換到root要密碼
普通使用者之間切換要密碼
指令:chown
文法:chown user 檔案
描述:改變檔案的所有者
執行個體:chown newuser t1.sh
useradd username 添加使用者
passwd username 為使用者設定密碼
指令:chgrp
文法:chgrp group 檔案
描述:改變檔案的所屬組
示例:chgrp adm t1.sh
檢視系統預設的權限:umask -S(umask檢視權限掩碼值022 使用777-022得到真實權限
指令:find
文法:find[搜尋方位路徑] [檔案名] (根據檔案名查找)
find[搜尋範圍路徑] -size [+-檔案大小] (根據檔案大小查找,大于+小于-)
find[搜尋範圍路徑] -user (檔案所有者)
[以天為機關] 1 ctime、atime、mtime
[以分鐘為機關] 2 cmin、amin、mmin
c:表示檔案屬性發生變更
a:表示被通路過(比如被檢視過)
m:表示内容被修改過
如 find /usr -ctime -1 表示24小時以内檔案屬性發生變化
描述:查找任何檔案或者目錄
* 比對任意字元
?比對一個字元
1k = 2block
find應用的邏輯連接配接
-a(and的意思,邏輯與)
-o(or的意思,邏輯或)
示例:find -size +12345 -a -size -22345
find查找:根據檔案類型查找
-type
f表示二進制檔案,l表示軟連接配接檔案d表示目錄
示例:find /test -type d
指令:which
文法:which [指令名稱]
描述:檢視指令所在目錄位置
在linux中一般隻有兩種指令,一是所有使用者都可使用,二則是指允許管理者使用,還有whereis和which類似
示例:which rm
alias别名的意思,\rm就能使用源指令,而不是别名,也就是不詢問直接删除
對找到的檔案執行某個指令:find /test -name a.txt -exec rm -f {} \;
{}表示查詢到的結果集(-exec換成-ok也可以)
find -inum [i節點号] 根據i節點查找檔案,在linux系統中,所有的檔案都有一個唯一的辨別,友善linux核心去調用,這就是i節點
指令:locate
文法:locate [檔案名]
描述:查找檔案,根據linux資料庫内部的索引(updatedb指令,可以手工更新updatedb資料庫,一般和locate配合使用)
注意:locate的查找速度非常快,比find查找快得很多,原因是locate找的是linux系統建構的檔案資料庫的索引值,是以速度非常快,但是有的時候新建立的檔案使用locate指令差查不到,原因是這個檔案索引沒有馬上更新到linux系統檔案資料庫裡。
幫助手冊指令
指令:man
文法:man [指令或者配置檔案]
描述:幫助指令,非常有用,可以獲得指令的幫助文檔,如何使用等。
指令:whatis
文法:whatis [指令]
描述:檢視指令的描述
指令:--help
文法:[指令] --help
描述:檢視指令的選項用法
壓縮解壓縮指令
指令:zip
文法:zip 選項[-r][壓縮後的檔案名稱][源檔案]
描述:zip格式是window和linux通用的格式,可以壓縮檔案和目錄,壓縮目錄是需要選項 -r
指令:unzip
文法:unzip [解壓縮的檔案]
描述:進行解壓縮
最後配置加-d 表示檔案加壓後存放的路徑
指令:tar [zcvf|zxvf] [打封包件名.tar.gz] [源檔案]
-c 産生tar打封包件(必選)
-x 嘗試的解壓縮檔案 (必選)
-v 顯示詳細資訊
-f 指定壓縮後的檔案名
-z 打包同時壓縮
描述:打包目錄生成的字尾名.tar.gz,或者進行解壓最後配置加-C表示檔案解壓後配置的路徑
file指令可以檢視任何檔案的類型
關機:shutdown -h now
重新開機:reboot
ctrl+l 清屏
ctrl+c 退出應用
過濾:grep,可以對指定内容進行過濾然後輸出
管道:将一個指令的輸出傳送給另一個指令,作為另外一個指令的輸入,管道可以連接配接N個指令
ls -l /etc|more (表示将ls -l/etc的輸出單做more指令的資料,即more指令浏覽的内容是前面指令的輸出結果)
ls -l /etc|grep init(表示将ls -l /etc 的輸出結果進行過濾,顯示為init的結果)
ls -1 /etc|grep init|wc -l(最後進行統計顯示的個數)
邏輯與(&&)
形如:ls&&pwd(第一個指令執行成功,第二個指令才會執行)
邏輯或(||)
形如 ls || pwd (第一個指令執行成功則第二個不執行;第一個執行失敗則執行第二個)
輸出重定向
shell對每個程序預定義3個檔案描述字(0,1,2)
0(stdin)标準輸入 1(stdout)标準輸出 2(stderr)标準錯誤輸出
輸出重定向:就是把輸出的結果顯示到一個檔案上(>表示輸出重定向,>> 表示追加内容)
ls -l /etc > /usr/a.log 覆寫
ls -l /etc >> /usr/a.log 追加
輸入重定向:就是把輸入的資訊重定向,比如吧檔案裡的内容進行輸出
wall < /test/a.log
錯誤重定向:一般是把程式執行的錯誤日志資訊放到指定的log檔案中
ll /adasdfdsf 2> /test/b.log