RHCE7認證學習筆記15——訪問檔案系統
1、檢視分割槽和裝置檔案
/dev路徑下面儲存了系統的裝置檔案
檢視系統已經掛載分割槽:
(1)
[root@linuxidc ~]# cat /proc/partitions
major minor #blocks name
2 0 4 fd0
8 0 20971520 sda
8 1 512000 sda1
8 2 20458496 sda2
11 0 3655680 sr0
253 0 18358272 dm-0
253 1 2097152 dm-1
(2)
[root@linuxidc ~]# df -hTP
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/rhel-root xfs 18G 3.1G 15G 18% /
devtmpfs devtmpfs 485M 0 485M 0% /dev
tmpfs tmpfs 494M 80K 494M 1% /dev/shm
tmpfs tmpfs 494M 7.1M 487M 2% /run
tmpfs tmpfs 494M 0 494M 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 119M 379M 24% /boot
檢視檔案系統的UUID,UUID標記的是檔案系統,而非分割槽,使用UUID標記的好處是在分割槽發生錯位的情況下,比如sda5,sda6,sda7:如
果sda5被刪除了,則sda6變成sda6,sda7變成sda6,那麼在檔案/etc/fstab掛載中,如果還是寫sda6,sda7,則掛載會出
現問題;所以最好再fstab裡面掛載時寫UUID
[root@linuxidc ~]# blkid
/dev/sda1: UUID="64d32c15-8708-44a2-893a-a437c0f43156" TYPE="xfs"
/dev/sda2: UUID="4Ice1U-52dB-jxhY-80pW-vWus-rv1n-MVBJQ5" TYPE="LVM2_member"
/dev/sr0: UUID="2014-05-07-03-58-46-00" LABEL="RHEL-7.0 Server.x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/rhel-root: UUID="6e18526c-e4fa-4854-adcd-d2e463a53bf9" TYPE="xfs"
/dev/mapper/rhel-swap: UUID="b4476c9f-7681-48d8-8cba-3904f4ebce61" TYPE="swap"
2、掛載檔案系統
檢視資料夾大小,而不是內容:
[root@linuxidc ~]# ls -ld /boot/
dr-xr-xr-x. 3 root root 4096 Dec 26 15:33 /boot/
檢視資料夾內容的大小使用du命令:
[root@linuxidc ~]# du -h /boot/
0/boot/grub2/themes/system
0/boot/grub2/themes
2.4M/boot/grub2/i386-pc
3.3M/boot/grub2/locale
2.5M/boot/grub2/fonts
8.1M/boot/grub2
94M/boot/
[root@linuxidc ~]# du -hs /boot/
94M/boot/
使用mount命令掛載檔案系統:
常用選項:
-o: 選項1,選項2... 檔案系統 掛載點
ro:只讀選項;
remount:重新掛載
[root@linuxidc ~]# mount /dev/cdrom /iso/
mount: /dev/sr0 is write-protected, mounting read-only
[root@linuxidc ~]# mount UUID="2014-05-07-03-58-46-00" /iso/
當掛載點掛載一個檔案系統的時候,那麼掛載點裡面原有的東西都會被隱藏;
解除安裝檔案系統:umount ;
解除安裝檔案系統的時候,如果檔案系統被某個程式佔用,則解除安裝會提示系統繁忙,無法解除安裝:
[root@linuxidc iso]# umount /iso/
umount: /iso: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
這時候使用fuser命令,檢視佔用的程式,然後kill命令殺死,再解除安裝即可:
[root@linuxidc iso]# fuser -mv /iso/
USER PID ACCESS COMMAND
/iso: root kernel mount /iso
root 6256 ..c.. bash
[root@linuxidc ~]# kill -9 6256
輸入mount命令可以檢視所有的掛載選項:
3、開機自動掛載檔案系統
編輯/etc/fstab檔案,編輯開機自動掛載檔案系統:
9 /dev/mapper/rhel-root / xfs defaults 1 1
10 UUID=64d32c15-8708-44a2-893a-a437c0f43156 /boot xfs defaults 1 2
11 /dev/mapper/rhel-swap swap swap defaults 0 0
檔案系統 掛載點 檔案系統 掛載選項 dump fsck檢查(一般寫0)
配置完成fstab後,使用mount -a 命令掛載檔案系統;
4、檔案的軟硬連結
分割槽的每個block預設大小是4K,一個block只能儲存一個檔案;inode相當於分割槽的索引,記錄了檔案的屬性資訊;
硬連結,檔案的inode相同,實質上指的是相同的檔案,相當於一個檔案兩個名稱,修改其中的一個檔案,另一個也會改變,刪除其中一個檔案,不會影響另一個檔案:
1234 [root@linuxidc tmp]# touch aa
[root@linuxidc tmp]# ln aa bb
[root@linuxidc tmp]# ls -i aa bb
102819918 aa 102819918 bb
inode只能記錄本分割槽的block資訊,硬連結不能跨分割槽
建立一個資料夾,預設就會有2個硬連結,一個是資料夾本身,另一個是資料夾的".":, “..” 返回上一層目錄也是一個硬連結:
”[root@linuxidc tmp]# mkdir aa
[root@linuxidc tmp]# ls -ld aa/
drwxr-xr-x. 2 root root 6 Jan 14 16:32 aa/
5、檔案查詢
whereis + 檔案
which + 命令
locate:利用資料庫來根據名字查詢檔案,查詢速度很快,但是資料庫一週更新一次;可以使用updatedb命令手工更新資料庫:
find: find + 目錄+屬性+值
屬性值:
1、name;
2、size;
3、user group;
4、uid,gid;
5、perm;查詢許可權 222完全匹配,-222至ugo分別少要含有相對應的許可權222,+222,/222或關係,ugo分別只要滿足其中一個許可權即可
6、type;
7、ctime/cminu;
8、newer;
find查詢出來的內容要執行命令,則按照以下兩種方式操作:
[root@linuxidc tmp]# find -name "*" | xargs ls -l
[root@linuxidc tmp]# find -ctime +1 -exec ls -l {} \;
6、find命令引數詳解
SYNOPSIS語法格式
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
選項:
-P:不查詢連結檔案內容,這是預設選項;
-L:查詢連結檔案內容,如果檔案時連結檔案,那麼加入這個選項,命令將會檢視連結所指的檔案的內容:
例如,2個連結檔案,一個指向檔案,一個指向目錄:
[root@linuxidc tmp]# ll bb cc
lrwxrwxrwx. 1 root root 12 Jan 15 14:59 bb -> /root/passwd
lrwxrwxrwx. 1 root root 5 Jan 15 15:11 cc -> /root
不加-L選項時,查詢bb和cc檔案:
[root@linuxidc tmp]# find bb cc -type f 沒有結果
加入-L選項,將會查詢連結檔案指向的真正內容:
[root@linuxidc tmp]# find -L bb cc -type f
-H:這個選項和-L選項類似,不同的區別是,假如查詢的連結檔案是壞連結,則將會顯示連結檔案的資訊;
-follow:這個選項後面的連結檔案也會被指向其連結的真正檔案;
-D: 診斷資訊
診斷選項:
help Explain the debugging options
tree Show the expression tree in its original and optimised form.
stat
Print messages as files are examined with the stat and lstat system
calls. The find program tries to min?imise such calls.
opt Prints diagnostic information relating to the optimisation of the expression tree; see the -O option.
rates Prints a summary indicating how often each predicate succeeded or failed.
-Olevel;最佳化層級
0:
1:預設層級
2:
3:
表示式expression由三個部分組成,由運算子分隔開:
選項option,所有選項返回true值:
常用選項
-d,-depth:處理目錄的內容的層級
-maxdepth:處理目錄的最大層級;
-noleaf:針對於CD-ROM,MS-DOS,AFS等不符合unix檔案系統規範的檔案;
測試tests:
-ctime;
-atime:
-perm:
-iname:
-path
-mmin:
-mtime:
-newer:
-name
-size:檔案大小
-type:檔案型別:b,c,d,f,l,p,s,d
-uid:
-gid:
操作actions:
-delete:
-exec command: 執行多個命令,直到遇到帶;的命令
-exec comand {} \; :
-execdir command:
-execdir comand {} \; :只執行查詢的檔案的當前目錄
-fprint:
-prune:修剪,只顯示檔案所所指向的目錄:
find的運算子:
(expr):
!:非
not:
expr1 expr2:並且
expr1 -a expr:並且
expr1 -and expr2:並且
expr1 -o expr2:或者
expr1 -or expr2:或者
三種標準格式:POSIX,GNU,BSD
環境變數:
LANG:
LC_ALL:
PATH:
POSIXLY_CORRECT: 設定了這個環境變數,那麼 -perm +zzz這樣的模式會出錯
Determines the block size used by -ls and -fls. If POSIXLY_CORRECT is set, blocks are units of 512 bytes. Other‐
wise they are units of 1024 bytes.
When POSIXLY_CORRECT is not set, -perm +zzz is treated just like -perm /zzz if +zzz is not a valid symbolic mode.
When POSIXLY_CORRECT is set, such constructs are treated as an error.
常見使用例子:
找到檔名為core的檔案,並刪除:
find /tmp -name core -type f -print | xargs /bin/rm -f
如果檔案或目錄含有單引號、雙引號、換行符,以下的find也能找到:
find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
找到當前目錄下面的檔案,並執行file命令:
find . -type f -exec file '{}' \;
或:find . -type f -exec file {} \;
遍歷跟目錄,查詢setuid的檔案和目錄並儲存到/root/suid.txt,查詢大於100M的檔案並儲存到/root/big.txt,%#m=檔案許可權前面加特殊標記位,%u =UID,%p=檔名稱,%s=檔案大小:
find / \( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) \
\( -size +100M -fprintf /root/big.txt '%-10s %p\n' \)
查詢家目錄下面在最近24小時內修改的檔案:
find $HOME -mtime 0
尋找sbin目錄下面可執行但是不可讀的檔案,!是非的意思,使用跳脫字元\進行轉義:
find /sbin /usr/sbin -executable \! -readable -print
精確匹配:
find . -perm 664
find . -perm -664 至少包含644許可權
find . -perm /222 ugo的許可權位只要滿足一個條件即可
find . -perm /220
find . -perm /u+w,g+w
find . -perm /u=w,g=w
find . -perm -444 -perm /222 ! -perm /111
find . -perm -a+r -perm /a+w ! -perm /a+x
find repo/ -exec test -d {}/.svn \; -or \
-exec test -d {}/.git \; -or -exec test -d {}/CVS \; \
-print -prune
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9034054/viewspace-2056757/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RHCE7認證學習筆記24——磁碟、分割槽和檔案系統管理筆記
- RHCE7認證學習筆記17——KickStart安裝系統筆記
- RHCE7認證學習筆記2--命令列操作檔案筆記命令列
- RHCE7認證學習筆記6——管理檔案和目錄筆記
- RHCE7認證學習筆記12——壓縮、歸檔和系統間的檔案傳輸筆記
- RHCE7認證學習筆記27——使用NFS訪問網路儲存筆記NFS
- RHCE7認證學習筆記28——使用Samba訪問網路儲存筆記Samba
- RHCE7認證學習筆記21——使用ACLs控制檔案許可權筆記
- RHCE7認證學習筆記34——配置ISCSI筆記
- RHCE7認證學習筆記35——配置ISCSI筆記
- RHCE7認證學習筆記20——管理系統程式優先順序筆記
- RHCE7認證學習筆記34——DNS管理與配置筆記DNS
- RHCE7認證學習筆記38——Apache配置與管理筆記Apache
- RHCE7認證學習筆記19——計劃任務筆記
- RHCE7認證學習筆記32——網路埠安全筆記
- RHCE7認證學習筆記7——監視和管理程式筆記
- RHCE7認證學習筆記18——正規表示式grep使用筆記
- RHCE7認證學習筆記25——邏輯卷LVM管理筆記LVM
- RHCE7認證學習筆記4——Vim編輯器的使用筆記
- RHCE7認證學習筆記14——安裝和更新軟體筆記
- RHCE7認證學習筆記36——MariaDB資料庫配置與管理筆記資料庫
- RHCE7認證學習筆記37——MariaDB資料庫配置與管理筆記資料庫
- OS學習筆記六:檔案系統筆記
- linux磁碟和檔案系統的學習筆記Linux筆記
- QFS檔案系統-學習記錄
- 作業系統認證與ORACLE密碼檔案認證方式作業系統Oracle密碼
- 達夢DCA認證學習筆記及體會筆記
- EJB 訪問檔案系統的疑惑
- Java學習筆記之檔案Java筆記
- 記憶體檔案系統的再學習記憶體
- 【登陸認證】oracle的作業系統認證和口令檔案認證方式(轉載)Oracle作業系統
- iOS學習筆記49 Swift(九)訪問控制iOS筆記Swift
- DVWA-檔案包含學習筆記筆記
- 【C#學習筆記】讀檔案C#筆記
- 【C#學習筆記】寫檔案C#筆記
- 學習筆記:robots.txt檔案筆記
- Laravel——驗證碼認證學習記錄Laravel
- EXT4檔案系統學習(15)VFS之VFS 檔案/目錄物件物件