程序的組成部分:二進(jìn)制程序文件、庫文件、配置文件、幫助文件
? ? 二進(jìn)制文件、庫文件:可執(zhí)行文件
庫文件:不能獨(dú)立執(zhí)行,只能被調(diào)用執(zhí)行
配置文件、幫助文件:可被查看其內(nèi)容的文件
Linux文件:
1、文件名嚴(yán)格區(qū)分字符大小寫;file1, File1, FILE1是不同的文件;
2、文件名可使用除/以外的任意字符,不建議使用特殊字符;
/: 根目錄,路徑分隔符;
3、文件名長(zhǎng)度最長(zhǎng)不能超過255個(gè)字符;
4、所以.開頭的文件,均為隱藏文件;
路徑:
絕對(duì)路徑:從根目錄起始的路徑;
相對(duì)路徑:對(duì)當(dāng)前位置起始的路徑;
當(dāng)前位置的表示方式:
(1) ./: ./sysconfig/network-scripts
(2) 省略上述符號(hào): sysconfig/network-scripts
..:表示當(dāng)前目錄的上一級(jí)目錄
當(dāng)前目錄:current directory, 也稱作working directory;
pwd: printing working directory
LSB: Linux Standard Base
命令總結(jié):ls, cd, type, tty, cat, which, whereis, pwd, echo
命令:
(1) 文件系統(tǒng)相關(guān):
目錄管理
文件管理
文件查看
文件編輯
(2) 系統(tǒng)管理相關(guān):
終端:
用戶與主機(jī)交互,必然用到的設(shè)備;
物理終端:直接接入本機(jī)的顯示器和鍵盤設(shè)備;/dev/console
虛擬終端:附加在物理終端之上的以軟件方式虛擬實(shí)現(xiàn)的終端,CentOS 6默認(rèn)啟動(dòng)6個(gè)虛擬終端
Ctrl+Alt+F#: [1,6]
圖形終端:附加在物理終端之上的以軟件方式虛擬實(shí)現(xiàn)的終端,但額外會(huì)提供桌面環(huán)境;
設(shè)備文件路徑:/dev/tty#
模擬終端:
圖形界面下打開的命令行接口,基于ssh協(xié)議或telnet協(xié)議等遠(yuǎn)程打開的界面
設(shè)備文件:/dev/pts/#? ? [0,oo)
查看當(dāng)前的終端設(shè)備:tty
交互式接口:?jiǎn)?dòng)終端后,在終端設(shè)備附加一個(gè)交互式應(yīng)用程序
GUI:
X protocol, window manager, desktop
Desktop:
GNOME (C, gtk)
KDE? (C++, qt)
XFCE? (輕量級(jí)桌面)
CLI:
shell程序:
sh (bourn)
csh
tcsh
ksh (korn)
bash (bourn again shell), GPL
zsh
顯示當(dāng)前使用的shell:
# echo ${SHELL}
顯示當(dāng)前系統(tǒng)使用的所有shell:
# cat /etc/shells
命令提示符:prompt
[root@localhost ~]#
[root@localhost ~]:PS1
prompt:
管理員:#
普通用戶:$
命令:
輸入命令,回車:
發(fā)起一命令:請(qǐng)求內(nèi)核將某個(gè)二進(jìn)制程序運(yùn)行為一個(gè)進(jìn)程
提請(qǐng)shell程序找到鍵入命令所對(duì)應(yīng)的可執(zhí)行程序或代碼,并由其分析后提交給內(nèi)核分配資源將其運(yùn)行起來;
表現(xiàn)為一個(gè)或多個(gè)進(jìn)程;
? 由程序態(tài)---->進(jìn)程
? 靜態(tài)---->動(dòng)態(tài)(有生命周期)
? 命令本身是一個(gè)可執(zhí)行程序文件:二進(jìn)制格式的文件,有可能會(huì)調(diào)用共享庫文件
? 多數(shù)程序文件都存放在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
在shell中可執(zhí)行的命令有兩類:
內(nèi)建命令:由shell自帶的,而且通過某命令形式提供;
外部命令:在當(dāng)前系統(tǒng)的某文件系統(tǒng)路徑下有對(duì)應(yīng)的可執(zhí)行程序文件;
which,whereis
區(qū)別內(nèi)部或外部命令:
# type COMMAND
Shell程序是獨(dú)特的程序,負(fù)責(zé)解析用戶提供的命令
shell程序搜尋可執(zhí)行程序文件的路徑定義在PATH環(huán)境變量中;
# echo $PATH
注意:自左至右
? ? ? ? 庫文件:
運(yùn)行命令時(shí)如需調(diào)用標(biāo)準(zhǔn)庫或者其他庫,庫文件需調(diào)入內(nèi)存內(nèi)。
庫文件就是公共功能性程序,不能獨(dú)立執(zhí)行。多數(shù)存放在/lib,/lib/64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
? ? ? ? Linux的可執(zhí)行文件:ELF文件
? ? ? ? 通過 file命令查看文件類型
運(yùn)行命令:
命令格式:
COMMAND [OPTIONS...] [ARGUMENTS...]
選項(xiàng):指定目錄運(yùn)行特性;
短選項(xiàng):-c, 例如:-l, -h (有些選項(xiàng)沒有-)
多個(gè)短選項(xiàng)可命令使用,例如-l -h, 可寫作-lh;
長(zhǎng)選項(xiàng):--word,例如:--long, --human-readable
長(zhǎng)選項(xiàng)不能合并
注意:有些選項(xiàng)可以帶參數(shù),稱為選項(xiàng)參數(shù)
參數(shù):命令的作用對(duì)象
向命令提供數(shù)據(jù);
不同命令的參數(shù)格式不一樣
多個(gè)參數(shù)要用空格分開
注意:
1、多選項(xiàng),以及多參數(shù)和命令之間都應(yīng)該使用空白字符分隔
2、取消命令執(zhí)行:Ctrl+c
Linux命令幫助的獲取
外部命令:都有一個(gè)可執(zhí)行程序,位于文件系統(tǒng)某目錄下;
which, whereis
? ? ? 內(nèi)部命令幫助:
# help COMMAND
hash命令:
shell搜尋到的外部命令的路徑結(jié)果會(huì)緩存至kv(key-value)存儲(chǔ)中;
history命令:
作用是什么?相關(guān)的環(huán)境變量是什么?有用的選項(xiàng)?
管理命令歷史;
登錄shell時(shí),會(huì)讀取命令歷史文件中記錄下的命令:~/.bash_history
登錄進(jìn)shell后新執(zhí)行的命令只會(huì)記錄在緩存中;這些命令會(huì)用戶退出時(shí)“追加”至命令歷史文件中;
history:
-a: 追加本次會(huì)話新執(zhí)行的命令歷史列表至歷史文件中;
-d: 刪除歷史中指定的命令;
-c: 清空命令歷史;
快捷操作:
!#: 調(diào)用歷史中第#條命令;
!string:調(diào)用歷史中最近一個(gè)以string開頭的命令;
!!: 上一條命令
外部命令幫助獲取:
(2) man COMMAND
? ? 使用手冊(cè):壓縮格式的文件,有章節(jié)之分
手冊(cè)頁:/usr/share/man
man1 ... man8
man1: 用戶命令
man2: 系統(tǒng)調(diào)用
man3: C庫調(diào)用
man4: 設(shè)備文件及特殊文件
man5: 配置文件格式
man6: 游戲使用幫助
man7: 雜項(xiàng)
man8: 管理工具
注意:有些關(guān)鍵在不止一個(gè)章節(jié)中存在幫助手冊(cè);
要查看指定章節(jié)中的手冊(cè):man # COMMAND
查看命令有哪些章節(jié)的幫助;whatis COMMAND (其執(zhí)行過程是查詢數(shù)據(jù)庫進(jìn)行的)
手動(dòng)更新數(shù)據(jù)庫;makewhatis
man命令的配置文件:/etc/man.config
MANPATH /PATH/TO/SOMEWHERE: 指明新的手冊(cè)文件搜索位置
# man -M /PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手冊(cè)頁并顯示之;
幫助手冊(cè)中的段落說明:
NAME 功能性說明
SYNOPSIS 語法格式
DESCRIPTION 描述
OPTIONS 選項(xiàng)
EXAMPLES 使用示例
AUTHOR 作者
REPORTING BUGS 報(bào)告程序BUG的方式
SEE ALSO 參考
SYNOPSIS:
[]:可選內(nèi)容
<>: 必選內(nèi)容
a|b:二選一
...: 同一內(nèi)容可出現(xiàn)多次
man命令打開手冊(cè)以后的操作方法:
空格, : 向文件尾翻屏;
b, : 向文件首部翻屏;
Ctrl+d, : 向文件尾部翻半屏;
Ctrl+u, : 向文件首部翻半屏;
回車鍵: 向文件尾部翻一行;
Ctrl+k:向文件首部翻一行;
q: 退出;
#:跳轉(zhuǎn)至第#行;
1G: 回到文件首部
G:翻至文件尾部
文本搜索:
/KEYWORD:
以KEYWORD指定的字符串為關(guān)鍵字,從當(dāng)前位置向文件尾部搜索;不區(qū)分字符大小寫;
n: 跟搜索命令同方向
N:跟搜索命令反方向
?KEYWORD:
以KEYWORD指定的字符串為關(guān)鍵字,從當(dāng)前位置向文件首部搜索;不區(qū)分字符大小寫;
n: 跟搜索命令同方向
N:跟搜索命令反方向
(3) info 獲取命令在在線文檔
info COMMAND
(4) 程序自身的幫助文檔
/usr/share/doc/COMMAND-VERSION
? README:程序的相關(guān)信息
? INSTALL:安裝幫助
? CHANGES:版本迭代時(shí)的改動(dòng)信息
(5) 程序官方文檔
? ? 官方站點(diǎn)上的“Document”
(6) 發(fā)行版的官方文檔
http://www.redhat.com/docs
(7) 搜索引擎 Google
(8) slideshare
http://www.slideshare.net/
? ? 推薦的出版社:
o`Reiley
Wrox
機(jī)械工業(yè)出版社
電子工業(yè)出版社
清華大學(xué)出版社