Linux不僅系統(tǒng)性能穩(wěn)定,而且是開源軟件。其核心防火墻組件性能高效、配置簡單,保證了系統(tǒng)的安全。
1. shell是Linux的一個重要層次,是用戶與系統(tǒng)交互的界面。
2. Linux默認(rèn)的shell是bash
3. shell的特點:
(1) 對已有命令進行適當(dāng)組合,構(gòu)成新的命令。如建立shell腳本。
(2) 提供文件名擴展字符,使得用單一字符串可以匹配多個文件名,省去輸入一長串文件名的麻煩。
(3) 可以直接使用shell內(nèi)置命令,而無需創(chuàng)建新的進程。
(4) 允許靈活的使用數(shù)據(jù)流,提供通配符、輸入輸出重定向、管道線等機制,方便模式匹配、IO處理和數(shù)據(jù)傳輸。
(5) 結(jié)構(gòu)化的程序模塊,提供順序、條件、循環(huán)等控制流程。
(6) 提供在后臺執(zhí)行命令的能力。
(7) 提供可配置的環(huán)境,允許用戶創(chuàng)建和修改命令、命令提示符和其他系統(tǒng)行為。
(8) 提供一個高級命令語言,允許用戶創(chuàng)建從簡單到復(fù)雜的程序。
4. shell程序也可以放在文件上,稱為shell腳本。
5. #!/bin/bash 表示下面的腳本使用bash編寫的,必須調(diào)用bash程序?qū)λ忉寛?zhí)行。
6. 執(zhí)行shell腳本的方式:
(1) 輸入定向到shell腳本。用輸入重定向方式讓shell從給定文件中讀入命令行,并進行相應(yīng)處理。 (2) 以腳本名作為bash參數(shù)。 (3) 將shell腳本的權(quán)限設(shè)置為可執(zhí)行,然后在提示符下直接執(zhí)行。
7. shell腳本名可直接作為命令名使用。
8. 事件表示一個操作已經(jīng)發(fā)生,即命令已被執(zhí)行。顯示的行命令之前的數(shù)字表示相應(yīng)命令行在命令歷史表中的序號,稱為歷史事件號。歷史事件號從1開始順序向下排,最后執(zhí)行的命令的事件號最大。
9. 歷史文件中能夠保留的命令個數(shù)有限,默認(rèn)值是500.如果用戶輸入的命令太多,超過限定值,最早輸入的命令就會從歷史表中刪除。
10. 一般通配符:
(1)*(星號)
匹配任意字符的0次或多次出現(xiàn)。
(2)?(問號) 匹配任意一個字符。
(3)[字符組]
匹配該字符組所限定的任何一個字符。
(4)!(驚嘆號) 表示非
11. shell中的三種引號:
(1) 單引號 (2) 雙引號 (3) 倒引號
12. 雙引號括起來的字符均作為普通字符對待。除 $ `(倒引號) \(反斜杠)。
13. 由單引號括起來的字符都作為普通字符出現(xiàn)。特殊字符也失去原來的意義。
14. 倒引號括起來的字符串被shell解釋為命令行,在執(zhí)行時,shell會先執(zhí)行該命令行,并以它的標(biāo)準(zhǔn)輸出結(jié)果取代整個倒引號部分。
15.執(zhí)行一個shell命令時,通常會自動打開三個標(biāo)準(zhǔn)文件:標(biāo)準(zhǔn)輸入文件(stdin)、標(biāo)準(zhǔn)輸出文件(stdout)、標(biāo)準(zhǔn)出錯輸出文件(stderr)。分別對應(yīng)鍵盤、屏幕、屏幕終端。
16.輸入重定向符:< 把命令(或可執(zhí)行程序)的標(biāo)準(zhǔn)輸入重新定向到指定文件。
17.輸出重定向符:> 把命令(或可執(zhí)行程序)的標(biāo)準(zhǔn)輸出重新定向到指定文件。這樣該命令的輸出就不會在屏幕上顯示,而是寫入指定文件中。
18.shell以“#”開頭的正文行表示注釋。
19.shell腳本第一行以“#!”開頭,后面所跟的字符就是所使用的shell絕對路徑名。
20.管道線是由豎杠(|)隔開的若干命令組成的序列。
21.在管道線中,每個命令執(zhí)行時都有一個獨立的進程。前一個命令的輸出正是下一個命令的輸入。
22.后臺命令:在一條命令的最后輸入&符號。
23.后臺進程的優(yōu)先級都低于前臺進程的優(yōu)先級。
24.成組命令:可以將若干命令組合在一起,使其在邏輯上視為一條命令。
25.成組命令兩種方式
(1) { }形式
不產(chǎn)生新的進程
{}括起來的全部命令可視為語法上的一條命令,出現(xiàn)在管道符的一邊。成組命令把各命令的執(zhí)行結(jié)果匯集在一起,形成一個輸出流。這個流作為該管道線中下一個命令的輸入。
(2) ()形式
產(chǎn)生新的進程
在新的子shell內(nèi)執(zhí)行,不會改變父shell的變量值及工作目錄。
26.shell兩類變量:
(1) 環(huán)境變量 (2) 臨時變量
27.在程序中使用變量的值時,要在變量名前加一個$符,要進行變量值替換。
28.bash只提供一位數(shù)組,并且沒有限定數(shù)組的大小。
29.可以利用read命令從鍵盤上讀取數(shù)據(jù),然后賦給指定的變量。
30.用戶注冊過程中系統(tǒng)需要做的一件事就是建立用戶環(huán)境。所有的Linux進程都有各自獨立且不同于程序本身的環(huán)境。Linux環(huán)境由許多變量即這些變量的值組成。這些變量和變量的值決定了用戶環(huán)境的外觀。
31.set命令的三個功能:
(1) 顯示迄今為止所定義的全部變量,包括局部變量和公用變量。 (2) 設(shè)定位置參數(shù)的值。
(3) 改變執(zhí)行shell腳本時的選項設(shè)定,可使用戶改變shell的功能。
32.jobs命令
不帶參數(shù)時,可列出當(dāng)前尚未完成的作業(yè)。
33.bg命令
把前臺作業(yè)切換成后臺作業(yè)。僅當(dāng)作業(yè)控制被激活,這個命令才起作用。
34.fg命令
把后臺作業(yè)切換成前臺作業(yè)。僅當(dāng)作業(yè)控制被激活,這個命令才起作用。
35.編寫腳本基本的錯誤類型:
(1)語法錯誤 (2)邏輯錯誤