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