Linux-文件管理

文件系統分層結構標準

http://www.pathname.com/fhs

http://www.pathname.com/fhs/pub/fhs-2.3.pdf

包括

boot bin sbin etc lib64 tmp usr mnt media dev var home net misc srv proc sys root opt selinux

 

FHS

 

ldd /bin/ls???????? 查看ls命令需要的依賴庫,一般在/lib64下

 

/misc目錄,CentOS 6自動有,cd /misc然后cd cd/可自動掛載光盤,不用登管理員帳戶

/proc???????? 目錄里的東西根本不在硬盤中,而是在內存中,所以ll查看文件大小為0

是個虛擬目錄,映射到內存

echo ‘- – -‘ > /sys/class/scsi_host/host2/scan 不重啟電腦的情況下識別新硬盤

 

ext4文件系統大小寫敏感,U盤的FAT32等文件系統大小寫不敏感

.開頭的是隱藏文件

文件有兩類數據:

元數據:metadata(ll看到的信息)

數據:data

 

各種文件的類型, vim /etc/DIR_COLORS可定制顏色

-:普通文件? ? ? ? ? ? ? ? ? ? 白色

d: 目錄文件? ? ? ? ? ? ? ? ? ? ?深藍色

b: 塊設備? ? ? ? ? ? ? ? ? ? ? ? ?黃色

c: 字符設備? ? ? ? ? ? ? ? ? ? ?黃色

l: 符號鏈接文件? ? ? ? ? ? ? 淺藍色

p: 管道文件pipe? ? ? ? ? ? ?深黃色

s: 套接字文件socket? ? ? 紫色

可執行文件? ? ? ? ? ? ? ? ? ? 綠色

壓縮包? ? ? ? ? ? ? ? ? ? ? ? ? ? 紅色

 

某些文件名帶空格、橫杠等字符,要刪的話帶上路徑

如rm /root/-a

 

b塊設備,如/dev/sda

c字符設備,如/dev/zero

dd if=/dev/zero of=/data/bigfile bs=1M count=1024

 

ll -d /bin/ /usr/bin

ll -d /lib64 /usr/lib64

 

pwd -P????? 若進入鏈接目錄時顯示真實路徑

 

帶根/的是絕對路徑,不帶根/的是相對路徑

 

basename??????? 文件本身的名稱,不帶目錄

dirname??????????? 目錄名,不帶文件名

 

cd ~???????????????????? 進入當前用戶的家目錄

cd???????????????? 進入當前用戶的家目錄

cd ~qjy? ? ? 進某個人的家目錄

cd –?????????????? 進入上一次目錄路徑,內在機制:echo $OLDPWD,OLDPWD變量存儲了上一個目錄

echo $PWD? 或pwd,查看當前目錄

 

環境變量???? PS1,PATH,PWD,OLDPWD,HISTSIZE,SHELL

 

ls

ls -ld???????????? 等于ll -d,顯示文件夾本身的信息

 

目錄后邊有沒有/有區別么?大部分時候沒區別,除了目錄是軟連接的情況。

例如:ll /bin和ll /bin/,不加/顯示的是軟鏈接本身,加/顯示的是/bin/下的文件。

ll_bin

ll_bin2

 

ls -a 包含隱藏文件

ls -l 顯示額外的信息

ls -R 目錄遞歸通過

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

ls -1 文件分行顯示

ls -S 按從大到小排序

ls -t 按mtime排序

ls -u 配合-t選項,顯示并按atime從新到舊排序

ls -U 按目錄存放順序顯示

ls -X 按文件后綴排序

 

ll –time=atime /data/A??? 訪問時間

ll –time=ctime /data/A???? 元數據發生變化的時間

ll –time=mtime /data/A?? 修改時間(默認)

 

stat /data/A? 可以看到3個時間

 

元數據存放在文件系統中,不是具體文件

有時可以不讓更新讀時間atime,減少硬盤負擔

 

文件通配符

 

*匹配零個或多個字符

?匹配任何單個字符

~ 當前用戶家目錄

~mage 用戶mage家目錄

~+ 當前工作目錄

~-前一個工作目錄

[0-9]匹配數字范圍

[a-z]:字母

[A-Z]:字母

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

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

 

預定義的字符類:man 7 glob

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

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

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

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

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

[:blank:]:水平空白字符

[:space:]:水平或垂直空白字符

[:punct:]:標點符號

[:print:]:可打印字符

