【OS_Linux】Centos中目錄及文件管理


1.Linux系統中目錄的樹狀結構

目錄

  

/bin

存放二進制可執行文件(ls,cat,mkdir)常用命令一般都在這里。

/etc

存放系統管理和配置文件

/home

存放所有用戶文件的根目錄,是用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示

  

/usr

用於存放系統應用程序,比較重要的目錄/usr/local 本地系統管理員軟件安裝目錄(安裝系統級的應用)。這是最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。

/usr/x11r6 存放x window的目錄

/usr/bin 眾多的應用程序  

/usr/sbin 超級用戶的一些管理程序  

/usr/doc Linux文檔  

/usr/include linux下開發和編譯應用程序所需要的頭文件  

/usr/lib 常用的動態鏈接庫和軟件包的配置文件  

/usr/man 幫助文檔  

/usr/src 源代碼,linux內核的源代碼就放在/usr/src/linux  

/usr/local/bin 本地增加的命令  

/usr/local/lib 本地增加的庫

/opt

額外安裝的可選應用程序包所放置的位置。一般情況下,我們可以把tomcat等都安裝到這里。

/proc

虛擬文件系統目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息。

/root

超級用戶(系統管理員)的主目錄(特權階級^o^

/sbin

存放二進制可執行文件,只有root才能訪問。這里存放的是系統管理員使用的系統級別的管理命令和程序。如ifconfig等。

/dev

用於存放設備文件。

/mnt

系統管理員安裝臨時文件系統的安裝點,系統提供這個目錄是讓用戶臨時掛載其他的文件系統。

/boot

存放用於系統引導時使用的各種文件

/lib

存放跟文件系統中的程序運行所需要的共享庫及內核模塊。共享庫又叫動態鏈接共享庫,作用類似windows里的.dll文件,存放了根文件系統程序運行所需的共享文件。

/tmp

用於存放各種臨時文件,是公用的臨時文件存儲點。

/var

用於存放運行時需要改變數據的文件,也是某些大文件的溢出區,比方說各種服務的日志文件(系統啟動日志等。)等。

/lost+found

這個目錄平時是空的,系統非正常關機而留下"無家可歸"的文件(windows下叫什么.chk)就在這里

 重要目錄的解釋:

/bin:bin是Binary的縮寫, 這個目錄存放着最常使用的命令,諸如mkdir、cat命令。

/etc:etc這個目錄用來存放所有系統管理的配置目錄和配置文件。

/home:用於存放用戶主目錄的,在Linux中,每個用戶都有一個以自身賬號命名的目錄,我們稱其為用戶主目錄,用戶主目錄一般存放在/home下。

【注】

⑴windows與linux文件路徑的區別在於目錄的分隔符,Windows目前用正反斜杠(/和\)均可以,Linux只能用正斜杠(/)。

⑵因為web程序開始於Unix系統,所以URL也用 / 做路徑分割符,后沿襲做運算符/除法

2.目錄的增、刪、改、查操作

mkdir (創建新目錄)

語法:mkdir [-mp] 目錄名稱
選項與參數:
-m :mode創建目錄的同時指明目錄的權限
-p :錄遞歸的創建上層目
實例:
[root@www ~]# cd /tmp
[root@www tmp]# mkdir –m 711 test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4':
No such file or directory <== 因找不到上層目錄而創建失敗
[root@www tmp]# mkdir –m 711 -p test1/test2/test3/test4
加了參數-p后就可以遞歸的創建上層目錄

rmdir (刪除空的目錄)

語法:rmdir [-p] 目錄名稱
選項與參數:
-p :連同上一級『空的』目錄也一起刪除,僅當前目錄刪除后其父目錄為空時父目錄才會被刪除
實例:
[root@www tmp]# rmdir test <==可直接刪除,沒問題
[root@www tmp]# rmdir test1 <==因為尚有內容,所以無法刪除!
【注意】
⑴加了參數
-p,僅當前目錄刪除后其父目錄為空時父目錄才會被刪除。 ⑵rmdir 僅能刪除空目錄,用 rm –rf 目錄 來刪除非空目錄。

cp (復制目錄或文件)

語法:
cp [-adfilprsu] 來源檔(source) 目標檔(destination)
cp [options] source1 source2 source3 .... directory
選項與參數:
-i:若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)
-p:連同文件的屬性一起復制過去,而非使用默認屬性(備份時常用);
-r:遞歸的復制,用於目錄的復制行為(常用)
實例:
[root@www ~]# cp ~/.bashrc /tmp/bashrc
[root@www ~]# cp -i ~/.bashrc /tmp/bashrc
cp: overwrite `/tmp/bashrc'? n <==n不覆蓋,y為覆蓋

mv (移動文件與目錄,或修改名稱)

語法:
mv [-fiu] source destination
mv [options] source1 source2 source3 .... directory
選項與參數:
-f :force 強制移動的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
實例:
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest <==將目錄bashrc移動到目錄 mvtest
[root@www tmp]# mv mvtest mvtest2 <==將目錄mvtest重命名為mvtest2
【注】mv命令中若目標已存在則表示移動,若目標不存在則表示重命名

ls(列出某目錄中的內容)

語法:
ls [options] 目錄名稱
選項與參數:
-a :列出包括隱藏文件在內的全部文件,
-l :列出文件的屬性與權限等數據(常用)
實例:
[root@localhost ~]# ls -l ~ #查看root主目錄中各文件或目錄的屬性

【注意】⑴目錄的增刪操作中參數-p表示向上遞歸,而在拷貝和移動中參數-r表示向下遞歸,參數-f和-i分別表示強制和交互式操作。

3. 文件的增、刪、改、查操作

touch(新增文件)

語法: touch 文件名
功能描述:當參數為已存在的文件,則表示更新該文件的創建時間為當前時間。
若參數為不存在的文件則表示新建空的文件。
實例:
①更新文件的創建時間:
[root@mail test]# ll
總用量 4
-rw-r--r-- 1 root root 12 3月 12 13:43 1.txt
[root@mail test]# touch 1.txt
[root@mail test]# ll
總用量 4
-rw-r--r-- 1 root root 12 3月 12 13:58 1.txt #更新到系統當前時間
②創建空的文件:
[root@mail test]# ll
-rw-r--r-- 1 root root 12 3月 12 13:58 1.txt
[root@mail test]# touch 2.txt
[root@mail test]# ll
-rw-r--r-- 1 root root 12 3月 12 13:58 1.txt
-rw-r--r-- 1 root root 0 3月 12 14:06 2.txt #文件大小為0所以是個空文件

rm (刪除文件或目錄)

語法:rm [options] 文件或目錄
選項與參數:
-f :就是 force 的意思,忽略不存在的文件,不會出現警告信息;
-i :交互式刪除,在刪除前會詢問使用者是否動作
-r :遞歸刪除啊!最常用在目錄的刪除了!這是非常危險的選項!!!
實例:
[root@www tmp]# rm -i bashrc
rm: remove regular file `bashrc'? y

