在Linux系統中,目錄被組織成一個:單根倒置樹結構,文件系統從根目錄開始,用/來表示。文件名稱區分大小寫(大小寫敏感還須要看具體的文件系統格式),以.開頭的爲隱藏文件,路徑用/來進行分割(windows中使用\來分割),文件有兩個種類:元數據與數據自己.在操做linux系統時,一般會遵循如下的分層結構規則:node
LSB (Linux Standard Base) / FHS(Filesystem Hierarchy Standard)linux
/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相關的安全策略等信息的存儲位置
一個文件包括「元數據」與「數據自己」。
meta data(元數據),屬性等,包括時間,全部者,權限,大小等。
data(數據自己)。
ll命令,能夠簡單的查看元數據,包括時間,全部者,權限,大小等。
stat 命令,能夠詳細的查看元數據,包括時間,全部者,權限,大小等,也包括3個time時間(atime,mtime,ctime)
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:
讀取文件,會改變atime。例如more 文件。
修改文件內容,會改變mtime。例如vim 文件。
更改文件屬性,會改變ctime。例如chmod 文件。
軟連接,ln -s filename [linkname],軟連接的大小就是指向的文件的路徑,相似於windows中的快捷方式。軟連接能夠跨設備跨分區。能夠針對文件夾建立。
硬連接,ln filename [linkname ],在一個分區裏面針對同一文件的多個名字,不能跨設備/分區,且不支持文件夾(不然會產生循環現象)。
軟連接和硬連接的區別:
|
硬連接 |
軟連接 |
命令實現 |
ln filename [linkname] |
ln -s filename [linkname] |
本質 |
同一個文件,多個名字 |
不一樣文件,inode不一樣 |
跨分區/設備 |
× |
✔ |
對目錄建立 |
× |
✔ |
相互關係 |
平等關係,大不了鏈接數-1 |
有依賴關係,刪了原始文件,軟連接會失效 |
inode number |
相同 |
不一樣 |
連接數 |
會變化,增加/減小 |
不變 |
原始文件路徑 |
原始文件路徑,相對的是當前工做目錄。 |
原始文件路徑,相對的是軟連接的路徑,而不是相對於當前工做目錄 |
文件類型 |
和源文件一致 |
l開頭的軟連接 |
正文
複製:cp
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
查看屬性:ls
用法:ls [options] [files_or_dirs]
查看文件狀態:stat
建立空文件和刷新時間
格式:touch [OPTION]... FILE...
移動和重命名文件
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
tree 顯示目錄樹
mkdir 建立目錄
rmdir 刪除空目錄
rm -r 遞歸刪除目錄樹
cp /etc/profile /tmp/
vim /tmp/profile
先查找
/^[[:blank:]]\+ //^表示行首,[:blank:]表示水平空白,+表示到末
再替換,全局替換
格式:s/要查找的內容/替換爲的內容/修飾符
要查找的內容:可以使用模式
替換爲的內容:不能使用模式。
修飾符:
i 忽略大小寫
g 全局替換,默認狀況下,每一行只替換第一次出現
gc 全局替換,每次替換前詢問
所以,這裏替換用以下語句後,回車。
:%s/^[[:blank:]]\+//g
永久設置:
echo "set tabstop=4" >> /etc/vimrc