1. 程式人生 > >Linux學習之目錄結構和根檔案系統

Linux學習之目錄結構和根檔案系統

目錄結構和根檔案系統

1、Linux結構
結構圖
2、Linux檔案系統
(1)程式編譯方式

1、動態連結編譯:動態編譯的可執行檔案需要附帶一個動態連結庫,執行時呼叫連結庫中的庫檔案。
2、靜態連結編譯:在編譯時將庫檔案提出來放在該執行檔案中,不依賴動態連結庫

注意:庫檔案只有被呼叫時才能執行,並不能獨立自主執行
(2)使用者互動式系統:終端
終端:硬體裝置,關聯一個使用者介面(使用者在此介面可對系統進行操作)
(3)程序的型別
A、與終端相關:通過終端啟動
B、與終端無關:操作引導啟動過程中自動啟動
(4)作業系統的組成
靜態:kernel+application
(5)檔案系統——層次結構
A、FHS——Filesystem Hierarchy Standard——檔案系統層次結構標準
B、結構介紹
/bin:所有使用者可用的基本命令程式檔案
/sbin:供系統管理使用的工具程式
/boot:引導載入器必須用到的各種靜態檔案——grub、kernel、initramfs
/dev——device files:裝置檔案——儲存特殊檔案或裝置檔案
裝置分類
(1)字元裝置:(線性裝置-有時序)資料交換以字元為單位進行(例:鍵盤、顯示器)
(2)塊裝置:隨機訪問,將多個字元打包成一個塊進行資料交換(例:硬碟)


/etc:系統程式的配置檔案,只能為靜態不能為二進位制;且有自己的獨立層級結構
(opt、xll、sgml、xml)
/home:普通使用者家目錄幾種位置(一般每個普通家目錄預設在此目錄下與使用者同名的子目錄)
/lib:為系統啟動根檔案系統上的應用程式(/bin,/sbin等)提供共享庫,以及為核心提供核心模組
libc.so.* :動態連結c庫
ld *:執行時連結器/載入器
modules:用於儲存核心模組的目錄

/lib64:64位系統特有的存放64位共享庫的路徑
/media:行動式裝置掛載點:cdrom、floppy
/mnt:其它檔案系統臨時掛載點
/opt:附加程式的安裝位置(第三方程式路徑:可選路徑)
/root:管理員的家目錄(可選)
/srv:當前主機為服務提供的資料
/tmp:為那些會產生臨時檔案的程式提供用於儲存臨時檔案的目錄(可供所有使用者執行寫入操作——有特殊許可權)
/usr:(Usr Hierarchy)全域性共享的只讀資料路徑,也有自己的層級結構如下

  • bin\sbin
  • lib\lib64
  • include:c語言標頭檔案
  • share:命令手冊頁,命令自帶文件等架構特有的檔案儲存位置
  • local:另一個層級目錄
  • x11R6:X-Windows程式的安裝位置
  • src:程式原始碼檔案儲存位置

/usr/local:local Hierarchy—讓系統管理員安裝本地應用程式,也通常用原裝第三方程式也是一個層級結構。
/var:也是一個hierarchy—層級結構;儲存常常發生變化的目錄(日誌-log)
/proc:基於記憶體的虛擬檔案系統,用於為核心以及程序儲存其相關資訊;多為核心引數(如:net.ipv4.ip-forward,虛擬為net/ipv4/ip-forword,儲存於/proc/sys/下,因此完整的路徑為/proc/sys/net/ipv4/ip-forword)
/sys:sysfs虛擬檔案系統提供了一種比proc更為理想的訪問核心資料的途徑,其主要作用在於管理Linux裝置提供一種統一模型介面。
檔案系統縮圖


3、Linux基礎命令及命令歷史
(1)Linux系統上檔案型別:此檔案型別基於檔案系統視角檢視其檔案型別而並非使用file命令檢視檔案內容的型別。
(2)基本命令
A、命令型別

	a、外部命令:在系統載入時並不隨系統一起被載入到記憶體中,而是需要時才將其呼叫記憶體——在檔案系統中有對應二進位制執行檔案。
	b、內部命令:在Linux系統載入執行時shell就被載入並駐留在系統記憶體中——在檔案系統中並沒有對應的二進位制檔案。

B、如何檢視內部和外部命令——使用type命令

	[[email protected] lib]# type cd
	cd is a shell builtin
	[[email protected] lib]# type ls
	ls is aliased to `ls --color=auto'
	[[email protected] lib]# type find
	find is /bin/find

內部命令:顯示is a shell builtin
外部命令:顯示為aliased to 'ls --color=auto’或者is /path
注意:命令可以有別名-alias,別名與原名可以相同,此時原名隱藏。若主要使用原命令則在命令前加反斜線,如:\ls
C、如何檢視命令別名

	[[email protected] lib]# alias  					==>用於檢視當前別名列表
	[[email protected] lib]# alias name='command'       ==>用於定義別名
	[[email protected] lib]# alias unalias				==>撤銷別名

注意:只對當前shell系統有效,開啟多個偽終端或登出當前shell後又登入均無效
4、變數
(1)變數名——即有名稱的儲存空間
(2)變數型別(變數內部儲存的積型別:整型、浮點、字元型、布林型)

a、字元型
b、數值型
	精確數值型
	近似數值
c、當型別確定後:儲存格式、資料範圍、參與運算都基本確定了
d、浮點資料如何儲存