文件管理

文件系統結構元素:

1.cent6.8cent7兩個版本的根目錄不一樣,實際上是同一個文件。

/bin /usr/bin

/sbin /usr/sbin

/lib /usr/lib

/lib64 /usr/lib64

   wKiom1edn2aAdVl_AABX9QSQaHM145.png-wh_50                        

 

2.普通用戶用bin    root用戶用sbin  普通用戶即使能夠查到sbin目錄也無權限操作。

3.bootLinux內核,本身不大,進入boot目錄後,可輸入du –sh來查看目錄大小。         du –sh /boot

4.dev主要放各種硬件設備,也有可能是邏輯設備,ll/dev/Sda爲硬盤  ll /dev/zero0設備

b=block     塊設備,物理設備,隨機訪問,有緩存

c=character  字符設備,邏輯上設備,順序訪問,無緩存

/dev/null/dev/zero  都是空設備

dd if=/dev/zero of=f1 bs=1 count=1  可以讀0並寫到文件裏,bs爲塊大小,1個字節

查看文件十六進制  hexdum f1   ;查看文件二進制    xxd f1

wKioL1edn3uTV7PxAAAP6ggt-FA016.png-wh_50

0a是換行的意思

   選項:

-n length 只格式化輸入文件的前length個字節

-C 輸出規範的十六進制和ASCII

-b 單字節八進制顯示

-c 單字節字符顯示

-d 雙字節十進制顯示

-o 雙字節八進制顯示

-x 雙字節十六進制顯示

-s 從偏移量開始輸出

-e 指定格式字符串,格式字符串包含在一對單引號中,格式字符串形如:'a/b "format1" "format2

 

5./etc爲配置文件,./etc/issue:預登錄消息標識文件,開機時啓動。

6.lib是庫,函數庫,也是內核的各種模塊。

lib下的modules下有好多驅動,輸入cd /lib/modules/後,輸入ls會看到內核版本,再輸入uname –r 。進入內核版本cd,然後ls就會看到驅動文件,聲卡顯卡等等,驅動應該都是.ko打頭的,比如說cd kernel/ 然後ls再進入一個文件夾就會看見.ko文件,我們經常訪問的ext4就是個驅動。

7.mediacent6.8的掛載點,cent7掛載點在/run/meida下,對應的mnt爲手動掛載,比如一定硬盤

8.opt掛載第三方軟件,現在用得少。/etc/opt

9.srv各種服務可能會用到的數據,tmp臨時文件,權限寬鬆,

10.usr:根是第一層,usr第二層。

/usr/include/ 防止第三方語言C語言庫的頭文件.h,模塊調用

/usr/local/是放置第三方軟件,外部服務,源代碼等。

/usr/share/dict/words放置Linux語言字典,查看某個單詞輸入:grep zhang words

11.var 可變數據,日誌,文件,搭建外部服務都是放在var裏,有一個特別重要的log文件,專門放日誌,再比如last文件,爲用戶成功登錄的信息列表,但是這些日誌信息是存在wtmp文件裏的,wtmp就在/var/log文件下。如果文件被移走last就顯示不出信息了

12.proc  進程,內核信息都在這個文件裏,proc裏好多進程編號,在proc可以查看分區,cat partitions  ,大小爲0個字節,因爲proc不是硬盤文件,是內存數據。查看CPU信息,輸入 cd /proc/ . 查看內存信息,輸入cat meminfo

13.sys,主要放硬件信息,比如塊設備,例如:新增加硬盤.vmdk,怎麼查看新增加的硬盤呢?最笨的方法就是退出重啓,最簡單的方法就是刷新,echo”- --”> /sys/class/scsi_host/host2/scan,然後查看ls /dev/sd*,就會看見新增加的硬盤。

14./misc:只有cent6.8有,可以掛光盤,神奇自動掛載光盤, 只要訪問後/misc/cd就會df掛載。

15./net:直接訪問ip網絡服務.

16.文件系統: 文件和目錄被組織成一個單根倒置樹結構

         文件系統從根目錄下開始,用“/”表示

         根文件系統(rootfs)root filesystem

         名稱是大小寫敏感

         .開頭的文件爲隱藏文件

         路徑分隔的/

         文件有兩類數據:元數據:metadata(數據的屬性)

                            數據:data,存放數據的數據內容的地方叫數據塊block

元數據和數據內容存放的位置是不一致的。

查看分區塊的大小:tune2fs –l /dev/sda2

文件系統分層結構:LSB Linux Standard Base

         FHS: (Filesystem Hierarchy Standard)

17.文件名規則:

包括路徑在內文件名稱最長4095個字節,用/分隔的路徑不能超過255個字節。

藍色-->目錄   綠色-->可執行文件   紅色-->壓縮文件   淺藍色-->鏈接文件  灰色-->其他文件    粉色-->套接字文件  淺黃色-->管道