[:cntrl:]:控制(非打?。┳址?/p>

[:graph:]:圖形字符

[:xdigit:]:十六進制字符

 

通配符只通配文件名稱,不管內容

[root@centos7 data]#touch f{A..Z}

[root@centos7 data]#touch f{a..z}

[root@centos7 data]#ls f[A-D]

fA? fb? fB? fc? fC? fd? fD

[root@centos7 data]#ls f[[:upper:]]

fA? fC? fE? fG? fI? fK? fM? fO? fQ? fS? fU? fW? fY

fB? fD? fF? fH? fJ? fL? fN? fP? fR? fT? fV? fX? fZ

 

man 7 glob

 

touch???? 創建空文件或刷新時間

touch [OPTION]… FILE…

-a僅改變atime和ctime

-m 僅改變mtime和ctime

-t [[CC]YY]MMDDhhmm[.ss]

指定atime和mtime的時間戳

-c如果文件不存在,則不予創建

 

cp

cp -a????? 可以作為備份手段,把數據的所有信息都復制

cp -av??? 備份同時顯示過程,使用-v要小心,文件太大的話終端容易死

cp -u????? 更新,只復制源比目標更新文件或不存在文件

cp –backup=numbered 可定義到別名里

 

[root@centos7 data]#ls

file1.conf? file2.conf? file3.conf? file4.conf? file5.conf

[root@centos7 data]#rename “conf” “conf.bak” file*

[root@centos7 data]#ls

file1.conf.bak? file3.conf.bak? file5.conf.bak

file2.conf.bak? file4.conf.bak

 

rm

rm -rf /被禁,但rm -rf /*或者 rm -rf /data /*能執行!

強烈建議把rm改名或者定義成別名mv

alias rm=’mv -t /data/’

有別人正在使用某文件時釋放不了空間,用lsof | grep deleted可查看被刪除但未釋放空間的文件,方法一是kill掉進程,但不建議,因為有些進程不能kill,方法二是> file先清空,釋放空間,再rm刪掉。

> bigfile

rm -f bigfile

 

目錄操作

tree

tree /boot

tree -L 1 /boot???? 只顯示當前目錄下的第一層

tree -d /boot?????? 只顯示文件夾

tree -P???????????????? 可跟正則表達式

 

mkdir???? 創建空目錄

mkdir -p?????? /data/dir1/dir2/dir3/dir4 能創建比較深的空目錄

mkdir -v /data/dir1/dir2/dir3/dir4 顯示詳細信息

 

rmdir [-p]???? 刪除空文件夾

 

 

備份小技巧

cp /etc/hosts{,.bak}

 

索引節點

inode

inode table?? 節點表

inode在每個分區中唯一

直接指針有12個,每個block是4K,最多直接指向48K的數據

間接指針???? ?????? 4M

二重間接指針??? 4G

三重間接指針??? 4T

 

df -i ?????? df的inode形式

 

shred -zvu -n 6 /data/hosts????? 擦除文件,-z最后以0覆蓋,-v顯示過程,-u刪除文件,-n 6覆寫6次(默認3次)

 

硬鏈接

創建硬鏈接會增加額外的記錄項以引用文件

對應于同一文件系統上一個物理文件

每個目錄引用相同的inode號

創建時鏈接數遞增

 

刪除文件時:

rm命令遞減計數的鏈接

文件要存在,至少有一個鏈接數

當鏈接數為零時,該文件被刪除

不能跨越驅動器或分區

 

語法:

ln filename [linkname]

任何文件夾最少有2個鏈接數,本身和. ,如果還有子文件夾的話,子文件夾的.. 也是他的名字,就有3個以上的鏈接數

 

軟連接(符號鏈接)

一個符號鏈接指向另一個文件

ls -l的顯示鏈接的名稱和引用的文件

一個符號鏈接的內容是它引用文件的名稱

可以對目錄進行

可以跨分區

指向的是另一個文件的路徑;其大小為指向的路徑字符串的長度;不增加或減少目標文件inode的引用計數;

 

語法:

ln -s filename [linkname]

軟連接的文件大小是源文件的文件名大小

軟連接ln -s f1 f1_link,如果f1和f1_link在不同目錄,要用相對目錄的話是相對于f1_link的目錄,不是相對于f1的目錄

readlink /etc/grub2.cfg可直接讀到源文件的路徑

 

 

軟,硬鏈接區別:

本質

硬鏈接:同一個文件多個名字

軟鏈接:一個文件對應快捷方式,不同文件

 

1、鏈接數

2、跨分區

3、用于目錄

4、原始和鏈接文件關系

5、刪除

 

確定文件內容

file file1

檢查文件的類型,然后確定適當的打開命令或應用程序使用

文件的頭部,又稱魔數magic number

hexdump -C file -n 100???? 顯示一個文件的前100個字節

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/93844

(0)
qjyqjy
上一篇 2018-03-30
下一篇 2018-03-31

相關推薦

  • linux基礎知識

    第一周基礎知識作業

    2018-05-10
  • Linux中的練習題

    Linux文本查看和處理練習題
    Linux用戶和組管理類命令的使用方法及練習題

    Linux筆記 2018-07-08
  • Linux 的哲學思想

    Linux 的哲學思想: 一、Linux 系統,采用一切皆文件的思想,包括硬件設備(設備文件)與通訊方式。文件系統(FHS)采用樹狀結構,根目錄只有一個,用戶無不是在此樹的節點上運作。 備注1:Linux中的所有設備都做為一個文件系統的一個節點來掛載和使用的。如光驅一般掛載在/mnt/cdrom中。 備注2:Linux系統按功能可分為:?1、操縱系統:用以控…

    Linux筆記 2018-06-21
  • Linux 的不同的發行版區別和聯系

    Linux 的不同的發行版區別和聯系   Linux,最早由Linus Benedict Torvalds在1991年開始編寫。在這之前,Richard Stallman創建了Free Software Foundation(FSF)組織以及GNU項目,并不斷的編寫創建GNU程序(此類程序的許可方式均為GPL: General Public Lic…

    2018-08-04
  • Linux運維命令以及概念整理總結(1)

    1、文件系統分層結構: LBS Linux Standard Base
    2、ls命令、wc命令、時間戳、stat、通配符glob
    3、touch、cp、mv、rm、批量改名rename
    4、tree、mkdir、rmdir
    5、節點編號inode以及節點表、硬鏈接以及軟鏈接
    6、file命令、標準輸入,標準輸出

    2018-04-14
  • 腳本練習

    腳本編程

    2018-04-15
欧美性久久久久