




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第1章Linux及LinuxShell簡介1.1關于Linux1.1.1什么是LinuxLinux是自由開源的類Unix操作系統(tǒng)。該操作系統(tǒng)的內(nèi)核是由萊納斯·托瓦茲在1991年10月5日首次發(fā)布。嚴格來講,術語Linux只表示操作系統(tǒng)的內(nèi)核本身,但通常采用“Linux內(nèi)核”來表達該意思。Linux則常用來指基于Linux內(nèi)核的完整操作系統(tǒng),包括GUI組件和許多其它實用工具。Linux最初是作為支持Intelx86架構的個人計算機的一個自由操作系統(tǒng)開發(fā)的,目前Linux已經(jīng)被移植到更多的計算機硬件平臺。世界上500個最快的超級計算機90%以上運行Linux發(fā)行版或變種,包括最快的前10名超級計算機運行的都是基于Linux內(nèi)核的操作系統(tǒng)。Linux也廣泛應用在嵌入式系統(tǒng)上,如手機、平板電腦、路由器、電視和電子游戲機等。在移動設備上廣泛使用的Android操作系統(tǒng)就是基于Linux內(nèi)核的。1.1.2誰創(chuàng)建了Linux1991年,萊納斯·托瓦茲開始了那個之后變?yōu)長inux內(nèi)核的項目。它最初是托瓦茲用于訪問大學里的UNIX服務器的一個終端模擬器。他專門為他當時正在使用的硬件寫了一個獨立于操作系統(tǒng)的程序,因為他想使用他的80386處理器的新計算機的功能。這個程序的開發(fā)是在使用GNUC編譯器的MINIX操作系統(tǒng)上完成的,即Linux的前身。如托瓦茲在他的書中《JustforFun》所寫,他最終意識到他編寫了一個操作系統(tǒng)內(nèi)核。1991年8月25日他在Usenet上發(fā)布了這個系統(tǒng)。1.1.3Linux在日常生活中的使用作為一個杰出的操作系統(tǒng)可以應用于:臺式計算機網(wǎng)站服務器軟件開發(fā)工作站網(wǎng)絡監(jiān)控工作站工作組服務器殺手級網(wǎng)絡服務,例如DHCP、防火墻、路由、FTP、SSH、郵件、代理、代理緩存服務器等等。1.1.4LinuxKernel是什么如前面所說,Linux內(nèi)核,即Linux操作系統(tǒng)的核心。它主要由以下模塊組成:進程管理定時器中斷管理內(nèi)存管理模塊管理虛擬文件系統(tǒng)接口文件系統(tǒng)設備驅(qū)動程序進程間通信網(wǎng)絡管理系統(tǒng)引導1.1.5Linux的理念如之前所述,Linux是類Unix的操作系統(tǒng),Unix的理念是一套基于Unix操作系統(tǒng)頂級開發(fā)者們的經(jīng)驗提出的軟件開發(fā)的準則和哲學。因此這些理念也同樣適用于Linux操作系統(tǒng)。
小即是美
讓程序只做好一件事
可移植性比效率更重要
一切即文件–適用方便而且把硬件作為文件處理是安全的
使用Shell腳本來提高效率和可移植性
避免使用可定制性低下的用戶界面
所有程序都是數(shù)據(jù)的過濾器1.2什么是LinuxShell1.2什么是LinuxShellLinuxShell是用戶和Linux內(nèi)核之間的接口程序,為用戶提供使用操作系統(tǒng)的接口。當從Shell向Linux傳遞命令時,內(nèi)核會做出相應的反應。Shell是一個用戶程序,或是一個為用戶與系統(tǒng)交互提供的環(huán)境它是一個執(zhí)行從標準輸入設備(比如鍵盤或文件)讀入的命令的語言解釋程序,它擁有自己內(nèi)建的Shell命令集,Shell也能被系統(tǒng)中其他應用程序所調(diào)用。當你登錄或打開控制臺時Shell就會運行Shell不是系統(tǒng)內(nèi)核的一部分,但是它使用系統(tǒng)內(nèi)核執(zhí)行程序,創(chuàng)建文件等我們可以通過多種方式來訪問和使用Shell:終端–Linux桌面提供基于GUI的登錄系統(tǒng)。一旦登錄你就可以通過運行X終端(XTerm)、Gnome終端(GTerm)或KDE終端(KTerm)應用程序來訪問Shell。安全Shell連接(SSH)-可以通過它遠程登錄服務器或工作站來訪問其Shell。使用控制臺–一些Linux系統(tǒng)同樣提供基于文本的登錄系統(tǒng)。通常情況下,登錄系統(tǒng)后就可以直接訪問Shell。1.2什么是LinuxShell當普通用戶成功登錄,系統(tǒng)將執(zhí)行一個Shell程序,Shell進程會提供一個命令行提示符。作為默認值,普通用戶用“$”作提示符,超級用戶(root)用“#”作提示符。一旦出現(xiàn)了Shell提示符,就可以鍵入命令名稱及命令所需的參數(shù),鍵入回車后,Shell將執(zhí)行這些命令。在Shell執(zhí)行命令時,Shell首先檢查命令是否是內(nèi)部命令,若不是再檢查是否是一個應用程序(這里的應用程序可以是Linux本身的實用程序,如date和cat,也可以是購買的商業(yè)程序,如rtds,或是自由軟件,如emacs),Shell在搜索路徑里尋找這些應用程序(搜索路徑是一個存放可執(zhí)行程序的目錄列表)。如果鍵入的命令不是一個內(nèi)部命令并且在搜索路徑里沒有找到這個可執(zhí)行文件,Shell將會顯示一條錯誤信息。如果能夠成功找到命令,該命令將被分解為系統(tǒng)調(diào)用并傳給Linux內(nèi)核。1.2什么是LinuxShell在Shell下,你可以使用如下按鍵組合來編輯和回調(diào)命令:CTRL+W:刪除光標位置前的單詞CTRL+U:清空行↑,↓方向鍵:查看命令歷史Tab:自動補全文件名、目錄名和命令等等CTRL+R:搜索先前使用的命令CTRL+C:中止當前命令CTRL+D:退出登錄ShellESC+T:調(diào)換光標前的兩個單詞1.2什么是LinuxShell當用戶準備結束登錄對話進程時,可以鍵入logout命令、exit命令或CTRL+D,結束登錄。LinuxShell的另一個重要特性是它自身就是一個解釋型的程序設計語言,Shell程序設計語言支持絕大多數(shù)在高級語言中能見到的程序元素,如函數(shù)、變量、數(shù)組和程序控制結構等。Shell編程語言簡單易學,任何在提示符中能鍵入的命令都可以放到一個可執(zhí)行的Shell腳本中。1.3Shell的種類1.3Shell的種類Linux(Unix或類Unix)中的Shell有多種類型,其中最常用的種類有BourneShell(sh)、CShell、KornShell。這三種Shell各有優(yōu)缺點。BourneShell是UNIX最初使用的Shell,并且在每種UNIX上都可以使用。BourneShell在Shell編程方面相當優(yōu)秀,但是在處理與用戶的交互方面做的不如其它幾種Shell。Bourne-AgainShell(bash)是Linux系統(tǒng)中最常用的Shell。它是BourneShell的擴展,與BourneShell完全向后兼容,并且在BourneShell的基礎上增加、增強了很多特性,具有很多特色,可以提供如命令補全、命令編輯和命令歷史等功能,它還包含了很多CShell和KornShell中的優(yōu)點,有靈活和強大的編程接口,同時又有很有好的用戶界面。CShell(csh)CShell是一種比BourneShell更適于編程的Shell,它的語法和用法和C語言很相似,Linux為喜歡使用CShell編程的人提供了TCSH。TCSH是與CShell兼容的增強版本。它包括命令行編輯、可編程單詞補全、拼寫校正、歷史命令替換、作業(yè)控制和類似C語言的語法。KornShell(ksh)集合了CShell和BourneShell的優(yōu)點,并和BourneShell完全兼容。Linux系統(tǒng)提供了ksh的擴展,它支持任務控制,可以在命令行上掛起、后臺執(zhí)行、喚醒或終止程序。1.3Shell的種類Linux中還包括了一些其它的Shell類型,如比較流行的ash和zsh等。但無論哪一種Shell,它最主要的功用都是解譯使用者在命令行提示符中輸入的指令。在MS-DOS中,也有一種Shell,它的名字是COMMAND.COM,它也用于同樣的工作,只是它顯然沒有LinuxShell這樣強大。每種Shell都有它的用途及各自的命令語法和提供不同的內(nèi)建功能。有些Shell是有專利的,有些則可從互聯(lián)網(wǎng)上直接免費獲得。1.3Shell的種類我們可以使用如下命令查看系統(tǒng)中所有可用的Shell:我們看到此文件中包含了多行,每行都是一種Shell,它代表此系統(tǒng)支持多種Shell。1.3Shell的種類用戶登錄到Linux系統(tǒng)時由/etc/passwd這個文件決定用戶將要使用哪種Shell,比如我們來查看root賬號在/etc/passwd這個文件中的定義:-bash-3.2$greproot/etc/passwdroot:x:0:0:SystemAdmin:/root:/bin/bash我們可以看到在輸出結果中,以冒號“:”分隔的最后一個字段就是定義此賬號在登錄后所使用的Shell,由此可知此實例中,root賬號所使用的Shell是bash。1.3Shell的種類我們還可以使用如下命令來查看賬號當前使用的Shell的類型:-bash-3.2$echo$SHELL/bin/bash或是-bash-3.2$ps-p$$PIDTTYTIMECMD23579pts/000:00:00bash1.4怎樣使用Shell1.4怎樣使用Shell要使用Shell,你只需簡單的輸入命令即可,命令即是一個用于執(zhí)行特定任務的計算機程序。如果你的系統(tǒng)啟動后進入的是文本模式,那么當你登錄系統(tǒng)后就可以直接使用Shell,你可以在登錄后的Shell中輸入命令并執(zhí)行(命令是為執(zhí)行特定任務而構建的計算機程序)。如果你的系統(tǒng)是以圖形界面的模式啟動的,例如GNOME桌面或是KDE桌面,那么你可以在圖形界面中點擊“應用程序->系統(tǒng)工具->終端”來打開一個Shell?;蛘?,你可以按“Ctrl-Alt-F1”切換到虛擬控制臺并使用你的用戶名和密碼登陸。若想切換回圖形界面模式,可以簡單地按“Alr-F7”。Linux終端提供了一個讓你簡單地與你的Shell(例如bash)交互的手段。Shell不過是一個解釋并執(zhí)行你在命令行提示符中輸入的命令的程序。當你啟動GNOME、KDE或XWindow終端時,這些應用程序啟動你的系統(tǒng)賬號中所指定的默認Shell。你可以隨時切換到不同的Shell。接下來,我們來簡單了解一下Gnome終端的使用和配置。1.5Shell腳本是什么1.5Shell腳本是什么Shell腳本就像早期dos年代的.bat,最簡單的功能就是將許多指令匯整寫一起,讓使用者很容易的就能夠一個操作執(zhí)行多個命令,主要是方便管理員進行設置或者管理用的。但是它比Windows下的批處理更強大,它提供了數(shù)組,循環(huán),條件以及邏輯判斷等重要功能,讓使用者可以直接以Shell來寫程序,比用其他編程語言編寫的程序效率更高,畢竟它使用了Linux/Unix下的命令。Shell腳本是利用Shell的功能所寫的一個程序,這個程序是純文本文件格式,將一些shell的語法與指令寫在里面,然后用正則表達式,管道命令以及數(shù)據(jù)流重定向等功能,以實現(xiàn)我們所需要的功能。Shell腳本是Linux/Unix編程環(huán)境的基本組成部分。Shell腳本一般由以下幾部分構成:Shell關鍵字-例如if…else,fordo…doneShell命令-例如export,echo,exit,pwd,returnLinux命令-例如date,rm,mkdir文本處理功能–例如awk,cut,sed,grep函數(shù)–通過函數(shù)把一些常用的功能放在一起。例如,/etc/init.d目錄中的大部分或全部系統(tǒng)Shell腳本所使用的函數(shù)都包含在文件/etc/init.d/functions中。控制流語句–例如if…then…else或執(zhí)行重復操作的Shell循環(huán)。每個Shell腳本都有它的用途,例如,備份文件系統(tǒng)和數(shù)據(jù)庫到網(wǎng)絡存儲服務器。Shell腳本可以像Linux下的一個命令一樣被執(zhí)行。1.6為什么使用Shell腳本1.6為什么使用Shell腳本Shell腳本的應用知識對于每一個想熟練地管理Linux操作系統(tǒng)的人是必須的,即使你可能從來不必寫腳本。比方說在Linux機器啟動時,它執(zhí)行/etc/rc.d目錄中的Shell腳本來加載系統(tǒng)配置和運行服務,那么詳細的理解這些啟動腳本對于我們分析系統(tǒng)的行為或是可能修改這些腳本將是很重要的。學習編寫Shell腳本并不難,因為它的語法簡單易懂,類似于直接調(diào)用命令行的功能并串聯(lián)在一起,并且只有幾種規(guī)則需要學習。大部分簡短的腳本可以第一次就正確執(zhí)行,即使要調(diào)試長的腳本也是簡單的??偟膩碚f,我們使用Shell具有如下一些原因:使用簡單節(jié)省時間:可以把冗長的重復的一連串命令合并成一條簡單的命令可以創(chuàng)建你自己的自動化工具和應用程序使系統(tǒng)管理任務自動化因為腳本經(jīng)過很好的測試,所以使用腳本做類似配置服務或系統(tǒng)管理任務的時,發(fā)生錯誤的機會將大大減少我們經(jīng)常會用到Shell腳本的實例有:監(jiān)控你的Linux
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度醫(yī)院藥品采購與藥品不良反應監(jiān)測合作合同
- 2025年度班組包工服務合同樣本(市政工程領域)
- 2025年度企業(yè)信息化采購合同安全保密要求
- 2025年度住宅租賃押金管理及退還合同范本
- 二零二五年度高端商務區(qū)寫字樓租賃管理合同
- 二零二五年度自然人創(chuàng)業(yè)扶持貸款合同范本
- 旅游業(yè)務居間合同樣本
- 乘除法練習題1000道助你快速提升解題能力
- 乘除法練習題1000道輕松打印隨身攜帶
- 商場采暖工程合同樣本
- 2024年臨床醫(yī)師定期考核試題中醫(yī)知識題庫及答案(共330題) (二)
- 醫(yī)用氣體施工方案
- 2024 年陜西公務員考試行測試題(B 類)
- 2025-2030年中國反滲透膜行業(yè)市場發(fā)展趨勢展望與投資策略分析報告
- 湖北省十堰市城區(qū)2024-2025學年九年級上學期期末質(zhì)量檢測道德與法治試題 (含答案)
- 幼兒園師德師風培訓內(nèi)容
- 住宅小區(qū)消防設施檢查方案
- 《榜樣9》觀后感心得體會四
- 沈陽市地圖課件
- 2025年山東省濟寧高新區(qū)管委會“優(yōu)才”招聘20人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年中國社會科學評價研究院第一批專業(yè)技術人員招聘2人歷年高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論