Linux基礎知識(二):文件管理

Linux系統文件和目錄的命名規則

  1. 區分大小寫。
  2. 名稱的長度不能超過255個字節。
  3. 文件的絕對路徑最大長度爲4095字節。
  4. 可使用除了斜槓和NUL之外的任何字符做爲合法的名稱,實際運用中應該儘可能避免使用特殊字符和空格命名目錄和文件。
  5. 以點號開頭的文件是隱藏文件,須要使用ls -a命令才能查看相關信息。
  6. 文件的擴展名僅用於區分文件類型,沒有特殊的含義。

Linux系統目錄的用途

1. bin:存放Linux系統的引導文件,包括內核文件、GRUB引導加載器
2. boot:存放全部用戶可使用的Linux命令
3. dev:存放各類設備文件和特殊的文件
4. etc:存放Linux系統和各類軟件的配置文件
5. home:普通用戶的家目錄,存放普通用戶相關的文件
6. lib:存放各類程序運行時須要使用的庫文件和內核模塊文件
7. lib64:存放64位程序運行時須要使用的庫文件
8. media:掛載U盤、移動硬盤等移動存儲設備
9. mnt:掛載文件系統,如NFS、ISO文件
10. opt:存放用戶安裝的第三方軟件
11. proc:存放內核與進程
12. root:root用戶的目錄,存放root用戶相關的文件
13. run:存放系Linux統啓動之後的信息
14. sbin:存放擁有管理員權限的用戶纔可使用的Linux命令
15. srv:存放各類服務相關的文件
16. sys:保存硬件設備的相關信息
17. tmp:保存臨時文件
18. usr:保存用戶安裝的軟件、共享庫文件
19. var:保存系統和應用程序的日誌文件

Linxu系統文件的元數據

在Linux系統中,文件的元數據是指文件屬性信息,使用ls -l命令能夠查看,主要包括如下幾點:node

1. 文件類型
2. 權限
3. inode數
4. 全部者
5. 所屬組
6. 大小
7. 建立時間
8. 文件名

修改文件的時間戳信息

Linux系統中的文件有三個時間戳:vim

1. access time 訪問時間,atime,讀取文件內容後改變
2. modify time 修改時間,mtime,改變文件內容(數據)後改變
3. change time 改變時間,ctime,元數據發生改變後改變

由三個時間戳的定義可知,使用cat命令查看文件會修改atime,使用vim修改文件內容後會修改3個時間戳。
除此以外,使用touch命令能夠自定義文件的atime和mtime。ide

# 自定義文件的atime
touch -a -d "2019-10-10 20:00" anaconda-ks.cfg

# 自定義文件的mtime
touch -m -d "2019-10-20 20:00" anaconda-ks.cfg

# 自定義文件的atime和mtime
touch -d "2019-10-30 20:00" anaconda-ks.cfg

軟連接和硬連接的區別

對比 硬連接 軟連接
同一文件
支持跨分區
支持連接目錄
inode 相同 不一樣
建立連接文件後原文件的連接數 增長 不變
原文件的相對路徑 相對於當前工做目錄 相對於軟連接文件的相對路徑
刪除原文件 連接數減一,能夠訪問硬連接文件 沒法訪問軟連接文件
文件類型 和原文件相同 連接文件

實際的演示以下圖:
Linux基礎知識(二):文件管理日誌

Linux文件管理類命名總結

(1)ls命令能夠查看當前目錄或者指定目錄的內容code

# 查看當前目錄下的全部文件
ls -a
# 查看/boot目錄下文件的詳細信息
ls -l /boot

(2)stat命令能夠查看文件狀態信息blog

# 查看anaconda-ks.cfg文件的狀態信息
stat anaconda-ks.cfg

(3.)file命令用於查看指定文件的文件類型進程

# 查看/dev/sda的文件類型
file /dev/sda

(4.)touch命令用於建立空文件和修改文件的時間戳it

# 建立空文件
touch file1

# 修改文件的時間戳
touch anaconda-ks.cfg
touch -d "2019-10-30 20:00" anaconda-ks.cfg

(5)cp命令用於複製文件table

# 複製anaconda-ks.cfg到/tmp目錄
cp anaconda-ks.cfg /tmp

# 複製/etc目錄到/tmp目錄
cp -r /etc/ /tmp

(6)命令用於移動文件或者重命名文件class

# 將anaconda-ks.cfg重命名爲test.txt
mv anaconda-ks.cfg test.txt

# 將test.txt移動到/tmp目錄
mv test.txt /tmp

(8)rm命令用於刪除文件

# 刪除anaconda-ks.cfg文件
rm anaconda-ks.cfg

# 刪除/opt目錄
rm -rf /opt

刪除文本行首的空白字符

要求:複製/etc/profile到/tmp/目錄,用查找替換命令刪除/tmp/profile文件中行首的空白字符

  1. 複製profile文件,而後用vim打開

    cp /etc/profile /tmp/
    vim /tmp/profile
  2. 輸入「/^[[:blank:]]+」後按回車鍵能夠查看到文件行首的空白字符
    Linux基礎知識(二):文件管理
  3. 輸入「:%s#^[[:blank:]]+##g」後按回車鍵能夠刪除全部行首的空白字符
    Linux基礎知識(二):文件管理
    Linux基礎知識(二):文件管理

設置vim的tab縮進爲4個字符

臨時生效:擴展命令模式下輸入set tabstop=4,而後按回車鍵

對當前用戶永久生效:echo 'set tabstop=4' >> $HOME/.vimrc

對全部用戶永久生效:echo 'set tabstop=4' >> /etc/vimrc

相關文章
相關標籤/搜索