天天看點

Linux檔案和常用的檔案處理指令

一、Linux的檔案

Linux的檔案及檔案夾的組織結構成一個倒立置的樹形結構。并以 / (slash)分隔。

重要的檔案目錄

家目錄 /root, /home /username

user executables(普通使用者可執行檔案):/bin,/usr/bin,/usr/local/bin

systemexecutables(超級使用者可執行檔案):/sbin,/usr/sbin,/usr/local/bin

總結可以發現:/bin與/sbin的差別就是後者隻有root權限才能執行,/bin和/usr/bin的差別就是前者可以在單使用者下執行,而後者不可以

other mountpoints(其他挂載點):/media,/mnt,/misc

系統建議media用來挂載媒體裝置,例如CD光牒,mnt挂載額外裝置,例如U盤和移動硬碟,misc用來挂載NFS服務的共享目錄,不過都是由管理者自己絕對的,我現在的習慣是在mnt下挂載不同的習慣/mnt/cdrom挂載CD光牒,/mnt/usb挂載U盤

configuration(配置):/etc

tempoary files(臨時檔案):/tmp

kernels and bootloader(啟動工具和核心):/boot

server data(伺服器資料):/rar,/srv

system information(系統資訊):/sys,/proc 虛拟檔案系統,都是儲存在記憶體中的,主要儲存系統的核心,程序,外部裝置和網絡狀态行,如/proc/cpuinfo儲存cpu資訊,/pro/filesytems是儲存檔案系統清單的

shared libraries(庫檔案):/lib,/usr/lib,/usr/local/lib

dev:系統裝置檔案

lost+found:當系統意外崩潰或機器意外關機,而産生檔案碎片放在這裡,當系統啟動過程中fsck工具會檢查這裡,并修複損壞的檔案(每個分區都會有這個目錄)

usr(unix softwre resource):系統軟體資源目錄。usr不是user的縮寫,而是unix softwre resource的縮寫,是以不是存放使用者資料,而是存放軟體資源的目錄。系統安裝的軟體大多數儲存在這裡。

var:動态資料儲存位置。主要用于儲存緩存、日志以及軟體運作所産生的檔案

指令的格式:

指令 【-選項】 【參數】

選項:調整指令功能

參數:操作的對象

 如:ls -la /etc

說明:1.個别指令不遵循此格式

      2.當有多個選項時,可以寫在一起

      3.簡化選項與完整選項

         -a等于--all

二、常用的檔案處理指令

  ls:顯示目錄檔案

英語原意list

所在路徑:/bin/ls ,通過這個路徑,然後結合上面所說,/bin是所有使用者都有執行的權限

-a 顯示所有檔案,包括隐藏檔案

-l 詳細資訊顯示

-d 檢視目錄屬性

-h 人性化顯示

-i 查詢檔案的i節點

-R 遞歸顯示目錄及其子目錄

<a href="http://s2.51cto.com/wyfs02/M00/86/AA/wKiom1fGvyyTJua0AABSr97723s945.png" target="_blank"></a>

. 代表目前目錄

.. 代表上一級目錄

linux的隐藏檔案都以點開頭,是以在linux中,想把檔案隐藏,隻有把檔案名改名為以點開頭的檔案名

<a href="http://s3.51cto.com/wyfs02/M02/86/A9/wKioL1fGv1LwfFk8AAAv59NmBXk966.png" target="_blank"></a>

-rw-r--r--:第一個"-"位置是代表檔案類型的。

檔案權限前的第一個字母用來辨別檔案類型:

-:一般檔案

d:目錄檔案

b:塊裝置檔案

c:字元裝置檔案

l:連結檔案

p:人工管道

常見的為-,d,I

rw-  r--  r-- :檔案權限

u    g   o

u所有者,g所屬組,o其他人

r讀 w寫 x執行

如:-rw- r-- r--的意思就是這個檔案的類型是一般檔案,檔案本身所在的使用者可讀可寫不可執行,所在的組可讀,不可寫不可執行,其他使用者可讀,不可寫不可執行。

1:引用系數,代表這個檔案曾經被調用或者引用多少次,對檔案和目錄來說,隻在硬連結才起作用。

root 擁有者

root擁有組

1618 大小,預設大小為位元組,可以使用ls -lh 來人性化顯示,統計指令基本支援-h選項

8月 30 01:06 最後一次修改時間,linux有檔案的最後一次通路時間,狀态修改時間時間,檔案的資料修改時間,沒有建立時間概念,當檔案建立,沒有修改過,就是建立時間了

檔案名

  mkdir  建立新目錄

英語原意:make directories

文法:mkdir  [目錄名]

-p 遞歸建立,如果建立的目錄不存在,在建立目錄的同時建立子目錄

<a href="http://s3.51cto.com/wyfs02/M01/86/AA/wKiom1fGv3_iupe3AAArFkxpyvI371.png" target="_blank"></a>

