LINUX之根目錄介紹、普通目錄建立、刪除、複製、移動、權限管理命令記錄

(一)Linux 系統目錄結構

登陸系統後,在當前命令窗口下輸入命令:ls /
/bin:bin是Binary的縮寫, 這個目錄存放着最常用的命令。java

/boot:這裏存放的是啓動Linux時使用的一些核心文件,包括一些鏈接文件以及鏡像文件。linux

/dev :dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。數據庫

/etc:這個目錄用來存放全部的系統管理所須要的配置文件和子目錄。windows

/home:用戶的主目錄,在Linux中,每一個用戶都有一個本身的目錄,通常該目錄名是以用戶的帳號命名的。安全

/lib:這個目錄裏存放着系統最基本的動態鏈接共享庫,其做用相似於Windows裏的DLL文件。幾乎全部的應用程序都須要用到這些共享庫。bash

/lost+found:這個目錄通常狀況下是空的,當系統非法關機後,這裏就存放了一些文件。學習

/media:linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。spa

/mnt:系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,咱們能夠將光驅掛載在/mnt/上,而後進入該目錄就能夠查看光驅裏的內容了。日誌

/opt:這是給主機額外安裝軟件所擺放的目錄。好比你安裝一個ORACLE數據庫則就能夠放到這個目錄下。默認是空的。對象

/proc:這個目錄是一個虛擬的目錄,它是系統內存的映射,咱們能夠經過直接訪問這個目錄來獲取系統信息。
這個目錄的內容不在硬盤上而是在內存裏,咱們也能夠直接修改裏面的某些文件,好比能夠經過下面的命令來屏蔽主機的ping命令,
使別人沒法ping你的機器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

/root:該目錄爲系統管理員,也稱做超級權限者的用戶主目錄。

/sbin:s就是Super User的意思,這裏存放的是系統管理員使用的系統管理程序。

/selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,相似於windows的防火牆,可是這套機制比較複雜,這個目錄就是存放selinux相關的文件的。

/srv:該目錄存放一些服務啓動以後須要提取的數據。

/sys:這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。

sysfs文件系統集成了下面3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對僞終端的devpts文件系統。
該文件系統是內核設備樹的一個直觀反映。當一個內核對象被建立的時候,對應的文件和目錄也在內核對象子系統中被建立。

/tmp:
這個目錄是用來存放一些臨時文件的。

/usr:
這是一個很是重要的目錄,用戶的不少應用程序和文件都放在這個目錄下,相似於windows下的program files目錄。

/usr/bin:
系統用戶使用的應用程序。

/usr/sbin:
超級用戶使用的比較高級的管理程序和系統守護程序。

/usr/src:
內核源代碼默認的放置目錄。

/var:
這個目錄中存放着在不斷擴充着的東西,咱們習慣將那些常常被修改的目錄放在這個目錄下。包括各類日誌文件。

/run:
是一個臨時文件系統,存儲系統啓動以來的信息。當系統重啓時,這個目錄下的文件應該被刪掉或清除。若是你的系統上有 /var/run 目錄,應該讓它指向 run。

在 Linux 系統中,有幾個目錄是比較重要的,平時須要注意不要誤刪除或者隨意更改內部文件。

/etc: 上邊也提到了,這個是系統中的配置文件,若是你更改了該目錄下的某個文件可能會致使系統不能啓動。

/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行文件的放置目錄,好比 ls 就是在/bin/ls 目錄下的。

值得提出的是,/bin, /usr/bin 是給系統用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin 則是給root使用的指令。

/var: 這是一個很是重要的目錄,系統上跑了不少程序,那麼每一個程序都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裏。

(二)Linux 文件基本屬性

在Linux中咱們可使用ll或者ls –l命令來顯示一個文件的屬性以及文件所屬的用戶和組,如:# ls -l
當爲[ d ]則是目錄
當爲[ - ]則是文件;
如果[ l ]則表示爲連接文檔(link file);
如果[ b ]則表示爲裝置文件裏面的可供儲存的接口設備(可隨機存取裝置);
如果[ c ]則表示爲裝置文件裏面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)。
接下來的字符中,以三個爲一組,且均爲『rwx』 的三個參數的組合。其中,[ r ]表明可讀(read)、[ w ]表明可寫(write)、[ x ]表明可執行(execute)。
要注意的是,這三個權限的位置不會改變,若是沒有權限,就會出現減號[ - ]。

更改文件屬性:

一、chgrp:更改文件屬組:chgrp [-R] 屬組名 文件名
-R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,若是加上-R的參數,那麼該目錄下的全部文件的屬組都會更改。

