Linux系統學習之檔案管理

youcongtech發表於2017-11-08

Linux目錄分佈通常是樹形,所以它的結構又稱為目錄樹。

一、檔案和目錄管理

[root@Cfhost-170820-UCNK /]# cd /
[root@Cfhost-170820-UCNK /]# ls
aquota.group  aquota.user  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var

/bin  常見的使用者指令
/boot 核心和啟動檔案
/dev 裝置檔案
/etc 系統和服務配置檔案
/home 系統預設的普通使用者的家目錄
/lib 系統函式庫的目錄
/lost+found ext3檔案系統需要的目錄,用於磁碟檢查
/mnt 系統載入檔案系統時常用的掛載點
/opt 第三方軟體安裝目錄
/proc 虛擬檔案系統
/root root使用者的家目錄
/sbin 存放系統管理命令
/tmp 臨時檔案的存放目錄
/usr 存放與使用者直接相關的檔案和目錄

絕對路徑和相對路徑
在linux目錄下每個目錄或檔案都可以從根目錄處開始尋找,比如/usr/local/src目錄.這種從根目錄開始的全路徑被稱為"絕對路徑",絕對路徑一般以 "/" 開頭。

通常如果想要確認當前所在目錄,可以使用pwd命令檢視

特殊目錄(.)和(..)屬於相對路徑

 二、檔案的相關操作

Linux遵循著一切皆檔案的規則,對Linux配置時,很大程度上就是對檔案的操作過程。

1.建立檔案
  touch 檔名

2.刪除檔案
  rm 檔名
  執行該命令時,系統會詢問是否刪除,按y刪除,按n將不會刪除該檔案。
3.移動或重新命名檔案

mv 目標檔案路徑 將要移到的路徑
例如:我要將/root/mysql移到/usr/local下
mv /root/mysql /usr/local/ 

mv 舊檔名 新檔名
例如:我要將test.txt修改為test2.txt
mv test.txt test2.txt
修改檔名


4.檢視檔案內容
cat 檔名

5.檢視檔案頭
head -n 20 檔名
檢視該檔案前20行內容

6.檢視檔案尾
例如: var/log/message檔案是預設的系統日誌檔案,系統在執行中將會有大量的日誌寫入這個檔案中,可以使用如下命令,一旦有新的日誌內容寫入,該命令會立即將新內容顯示出來。

7.檔案格式轉換:dos2unix
說的是linux和windows可以通過檔案共享的方式共享檔案。
至於如何使用,我沒有用過。

tail -f /var/log/message

三、目錄的相關操作

1.進入目錄:cd
2.建立目錄:mkdir 目錄名
3.刪除目錄:rmdir 目錄名 和rm 目錄名(注意區分這兩個刪除目錄的命令,rmdir使用注意,當它要刪除的檔案裡面,存在一個目錄時,會導致刪除失敗,也就會報下面這個錯誤:
rmdir: failed to remove `testoop`: Directory not empty

要想解決需將你要刪除的目錄下的空目錄刪除,然後在刪除該目錄,就可以了。

當然要刪除可以直接刪除根本不需要這樣做,只需rm -r 即可刪除或者rm -rf。
rm -r 目錄名 這樣刪除的不好點是每次刪除都要詢問一次是否確定刪除,所以通常我們使用rm -rf 目錄名,
不過注意,使用這個命令要非常小心,因為一旦刪除就幾乎不可能恢復,另外root使用者在Linux系統中的許可權非常高,甚至可以使用rm -rf 命令來刪除全部的系統檔案,這樣做的後果是非常嚴重的,所以我們使用這個命令一定要非常小心。

4.檔案和目錄的複製:cp 原檔案 複製檔案
例如:
我們想將/usr/local/tomcat 複製到/root下
就可以使用如下命令: cp /usr/local/tomcat /root/即可。

5.檔案時間戳
記住在Linux下目錄也是一種檔案,所以如果touch一個目錄,這個目錄的建立時間也會被更新。
不論是哪種系統,幾乎所有的程式都會讀寫系統檔案,預設情況下,一旦發生寫檔案操作,該檔案的時間戳將會立刻得到更新。因此可以利用這種特性來有選擇地備份一些檔案(又稱差異化備份)

6.檔案和目錄許可權
通過ll 或ls -l也可以看到所有檔案許可權,ls -al可以列出隱藏檔案,但ll和ls -l不可以。
檔案的許可權無非是讀寫執行(rwx)
通過chmod a+x 檔案A 即可賦予檔案A的執行許可權
(讀寫許可權通常是系統預設的)
改變檔案擁有者:chown 使用者名稱 檔名
例如:我要將test.sh檔案擁有者改變,可通過執行該命令 chown 使用者名稱 檔名 即可改變
chown java test.sh
該命令還可以同時更改檔案的使用者組.
chown : java test.sh
以上兩個改變檔案擁有者命令,可以合併為chown java:java test.sh

7.改變檔案擁有組
chgrp 組名 檔名

8.檔案特殊屬性:SUID/SGID/Sticky(看的不是特別明白,待續)

9.檢視檔案型別

file 檔案 即可檢視檔案的型別
10.一般檢視:find
find / -name 查詢的檔名或目錄

資料庫查詢:locate

與find不同,locate依賴於一個資料庫檔案,linux會預設每天檢索一下系統中的所有檔案,然後將檢索到的檔案記錄到資料庫中。

執行locate 檔案或目錄名時,要先執行updatedb,否則會報錯。

報錯資訊如下:
locate: can not stat () `/var/lib/mlocate/mlocate.db`: No such file or directory

注意:使用locate查詢檔案有一個弊端,那就是當你查詢後刪除了,第二次仍然可以找到,所以在此之前必須手動執行updatedb命令。

 四、檔案壓縮和打包

1.gzip/gunzip
gzip 檔名 
可以將檔案打成gz的壓縮包
解壓命令為:gunzip 檔名
2.tar 
tar -zcvf 檔名.tgz 壓縮
tar -zxvf 檔名.tgz 解壓
3.bzip

例如:
bizp2 install.log
ls -l install.log.bz2
bzip2 -d install.log.bz2

4.cpio

備份:find /etc -name *.conf | cpio -cov > /tmp/conf.cpio

還原:cpio --absolte-filename -icvu < /tmp/conf.cpio
 

 


相關文章