一.創建和刪除目錄
命令:mkdir
其語法爲: mkdir [-mp] [目錄名稱]
例:mkdir -p ~/1/2/3
‘-p’ 選項,這個選項可以幫我們創建一大串級聯目錄。
例:mkdir -pv ~/1/2/3
‘-v’選項,這個選項可以詳細地顯示出所創建的目錄。
二.rm命令
命令:rmdir
用來刪除空目錄,後面可以是一個也可以是多少,多個的話用空格分隔。
缺點:只能刪除目錄,不能刪除文件,具有很大的侷限性。
命令:rm
其語法爲:rm [-rf] [目錄名稱]
‘-r’選項刪除目錄用的選項,等同於rmdir。
‘-f’選項表示強制刪除,不再提示是否要刪除,而是直接就刪除。
三.cp命令
命令:cp
英文全稱:copy,意思就是拷貝,複製
其語法爲:cp [選項] [來源文件] [目的文件]
‘-r’選項當您在拷貝一個目錄的時候要寫上-r選項,否則無法複製。
‘-i’選項爲安全選項,如果遇到一個存在的文件,會問是否覆蓋。
四.移動和重命名命令mv
命令:mv
英文全稱:move,意思就是移動
其語法爲:mv [ 選項 ] [源文件] [目標文件]
‘-i’選項 和cp的-i 一樣,當目標文件存在時會問用戶是否要覆蓋。
使用該命令的時候會出現4種情況:(結果)
1.目標文件是目錄,目標文件不存在;(把源文件移動到目標文件目錄中)
2.目標文件是目錄,目標文件存在;(把源文件重命名)
3.目標目錄不是目錄,目標文件存在;()
4.目標目錄不是目錄,目標文件不存在;(重命名文件)
五.文件查看命令
命令:cat
查看一個文件的內容並顯示在屏幕上, 後面可以不加任何選項直接跟文件名。
‘-n’選項:顯示內容時,把行號也顯示上。
‘-A’選項:顯示所有內容,包括特殊字符。
命令:tac
和cat一樣,查看一個文件的內容並顯示在屏幕上,但是和cat不同的是tac倒序顯示。
命令:more
查看一個文件內容,與cat不同的是,如果文件內容過大,cat是不能看到全部的內容的,more卻可以,看完一個屏幕後按空格鍵往下翻頁,看完後就自動退出,若想提前退出,按‘q’即可。
命令:less
作用跟more一樣,後面直接跟文件名,但比more好在可以上翻,下翻。
空格鍵同樣可以翻頁,而按 一下‘j’ 鍵可以向下移動一行,按 ‘k’ 鍵向上移動。
您可以按一下 ‘/’ 鍵,然後輸入一個word回車,這樣就可以查找這個word了。
如果是多個該word可以按 ‘n’ 鍵顯示下一個。
另外您也可以不按 ‘/’ 而是按 ‘?’ 後邊同樣跟word來搜索這個word,唯一不同的是, ‘/’ 是在當前行向下搜索,而 ‘?’ 是在當前行向上搜索。
命令:head
‘head’後直接跟文件名,則顯示文件的前十行。如果加 -n 選項則顯示文件前n行。
命令:tail
和head類似,後面直接跟文件名,則顯示文件最後十行。如果加-n 選項則顯示文件倒數n行。
六.文件和目錄屬性
用ls -l查看當前目錄下的文件
我們看到分成了9段,那麼這9段分別代表什麼含義呢?
第一段:包含了該文件類型和所屬主、所屬組以及其他用戶對該文件的權限。
第二段:表示爲鏈接佔用的節點(inode)。
第三段:表示該文件的所屬主。
第四段:表示該文件的所屬組。
第五段:表示該文件的大小。
第六段:表示該文件最近被修改的月份。
第七段:表示該文件最近被修改的日期。
第八段:表示該文件最近被修改的具體時間。
第九段:文件的名稱。
下面我們來詳細的解析第一段的內容:
第一段一共有11位。
第一位:用來描述文件的類型。
‘d’:該文件爲目錄。
‘-’:該文件爲普通文件。
‘l’:該文件爲鏈接文件。(硬鏈接,軟鏈接)
‘b’:該文件爲塊設備。(/dev/sda)
‘c’:該文件爲串行端口設備。(鍵盤、鼠標)
‘s’:該文件爲套接字文件(socket),用於進程間通信。
第二、三、四位:所屬主(user)的權限。
第五、六、七位:所屬組(group)的權限。
第八、九、十位:其他人(others)的權限。
第十一位:之前的CentOS 5 是沒有這個點的,這主要是因爲新版本的ls把selinux或者acl的屬性加進來了,當文件或者目錄只使用了selinux context的屬性,這裏是一個點“.”。如果設置了acl,後面將是一個加號 ‘+’。
七.更改文件的權限
1.更改所屬組:
命令:chgrp
語法爲:chgrp [組名] [文件名]
而且chgrp還可以更改目錄的所屬組。(ls -ld 目錄,我老是忘記查看目錄的時候要-d
)
但是值得注意的是,就算你改變了該目錄的所屬組,也改變不了該目錄下的文件和目錄的所屬組。
2.改變文件的所屬主:
命令:chown
語法:chown [-R] [賬戶名] [文件名] chowen [-R] [賬戶名: 組名] [文件名]
注:這裏的-R選項只作用於目錄,不僅更改當前目錄,連目錄裏的目錄或者文件全部更改。
例:chown 1234 naruto
例:chown -R 1234 hyrz
例:chown -R 1234:123 hyrz(將hyrz包括目錄下所以文件和目錄的所屬主組都改變)
3.改變用戶對文件的讀寫執行權限:
命令:chmod
語法:chmod [-R] *** [文件名]
注:1.這裏的-R和chown一樣,表示級聯關係;
2.***代表數字,數字代表讀寫執行權限;
在這裏,我要詳細的說下這個***所代表的意思。
權限一共有9位---------,這9位前3位是user,中間3位是group,最後3位是others。
這3位由r,w,x,-,組成,這裏我們用數字表示,“r”=4,“w”=2,“x”=1,“-”=0。
按照我的理解:rwx是由二進制組成,r=100,w=010,x=001,-=000。
由上可知:rwx=7,rw-=6,r-x=5,r--=4,-wx=3,-w-=2,--x=1,---=0。
在linux系統中,默認一個目錄的權限爲 755,而一個文件的默認權限爲644。
如果你創建一個目錄,這個目錄只想讓你自己看見,不想別人看見,只需設置成rwx------就行。
另外,我們還可通過使用rwx的方式來設置權限。
我們可以使用u, g, o 來代表它們三個的屬性,此外, a 則代表 all 也就是全部。
語法:chmod u=***,g=***,o=*** [文件名](***位權限)
其實,還有一種設置權限的方法。
如果你想針對u, g, o, a增加或者減少某個權限(讀,寫,執行),可以用以下這種方法。
語法:
chmod u±* [文件名];chmod g±* [文件名];
chmod o±* [文件名] chmod a±* [文件名]。
4.Umask值:
看了上面的內容,我們知道:
在linux系統中,默認一個目錄的權限爲 755,而一個文件的默認權限爲644。
那麼這兩個數值是怎麼來的呢?由誰來規定的呢?
這裏我們就要用到一個數值,umask。
如何查看umask值:
語法:直接umask後回車。
1.若用戶建立爲普通文件,則預設 ‘沒有可執行權限’, 只有’rw’兩個權限。最大爲666 (‘-rw-rw-rw-‘).
2.若用戶建立爲目錄,則預設所有權限均開放,即777 (‘drwxrwxrwx’).
umask數值代表的含義爲,上邊兩條規則中的默認值(文件爲666,目錄爲777)需要減掉的權限。
¥1目錄的權限爲 'rwxrwxrwx' - '----w--w-' = 'rwxr-xr-x'。
¥2普通文件的權限爲 'rw-rw-rw-' - '----w--w-' = 'rw-r--r--'。
(注:目錄的權限階普通文件的權限不能簡單的用777或者666減去Umask值那麼簡單)
(注:要按照¥1¥2那樣來進行計算)
八.修改文件的特殊屬性
命令:chattr
語法:chattr [+-=][ASaci] [文件或者目錄名]
'+-=' : 分別爲增加、減少、設定
'A' : 增加該屬性後,文件或目錄的atime將不可被修改;
'S' : 增加該屬性後,會將數據同步寫入磁盤中;
'a' : 增加該屬性後,只能追加不能刪除,非root用戶不能設定該屬性;
'c' : 自動壓縮該文件,讀取時會自動解壓;
'i' : 增加後,使文件不能被刪除、重命名、設定鏈接接、寫入、新增數據;
三個時間屬性:
atime:Access time,是在讀取文件或者執行文件時更改的
mtime:Modify time,是在寫入文件時隨文件內容的更改而更改的
ctime:Create time,是在寫入文件、更改所有者、權限或鏈接設置時隨 inode 的內容更改而更改的
一般用stat命令來查看一個文件的atime,mtime,ctime
硬鏈接和軟鏈接的區別:
1.硬鏈接不能應用於目錄,軟鏈接能應用於目錄;
2.硬鏈接實際上是爲文件建一個別名,鏈接文件和原文件實際上是同一個文件。而軟鏈接建立的是一個指向,即鏈接文件內的內容是指向原文件的指針,它們是兩個文件。
3.軟鏈接可以跨文件系統,硬鏈接不可以;
df命令
查看已掛載磁盤的總容量、使用容量、剩餘容量
可以不加任何參數,默認按 k 爲單位顯示。
-i :查看 inodes 使用狀況
-h :使用合適的單位顯示
-k、 -m:分別以 K 和 M 爲單位顯示
安裝一個rpm包
rpm -ivh [].rpm
升級一個rpm包
rpm -Uvh filename
卸載一個rpm包
rpm -e filename
查詢一個包是否安裝了
rpm -q rpm 包名
查詢當前系統所有安裝過的包
rpm -qa
得到一個已安裝 rpm 包的相關信息
rpm -qi 包名
列出一個 rpm 包安裝的文件
rpm -ql 包名
列出某一個文件屬於哪個 rpm 包
rpm -qf 文件的絕對路徑