二、chown:更改文件屬主,也能夠同時更改文件屬組
語法:
chown [–R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名

[zxh@localhost opt]$ ll
總用量 0
drwxr-xr-x. 2 root root 6 5月   3 01:21 module
drwxr-xr-x. 2 root root 6 5月   3 01:21 software
[zxh@localhost opt]$ sudo chown zxh:zxh module/ software/ 
[zxh@localhost opt]$ ll
總用量 0
drwxr-xr-x. 2 zxh zxh 6 5月   3 01:21 module
drwxr-xr-x. 2 zxh zxh 6 5月   3 01:21 software

  

三、chmod:更改文件9個屬性
Linux文件屬性有兩種設置方法,一種是數字,一種是符號。
Linux文件的基本權限就有九個,分別是owner/group/others三種身份各有本身的read/write/execute權限。
文件的 權限字符爲:『-rwxrwxrwx』, 這九個權限是三個三個一組的!其中,咱們可使用數字來表明各個權限,各權限的分數對照表以下:
r:4:讀權限:能夠查看文件的內容,能夠列出文件中的內容
w:2 ;寫權限:能夠修改文件的內容,能夠在目錄中建立文件,刪除文件
x:1;執行權限,能夠執行文件,可與進入目錄
每種身份(owner/group/others)各自的三個權限(r/w/x)分數是須要累加的,例如當權限爲: [-rwxrwx---] 分數則是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
該文件的權限數字就是770,變動權限的指令chmod的語法是這樣的:
chmod [-R] xyz 文件或目錄
選項與參數:
xyz : 就是剛剛提到的數字類型的權限屬性,爲 rwx 屬性數值的相加,寫爲。
-R : 進行遞歸(recursive)的持續變動,亦即連同次目錄下的全部文件都會變動

舉例來講,若是要將.bashrc這個文件全部的權限都設定啓用,那麼命令以下:

[root@www ~]# ls -ll .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

若是要將權限變成 -rwxr-xr-- 呢?那麼權限的分數就成爲 [4+2+1][4+0+1][4+0+0]=754。

符號類型改變文件權限:

基本上就九個權限分別是:(1)user; (2)group; (3)others ;由u, g, o來表明三種身份的權限!
此外, a 則表明 all 亦即所有的身份!那麼讀寫的權限就能夠寫成r, w, x!也就是可使用底下的方式來看:
chmod u g o a
+(加入) -(除去) =(設定)
r w x
若是咱們須要將文件權限設置爲 -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 文件與目錄管理

Linux的目錄結構爲樹狀結構,最頂級的目錄爲根目錄 /。
絕對路徑:
路徑的寫法,由根目錄 / 寫起,例如: /usr/share/doc 這個目錄。
相對路徑:
路徑的寫法,不是由 / 寫起,例如由 /usr/share/doc 要到 /usr/share/man 底下時,能夠寫成: cd ../man
處理目錄的經常使用命令:
ls: 列出目錄
cd:切換目錄
pwd:顯示目前的目錄
mkdir:建立一個新的目錄
rmdir:刪除一個空的目錄
cp: 複製文件或目錄
rm: 移除文件或目錄
mv: 移動文件與目錄,或修改文件與目錄的名稱
你可使用 man [命令] 來查看各個命令的使用文檔,如 :man cp。

ls (列出目錄)

在Linux系統當中, ls 命令多是最常被運行的。
語法:

[root@www ~]# ls [-aAdfFhilnrRSt] 目錄名稱
[root@www ~]# ls [--color={never,auto,always}] 目錄名稱
[root@www ~]# ls [--full-time] 目錄名稱
[root@www ~]# ls -a1 ~

選項與參數:
-a :所有的文件,連同隱藏檔( 開頭爲 . 的文件) 一塊兒列出來(經常使用)
-d :僅列出目錄自己,而不是列出目錄內的文件數據(經常使用)
-l :長數據串列出,包含文件的屬性與權限等等數據;(經常使用)
將家目錄下的全部文件列出來(含屬性與隱藏檔)

cd (切換目錄)

cd是Change Directory的縮寫,這是用來變換工做目錄的命令。
語法:
cd [相對路徑或絕對路徑]

#使用 mkdir 命令建立 runoob 目錄
[root@www ~]# mkdir runoob

#使用絕對路徑切換到 runoob 目錄
[root@www ~]# cd /root/runoob/

#使用相對路徑切換到 runoob 目錄
[root@www ~]# cd ./runoob/

# 表示回到本身的家目錄,亦便是 /root 這個目錄
[root@www runoob]# cd ~
# 表示去到目前的上一級目錄,亦便是 /root 的上一級目錄的意思; [root@www ~]# cd ..

mkdir (建立新目錄:make directory)

語法:
mkdir [-mp] 目錄名稱
選項與參數:
-m :配置文件的權限,不須要看默認權限 (umask) 的臉色~
-p :幫助你直接將所須要的目錄(包含上一級目錄)遞歸建立
實例:

[root@www ~]# cd /tmp
[root@www tmp]# mkdir test    <==建立一名爲 test 的新目錄
[root@www tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4': 
No such file or directory       <==報錯: 沒辦法直接建立此目錄
[root@www tmp]# mkdir -p test1/test2/test3/test4

加了這個 -p 的選項,能夠自行幫你建立多層目錄!

實例:建立權限爲 rwx--x--x 的目錄。

[root@www tmp]# mkdir -m 711 test2
[root@www tmp]# ls -l
drwxr-xr-x 3 root root 4096 Jul 18 12:50 test
drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1
drwx--x--x 2 root root 4096 Jul 18 12:54 test2

 上面的權限部分,若是沒有加上 -m 來強制配置屬性,系統會使用默認屬性。若是咱們使用 -m ,如上例咱們給予 -m 711 來給予新的目錄 drwx--x--x 的權限。

rmdir (刪除空的目錄)

語法:
rmdir [-p] 目錄名稱
選項與參數:
-p :連同上一級『空的』目錄也一塊兒刪除

[root@www tmp]# ls -l <==看看有多少目錄存在?
drwxr-xr-x 3 root root 4096 Jul 18 12:50 test
drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1
drwx--x--x 2 root root 4096 Jul 18 12:54 test2
[root@www tmp]# rmdir test <==可直接刪除掉,沒問題
[root@www tmp]# rmdir test1 <==由於尚有內容,因此沒法刪除!
rmdir: `test1': Directory not empty
[root@www tmp]# rmdir -p test1/test2/test3/test4
[root@www tmp]# ls -l <==您看看,底下的輸出中test與test1不見了!
drwx--x--x 2 root root 4096 Jul 18 12:54 test2

利用 -p 這個選項,馬上就能夠將 test1/test2/test3/test4 一次刪除。
不過要注意的是,這個 rmdir 僅能刪除空的目錄,你可使用 rm 命令來刪除非空目錄。

 cp (複製文件或目錄)

語法:
[root@www ~]# cp [-adfilprsu] 來源檔(source) 目標檔(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
選項與參數:
-a:至關於 -pdr 的意思,至於 pdr 請參考下列說明;(經常使用)
-d:若來源檔爲連結檔的屬性(link file),則複製連結檔屬性而非文件自己;
-f:爲強制(force)的意思,若目標文件已經存在且沒法開啓,則移除後再嘗試一次;
-i:若目標檔(destination)已經存在時,在覆蓋時會先詢問動做的進行(經常使用)
-l:進行硬式連結(hard link)的連結檔建立,而非複製文件自己;
-p:連同文件的屬性一塊兒複製過去,而非使用默認屬性(備份經常使用);
-r:遞歸持續複製,用於目錄的複製行爲;(經常使用)
-s:複製成爲符號連結檔 (symbolic link),亦即『捷徑』文件;
-u:若 destination 比 source 舊才升級 destination !
用 root 身份,將 root 目錄下的 .bashrc 複製到 /tmp 下,並命名爲 bashrc

[root@www ~]# cp ~/.bashrc /tmp/bashrc
[root@www ~]# cp -i ~/.bashrc /tmp/bashrc

 cp: overwrite `/tmp/bashrc'? n <==n不覆蓋,y爲覆蓋。

rm (移除文件或目錄)

語法:
rm [-fir] 文件或目錄
選項與參數:
-f :就是 force 的意思,忽略不存在的文件,不會出現警告信息;
-i :互動模式,在刪除前會詢問使用者是否動做
-r :遞歸刪除啊!最經常使用在目錄的刪除了!這是很是危險的選項!!!
將剛剛在 cp 的實例中建立的 bashrc 刪除掉!
[root@www tmp]# rm -i bashrc
rm: remove regular file `bashrc'? y
若是加上 -i 的選項就會主動詢問,避免你刪除到錯誤的檔名!

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

語法:
[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory
選項與參數:
-f :force 強制的意思,若是目標文件已經存在,不會詢問而直接覆蓋;
-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
-u :若目標文件已經存在,且 source 比較新,纔會升級 (update)
複製一文件,建立一目錄,將文件移動到目錄中

[root@www ~]# cd /tmp
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest

將某個文件移動到某個目錄去,就是這樣作!
將剛剛的目錄名稱改名爲 mvtest2

[root@www tmp]# mv mvtest mvtest2

以上內容爲我的學習筆記,僅供參考!!!

相關文章
相關標籤/搜索