Linux的文件系統和目錄結構圖:
linux
先看centos6.8的目錄結構:用tree命令能夠查看,若是沒安裝請使用 sudo yum install tree 命令安裝git
[root@centos6 cent]# tree / -L 1 / ├── bin 1 ├── boot 2 ├── dev 3 ├── etc 4 ├── home 5 ├── lib 6 ├── lib64 7 ├── lost+found centos7已棄用 ├── media 8 ├── misc centos7已棄用 ├── mnt 9 ├── net centos7已棄用 ├── opt 10 ├── proc 11 ├── root 12 ├── sbin 13 ├── selinux centos7已棄用 ├── srv 14 ├── sys 15 ├── tmp 16 ├── usr 17 └── var 18
再看centos7的目錄結構:用tree命令能夠查看
shell
[root@localhost ~]# tree / -L 1 / ├── bin -> usr/bin 1 ├── boot 2 ├── dev 3 ├── etc 4 ├── home 5 ├── lib -> usr/lib 6 ├── lib64 -> usr/lib64 7 ├── media 8 ├── mnt 9 ├── opt 10 ├── proc 11 ├── root 12 ├── run centos7新特性 ├── sbin -> usr/sbin 13 ├── srv 14 ├── sys 15 ├── tmp 16 ├── usr 17 └── var 18
RHEL7目錄變化:vim
/bin 和 /usr/bin centos
/sbin 和 /usr/sbin 緩存
/lib 和/usr/lib安全
/lib64 和 /usr/lib64 bash
還有一張整理好的圖片:socket
文件系統結構詳解:ide
/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器 (bootloader, grub)都存放於此目錄
/bin:供全部用戶使用的基本命令;不能關聯至獨立分區, OS啓動即會用到的程序
/sbin:管理類的基本命令;不能關聯至獨立分區,OS啓動即 會用到的程序
/lib:啓動時程序依賴的基本共享庫文件以及內核模塊文件 (/lib/modules)
/lib64:專用於x86_64系統上的輔助共享庫文件存放位置
/etc:配置文件目錄
/home/USERNAME:普通用戶家目錄
/root:管理員的家目錄
/media:便攜式移動設備掛載點
/mnt:臨時文件系統掛載點
/dev:設備文件及特殊文件存儲位置 b: block device,隨機訪問 c: character device,線性訪問
/opt:第三方應用程序的安裝位置
/srv:系統上運行的服務用到的數據
/tmp:臨時文件存儲位置
/usr: universal shared, read-only data
bin: 保證系統擁有完整功能而提供的應用程序
sbin:
lib:32位使用
lib64:只存在64位系統
include: C程序的頭文件(header files)
share:結構化獨立的數據,例如doc, man等
local:第三方應用程序的安裝位置 bin, sbin, lib, lib64, etc, share
/var: variable data files
cache: 應用程序緩存數據目錄
lib: 應用程序狀態信息數據
local:專用於爲/usr/local下的應用程序存儲可變數據;
lock: 鎖文件
log: 日誌目錄及文件
opt: 專用於爲/opt下的應用程序存儲可變數據;
run: 運行中的進程相關數據;一般用於存儲進程pid文件
spool: 應用程序數據池
tmp: 保存系統兩次重啓之間產生的臨時數據
/proc: 用於輸出內核與進程信息相關的虛擬文件系統
/sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統
/selinux: security enhanced Linux,selinux相關的安全策 略等信息的存儲位置
一些重要目錄:
二進制程序:
/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
庫文件:
/lib /lib64 /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64
配置文件:
/etc /etc/DIRECTORY /usr/local/etc
幫助文件:
/usr/share/man /usr/share/doc /usr/local/share/man /usr/local/share/doc
文件系統從根目錄下開始的,用 "/"表示
文件和目錄被組織成一個單根倒置樹結構
跟文件系統(rootfs): root filesystem
名稱是大小寫敏感(特殊的文件系統除外)
以 . 開頭的文件爲隱藏文件
路徑分隔符 /
文件有兩類數據:
元數據 : metadate
數據 : data
文件系統分層結構:LSB Linux Standard Base
FHS : (Filesystem Hierarchy Standard):文件系統層次結構標準
文件命名規則:
包括路徑在內文件名最長4095個字符,用 / 分隔的路徑不能超過255個字節
除了 斜槓 和 NUL ,全部的字符都有效
使用特殊字符的目錄名和文件不推薦使用,有些字符須要用引號來引用它們
標準的Linux文件系統(如ext4),文件名稱大小寫敏感
文件顏色照應:
藍色-->目錄
綠色-->可執行文件
紅色-->壓縮文件
淺藍色-->連接文件
灰色-->其餘文件
Linux下文件的類型:
-: 普通文件
d: 目錄文件
b: 塊設備
c: 字符設備
l: 符號連接文件
p: 管道文件pipe
s: 套接字文件socket
每一個shell和系統進程都有一個當前的工做目錄
顯示當前的shell的絕對路徑命名: #pwd :printing working directory
PWD:保存了當前目錄路徑
OLDPWD:保存上一次所在目錄路徑
能夠用 #echo $PWD 查看
路徑又分爲兩種,一種爲絕對路徑,一種爲相對路徑
絕對路徑是以正斜槓開始,顯示完整的文件的位置路徑
可用於任何想指定一個文件名的時候
相對路徑不用以斜線開始,指定相對於當前工做目錄或某
目錄的位置,能夠做爲一個簡短的形式指定一個文件名
兩種路徑方式各有好處,須要靈活應用
來講一下 cd 命令的簡單使用
cd : Change the current directory to dir.改變目錄
能夠改變相對或者絕對路徑:
cd home/Download
cd /home/nineven
到上一級目錄:cd..
進入本身的主目錄:cd ,cd ~
進入之前的工做目錄:cd -
ls,是用來列出目錄內容的命令
它能夠列出當前目錄或指定目錄的內容
用法:
ls [OPTION]... [FILE]...
好比:
ls -a 顯示隱藏的文件
ls -l 顯示額外的信息
ls -R 目錄遞歸經過 ,文件夾內的內容遞歸顯示
ls -ld 目錄和符號連接信息
ls -1 文件分行顯示
ls –S 按從大到小排序
ls –u 配合-t選項,顯示並按atime重新到舊排序
ls –U 不排序按目錄存放順序顯示
這些命令本身能夠ls --help 查看,必定要本身學會運用幫助命令
文件的狀態查看 stat FILENAME
stat 文件:metadate 元數據 ,date 數據
時間戳,經過stat查看,好比:
access time:訪問時間,atime,讀取文件內容
modify time: 修改時間, mtime,改變文件內容(數據)
change time: 改變時間, ctime,元數據發生改變
使用touch命令能夠更改時間戳
先用touch --help查看一下,發現:
-a change only the access time
-m change only the modification time
-t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time
命令以下:
先查看一下詳細信息:
而後執行 touch -a issue
而後執行 touch -m issue
修改指定時間好比 touch -t200808080808.24 issue
好比一些編輯vim,查看cat,複製cp等都會改變時間戳
文件通配符:
* 匹配零個或多個字符
? 匹配任何單個字符
~ 當前用戶家目錄
~username 用戶家目錄
~+ 當前工做目錄
~- 前一個工做目錄
[0-9] 匹配一個數字範圍
[a-z]:大寫和小寫字母
[A-Z]:大寫字母
[abc] 匹配列表中的任何的一個字符
[^abc] 匹配列表中的全部字符之外的字符
預約義的字符類:
能夠用 #man -f glob 查看所在的章節而後 #man 7 glob
[:digit:] :任意數字,至關於0-9
[:lower:] :任意小寫字母
[:upper:] :任意大寫字母
[:alpha:] :任意大小寫字母
[:alnum:] :任意數字或字母
[:space:] :空格
[:punct:] :標點符號
練習:
一、顯示/var目錄下全部以l開頭,以一個小寫字母結尾,且中 間出現至少一位數字的文件或目錄
ls -d /var/l*[[:digit:]]*[[:lower:]]
二、顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的 文件或目錄
ls -d /etc/[[:digit]]*[^[:digit:]]
三、顯示/etc/目錄下以非字母開頭,後面跟了一個字母及其 它任意長度任意字符的文件或目錄
ls -d /etc/[^[:alpha:]][[:alpha:]]*[[:alnum:]]*
四、顯示/etc目錄下全部以m開頭以非數字結尾的文件或目錄
ls -d /etc/m*[^[:digit:]]
五、顯示/etc目錄下,全部以.d結尾的文件或目錄
ls -d /etc/*.d
六、顯示/etc目錄下,全部.conf結尾,且以m,n,r,p開頭的文 件或目錄
ls -d /etc/[mnrp]*.conf