文件管理命令:
cd:這個命令是用來變更用戶所在目錄的,后面如果什么都不跟侯繁,就會直接到當(dāng)前用戶的根目錄下胖喳。
./ 表示當(dāng)前目錄,../ 表示當(dāng)前目錄的上一級目錄
pwd:打印出當(dāng)前所在目錄贮竟。
mkdir:創(chuàng)建目錄丽焊。‘mkdir’ 其實就是make directory的縮寫咕别。
-m :指定創(chuàng)建目錄的權(quán)限技健。
-p : 可以創(chuàng)建多級目錄。如果要創(chuàng)建目錄已經(jīng)存在惰拱,會覆蓋雌贱。
rmdir:刪除空目錄。用法與mkdir相同,用的少帽芽,一般用rm代替删掀。
rm:刪除文件或目錄。最常用导街。
-m : 刪除目錄是用的選項披泪,等同于rmdir。但是可以刪除非空目錄搬瑰。同時會提示是否確認(rèn)刪除款票。
-f : 強(qiáng)制刪除。不會提示確認(rèn)刪除泽论。就算文件要刪除的文件不存在也不會報錯艾少。要刪除一個目錄時,即使加上 ‘-f’ 選項也會報錯翼悴,所以刪除目錄一定要加 ‘-r’ 選項缚够。
cp :copy的簡寫,即拷貝鹦赎。格式為 cp [選項] [ 來源文件 ] [目的文件] 谍椅。
-r :如果要拷貝目錄是必須加 -r。
-i : 安全選項古话。和rm類似雏吭,如果遇到一個存在的文件,會問是否覆蓋陪踩。在Redhat 和 centos系統(tǒng)中杖们,cp默認(rèn)覆蓋。
mv:‘mv’ 是move的簡寫肩狂。格式為 mv [ 選項 ] [源文件] [目標(biāo)文件] 摘完。
-i :安全選項。會有提示婚温。
該命令有幾種情況:
1) 目標(biāo)文件是目錄描焰,而且目標(biāo)文件不存在;
2) 目標(biāo)文件是目錄栅螟,而且目標(biāo)文件存在荆秦;
3) 目標(biāo)文件不是目錄不存在;
4) 目標(biāo)文件不是目錄存在力图;
目標(biāo)文件是目錄步绸,存在和不存在,移動的結(jié)果是不一樣的吃媒,如果存在瓤介,則會把源文件移動到目標(biāo)文件目錄中吕喘。不存在的話移動完后,目標(biāo)文件是一個文件刑桑。相當(dāng)于重命名氯质,常用。
cat: 查看文件祠斧。
-n : 查看文件時闻察,把行號也顯示到屏幕上。
-A : 顯示所有東西出來琢锋,包括特殊字符.
tac :用來把文件的內(nèi)容顯示在屏幕上辕漂,只不過是先顯示最后一行,然后是倒數(shù)第二行吴超,最后顯示的是第一行钉嘹。
more:查看文件內(nèi)容,當(dāng)屏幕占滿后按空格才能看下一屏幕鲸阻。按q可提前退出跋涣。
less:查看文件內(nèi)容,可以上下翻閱鸟悴。按 ‘j’ 鍵可以向下移動仆潮,按 ‘k’ 鍵向上移動。
在用more和less查看內(nèi)容是可以通過:按一下 ‘/’ 鍵遣臼,然后輸入一個word回車,這樣就可以查找這個word了拾并。如果是多個該word可以按 ‘n’ 鍵顯示下一個揍堰。另外也可以不按 ‘/’ 而是按 ‘?’ 后邊同樣跟word來搜索這個word,唯一不同的是嗅义, ‘/’ 是在當(dāng)前行向下搜索屏歹,而 ‘?’ 是在當(dāng)前行向上搜索。
head:顯示文件的前十行之碗。如果加 -n 選項則顯示文件前n行蝙眶。
tail:顯示文件最后十行。如果加-n 選項則顯示文件最后n行褪那。
文件的所屬主以及所屬組:
一個linux目錄或者文件幽纷,都會有一個所屬主和所屬組。所屬主博敬,即文件的擁有者友浸,而所屬組,即該文件所屬主所在的一個組偏窝。
可通過ls -l查看文件屬性收恢。
[root@localhost hadoop]# ls -l
總用量 4
-rw-r--r--. 1 root root 13 6月? 16 23:08 file.txt
[root@localhost hadoop]#
1
2
3
4
Linux文件屬性:
[root@localhost etc]# ls -l yum
總用量 4
drwxr-xr-x. 2 root root? 6 4月? 13 20:58 fssnap.d
drwxr-xr-x. 2 root root? 83 6月? 5 21:45 pluginconf.d
drwxr-xr-x. 2 root root? 26 4月? 13 20:58 protected.d
drwxr-xr-x. 2 root root? 37 4月? 13 20:58 vars
-rw-r--r--. 1 root root 444 4月? 13 20:58 version-groups.conf
1
2
3
4
5
6
7
在查看文件屬性時武学,有9列內(nèi)容:具體含義如下:
第一列:代表這個文件是“目錄、文件或鏈接文件等”伦意。
若是【d】則代表該條記錄是目錄火窒;
若是【-】則代表是文件;
若是【|】則表示為連接文件(linkfile)驮肉;
若是【b】則表示設(shè)備文件里面的可供存儲的接口設(shè)備熏矿;
若是【c】則表示設(shè)備文件里面的串口端口設(shè)備,例如鍵盤缆八、鼠標(biāo)曲掰。
接下來以3個為一組:“rwx”
其中【r】代表可讀(read);
其中【w】代表可寫(write)奈辰;
其中【x】代表可執(zhí)行(execute)栏妖;
這3個權(quán)限的位置不會改變,如果沒有相應(yīng)的權(quán)限奖恰,就會出現(xiàn)減號【-】
前三位為所屬主(user)的權(quán)限吊趾,中間三位為所屬組(group)的權(quán)限,最后三位為其他非本群組(others)的權(quán)限瑟啃。
第二列表示有多少文件名連接到此節(jié)點(i-node)
第三列表表示這個文件(或目錄)的“所有者賬號”
第四列表表示這個文件的所屬用戶組
第五列為這個文件的大小论泛,默認(rèn)單位為B
第六列為這個文件的創(chuàng)建文件日期或者是最近的修改日期
第七列為文件名.
圖:示例
更改文件權(quán)限:
更改所屬組:chgrp
語法:chgrp [組名] [文件名]
‘chgrp’命令也可以更改目錄的所屬組,但是只能更改目錄本身蛹屿,而目錄下面的目錄或者文件沒有更改屁奏,要想級聯(lián)更改子目錄以及子文件,需要加個參數(shù):-R错负。
該命令使用不多坟瓢,可用可用chown代替。
更改文件的所屬主:chown
語法: chown [ -R ] 賬戶名 文件名 chown [-R] 賬戶名:組名 文件名
這里的-R選項只作用于目錄犹撒,作用是級聯(lián)更改折联,即不僅更改當(dāng)前目錄,連目錄里的目錄或者文件全部更改识颊。
改變用戶讀文件的讀寫執(zhí)行權(quán)限:chmod
chmod 語法: chmod [-R] xyz 文件名 (這里的xyz诚镰,表示數(shù)字,‘-R’ 選項作用同chown祥款,級聯(lián)更改)
在linux中為了方便更改這些權(quán)限清笨,linux使用數(shù)字去代替rwx, 具體規(guī)則為 ‘r’ 等于4, ‘w’ 等于2, ‘x’ 等于1, ‘-‘ 等于0。
舉個例子: ‘-rwxrwx—’ 用數(shù)字表示就是 ‘770’, 具體是這樣來的: ‘rwx’ = 4+2+1=7; ‘rwx’ = 4+2+1=7; ‘- -
-‘ = 0+0+0=0.
在linux系統(tǒng)中镰踏,默認(rèn)一個目錄的權(quán)限為 755函筋,而一個文件的默認(rèn)權(quán)限為644.
’chmod’ 還支持使用rwx的方式來設(shè)置權(quán)限。九個屬性分別是(1)user (2)group (3)others,
可以使用u, g, o 來代表它們?nèi)齻€的屬性奠伪,此外跌帐, a 則代表 all 亦即全部首懈。例:chmod u-x test/test2
另外還可以針對u, g, o, a增加或者減少某個權(quán)限(讀,寫谨敛,執(zhí)行)究履,例:chmod u-x test/test2
umask:
umask語法: umask xxx (這里的xxx代表三個數(shù)字)
umask預(yù)設(shè)是0022,其代表什么含義脸狸?先看一下下面的規(guī)則:
1)若用戶建立為普通文件最仑,則預(yù)設(shè) ‘沒有可執(zhí)行權(quán)限’, 只有’rw’兩個權(quán)限。最大為666 (‘-rw-rw-rw-‘).
2)若用戶建立為目錄炊甲,則預(yù)設(shè)所有權(quán)限均開放泥彤,即777 (‘drwxrwxrwx’).
umask數(shù)值代表的含義為,上邊兩條規(guī)則中的默認(rèn)值(文件為666卿啡,目錄為777)需要減掉的權(quán)限吟吝。所以目錄的權(quán)限為 'rwxrwxrwx' - '----w--w-' = 'rwxr-xr-x',普通文件的權(quán)限為 'rw-rw-rw-' - '----w--w-' = 'rw-r--r--'. umask的值是可以自定義的颈娜,比如設(shè)定umask 為 002剑逃,您再創(chuàng)建目錄或者文件時,默認(rèn)權(quán)限分別為 'rwxrwxrwx' - '-------w-' = 'rwxrwxr-x' 和 'rw-rw-rw-' - '-------w-' = 'rw-rw-r--'.
umask 可以在 /etc/bashrc 里面更改官辽,預(yù)設(shè)情況下蛹磺,root的umask為022,而一般使用者則為002同仆,因為可寫的權(quán)限非常重要萤捆,因此預(yù)設(shè)會去掉寫權(quán)限。
修改文件特殊屬性:chattr
語法: chattr [+-=][ASaci [文件或者目錄名]
‘+-=’ : 分別為增加俗批、減少鳖轰、設(shè)定
‘A’ : 增加該屬性后,文件或目錄的atime將不可被修改扶镀;
‘S’ : 增加該屬性后,會將數(shù)據(jù)同步寫入磁盤中焰轻;
‘a(chǎn)’ : 增加該屬性后臭觉,只能追加不能刪除,非root用戶不能設(shè)定該屬性辱志;
‘c’ : 自動壓縮該文件蝠筑,讀取時會自動解壓;
‘i’ : 增加后揩懒,使文件不能被刪除什乙、重命名、設(shè)定鏈接接已球、寫入臣镣、新增數(shù)據(jù)辅愿;
讀取文件或目錄的特殊權(quán)限:lsattr
語法為 lsattr [-aR] [文件/目錄名]
‘-a’ : 類似與ls 的-a 選項,即連同隱藏文件一同列出忆某;
‘-R’ : 連同子目錄的數(shù)據(jù)一同列出点待。
在Linux下搜索一個文件:
(1)通過which可以查找文件的絕對路徑。
需要注意的一點是弃舒,which只能用來查找PATH環(huán)境變量中出現(xiàn)的路徑下的可執(zhí)行文件癞埠。
(2)whereis: 通過預(yù)先生成的一個文件列表庫去查找跟給出的文件名相關(guān)的文件。
語法: whereis [-bmsu] [文件名稱]
‘-b’ : 只找binary 文件
‘-m’ : 只找在說明文件manual路徑下的文件
‘-s’ : 只找source來源文件
‘-u’ : 沒有說明檔的文件
這個命令一般很少使用聋呢。
(3)‘locate’ 類似于’whereis’, 也是通過查找預(yù)先生成的文件列表庫來告訴用戶要查找的文件在哪里苗踪。
用的也不是太多。
(4)find:使用最多的搜索命令削锰。
語法 : find [路徑] [參數(shù)]
常用參數(shù):
‘-atime +n/-n’ : 訪問或執(zhí)行時間大于/小于n天的文件.
‘-ctime +n/-n’ : 寫入通铲、更改inode屬性(例如更改所有者、權(quán)限或者鏈接)時間大于/小于n天的文件喂窟。
‘-mtime +n/-n’ : 寫入時間大于/小于n天的文件测暗。
注:文件的三個time屬性。
文件的 Access time也就是 ‘a(chǎn)time’ 是在讀取文件或者執(zhí)行文件時更改的磨澡。文件的 Modified time也就是 ‘mtime’ 是在寫入文件時隨文件內(nèi)容的更改而更改的碗啄。文件的 Create time也就是 ‘ctime’ 是在寫入文件、更改所有者稳摄、權(quán)限或鏈接設(shè)置時隨inode的內(nèi)容更改而更改的稚字。 因此概作,更改文件的內(nèi)容即會更改mtime和ctime蘸嘶,但是文件的ctime可能會在 mtime 未發(fā)生任何變化時更改,例如醋粟,更改了文件的權(quán)限仗阅,但是文件內(nèi)容沒有變化昌讲。
‘stat’ 命令可用來列出文件的 atime、ctime 和 mtime减噪。
atime不一定在訪問文件之后被修改短绸,因為:使用ext3文件系統(tǒng)的時候,如果在mount的時候使用了noatime參數(shù)那么就不會更新atime的信息筹裕〈妆眨總之, 這三個 time stamp 都放在 inode 中。若 mtime, atime 修改 inode 就一定會改, 既然 inode 改了, 那 ctime 也就跟著要改了朝卒。
‘-name filename’ 直接查找該文件名的文件证逻,這個選項使用很多。
‘-type filetype’ 通過文件類型查找抗斤。filetype 包含了 f, b, c, d, l, s 等囚企。
-:普通文件
d :目錄
c:字符設(shè)備
b:塊設(shè)備
s:套接口文件
l:符號連接
Linux文件類型:
1)普通文件(regular file):就是一般類型的文件丈咐,當(dāng)用 ls -l 查看某個目錄時,第一個屬性為 ‘-‘ 的文件就是正規(guī)文件洞拨,或者叫普通文件扯罐。正規(guī)文件又可分成純文字文件(ascii)和二進(jìn)制文件(binary)。純文本文件是可以通過cat, more, less等工具直接查看內(nèi)容的烦衣,而二進(jìn)制文件并不能歹河。例如我們用的命令/bin/ls 這就是一個二進(jìn)制文件。
2)目錄(directory):這個很容易理解花吟,就是目錄秸歧,跟windows下的文件夾一個意思,只不過在linux中我們不叫文件夾衅澈,而是叫做目錄键菱。ls -l 查看第一個屬性為 ‘d’.
3)鏈接文件(link):ls -l 查看第一個屬性為 ‘l’, 類似windows下的快捷方式。
4)設(shè)備(device):與系統(tǒng)周邊相關(guān)的一些檔案今布,通常都集中在 /dev 這個目錄之下! 通常又分為兩種:塊(block)設(shè)備 :就是一些儲存數(shù)據(jù)经备,以提供系統(tǒng)存取的接口設(shè)備,簡單的說就是硬盤部默。例如您的一號硬盤的代碼是 /dev/sda1, 第一個屬性為 ‘b’侵蒙;另一種是字符(character)設(shè)備 :是一些串行端口的接口設(shè)備,例如鍵盤傅蹂、鼠標(biāo)等等纷闺,第一個屬性為 ‘c’.
Linux文件后綴名
在linux系統(tǒng)中,文件的后綴名并沒有具體意義份蝴,也就是說犁功,加或者不加,都無所謂婚夫。但是為了容易區(qū)分浸卦,我們習(xí)慣給文件加一個后綴名,這樣當(dāng)用戶看到這個文件名時就會很快想到它到底是一個什么文件案糙。例如1.sh, 2.tar.gz, my.cnf, test.zip等等镐躲。
早期Unix系統(tǒng)文件名最多允許14個字符,而新的Unix或者linux系統(tǒng)中侍筛,文件名最長可以到達(dá) 256 個字符。
Linux的鏈接文件:
鏈接文件分為兩種撒穷,硬鏈接(hard link)和軟鏈接(symbolic link)匣椰。兩種鏈接的本質(zhì)區(qū)別關(guān)鍵點在于inode。
Hard Links : 當(dāng)系統(tǒng)要讀取一個文件時端礼,就會先去讀inode table禽笑,然后再去根據(jù)inode中的信息到塊區(qū)域去將數(shù)據(jù)取出來入录。而hard link 是直接再建立一個inode鏈接到文件放置的塊區(qū)域。也就是說佳镜,進(jìn)行hard link的時候?qū)嶋H上該文件內(nèi)容沒有任何變化僚稿,只是增加了一個指到這個文件的inode, hard link 有兩個限制:(1)不能跨文件系統(tǒng),因為不同的文件系統(tǒng)有不同的inode table; (2) 不能鏈接目錄蟀伸。
硬鏈接只是復(fù)制了一份inode信息蚀同。空間大小不變
Symbolic Links : 跟hard link不同啊掏,這個是建立一個獨立的文件蠢络,而這個文件的作用是當(dāng)讀取這個鏈接文件時,它會把讀取的行為轉(zhuǎn)發(fā)到該文件所link的文件上迟蜜。軟連接就是windows中的快捷方式刹孔。
建立軟連接即快捷方式的命令:ln
語法 : ln [-s] [來源文件] [目的文件]
ln 常用的選項就一個 ‘-s’, 如果不加就是建立硬鏈接,加上就建立軟鏈接娜睛。