touch 建立空檔案

文法:touch 【選項】【檔案名】

<a href="http://s2.51cto.com/wyfs02/M01/86/AA/wKiom1fGv57h0TOTAAAqZnit22A564.png" target="_blank"></a>

1、沒有指明路徑,會在目前路徑下建立,絕對路徑可以指明路徑

2、linux沒有擴充名的概念

3、windows的很多特殊符号不能使用,如*?《,在linux中,除了表示根目錄/不能用以外,幾乎都可以使用,不過并不推薦使用

4、空格,我們在複制建立時可以同時對多個檔案操作,假如我們在建立檔案的時候如下:touch 1 2.txt

<a href="http://s5.51cto.com/wyfs02/M00/86/A9/wKioL1fGv9XySBvIAAA4R0wv1ko077.png" target="_blank"></a>

系統會了解為是建立了兩個檔案,此時應用“”括起來,touch “1 2.txt”,也不建議使用

<a href="http://s5.51cto.com/wyfs02/M02/86/AA/wKiom1fGv9XyxS_cAAAt3j_2OLw367.png" target="_blank"></a>

 cd  切換目錄

英語原意:change directory

文法:cd 【目錄】

cd ~ 目前的家目錄

cd .. 傳回上一級,cd../../傳回上二級,以此類推

cd / 傳回根目錄

cd - 在最近通路過的兩個目錄切換

pwd  顯示目前目錄

英語原意:print working directory

<a href="http://s3.51cto.com/wyfs02/M01/86/A9/wKioL1fGv_2QNqW2AAANScIbnIY620.png" target="_blank"></a>

 cp  複制檔案或目錄

英語原意:copy

cp 【選項】 【原檔案或目錄】 【目标目錄】

-r 遞歸複制該目錄下所有的子目錄和檔案

-p  保持原檔案的權限和屬性不變

<a href="http://s4.51cto.com/wyfs02/M02/86/AA/wKiom1fGwBWxhcEMAAAhmdcKB2o862.png" target="_blank"></a>

因為加了-p參數,是以,保持了原檔案的屬性好權限不變,

<a href="http://s5.51cto.com/wyfs02/M01/86/A9/wKioL1fGwDLBQMRCAAAhk8gW3k8419.png" target="_blank"></a>

沒加-p參數,可以看到屬性不一樣了。

<a href="http://s2.51cto.com/wyfs02/M00/86/AA/wKiom1fGwE3ClpJiAAAbsmb_Es4819.png" target="_blank"></a>

在複制的同時,可以改名。

<a href="http://s2.51cto.com/wyfs02/M02/86/A9/wKioL1fGwGmRVvtVAAAifOFm_Z0206.png" target="_blank"></a>

scp

不同的Linux之間copy檔案常用有3種方法:

第一種就是ftp,也就是其中一台Linux安裝ftp Server,這樣可以另外一台使用ftp的client程式來進行檔案的copy。

第二種方法就是采用samba服務,類似Windows檔案copy 的方式來操作,比較簡潔友善。

第三種就是利用scp指令來進行檔案複制。

    scp是有Security的檔案copy,基于ssh登入。操作起來比較友善,比如要把目前一個檔案copy到遠端另外一台主機上,可以如下指令。

scp /home/daisy/1.tar.gz [email protected]:/home/root

然後會提示你輸入另外那台172.19.2.75主機的root使用者的登入密碼,接着就開始copy了。

    如果想反過來操作,把檔案從遠端主機copy到目前系統,也很簡單。

scp root@/1.tar.gz 172.19.2.75:/home/root/1.tar.gz home/daisy/1.tar.gz

 mv 剪切檔案、改名

英語原意:move

文法:mv 【選項】【原檔案或目錄】 【目标目錄】

<a href="http://s3.51cto.com/wyfs02/M02/86/A9/wKioL1fGwKCw4eOZAAAzAEVeobE808.png" target="_blank"></a>

剪切過去了,當然,wt目錄下就空了。現在我在wt/目錄下,我也可以不用絕對目錄,可以使用相對路徑。

<a href="http://s3.51cto.com/wyfs02/M01/86/AA/wKiom1fGwKCAug1jAAAzXp5KqPI523.png" target="_blank"></a>

當然,複制的時候可以改名,剪切的時候也可以改名。

<a href="http://s1.51cto.com/wyfs02/M00/86/AA/wKiom1fGwMai2-0EAAAOsdCmiu8506.png" target="_blank"></a>

 rmdir 删除空目錄

英語原意:remove empty dircetories

文法:rmdir 【目錄名】

隻能删除空目錄

 rm 删除檔案

英語原意:remove

文法:rm 【選項】 【檔案或目錄】

-r 删除目錄

-f 不提示确認資訊(你連唯一後海的機會都沒了)

