第二週內容

一、描述Linux發行版的系統目錄名稱命名規則以及用途。

Linux系統基礎目錄的命名法則:

        -  嚴格區分大小寫
        - 目錄也是文件,在同一路徑下,兩個文件不能同名
        - 支持使用除 / 之外的任意字符
        - 最長字符不能超過255個字符
  Linux 根下目錄及用途
           /bin  存放二進制可執行文件(ls,cat,mkdir等),經常使用命令通常都在這裏
            /etc  配置文件
            /home 用戶家目錄
            /root 超級用戶(系統管理員)的主目錄
            /sbin 存放二進制可執行文件,超級權限用戶才能訪問
            /dev  設備文件
            /mnt  臨時文件系統的安裝點
            /boot 存放用於系統引導時使用的各類文件
            /lib  存放跟文件系統中的程序運行所須要的共享庫及內核模塊
            /var  用於存放運行時須要改變數據的文件

2. 描述文件的元數據信息有哪些,分別表示什麼含義,如何查看?如何修改文件的時間戳信息?

元數據信息包含:
File:文件名
Blocks:文件所佔塊個數
IO Block:每一個數據塊的大小(單位:B)
regular file:普通文件(此處顯示文件的類型)
Inode:文件的Inode號,文件的索引節點號
Links:硬連接次數
Access:權限
Uid:(屬主id/屬主名)
Gid:(屬組id/屬組名)
Context:文件所在的環境
Access:最近訪問時間
Modify:數據改動時間
Change:元數據改動時間node

          • Creat/Birth-文件建立時間
          • 查看文件的元數據的方法:
            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: -

3. 總結軟硬鏈接的區別,並用實例操做說明

軟鏈接:其實就是新創建一個文件,這個文件就是專門用來指向別的文件的(和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
 
 

4.linux 上文件管理類命令有哪些,其經常使用 的使用方面及其相關示例演示

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:顯示當前目錄

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

 
 
[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
相關文章
相關標籤/搜索