套接字文件的作用:(socket

/dev/log   s開頭的文件是套接字文件

進程間通信(源IP地址和目的IP地址以及源端口號和目的端口號的組合稱爲套接字。其用於標識客戶端請求的服務器和服務)

除了斜槓和NUL,所有字符都有效.但使用特殊字符的目錄名和文件不推薦使用{比如-},有些字符需要用引號來引用它們。

標準Linux文件系統(如ext4),文件名稱大小寫敏感。例如:MAIL,Mail,mail, mAiL

18.文件系統結構

/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放於此目錄

  /bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啓動即會用到的程序

  /sbin:管理類的基本命令;不能關聯至獨立分區,OS啓動即會用到的程序

  /lib:啓動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)

  /lib64:專用於x86_64系統上的輔助共享庫文件存放位置

  /etc:配置文件目錄

  /home/USERNAME:普通用戶家目錄

  /root:管理員的家目錄

  /media:便攜式移動設備掛載點,cent6.8cent7掛載點不一樣。

/mnt:臨時文件系統掛載點,

  /dev:設備文件及特殊文件存儲位置

b: block device,隨機訪問

c: character device,線性訪問

  /opt:第三方應用程序的安裝位置

  /srv:系統上運行的服務用到的數據

  /tmp:臨時文件存儲位置

19. /usr: universalshared, read-only data

bin: 保證系統擁有完整功能而提供的應用程序

sbin:

lib32位使用

lib64:只存在64位系統

include: C程序的頭文件(header files)

share:結構化獨立的數據,例如doc, man

local:第三方應用程序的安裝位置

bin, sbin, lib, lib64, etc, share

20./var: variable datafiles

cache: 應用程序緩存數據目錄

lib: 應用程序狀態信息數據

local:專用於爲/usr/local下的應用程序存儲可變數據;

lock: 鎖文件

log: 日誌目錄及文件

opt: 專用於爲/opt下的應用程序存儲可變數據;

run: 運行中的進程相關數據;通常用於存儲進程pid文件

spool: 應用程序數據池

tmp: 保存系統兩次重啓之間產生的臨時數據

/proc: 用於輸出內核與進程信息相關的虛擬文件系統

/sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統

/selinux: security enhanced Linuxselinux相關的安全策略等信息的存儲位置

21.Linux上的應用程序的組成部分:

二進制程序:/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

22.linux下的文件類型:

    -:普通文件

d: 目錄文件

b: 塊設備

c: 字符設備

    l:符號鏈接文件

p: 管道文件pipe

s: 套接字文件socket

23.顯示當前工作目錄:

     每個shell和系統進程都有一個當前的工作目錄

CWD: currentwork directory

顯示當前shell CWD的絕對路徑#pwd: printing working directory

只能回到上一級目錄:cd –

pwd實際上顯示的就是$PWD的內容

pwd –L    目錄連接鏈接時,輸出連接路徑

pwd –p    顯示絕對(物理)路徑,而非使用連接(link)路徑

實例:/bin/pwd

命令:/bin/pwd [選項]

輸出:[root@localhost init.d]# /bin/pwd

/etc/rc.d/init.d

[root@localhost init.d]# /bin/pwd --help

[root@localhost init.d]# /bin/pwd -P

/etc/rc.d/init.d

[root@localhost init.d]# /bin/pwd -L

/etc/init.d

24.絕對路徑:

以正斜槓開始

完整的文件的位置路徑

可用於任何想指定一個文件名的時候

相對路徑:

不以斜線開始

指定相對於當前工作目錄或某目錄的位置

可以作爲一個簡短的形式指定一個文件名

例如:dir目錄下有三個文件夾ABC,三個文件夾下分別有f1 f2 f3文件,當我想在f1文件下調用b裏的f2時,絕對路徑/dir/b/f2.sh,相對路徑../b/f2.sh。當把dir文件移動別的文件夾時,絕對路徑就會出現錯誤。編腳本的時候尤其要注意這個路徑問題。

25.更改目錄:cd 改變目錄

爲絕對或相對路徑:

cd/home/joshua/work

cdproject/docs

cd      進入用戶主目錄;

cd  ~  進入用戶主目錄;cd ~wang 就進到了王的目錄,王目錄進不到root目錄下。

cd  -  返回進入此目錄之前所在的目錄;

