Linux基础知识--2.Linux的文件系统和bash的基础特性(1)
Linux基礎知識--linux的文件系統和bash的基礎特性
一.Linux文件系統:
????Linux文件系統中的文件是數據的集合,文件系統不僅包含著文件中的數據而且還有文件系統的結構,所有Linux 用戶和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中
????linux文件系統遵循FHS(Filesystem Hierarchy Standard,文件系統目錄標準),多數Linux版本采用這種文件組織形式。FHS采用了樹行組織文件。
????FHS定義了兩層規范,第一層是,/目錄下面的各個目錄應該要放什么文件數據。第二層是針對/usr及/var 這兩個目錄的子目錄來定義的。
? 根文件系統:(root filesystem)
????/boot:引導文件存放的目錄,內核文件(vmlinuz)、引導加載器(bootloader,grub)都存放此目錄中。
????/bin:供所有用戶使用的基本命令存放的目錄。不能關聯(掛載)至獨立分區,os啟動時即會用到目錄下的程序。
????/sbin:供管理員才能使用的執行命令的存放目錄。不能關聯至獨立分區,os啟動時會用到目錄下的程序。
????/lib:基本共享庫文件和內核模塊文件(/lib/modules)
????/lib64:
????/etc:主機特有的配置文件存放的目錄(大多數為純文本文件)
???? ? ?/etc/opt:專門為opt下的程序存放配置文件的
???? ? ?/etc/X11:專門為X協議程序存放配置文件的。X-->Xmanager-->桌面
????/home:用戶的家目錄,一班普通用戶的家目錄都在此
????/media:便攜式移動設備的掛載點
????/mnt:臨時文件系統的掛載點
????/dev:設備文件和特殊文件的存放目錄
???? ? ?b:block device:塊設備文件。可隨機訪問設備。
???? ? ?c:character device:線性設備。
????/opt:第三方應用程序的安裝目錄。(附件的存放目錄)
????/srv:系統上的服務用到的數據的存放目錄。
????/tmp:臨時文件,當前系統上臨時文件都存放在此目錄中
????以上的目錄除了/boot,/home,/media,/mnt之外的目錄都不能進行關聯
????
????/usr:(universal shared only-read data):全局共享只讀數據目錄
????????/usr/bin:所有用戶都能使用的命令存放目錄。存放系統完成一些基本功能的命令,而不是系統啟動時的所用到的命令的目錄,保證系統擁有完整功能而提供的應用程序。
????????/usr/sbin:
????????/usr/lib:各應用軟件的函數庫文件
????????/usr/lib64:
????????/usr/include:C語言程序頭文件存放的目錄。頭文件時庫文件的調用方式和打開方式
????????/usr/local:取代了/opt。第三方應用程序的安裝目錄。此目錄下還有以下目錄:
???????? ?bin,sbin,lib,lib64,etc,share
????????/usr/share:結構化獨立的數據,存放一些背景文件,doc,man等。
????????/usr/X11R6:Xwindows system
????????/usr/src:源代碼存放的目錄
????/var:variable data file:可變文件目錄
????????/var/cache:Application cache data:應用程序緩存目錄
????????/var/lib:存放可變的狀態數據
????????/var/local:專用于為/usr/local下的應用程序存儲可變數據
????????/var/lock:鎖文件
????????/var/log:日志目錄
????????/var/run:運行中的進程相關的數據,通常用于存放進程的pid文件
????????/var/spool:應用程序的緩存數據
????????/var/tmp:系統重啟產生的臨時數據存儲的目錄
????/proc:偽文件系統:用于輸出內核與進程信息相關的虛擬文件系統
????/sys:偽文件系統:用于輸出當前系統上硬件設備相關信息的虛擬文件系統
????/selinux:security enhanced linux:selinux相關的安全策略信息的存放路徑
? Linux上的應用程序的組成部分:
????二進制程序:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
????庫文件:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64。要么是共享的庫,要么是自己供二次開發的庫
????配置文件:/etc
????幫助文件:/usr/share
二.bash的基礎特性:
????(1)歷史命令:
???? ? history:
????????環境變量:
????????HISTSIZE:命令歷史記錄的條數
????????HISTFILE:~/.bash_history
????????HISTFILESIZE:命令歷史文件中的命令條數。可以修改此環境變量來改變歷史文件存放
????????命令的條數
????? ?history -d OFFSET
????? ?????-c清楚緩存
????????? ?-a:手動追加當前會話緩沖區的命令歷史至歷史文件中。
????? ?history #:顯示歷史命令最近的#條命令
????? ?調用命令的快捷鍵:
????????!#:執行第#號命令
????????!!:
????????!string:執行最近一次一string開頭的命令
???? ? 調用上一條命令的最后一個參數
????????!$
????????ESC,.
??????控制命令歷史的記錄方式:
????????環境變量:HISTCONTROL
???????? ?ignoredups:忽略重復的命令,重復且連續
???????? ?ignorespace:忽略所有以空白字符開頭的命令
???????? ?ignoreboth:==ignoredups,ignorespace
????? ?hash:
????? ?linux系統下會有一個hash表,當你剛開機時這個hash表為空,每當你執行過一條命令
????? ?時,hash表會記錄下這條命令的路徑,就相當于緩存一樣。第一次執行命令shell解釋器
????? ?默認的會從PATH路徑下尋找該命令的路徑,當你第二次使用該命令時,shell解釋器首先
???? ??會查看hash表,沒有該命令才會去PATH路徑下尋找。
????(2)命令補全:
???? bash執行的命令:
????? ?內部命令:
????? ?外部命令:bash根據PATH環境變量定義的路徑,自左而右在每一路徑搜尋以命令名的文件
????????第一次找到即為要執行的命令所在的目錄。
????? ?直接補全:tab鍵,用戶給定的字符串至于一條唯一對應的命令
????(3)路徑補全:
????? ?把用戶給出的字符串當做路徑的開頭,并在其指定上級目錄下搜尋已指定的字符串開頭的
???????的文件名;如果唯一則補全,否則,再tab就會列出文件列表
????(4)命令行展開:
????? ?~:展開為用戶的主目錄
????? ?~USERNAME:展開為指定用戶的主目錄
????? ?{}:可承載一個一逗號分隔的列表,并將其召開為多個路徑
????????/tmp/{a,b} ==>/tmp/a ?/tmp/b
????????/tmp/{a,b}/hi ==> /tmp/a/hi /tmp/b/hi
????????/tmp/{x,y}_{m,n} ==> /tmp/x_m /tmp/x_n /tmp/y_m /tmp/y_n
????(5)命令的執行狀態結果
????????執行成功:當上一條命令執行成功后,再次執行echo $? 查看執行狀態;0表示成功。
????????如: ? ??????
??????????[root@localhost?~]#?lsa??anaconda-ks.cfg??install.log??install.log.syslog[root@localhost?~]#?echo?$?0????????執行失敗:當上一條命令執行成功后,再次執行echo $? 查看執行狀態;1-255表示失
????????敗。如: ? ?
????????[root@localhost?~]#?lls-bash:?lls:?command?not?found[root@localhost?~]#?echo?$?127????????bash使用特殊變量$?保存最近一次執行命令的狀態結果。
程序執行結果有兩類:
命令執行的返回值:
命令執行狀態結果:
轉載于:https://blog.51cto.com/zkchang/1685358
總結
以上是生活随笔為你收集整理的Linux基础知识--2.Linux的文件系统和bash的基础特性(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iphone8为什么没人买
- 下一篇: iphone8是双卡吗(iPhone8是