【注】rm 命令不僅可刪除文件,還可以用來刪除非空目錄

cat(查看文件內容)

cat命令可用於查看文件內容、創建新的文件、將多個文件合並成一個文件,它常與重定向符號(">")配合使用,具體語法如下:

  • 查看文件內容:cat filename 
  • 新建一個名為filename的文件:cat >filename 只能創建新文件,不能編輯已有文件,這是與vi命令的區別
  • 將多個文件合並為一個文件:cat file1 file2 > file 

【注】tac與cat命令剛好相反,文件內容從最后一行開始顯示,可以看出 tac 是 cat 的倒着寫。

4.文件或目錄的屬性管理

可以使用ll或者ls –l命令來顯示一個目錄中所有的文件或目錄的屬性。

示例:[root@localhost ~]# ls -l ~     查看root主目錄中各文件或目錄的屬性

⑴開始的total表示該目錄的大小(以KB為單位)

⑵各文件或目錄七個屬性段的含義:

    第1段表示文件類型及讀、寫、執行權限

    第2段表示文件硬鏈接數(同快捷方式)或子目錄數(類型為目錄的前提下)

    第3段表示該文件的屬主

    第4段表示該文件的屬組

    第5段表示該文件的大小(以byte字節為單位)

    第6段表示該文件的創建時間(以月-日-年的格式表示)

    第7段表示該文件的文件名