<a href="http://s4.51cto.com/wyfs02/M00/86/A9/wKioL1fGwOOBNDmjAAA1tXi6F2A491.png" target="_blank"></a>

linux是沒有類似于windows的資源回收筒,删除時就得注意了

做好備份操作

誤删後盡量不要對硬碟進行讀寫操作,讀寫操作越多,恢複的可能性越小

 cat 顯示檔案内容

cat【選項】 【檔案名】

-n 顯示行号

<a href="http://s5.51cto.com/wyfs02/M02/86/AA/wKiom1fGwQqi-SliAABHPuvV664839.png" target="_blank"></a>

<a href="http://s5.51cto.com/wyfs02/M01/86/A9/wKioL1fGwQrBLZ22AABd5TX721s032.png" target="_blank"></a>

 tac 顯示檔案内容(反向顯示)

<a href="http://s2.51cto.com/wyfs02/M00/86/AA/wKiom1fGwSiDHXixAABM1VAB6Mc459.png" target="_blank"></a>

cat不适合用于長檔案

 more  分頁顯示檔案内容

more 【檔案名】

空格(或f)  翻頁

Enter         換行

q(或Q)     退出

<code>more /etc/services</code>

<a href="http://s4.51cto.com/wyfs02/M02/86/A9/wKioL1fGwU7R0-cnAACvD_J903E227.png" target="_blank"></a>

 less  分頁顯示檔案内容(可向上翻頁)

pgug: 按鈕往上翻頁

上箭頭: 一行一行往上翻頁

搜尋:輸入冒号進行指令行界面,例如輸入/service,搜尋service,按n進行下一個比對額關鍵詞

<a href="http://s1.51cto.com/wyfs02/M01/86/AA/wKiom1fGwW6A_0ZcAACqqXTubkU182.png" target="_blank"></a>

 head  顯示檔案前面幾行

文法:head【選項】【檔案夾】 預設顯示前十行

-n 指定行數

<a href="http://s3.51cto.com/wyfs02/M00/86/A9/wKioL1fGwaHiiSyJAACMHvqywF0588.png" target="_blank"></a>

 tail 顯示檔案後面幾行

文法:tail【選項】【檔案名】

-f 動态顯示檔案末尾内容

<a href="http://s3.51cto.com/wyfs02/M01/86/AA/wKiom1fGwaHi5vdlAAB9tIhTsmA772.png" target="_blank"></a>

假如檔案更新了,檢視的時候就會動态的變化

三、軟連結和硬連結

 ln 生成連結檔案

英語原意:link

文法:ln [選項][原檔案][目标檔案]

-s 建立軟連結

<code>ln -s /etc/issue /tmp/issue.</code><code>soft</code>

建立檔案/etc/issue的軟連結/tmp/issue.sofe

<a href="http://s5.51cto.com/wyfs02/M02/86/AA/wKiom1fGwcfjugl5AAAhOXKX2hw108.png" target="_blank"></a>

軟連結:相當于為原檔案創立一個快捷方式,可跨分區。

軟連結特征:

1、軟連結的權限全是lrwxrwxrwx,但檔案的權限取決于對應着原檔案的權限最終決定的。

2、檔案大小——隻是符号連結

3、/tmp/issue.soft——&gt;/etc.issue ,箭頭指向源檔案,硬連結沒有箭頭指向

<code>ln /etc/issue /tmp/issue.hard</code>

建立檔案/etc/issue的硬連結/tmp/issue.hard

<a href="http://s5.51cto.com/wyfs02/M01/86/A9/wKioL1fGwfXBK5_VAAAZkbtpJ7w997.png" target="_blank"></a>

硬連結:硬連結檔案完全等同于原檔案,相當于使用了cp -p 指令

硬連結特征:

1、相當于使用了cp -p 指令 + 同步更新

<a href="http://s5.51cto.com/wyfs02/M00/86/AA/wKiom1fGwfbijtkkAABjw-c7JoM171.png" target="_blank"></a>

硬連結會響應的同步更新,但是軟連結怎麼也更新了,軟連結歸根結底也就是在通路原檔案,當然也更新了。

2、源檔案丢失,硬連結可以通路,軟連結就找不到目錄了

3、可以看到硬連結和原檔案的i節點是一樣的。一個檔案必須有一個i節點,但是一個i節點并不隻對應一個檔案,硬連結就是一個很好的案例。這也恰好的解釋了為什麼會同步更新,當你對一個檔案進行更新,其實是對一個i節點進行更新,同時使用一個i節點,是以就同步更細了。

4、跨分區

硬連結不能跨分區,軟連結可以。

5、針對目錄使用

硬連結不能針對目錄使用,軟連結可以。

硬連結的優點:實時同步更新。

       相當于備份

本文轉自 wt7315 51CTO部落格,原文連結:http://blog.51cto.com/wt7315/1844919

繼續閱讀