Linux系統基礎目錄的命名法則: - 嚴格區分大小寫 - 目錄也是文件,在同一路徑下,兩個文件不能同名 - 支持使用除 / 之外的任意字符 - 最長字符不能超過255個字符 Linux 根下目錄及用途 /bin 存放二進制可執行文件(ls,cat,mkdir等),經常使用命令通常都在這裏 /etc 配置文件 /home 用戶家目錄 /root 超級用戶(系統管理員)的主目錄 /sbin 存放二進制可執行文件,超級權限用戶才能訪問 /dev 設備文件 /mnt 臨時文件系統的安裝點 /boot 存放用於系統引導時使用的各類文件 /lib 存放跟文件系統中的程序運行所須要的共享庫及內核模塊 /var 用於存放運行時須要改變數據的文件
元數據信息包含:
File:文件名
Blocks:文件所佔塊個數
IO Block:每一個數據塊的大小(單位:B)
regular file:普通文件(此處顯示文件的類型)
Inode:文件的Inode號,文件的索引節點號
Links:硬連接次數
Access:權限
Uid:(屬主id/屬主名)
Gid:(屬組id/屬組名)
Context:文件所在的環境
Access:最近訪問時間
Modify:數據改動時間
Change:元數據改動時間node
查看文件的元數據的方法:
stat命令: 查看文件的元數據
語法:stat FILE…
Stat /etc/passwdlinux
[root@dcy-test ~]# stat rm.sh File: ‘rm.sh’ Size: 108 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 8460798 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2019-12-31 11:56:37.908776011 +0800 Modify: 2019-12-31 11:56:29.836669331 +0800 Change: 2019-12-31 11:56:29.857669609 +0800 Birth: -
文件的三個時間戳詳細介紹以下:
atime:訪問時間:讀一次文件的內容,這個時間就會更新。好比more、cat等命令。ls、stat命令不會修改atimevim
mtime:修改時間:修改時間是文件內容最後一次被修改的時間。好比:vim操做後保存文件。ls -l列出的就是這個時間windows
ctime:狀態改動時間。是該文件的inode節點最後一次被修改的時間,經過chmod、chown命令修改一次文件屬性,這個時間就會更新。文件的時間戳修改須要用touch命令進行修改,touch命令格式以下:ide
touch命令: touch - change file timestamps
touch [OPTION]… FILE… 須要注意的是Changetime沒法指定進行修改,在atime以及mtime修改後,ctime自動進行更新。
-c: 指定的文件路徑不存在時不予建立;
-a: 僅修改access time;
-m:僅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]工具
[root@dcy-test ~]# touch -a 20200303 rm.sh [root@dcy-test ~]# stat rm.sh File: ‘rm.sh’ Size: 108 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 8460798 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2020-03-05 10:24:54.669800961 +0800 Modify: 2019-12-31 11:56:29.836669331 +0800 Change: 2020-03-05 10:24:54.669800961 +0800 Birth: -
軟鏈接:其實就是新創建一個文件,這個文件就是專門用來指向別的文件的(和windows 下的快捷方式的接近的意思)。軟連接產生的是一個新的文件,但這個文件的做用就是專門指向某個文件的,刪了這個軟鏈接文件,那就等於不須要這個鏈接,和原來的存在的實體原文件沒有任何關係,但刪除原來的文件,則相應的軟鏈接不可用(cat那個軟連接文件,則提示「沒有該文件或目錄」)spa
硬鏈接:硬連接其實是爲文件建一個別名,連接文件和原文件其實是同一個文件是不會創建inode的,ls -i 文件查看indoe,他只是在文件原來的inode link count域再增長1而已,也所以硬連接是不能夠跨越文件系統的。相反是軟鏈接會從新創建一個inode,固然inode的結構跟其餘的不同,他只是一個指明源文件的字符串信息。一旦刪除源文件,那麼軟鏈接將變得毫無心義。而硬連接刪除的時候,系統調用會檢查inode link count的數值,若是他大於等於1,那麼inode不會被回收。所以文件的內容不會被刪除。code
| 軟鏈接與硬鏈接的區別 :
軟鏈接: 可跨設備;會建立新的inod;軟連接的訪問屬性是l,且訪問權限不能設置,只能是777,真正的權限取決於源文件;不能對目錄進行建立 ;移動或刪除目標文件或目錄,鏈接失敗 。
硬鏈接: 不可跨設備; 不會建立inode,和原文件inode同樣 ;硬連接的訪問屬性和源文件如出一轍;能對目錄進行建立;移動或刪除目標文件或目錄,不影響鏈接文件遞歸
[root@dcy-test ~]# touch 1.txt [root@dcy-test ~]# ll 1.txt -rw-r--r--. 1 root root 0 Mar 5 11:33 1.txt [root@dcy-test ~]# ln 1.txt /tmp/2.txt [root@dcy-test ~]# ll 1.txt -rw-r--r--. 2 root root 0 Mar 5 11:33 1.txt [root@dcy-test ~]# ll /tmp/2.txt -rw-r--r--. 2 root root 0 Mar 5 11:33 /tmp/2.txt [root@dcy-test ~]# ls -i 1.txt #查看文件inode存儲塊 8758773 1.txt [root@dcy-test ~]# ls -i /tmp/2.txt 8758773 /tmp/2.txt [root@dcy-test ~]# [root@dcy-test ~]# ln -s a.txt b.txt lrwxrwxrwx. 1 root root 5 Mar 5 11:40 b.txt -> a.txt [root@dcy-test ~]# echo "1" > a.txt [root@dcy-test ~]# cat a.txt 1 [root@dcy-test ~]# cat b.txt 1 [root@dcy-test ~]# ll b.txt
1. ls 列出指定目錄下的內容格式 ls [option] [file] option: -a 全部文件包括隱藏文件 -A:顯示除.和..以外的全部文件 -i 查看文件inode號 -l,--long:顯示文件的詳細屬性信息 等於 ll 命令 -h:對文件大小進行單位換算,可能影響精度 -d:查看目錄自己而非其內部的文件 -r:逆序顯示文件 -R:遞歸顯示文件 file file 文件1 查看文件的屬性 [root@dcy-test ~]# file a.txt a.txt: ASCII text [root@dcy-test ~]# file /etc/passwd /etc/passwd: ASCII text cat 文件 #查看文件內容,從開顯示至尾部 -n:給顯示的文本行編號 tac 文件 #查看文件內容,從尾部顯示至頭部,倒序查看; head 文件 #查看文件頭部開始默認顯示10行 -n #:顯示文本頭n行內容 例:head -5 /etc/passwd == head -n5 /etc/passwd --顯示文件頭5行內容 tail 顯示文本內容,默認顯示後10行 格式:tail [OPTION]... [FILE]... -n #:顯示文本後#行內容 -f:查看文件尾部內容結束後不退出,跟隨顯示新增的行 例:tail -8 /etc/passwd --顯示文件後8行內容 cp 源文件 目標文件 複製文件工具 格式:單源複製:cp [OPTION]... [-T] SOURCE DEST(若是DEST不存在則建立,存在則覆蓋) 多源複製:cp [OPTION]... SOURCE... DIRECTORY(DEST必須爲directory) -i:交互式複製,即覆蓋前提醒用戶確認 -f:強制覆蓋目標文件 -r,-R:遞歸複製目錄 示例:cp -if /data/[1-3].txt /data/test #test必須爲目錄,把三個文件一塊兒複製到test中 cp /tmp/1.txt /tmp/a.txt /data/ cp -r /data /practice #把data目錄及目錄下的內容一塊兒複製到practice中 mv 單個文件或多個文件 單個文件或目標目錄 源文件是多個文件時,目標文件應爲目錄 mv /tmp/1.txt /tmp/a.txt /data/ rm [選項] [文件或目錄] -r 表示刪除目錄 ; -f 強制刪除不提醒;- i 提示,默認已加了-i選項; rm -rf /tmp/cp mkdir [選項] 目錄名 建立目錄命令 -p: 遞歸建立
[root@dcy-test ~]# mkdir /tmp/cp ; mkdir -p /tmp/a/{a,b} [root@dcy-test ~]# mkdir -p /tmp/test/{a,b}/{c,d} [root@dcy-test ~]# tree /tmp/test/ /tmp/test/ ├── a │ ├── c │ └── d └── b ├── c └── d
cd 切換目錄命令 示例:cd ..:切換到上級目錄 cd ~:切換回本身的家目錄 cd -:在上一次目錄與當前目錄直接來回切換 pwd:顯示當前目錄
[root@dcy-test ~]# cp /etc/profile /tmp/ [root@dcy-test ~]# sed -i 's/^[[:space:]]\+//g' /tmp/profile # +表示前面[]裏的重複1次或屢次 [root@dcy-test ~]# cat /tmp/profile
6.在vim中設置tab縮進爲4個字符
vim /etc/vimrc set tabstop=4