牛牛襄陽網(wǎng)站建設(shè)大數(shù)據(jù)營銷系統(tǒng)軟件
Linux文件與路徑
1、文件結(jié)構(gòu)
? Windows和Linux文件系統(tǒng)區(qū)別
? 在windows平臺下,打開“此電腦”,我們可以看到盤符分區(qū)
? 每個驅(qū)動器都有自己的根目錄結(jié)構(gòu),這樣形成了多個樹并列的情形
? 但是在 Linux 下,我們是看不到這些驅(qū)動器盤符,我們看到的是文件夾(目錄):
? Centos沒有盤符這個概念,只有一個根目錄/,所有文件都在它下面
[root@localhost ~]# ls /
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
? 當我們輸入ls / 可以查看更目錄下的文件查看根目錄下的系統(tǒng)文件
目錄 | 說明 | 備注 |
---|---|---|
bin | 存放普通用戶可執(zhí)行的指令 | 即使在單用戶模式下也能夠執(zhí)行處理 |
boot | 開機引導目錄 | 包括Linux內(nèi)核文件與開機所需要的文件 |
dev | 設(shè)備目錄 | 所有的硬件設(shè)備及周邊均放置在這個設(shè)備目錄中 |
etc | 各種配置文件目錄 | 大部分配置屬性均存放在這里 |
lib/lib64 | 開機時常用的動態(tài)鏈接庫 | bin及sbin指令也會調(diào)用對應(yīng)的lib庫 |
media | 可移除設(shè)備掛載目錄 | 類似軟盤 U盤 光盤等臨時掛放目錄 |
mnt | 用戶臨時掛載其他的文件系統(tǒng) | 額外的設(shè)備可掛載在這里,相對臨時而言 |
opt | 第三方軟件安裝目錄 | 現(xiàn)在習慣性的放置在/usr/local中 |
proc | 虛擬文件系統(tǒng) | 通常是內(nèi)存中的映射,特別注意在誤刪除數(shù)據(jù)文件后,比如DB,只要系統(tǒng)不重啟,還是有很大幾率能將數(shù)據(jù)找回來 |
root | 系統(tǒng)管理員主目錄 | 除root之外,其他用戶均放置在/home目錄下 |
run | 系統(tǒng)運行是所需文件 | 以前防止在/var/run中,后來拆分成獨立的/run目錄。重啟后重新生成對應(yīng)的目錄數(shù)據(jù) |
sbin | 只有root才能運行的管理指令 | 跟bin類似,但只屬于root管理員 |
srv | 服務(wù)啟動后需要訪問的數(shù)據(jù)目錄 | |
sys | 跟proc一樣虛擬文件系統(tǒng) | 記錄核心系統(tǒng)硬件信息 |
tmp | 存放臨時文件目錄 | 所有用戶對該目錄均可讀寫 |
usr | 應(yīng)用程序放置目錄 | |
var | 存放系統(tǒng)執(zhí)行過程經(jīng)常改變的文件 |
? 在 Linux 系統(tǒng)中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內(nèi)部文件。
? /etc: 上邊也提到了,這個是系統(tǒng)中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統(tǒng)不能啟動。
? /bin, /sbin, /usr/bin, /usr/sbin: 這是系統(tǒng)預設(shè)的執(zhí)行文件的放置目錄,比如 ls 就是在/bin/ls 目錄下的。
? 值得提出的是,/bin, /usr/bin 是給系統(tǒng)用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin 則是給root使用的指令。
? /var: 這是一個非常重要的目錄,系統(tǒng)上跑了很多程序,那么每個程序都會有相應(yīng)的日志產(chǎn)生,而這些日志就被記錄到這個目錄 下,具體在/var/log 目錄下,另外mail的預設(shè)放置也是在這里。
2、基本概念
? 用戶目錄:位于 /home/user,稱之為用戶工作目錄或家目錄,表示方式:
# 在home有一個user 這里就是之前創(chuàng)建的msb123用戶
[root@localhost ~]# cd /home
[root@localhost home]# ls
msb123# 使用~回到root目錄,使用/是回到根目錄下
[root@localhost msb123]# cd ~
[root@localhost ~]#
? 登錄信息
[root@localhost /]#Linux的bash解析器終端用來顯示主機名和當前用戶的標識;# root表示bai當前用戶叫root(系統(tǒng)管理員賬戶)
# localhost表示當前使用的主機名叫l(wèi)ocalhost(沒有設(shè)置系bai統(tǒng)名字的時候默認名稱是localhost)
# / 表示你當前所處的目錄位置 (這里的'/'表示你當前在根目錄下)
? 相對路徑和絕對路徑
? 絕對路徑
? 從/目錄開始描述的路徑為絕對路徑,如:
[root@localhost /]# cd /home/msb123
[root@localhost /]# ls /usr
? 相對路徑
? 從當前位置開始描述的路徑為相對路徑,如:
[root@localhost /]# cd ../../
[root@localhost /]# ls abc/def
? . 和 …
? 每個目錄下都有**.和…**
. 表示當前目錄.. 表示上一級目錄,即父目錄
? 例如這里切換路徑時候
# 從 / 根目錄切換到 home目錄
[root@localhost /]# cd home# 確認路徑/home
[root@localhost home]# pwd
/home# 切換到當前目錄cd . 目錄無變化
[root@localhost home]# cd .# 切換到當前目錄cd .. 目錄回到上一級根目錄
[root@localhost home]# cd ..[root@localhost /]#
(注意 根目錄下的 . 和 … 都表示當前目錄)
? 文件權(quán)限
? 文件權(quán)限就是文件的訪問控制權(quán)限,即哪些用戶和組群可以訪問文件以及可以執(zhí)行什么樣的操作。
? Unix/Linux系統(tǒng)是一個典型的多用戶系統(tǒng),不同的用戶處于不同的地位,對文件和目錄有不同的訪問權(quán)限。為了保護系統(tǒng)的安全性Unix/Linux系統(tǒng)除了對用戶權(quán)限作了嚴格的界定外,還在用戶身份認證、訪問控制、傳輸安全、文件讀寫權(quán)限等方面作了周密的控制。
? 在 Unix/Linux中的每一個文件或目錄都包含有訪問權(quán)限,這些訪問權(quán)限決定了誰能訪問和如何訪問這些文件和目錄。
? 訪問用戶
? 通過設(shè)定權(quán)限可以從以下三種訪問方式限制訪問權(quán)限:
- 只允許用戶自己訪問(所有者) 所有者就是創(chuàng)建文件的用戶,用戶是所有用戶所創(chuàng)建文件的所有者,用戶可以允許所在的用戶組能訪問用戶的文件。
- 允許一個預先指定的用戶組中的用戶訪問(用戶組) 用戶都組合成用戶組,例如,某一類或某一項目中的所有用戶都能夠被系統(tǒng)管理員歸為一個用戶組,一個用戶能夠授予所在用戶組的其他成員的文件訪問權(quán)限。
- 允許系統(tǒng)中的任何用戶訪問(其他用戶) 用戶也將自己的文件向系統(tǒng)內(nèi)的所有用戶開放,在這種情況下,系統(tǒng)內(nèi)的所有用戶都能夠訪問用戶的目錄或文件。在這種意義上,系統(tǒng)內(nèi)的其他所有用戶就是 other 用戶類
? 訪問權(quán)限
? 用戶能夠控制一個給定的文件或目錄的訪問程度,一個文件或目錄可能有讀、寫及執(zhí)行權(quán)限:
- ? 讀權(quán)限(r) 對文件而言,具有讀取文件內(nèi)容的權(quán)限;對目錄來說,具有瀏覽目錄的權(quán)限。
- ? 寫權(quán)限(w) 對文件而言,具有新增、修改文件內(nèi)容的權(quán)限;對目錄來說,具有刪除、移動目錄內(nèi)文件的權(quán)限。
- ? 可執(zhí)行權(quán)限(x) 對文件而言,具有執(zhí)行文件的權(quán)限;對目錄了來說該用戶具有進入目錄的權(quán)限。
? 注意:通常,Unix/Linux系統(tǒng)只允許文件的屬主(所有者)或超級用戶改變文件的讀寫權(quán)限。
[root@localhost /]# ls -l
總用量 20
lrwxrwxrwx. 1 root root 7 8月 31 15:48 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 8月 31 15:58 boot
...
? 我們來拆解結(jié)構(gòu),這里面我只列了根目錄下的一部分內(nèi)容
? 用到 ls -l 命令查看當前文件夾下詳細信息,具體的命令和參數(shù),后面會深入講解
? 我們需要關(guān)注的是文件或目錄的權(quán)限情況
l rwx rwx rwx
d r-x r-x r-x# 首先第一個字母 在Linux中第一個字符代表這個文件是目錄、文件或鏈接文件等等。
[ d ] 表示目錄
[ l ] 表示為鏈接文檔(link file)
[ - ] 表示為文件
[ b ] 表示為裝置文件里面的可供儲存的接口設(shè)備(可隨機存取裝置)
[ c ] 表示為裝置文件里面的串行端口設(shè)備,例如鍵盤、鼠標(一次性讀取裝置)# 其次接下來的字符中,以三個為一組,且均為 [ rwx ] 的三個參數(shù)的組合
[ r ]代表可讀(read)
[ w ]代表可寫(write)
[ x ]代表可執(zhí)行(execute)
[ - ]# 要注意的是,這三個權(quán)限的位置不會改變,如果沒有權(quán)限,就會出現(xiàn)減號[ - ]而已。此時問題來了那么這三組一樣是有什么區(qū)分尼?
# 這里就涉及到剛才所描述的訪問用戶權(quán)限
# 所有者 所有者表示該文件的所有者
# 用戶組 表示當前用戶再同一組
# 其他用戶 允許系統(tǒng)中的任何用戶訪問,系統(tǒng)內(nèi)的其他所有用戶就是 other 用戶類# 可以將這個權(quán)限進行類比,如我的籃球,
# 所有者表示的是我可以玩
# 用戶組表示,我可以借給我同班同學玩
# 其他用戶表示,我可以借給其他班的同學玩
? 文件屬主與屬組
? 對于文件來說,它都有一個特定的所有者,也就是對該文件具有所有權(quán)的用戶。
? 同時,在Linux系統(tǒng)中,用戶是按組分類的,一個用戶屬于一個或多個組。
? 文件所有者以外的用戶又可以分為文件所有者的同組用戶和其他用戶。
? 因此,Linux系統(tǒng)按文件所有者、文件所有者同組用戶和其他用戶來規(guī)定了不同的文件訪問權(quán)限。
[root@localhost /]# ls -l
總用量 20
...
dr-xr-xr-x. 5 root root 4096 8月 31 15:58 boot
...[root@localhost /]# cd /home
[root@localhost home]# ls -l
總用量 0
drwx------. 2 msb123 msb123 83 9月 2 15:54 msb123# 在以上實例中,msb123 文件是一個目錄文件,屬主和屬組都為 msb123,屬主有可讀、可寫、可執(zhí)行的權(quán)限;與屬主同組的用戶無權(quán)限讀寫執(zhí)行;其他用戶也無權(quán)限讀寫執(zhí)行# 對于 root 用戶來說,一般情況下,文件的權(quán)限對其不起作用。
3、基本命令信息
? 熟悉一些入門的命令
? 1、ls
ls 命令作用:Linux ls命令用于顯示指定工作目錄下之內(nèi)容(列出目前工作目錄所含之文件及子目錄)。語法: ls [-alrtAFR](選項) [name...](參數(shù))參數(shù):-a 顯示所有文件及目錄 (ls內(nèi)定將文件名或目錄名稱開頭為"."的視為隱藏檔,不會列出) 示例如下:
[root@localhost ~]# ls -a
. .. anaconda-ks.cfg .bash_history .bash_logout .bash_profile .bashrc .cshrc .tcshrc-l 除文件名稱外,亦將文件型態(tài)、權(quán)限、擁有者、文件大小等資訊詳細列出 示例如下:
[root@localhost ~]# ls -l
總用量 4
-rw-------. 1 root root 1437 8月 31 15:54 anaconda-ks.cfg-r 將文件以相反次序顯示(原定依英文字母次序) 示例如下:
[root@localhost ~]# ls -ra
.tcshrc .cshrc .bashrc .bash_profile .bash_logout .bash_history anaconda-ks.cfg .. .-t 將文件依建立時間之先后次序列出 示例如下:
[root@localhost ~]# ls -lt
總用量 4
-rw-------. 1 root root 1437 8月 31 15:54 anaconda-ks.cfg-A 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄) 示例如下:
[root@localhost ~]# ls -A
anaconda-ks.cfg .bash_history .bash_logout .bash_profile .bashrc .cshrc .tcshrc-F 在列出的文件名稱后加一符號;例如可執(zhí)行檔則加 "*", 目錄則加 "/" 示例如下:
[root@localhost ~]# ls -F /home
msb123/-R 若目錄下有文件,則以下之文件亦皆依序列出 示例如下:
[root@localhost ~]# ls -R /home
/home:
msb123/home/msb123:
常用組合
[1]查看文件詳情:ls -l 或 ll
[2]增強對文件大小易讀性,以人類可讀的形式顯示文件大小: ls -lh
[3]對文件或者目錄進行從大到小的排序: ls -lhs
[4]查看當前目錄下的所有文件或者目錄,包括隱藏文件: ls -la
[5]只查看當前目錄下的目錄文件: ls -d .
[6]按照時間順序查看,從上到倒下時間越來越近: ls -ltr
[7]查看文件在對應(yīng)的inode信息:ls -li
? 2、cd
cd 命令作用:變換當前目錄到dir。默認目錄為home,可以使用絕對路徑、或相對路徑。語法:cd [dir](路徑)# 跳到用戶目錄下
[root@localhost ~]# cd /home/msb123
[root@localhost msb123]# # 回到home目錄
[root@localhost msb123]# cd ~
[root@localhost ~]# # 跳到上次所在目錄
[root@localhost ~]# cd -
/home/msb123
[root@localhost msb123]## 跳到父目錄(也可以直接使用 cd ..)
[root@localhost msb123]# cd ./..
[root@localhost home]# # 再次跳到上次所在目錄
[root@localhost home]# cd -
/home/msb123
[root@localhost msb123]# # 跳到當前目錄的上兩層
[root@localhost msb123]# cd ../..
[root@localhost /]## 把上個命令的最后參數(shù)作為dir
這里我們先將文件夾cd 到python2.7路徑
[root@localhost /]# cd /usr/include/python2.7/
[root@localhost python2.7]## 這里使用cd ./..參數(shù)作為引子
[root@localhost python2.7]# cd ./..# 這里我們使用命令,重復最后一個命令參數(shù),直到回到了根目錄
[root@localhost include]# cd !$
cd ./..
[root@localhost usr]# cd ./..
[root@localhost /]#
3、pwd
pwd 命令作用:可立刻得知目前所在的工作目錄的絕對路徑名稱語法:pwd [--help][--version]參數(shù)說明:
--help 在線幫助。
--version 顯示版本信息。查看當前所在目錄:
[root@localhost /]# cd /home
[root@localhost home]# pwd
/home
[root@localhost home]#