Linux學習筆記之Shell入門

2021-09-18 07:22:46 字數 1682 閱讀 4416

shell 是乙個命令列直譯器,它為使用者提供了乙個向 linux 核心傳送請求以便執行程式的介面系統級程式,使用者可以用 shell 來啟動、掛起、停止甚至編寫一些程式。

shell 處在核心與外層應用程式之間,起著協調使用者與系統的一致性、在使用者與系統之間進行互動的作用。圖 1 是 linux 系統層次結構圖,shell 接收使用者輸入的命令,並把使用者的命令從類似 abed 的 ascii 碼解釋為類似 0101 的機器語言,然後把命令提交到系統核心處理;當核心處理完畢之後,把處理結果再通過 shell 返回給使用者。

圖 1 unix/linux 系統結掏層次概要

1) 核心層

核心層是 unix/linux 系統的核心和基礎,它直接附著在硬體平台之上,控制和管理系統內各種資源(硬體資源和軟體資源),有效地組織程序的執行,從而擴充套件硬體的功能,提高資源的利用效率,為使用者提供方便、高效、安全、可靠的應用環境。

2) shell層

shell 層是與使用者直接互動的介面。使用者可以在提示符下輸入命令列,由 shell 解釋執行並輸出相應結果或者有關資訊,所以我們也把 shell 稱作命令直譯器,利用系統提供的豐富命令可以快捷而簡便地完成許多任務作。

3) 應用層

應用層提供基於 x window 協議的圖形環境。x window 協議定義了乙個系統所必須具備的功能(就如同 tcp/ip 是乙個協議,定義軟體所應具備的功能),可系統能滿足此協議及符合 x 協會其他的規範,便可稱為 x window。

x window是一種以位圖方式顯示的軟體視窗系統,是unix、類unix、以及openvms等作業系統所一致適用的標準化軟體工具包及顯示架構的運作協議。

x window通過軟體工具及架構協議來建立作業系統所用的圖形使用者介面,此後則逐漸擴充套件適用到各形各色的其他作業系統上,幾乎所有的作業系統都能支援與使用x window,gnome和kde也都是以x window為基礎建構成的。

x window向使用者提供基本的視窗功能支援,而顯示視窗的內容、模式等可由使用者自行定製,在使用者定製與管理x window系統時,需要使用視窗管理程式,視窗管理程式包括afterstep、enlightenment、fvwm、mwm和twm window maker等,供習慣不同的使用者選用。

可以定製的視窗環境在給使用者帶來了個性化與靈活性的同時,要求使用者有相對比較高的使用水平,不過這種機制帶來的好處也是明顯的,它不象microsoft window那樣將視窗元件的風格、桌面、操作方式等千篇一律地規定死,只可以換一下牆紙、圖示、調整字型大小等等,在x window系統中可以有多種桌面環境的選擇。

與一般命令相比,shell 除了是乙個命令列直譯器,同時還是一門功能強大的程式語言,易編寫,易除錯,靈活性較強。作為一種命令級語言,shell 是解釋性的,組合功能很強,與作業系統有密切的關係,可以在 shell 指令碼中直接使用系統命令。大多數 linux 系統的啟動相關檔案(一般在 /etc/rc.d 目錄下)都是使用 shell 指令碼編寫的。

我們在 linux 中操作的命令列介面就是 linux 的 shell,也就是bash,但是我們的圖形介面是 shell 嗎?其實從廣義講,圖形介面當然也是 shell,因為它同樣用來接收使用者的操作,並傳遞到核心進行處理。不過,這裡的 shell 主要指的是 bash

linux學習筆記之shell程式設計(指令碼)

bin bash 號表示注釋 shell指令碼從上往下依次執行 date grep root etc passwd 先加許可權 chmod x 1.sh或chmod 744 1.sh 輸入絕對路徑或相對路徑如.1.sh 表示當前目錄 bash 1.sh sh 1.sh source 1.sh 1.s...

linux學習筆記 shell

shell bash 212一般可以將shell理解為乙個命令處理器 乙個讀取並解釋所輸入命令的程式。其次,shell還支援一些shell指令碼。使用的shell型別,可以檢視環境變數echo shell 系統可用的shell路徑儲存在 etc shells 改變登入shell可以使用chsh ch...

Linux學習筆記(Shell)

type ls ls is aliased to ls color auto 未加任何引數,列出 ls 的最主要使用情況 type cd cd is a shell builtin如果指令串太長的話,如何使用兩行來輸出?使用 enter cp var spool mail root etc cron...