linux 文件管理

文件管理

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



052049040017593.png


文件系統結構詳解: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 顯示隱藏的文件

blob.png

ls -l 顯示額外的信息

blob.png


ls -R 目錄遞歸經過 ,文件夾內的內容遞歸顯示

blob.png

ls -ld 目錄和符號連接信息 

blob.png

ls -1  文件分行顯示 

blob.png

ls –S  按從大到小排序 

ls –u   配合-t選項,顯示並按atime重新到舊排序 

ls –U  不排序按目錄存放順序顯示

這些命令本身能夠ls --help 查看,必定要本身學會運用幫助命令




文件的狀態查看 stat FILENAME


stat 文件:metadate 元數據  ,date 數據

時間戳,經過stat查看,好比:

blob.png

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  

命令以下:

    先查看一下詳細信息:

blob.png

而後執行 touch -a issue

blob.png

而後執行 touch -m issue

blob.png

修改指定時間好比 touch -t200808080808.24 issue

blob.png


好比一些編輯vim,查看cat,複製cp等都會改變時間戳







文件通配符:


  • * 匹配零個或多個字符 

    blob.png

  • ? 匹配任何單個字符

  • ~ 當前用戶家目錄 

  • ~username 用戶家目錄 

  • ~+ 當前工做目錄 

  • ~- 前一個工做目錄 

  • [0-9] 匹配一個數字範圍 

    blob.png

  • [a-z]:大寫和小寫字母 

  • [A-Z]:大寫字母

 blob.png

  • [abc] 匹配列表中的任何的一個字符 

  • [^abc] 匹配列表中的全部字符之外的字符

  • blob.png


預約義的字符類:

能夠用 #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

相關文章
相關標籤/搜索