cd  ..  返回上級目錄(若當前目錄爲“/“,則執行完後還在“/"".."爲上級目錄的意思);

cd ../..  返回上兩級目錄;

cd  !$  把上個命令的參數作爲cd參數使用。

相關的環境變量:

PWD:保存了當前目錄路徑

OLDPWD:上一次所在目錄路徑

Cd命令用法:cd –P:加上-P的選項顯示的是物理的路徑

         cd –P /bin –e  如果-p選項指定,當前目錄不能確定成功還是失敗,退出後看狀態,輸入echo $?   結果值爲0表示成功,非0表示失敗.

         lnlinux中又一個非常重要命令,它的功能是爲某一個文件在另外一個位置建立一個同不的鏈接,這個命令最常用的參數是-s,具體用法是        ln s 源文件目標文件。

    當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然後在其它的目錄下用ln命令鏈接(link)它就可以,不必重複的佔用磁盤空間。例如:ln s /bin/less

 

 

 

26.ls命令linux下最常用的命令。ls命令就是list的縮寫缺省下ls用來打印出當前目錄的清單如果ls指定其他目錄那麼就會顯示指定目錄裏的文件及文件夾清單。 通過ls 命令不僅可以查看linux文件夾包含的文件而且可以查看文件權限(包括目錄、文件夾、文件權限)查看目錄信息等等。l命令在日常的linux操作中用的很多!

1. 命令格式:

ls [選項] [目錄名]

2. 命令功能:

列出目標目錄中所有的子目錄和文件。

3. 常用參數:

-a, –all 列出目錄下的所有文件,包括以 . 開頭的隱含文件

-A -a,但不列出“.”(表示當前目錄)“..”(表示當前目錄的父目錄)

-c  配合 -lt:根據 ctime 排序及顯示 ctime (文件狀態最後更改的時間) 

配合 -l:顯示 ctime 但根據名稱排序否則:根據 ctime 排序

-C 每欄由上至下列出項目

–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是'never''always''auto'其中之一

-d, –directory 將目錄象文件一樣顯示,而不是顯示其下的文件。

-D, –dired 產生適合 Emacs  dired 模式使用的結果

-f 對輸出的文件不進行排序,-aU 選項生效,-lst 選項失效

-g 類似 -l,但不列出所有者

-G, –no-group 不列出任何有關組的信息

-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)

–si 類似 -h,但文件大小取 1000 的次方而不是 1024

-H, –dereference-command-line 使用命令列中的符號鏈接指示的真正目的地

–indicator-style=方式 指定在每個項目名稱後加上指示符號<方式>none (默認)classify (-F)file-type (-p)

-i, –inode 印出每個文件的 inode 

-I, –ignore=樣式 不印出任何符合 shell 萬用字符<樣式>的項目

-k  –block-size=1K, k 字節的形式表示文件的大小。

-l 除了文件名之外,還將文件的權限、所有者、文件大小等信息詳細列出來。

-L, –dereference 當顯示符號鏈接的文件信息時,顯示符號鏈接所指示的對象而並非符號鏈接本身的信息

-m 所有項目以逗號分隔,並填滿整行行寬

-o 類似 -l,顯示文件的除組信息外的詳細信息。   

-r, –reverse 依相反次序排列,-Sr就是按照相反的順序排序

-ld目錄和符號鏈接信息

-R, –recursive 同時列出所有子目錄層,遞歸

--block-size=M就是以M爲單位顯示。

-s, –size 以塊大小爲單位列出所有文件的大小,

-S 根據文件大小排序

--time =WORD,-l一起用,WORD 以下是可選用的 WORD 和它們代表的相應選項代替Mtime顯示

--sort =WORD以下是可選用的 WORD 和它們代表的相應選項

extension –X  status –c   none -U   time –t  size –S    atime –u    access -u

version –v     use –u

例如: ls –cl–sort=time   按照ctime順序排序,  等於  ls -clt

-t 以文件修改時間排序

-u  配合 -t:顯示訪問時間atime而且依訪問時間排序

配合 -l:顯示訪問時間但根據名稱排序

否則:根據訪問時間排序

-U 不進行排序;依文件系統原有的次序列出項目

-v 根據版本進行排序

-w, –width=COLS 自行指定屏幕寬度而不使用目前的數值

-x 逐行列出項目而不是逐欄列出

-X 根據擴展名排序

-1 每行只列出一個文件,分行顯示

–help 顯示此幫助信息並離開

–version 顯示版本信息並離開

27.查看文件狀態

vstat:查看詳細的元數據

v文件:metadata, data

v三個時間戳:

accesstime:訪問時間,atime,讀取文件內容

modifytime: 修改時間,mtime,改變文件內容(數據)

changetime: 改變時間,ctime元數據發生改變

如果atime的時間是一天以上就會變

如果atimectime時間舊,就會改變(正常情況下atime的時間比ctime的新)         

避免頻繁更改,提高性能

atime可以安全不讓修改,  輸入chattr  +A  f1就可以使atime不變了(f1爲文件名)。

chattr強行鎖定atime,不讓修改

echo xx >>aa   xx寫入aa文件裏,Mtimectime就會發生改變。

 

28.文件通配符

v *匹配零個或多個字符

v ?匹配任何個字符,

v ~當前用戶家目錄

v ~username用戶家目錄

v ~+當前工作目錄,pwd或$PWD或$OLDPWD或  .

v ~-  前一個工作目錄

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

或的關係,匹配任意字符f[1a3]=f1 fa f3 

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

 是按照aAbBcC……zZ匹配 f[a-c] 就是aAbBc

v[A-Z]:大寫字母

f[A-C]   AbBcC

v[wxc]匹配列表中的任何的一個字符

v[^wxc]匹配列表中的所有字符以外的字符

v預定義的字符類:#man 7 glob

[[:digit:]]:任意數字,相當於0-9

[[:lower:]]:任意小寫字母

[[:upper:]]:任意大寫字母

[[:alpha:]]:任意大小寫字母

[[:alnum:]]:任意數字或字母

[[:space:]]:空格

[[:punct:]]:標點符號

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章