文件管理與VIM

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

在Linux系統中,目錄被組織成一個:單根倒置樹結構,文件系統從根目錄開始,用/來表示。文件名稱區分大小寫(大小寫敏感還須要看具體的文件系統格式),以.開頭的爲隱藏文件,路徑用/來進行分割(windows中使用\來分割),文件有兩個種類:元數據與數據自己.在操做linux系統時,一般會遵循如下的分層結構規則:node

LSB (Linux Standard Base) / FHS(Filesystem Hierarchy Standard)linux

clip_image001

/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放於此目錄 vim

/bin:全部用戶使用的基本命令;不能關聯至獨立分區,OS啓動即會用到的程序 windows

/sbin:管理類的基本命令;不能關聯至獨立分區,OS啓動即會用到的程序 ,給root帳戶使用。緩存

/lib:啓動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules) 安全

/lib64:專用於x86_64系統上的輔助共享庫文件存放位置 less

/etc:配置文件目錄 ide

/home/USERNAME:普通用戶家目錄 工具

/root:管理員的家目錄 spa

/media:便攜式移動設備掛載點

/mnt:臨時文件系統掛載點

/dev:設備文件及特殊文件存儲位置

b: block device,隨機訪問

c: character device,線性訪問

/opt:第三方應用程序的安裝位置

/srv:系統上運行的服務用到的數據

/tmp:臨時文件存儲位置

/usr: universal shared, read-only data

bin: 保證系統擁有完整功能而提供的應用程序

sbin: 給root帳戶使用。

lib:32位使用

lib64:只存在64位系統

include: C程序的頭文件(header files)

share:結構化獨立的數據,例如doc, man等

local:第三方應用程序的安裝位置

bin, sbin, lib, lib64, etc, share

/var: variable data files

cache: 應用程序緩存數據目錄

lib: 應用程序狀態信息數據

local:專用於爲/usr/local下的應用程序存儲可變數據

lock: 鎖文件

log: 日誌目錄及文件

opt: 專用於爲/opt下的應用程序存儲可變數據

run: 運行中的進程相關數據,一般用於存儲進程pid文件

spool: 應用程序數據池

tmp: 保存系統兩次重啓之間產生的臨時數據

/proc: 用於輸出內核與進程信息相關的虛擬文件系統

/sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統

/selinux: security enhanced Linux,selinux相關的安全策略等信息的存儲位置



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

一個文件包括「元數據」與「數據自己」。

meta data(元數據),屬性等,包括時間,全部者,權限,大小等。

data(數據自己)。

  • atime,access time 訪問時間,讀取文件內容,則該時間便會更新。好比對這個文件使用less命令或者more命令。(ls、stat這樣的命令不會修改文件訪問時間)
  • mtime,modify time 修改時間, 文件內容發生改變(數據data),同時它也是默認時間(就是ll看到的時間)。例如使用vim等工具更改了文件內容並保存後,文件修改時間則發生了變化。
  • ctime,change time 改變時間, 元數據發生改變,meta data,也包括data。好比使用chmod命令更改文件屬性,或者執行其餘命令時隱式的附帶更改了文件的屬性若文件大小等。

ll命令,能夠簡單的查看元數據,包括時間,全部者,權限,大小等。

clip_image002

stat 命令,能夠詳細的查看元數據,包括時間,全部者,權限,大小等,也包括3個time時間(atime,mtime,ctime)

clip_image003

linux的touch命令用來修改文件時間戳,或者新建一個不存在的文件。

touch file,若是當前目錄內無該文件,則以當前時間建立空文件;若是當前目錄內有該文件,則以當前時間修改文件時間戳(訪問時間和修改時間);

touch -t YearMonthDateHourMinute file,指定時間修改文件時間戳,時間方式如201402232200。 [[CC]YY]MMDDhhmm[.SS]

這裏,CC爲年數中的前兩位,即」世紀數」;YY爲年數的後兩位,即某世紀中的年數.若是不給出CC的值,則touch 將把年數CCYY限定在1969--2068以內.MM爲月數,DD爲天將把年數CCYY限定在1969--2068以內.MM爲月數,DD爲天數,hh 爲小時數(幾點),mm爲分鐘數,SS爲秒數.此處秒的設定範圍是0--61,這樣能夠處理閏秒.這些數字組成的時間是環境變量TZ指定的時區中的一個時間.因爲系統的限制,早於1970年1月1日的時間是錯誤的。

touch -a file,只修改訪問時間(access timestamp)

touch -m file,只修改修改時間(modify timestamp)

find . -name "*" -print0 | xargs -0 -I '{}' touch -r '{}' -d '-3 month' '{}',對查找的全部文件,修改時間戳,減 3 個月。

用touch 修改atime或者mtime:

clip_image004

讀取文件,會改變atime。例如more 文件。

修改文件內容,會改變mtime。例如vim 文件。

更改文件屬性,會改變ctime。例如chmod 文件。


2.三、總結軟鏈接和硬鏈接區別,並用實例操做說明。

軟連接,ln -s filename ​​[linkname],軟連接的大小就是指向的文件的路徑,相似於windows中的快捷方式。軟連接能夠跨設備跨分區。能夠針對文件夾建立。

clip_image005

硬連接,ln filename [linkname ],在一個分區裏面針對同一文件的多個名字,不能跨設備/分區,且不支持文件夾(不然會產生循環現象)。

clip_image006

軟連接和硬連接的區別:

 

硬連接

軟連接

命令實現

ln filename ​​[linkname]

ln -s filename ​​[linkname]

本質

同一個文件,多個名字

不一樣文件,inode不一樣

跨分區/設備

×

對目錄建立

×

相互關係

平等關係,大不了鏈接數-1

有依賴關係,刪了原始文件,軟連接會失效

inode number

相同

不一樣

連接數

會變化,增加/減小

不變

原始文件路徑

原始文件路徑,相對的是當前工做目錄。

原始文件路徑,相對的是軟連接的路徑,而不是相對於當前工做目錄

文件類型

和源文件一致

l開頭的軟連接


2.四、Linux上的文件管理類命令都有哪些,其經常使用的使用方法及示例。

正文

複製:cp

cp [OPTION]... [-T] SOURCE DEST

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

cp SRC DEST

clip_image007

查看屬性:ls

用法:ls [options] [files_or_dirs]

clip_image008

查看文件狀態:stat

clip_image009

建立空文件和刷新時間

格式:touch [OPTION]... FILE...

clip_image010

移動和重命名文件

mv [OPTION]... [-T] SOURCE DEST

mv [OPTION]... SOURCE... DIRECTORY

mv [OPTION]... -t DIRECTORY SOURCE...

clip_image011

tree 顯示目錄樹

mkdir 建立目錄

rmdir 刪除空目錄

rm -r 遞歸刪除目錄樹


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

cp /etc/profile /tmp/

vim /tmp/profile

先查找

/^[[:blank:]]\+ //^表示行首,[:blank:]表示水平空白,+表示到末

clip_image012

再替換,全局替換

格式:s/要查找的內容/替換爲的內容/修飾符

要查找的內容:可以使用模式

替換爲的內容:不能使用模式。

修飾符:

i 忽略大小寫

g 全局替換,默認狀況下,每一行只替換第一次出現

gc 全局替換,每次替換前詢問

所以,這裏替換用以下語句後,回車。

:%s/^[[:blank:]]\+//g

clip_image013


2.六、在vim中設置tab縮進爲4個字符

永久設置:

echo "set tabstop=4" >> /etc/vimrc

clip_image014

相關文章
相關標籤/搜索