4.1 chown(更改文件屬主)

語法:
chown [–R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名
【注】chown可同時更改屬主和屬組,參數R表示遞歸更改

 

4.2 chgrp(更改文件屬組)

語法:chgrp [-R] 屬組名 文件名

4.3 chmod(更改文件的讀、寫以及執行權限)

Linux文件的權限有兩種更改方法:一種是通過數字,一種是通過符號。文件的基本權限有九個,分別是owner/group/others三種身份各有自己的read/write/execute權限,各權限的權值對照表如下:

r:4

w:2

x:1

這相當於將rwx視作3位二進制數,有相應權限該位為1,無權限該位為0。

法一、通過數字更改權限:

[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc

法二、通過符號更改權限

改變文件權限就是改變(1)user (2)group (3)others這三個身份上的讀、寫及執行權限,我們可以由u, g, o來分別代表這三種身份,此外可用a (all)代表全部身份。那么改變權限的另一種方式如下:

創建文件並將文件權限設置為 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 來設定:
# touch test1 // 創建 test1 文件
# ls -al test1 // 查看 test1 默認權限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r test1 // 修改 test1 權限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
拿掉所有人的可執行權限,其它權限不變
# chmod a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

【注】⑴第一種數字權限表示法無需指明身份,第二種需指明身份的簡寫。

有關文件和目錄的屬性設置可參考博文:Linux 文件屬性

5.文件的特殊操作

5.1 find查找命令

Linux下find命令提供相當多的查找條件,因此功能比較強大,可以在眾多文件或目錄下查找你想要的任何文件或目錄。

find命令語法格式:find  [查找路徑]  [查找條件]  [針對查找到的結果逐個處理]

查找路徑:指在那個目錄下查找,默認為在當前目錄;

查找條件:即為搜索條件,可取值如下:

按文件類型(-type),文件名(-name),文件屬主(-user),文件所屬組)(-group),文件權限(-perm),文件長度(-size),文件修改時間(-mtime)等查找。
文件類型包括:d  目錄文件。
                       l  符號鏈接(指向另一個文件,類似於瘟下的快捷方式) 。 
                      s  套接字文件。
                      b  塊設備文件,二進制文件。
                      c  字符設備文件。
                         p  命名管道文件。
                         -  普通文件,或更准確地說,不屬於以上幾種類型的文件。
文件權限包括:r    讀文件
                         w   寫文件
                         x    執行文件操作
示例:
(1)按文件類型查找:find test1 -type d
(2)按文件名查找:find -name test.sh
針對查找到的結果逐個處理:
-print: 打印查找到的文件名,此為默認的處理
-exec: 對查找的結果逐個執行某種shell命令。命令的形式為command { }  \;,其中“{ }  \;”是固定寫法,變化的僅僅是command,且需注意他們之間的空格。
示例:
#在當前目錄下查找名為test.sh的文件,首先打印出文件名,再輸出文件的內容
[root@localhost bash]# find -name test.sh -print -exec cat {} \;
./test.sh
#!/bin/bash
echo "Hello World !"
#只輸出文件的內容,不打印文件名
[root@localhost bash]# find -name test.sh -exec cat {} \;
#!/bin/bash
echo "Hello World !"
-ok:和-exec的作用相同,只不過是以一種更為安全的模式來對查詢結果執行某種shell命令。在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。
[root@localhost bash]# find -name test.sh -ok cat {} \;
< cat ... ./test.sh > ? y
#!/bin/bash
echo "Hello World !"
[root@localhost bash]# find -name test.sh -ok cat {} \;
< cat ... ./test.sh > ? n
[root@localhost bash]# 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM