天天看點

Linux系統學習之檔案管理

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