一、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——>/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