文件系統分層結構標準
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
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/下的文件。
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