4.命令運行的判斷依據:;、、|| 4.命令運行的判斷依據:;、、|| 4.命令運行的判斷依據:;、、|| 【例7-4】以 ls 測試 /tmp/ 是否存在,若存在則顯示“exist”,若不存在,則顯示“not exist”。 4.命令運行的判斷依據:;、、|| 5.工作環境設置文件 7.3 任務3 熟練掌握正則表達式 grep命令用來在文本文件中查找內容,指定給grep的文本模式叫做“正則表達式”。 正則表達式可以是普通的字母或者數字,也可以使用特殊字符來匹配不同的文本模式。 由于正則表達式使用了一些特殊字符,所以所有的正則表達式都必須用單引號括起來。 正則表達式字符可以包含某些特殊的模式匹配字符。 句點匹配任意一個字符,相當于shell中的問號 緊接句號之后的星號匹配零個或多個任意字符,相當于Shell的星號 方括號的用法跟Shell的一樣,只是用^代替了 !表示匹配不在指定列表內的字符 正則表達式匹配字符、量詞 、控制字符 正則表達式的模式匹配字符 與模式匹配字符配合使用的量詞 正則表達式的控制字符 正則表達式舉例 help匹配包含help的行 \..$匹配倒數第二個字符是句點的行 ^...$匹配只有3個字符的行 ^[0-9]\{3\}[^0-9]匹配以3個數字開頭跟著是一個非數字字符的行 ^\([A-Z][A-Z]\)*$匹配只包含偶數個大寫字母的行 正則表達式舉例 正則表達式舉例 正則表達式舉例 7.3.4 子任務4 練習基礎正則表達式 7.3.4 子任務4 練習基礎正則表達式 7.3.4 子任務4 練習基礎正則表達式 7.3.4 子任務4 練習基礎正則表達式 7.3.4 子任務4 練習基礎正則表達式 7.3.4 子任務4 練習基礎正則表達式 7.3.4 子任務4 練習基礎正則表達式 7.3.4 子任務4 練習基礎正則表達式 (3)行首與行尾字節^ $。
7.1.3 子任務3 使用vim命令 在編輯模式下,輸入如表所示的命令均可進入插入模式 文件相關命令 使用下表中的命令可以在Vi中進行文件相關的操作 字符串搜索、替換和刪除 使用下表中的命令可以進行字符串的相關操作 文本的復制、刪除和移動 使用下表中的命令,可以進行文本的相關操作 7.1.4 子任務4 完成案例練習 (1)在/tmp 目錄下建立一個名為 mytest 的目錄,進入 mytest 目錄當中。 (2)將/etc/man.config 復制到本目錄下面,使用 vi 打開本目錄下的 man.config 文件。 (3)在vi 中設定行號,移動到第 58 行,向右移動 40 個字符,請問你看到的雙引號內是什么目錄? (4)移動到第一行,并且向下查找bzip2這個字符串,請問它在第幾行? (5)接著下來,我要將 50 到 100 行之間的man字符串改為大寫MAN字符串,并且一個一個挑選是否需要修改,如何下達命令?如果在挑選過程中一直按y, 結果會在最后一行出現改變了幾個 man 呢? 7.1.4 子任務4 完成案例練習 (6)修改完之后,突然反悔了,要全部復原,有哪些方法? (7)要復制 65 到 73 這9行的內容(含有),并且粘貼到最后一行之后。
(8)21 到 42 行之間的開頭為 # 符號的批注數據如果不要了,要如何刪除? (9)將這個文件另存成一個 man.test.config 的文件。 (10)去到第 27 行,并且刪除 15 個字符,結果出現的第一個單字是什么? 在第一行新增一行,該行內容輸入“I am a student...”; 然后存盤后離開。 7.1.4 子任務4 完成案例練習 DEMO 教師演示或學生完成 7.1.5 子任務5 了解vim編輯環境 7.1.5 子任務5 了解vim編輯環境 7.2 任務2 熟練掌握shell 1. 項目課題引入 2. Shell的概念與原理 3. Shell環境變量的設置 4. Shell腳本的設計與運行(初步) 5. 現場演示案例 課題引入——項目分析 完成本項目需要解決的問題: 1、Linux中shell是什么,有什么功能 2、如何設定和使用Shell的環境變量 3、如何利用shell進行腳本程序的設計 課題引入——教學目標 學習本課需要實現的教學目標: 掌握shell的基本命令 掌握shell的基本概念和作用 掌握shell環境變量概念和使用方法 掌握shell程序的結構和設計方法 能夠完成本課程提出的項目內容 課題引入——應達到的職業能力 學生學習本課后應該具有的職業能力: 熟練掌握Vi編輯器的使用 深入理解shell的思想 掌握shell變量和環境變量的設置 能夠進行基本的shell程序設計 能夠讀懂Linux操作系統中的系統腳本 7.2.1 子任務1 了解shell的基本概念 Shell就是用戶與操作系統內核之間的接口,起著協調用戶與系統的一致性和在用戶與系統之間進行交互的作用。
Shell最重要的功能是命令解釋,從這種意義上來說,Shell是一個命令解釋器。Linux系統中的所有可執行文件都可以作為Shell命令來執行。 將可執行文件作一個分類,如表所示 Shell完成命令的解釋過程 當用戶提交了一個命令后,Shell首先判斷它是否為內置命令,如果是就通過Shell內部的解釋器將其解釋為系統功能調用并轉交給內核執行。 若是外部命令或實用程序就試圖在硬盤中查找該命令并將其調入內存,再將其解釋為系統功能調用并轉交給內核執行。 在查找該命令時分為兩種情況: 用戶給出了命令路徑,Shell就沿著用戶給出的路徑查找,若找到則調入內存,若沒有則輸出提示信息 用戶沒有給出命令的路徑,Shell就在環境變量PATH所制定的路徑中依次進行查找,若找到則調入內存,若沒找到則輸出提示信息Shell的主要版本 下表列出了幾種常見的Shell版本 7.2.2 子任務2 認識shell環境變量 Shell支持具有字符串值的變量。 Shell變量不需要專門的說明語句,通過賦值語句完成變量說明并予以賦值。 在命令行或Shell腳本文件中使用$name的形式引用變量name的值。
shell變量的定義和引用 在Shell中,變量的賦值有下列句法格式: name=string name是變量名,它的值就是string,“=”是賦值符號。變量名是以字母或下劃線開頭的字母、數字和下劃線字符序列。 通過在變量名(name)前加$字符(如$name)引用變量的值,引用的結果就是用字符串string代替$name。 在定義變量時,若string中包含空格、制表符和換行符,則string必須用’string’或者”sting”的形式,即用單(雙)引號將其括起來。雙引號內允許變量替換,而單引號內則不可以。 shell變量的定義和引用 Shell變量的作用域 與程序設計語言中的變量一樣,Shell變量有其規定的作用范圍。 Shell變量分為局部變量和全局變量: 局部變量的作用范圍僅僅限制在其命令行所在的Shell或Shell腳本文件中 全局變量的作用范圍則包括本Shell進程及其所有子進程 可以使用export內置命令將局部變量設置為全局變量 Shell變量作用域舉例 在當前Shell中定義變量var1 在當前Shell中定義變量var2并將設為全局 引用變量的值 顯示當前Shell的PID Shell變量作用域舉例 調用子Shell ,并顯示子Shell的PID 由于var1沒有被export,在子Shell中已無值 由于var2被export,所以在子Shell中仍有值 返回主Shell,并顯示變量的值Shell變量作用域舉例(綜合) Shell變量作用域舉例(綜合) Shell的環境變量 環境變量是指由Shell定義和賦初值的Shell變量。
Shell用環境變量來確定查找路徑、注冊目錄、終端類型、終端名稱、用戶名等。 所有環境變量都是全局變量,并可以由用戶重新設置。 在Bash中,設置環境變量用set命令,命令的格式是:set 環境變量=變量的值 Shell的環境變量舉例 設置用戶的主目錄為/home/john,可以用以下命令: 不加任何參數地直接使用set命令可以顯示出用戶當前所有環境變量的設置,如:Shell的環境變量舉例 在環境變量前面加上$符號,表示引用環境變量的值,例如把目錄切換到用戶的主目錄 : 當修改PATH變量時,如:將一個路徑/tmp加到PATH變量前,應該這樣設置: Shell的環境變量舉例 4.命令運行的判斷依據:;、、|| 4.命令運行的判斷依據:;、、|| (2)$?(命令回傳值)與“”或“||”。 4.命令運行的判斷依據:;、、|| 4.命令運行的判斷依據:;、、|| Linux網絡操作系統及應用教程(項目式) Linux網絡操作系統及應用教程(項目式) Linux網絡操作系統項目教程(第2版) * * * * * * * * * * * * * * * * * 項目七 熟練使用vim程序編輯器與shell項目導入:系統管理員的一項重要工作就是要修改與設定某些重要軟件的配置文件,因此至少得要學會一種以上的文字接口的文本編輯器。
所有的Linux發行版本都內置有 vi文本編輯器,很多軟件也默認使用 vi作為編輯的接口, 因此讀者一定要學會使用 vi文本編輯器。vim 是進階版的vi, vim 不但可以用不同顏色顯示文本內容,還能夠進行諸如 shell script、C program 等程序的編輯,因此,可以將 vim 視為一種程序編輯器。職業能力目標和要求: ? 學會使用vi編輯器。 ? 了解shell的強大功能和shell的命令解釋過程。 ? 學會使用重定向和管道。 ? 掌握正則表達式的使用方法。 項目七 熟練使用vim程序編輯器與shell 1. 熟練使用vim編輯器 2. 熟練掌握shell 3. 熟練熟練掌握正則表達式 4. 掌握輸入輸出重定向與管道命令 7. 超級鏈接 5. 項目實錄:使用vim編輯器 6. 習題 7.1 任務1 熟練使用vi編輯器 1. 項目課題引入 2. vim編輯器的使用方法 3. Linux中C語言程序的編輯 4. Linux中C語言程序的運行 5. 現場演示案例 課題引入——項目背景 在Linux操作系統中設計一個C語言程序,當程序運行時顯示如下的運行效果: 課題引入——項目分析 完成本項目需要解決的問題: 1、在Linux下我們使用什么工具進行程序和文字的編輯。
2、在Linux操作系統中我們如何編譯和運行C程序 3、我們編寫的程序如何在Linux操作系統中進行調試。 課題引入——教學目標 學習本課需要實現的教學目標: 掌握vim編輯器的啟動和退出 掌握vim編輯器的工作模式 熟悉vim編輯器的基本命令 了解C/C++編譯器gcc的使用(項目9 詳細講解,可提前預習) 掌握Linux下程序設計的一般方法 課題引入——應達到的職業能力 學生學習本課后應該具有的職業能力: 熟練掌握vim編輯器的使用方法 能夠利用vim編輯器進行文字編輯工作 能夠使用gcc進行C/C++程序的編譯和調試 能夠獨立完成基本的Linux程序 項目問題一—vim編輯器的使用 vim編輯器包含的主要內容有: vim編輯器的啟動與退出 vim編輯器的工作模式 vim編輯器的常用命令 vim編輯器的簡介 vi是Visual 的簡稱,它可以執行輸出、刪除、查找、替換、塊操作等眾多文本操作。 用戶可以根據自己的需要對vim進行定制,這是其他編輯程序所沒有的。 vim不是一個排版程序,它不像WORD或WPS那樣可以對字體、格式、段落等其他屬性進行編排,它只是一個文本編輯程序。
vim是全屏幕文本編輯器,它沒有菜單,只有命令。 7.1.1 子任務1 vim的啟動與退出 在系統提示符后輸入vim和想要編輯(或建立)的文件名,便可進入vim 如果只輸入vim,而不帶文件名,也可以進入vim 7.1.1 vim的啟動與退出 要退出vim,在命令模式下鍵入如圖所示命令。 7.1.2 子任務2 熟練掌握vim的工作模式 vim有3種基本工作模式:編輯模式、插入模式和命令模式。 進入vim之后,首先進入的就是編輯模式,進入編輯模式后vim等待編輯命令輸入而不是文本輸入,也就是說這時輸入的字母都將作為編輯命令來解釋。 在編輯模式下輸入插入命令i、附加命令a、打開命令o、修改命令c、替換命令s都可以進入插入模式。在插入模式下,用戶輸入的任何字符都被vim當作文件內容保存起來,并將其顯示在屏幕上。在文本輸入過程中(插入模式下),若想回到命令模式下,按ESC鍵即可。 在編輯模式下,用戶按“:”鍵即可進入命令模式,此時Vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為命令模式的提示符,等待用戶輸入命令。 Linux網絡操作系統及應用教程(項目式) Linux網絡操作系統及應用教程(項目式) Linux網絡操作系統項目教程(第2版) * * * * * * * * * * * * * * * * *