作業系統7 shell

2021-07-07 04:42:35 字數 2382 閱讀 3353

使用者體驗

:命令執行

(the shell)

一旦作業系統載入之後,他就開始等待命令。命令可以通過

cli(command

line

inte***ce)或者

gui

(graphical

user

inte***ce

)輸入。

命令輸入會進入乙個命令的解析器(在unix世界這個叫做shell)。

shell

用自己的規則解析命令之後執行命令。

乙個經典

shell流程:

終端提示-》

輸入命令-》

shell

解析命令- 》

shell

請求核心執行,shell進入睡眠狀態直到記憶體執行完畢。-》

shell

顯示執行結果和等待下個命令。

一些通用的shell:

bourne

shell

/bin/sh  ,  

bourne

again

shell

/bin/bash,

cshell  /bin/csh,  korn shell /bin/ksh

msdos

和windows

的shell

叫command

或者cmd。

通過shell

是乙個解析器,shell很快做一些複雜的任務。事實shell

是乙個很強的程式設計環境。第乙個shell可以做解析特殊字元。這些特殊字元叫萬用字元。這些特殊字元影響輸出和執行shell命令。

常用的萬用字元有:*,?

,, shell的變數

當你登陸到unix系統,你會面對乙個定義好的環境變數的shell。這個環境變數叫shell

變數。很多東西被定義在乙個檔案(

.proflie

)裡。可以通過命令env,檢視自己的shell變數。

$env

其中乙個變數是

home

,這個變數定義你的主目錄的絕對路徑。這些shell變數可以被用於任何乙個命令。例如:

$cd $home

表示回到自己的主目錄

unixshell管道(pipes)及其更改

unix

所有程式都有檔案描述

(file descriptors)

來表示它的輸入輸出。預設的檔案描述:

標準輸入

(0),

標準輸出

(1)

和標準錯誤

(2).

乙個程式將會用

fscanf(2c)

或者cin

直到eof(^d

),通過標準輸入讀取資料.

檔案描述預設是連線到乙個裝置,例如:標準輸入是連線到鍵盤。如果你不想你的程式通過鍵盤讀取輸入,想從檔案中讀取輸入。unix執行更改管道。就是你可以改變標準輸入,輸出,錯誤來自**或者到**去。

操作 , 

改變程式stdout到乙個檔案,這個檔案會被覆蓋,例子:

ls > foo.txt

cat a.txt b.txtc.txt > foo.txt

操作符改變程式stdin

這樣程式可以讀取檔案,

例子:

cat 1/11/20151/11/2015

操 ,改變程式stdout到乙個檔案,這個檔案不會被覆蓋

unix

的一些特殊檔案

/dev/urandom,  

如果你改變通過這個檔案讀取你獲得隨機資料。這個通常用來當做隨機數產生器。

/dev/null

,如果你改變輸出到這個檔案,資料會消失

/dev/zero

,如果你通過這檔案讀取,你會獲得

0。通常用來初始化

資料。

道(pipes)的合併:

n>&m,   2>&1,

表示標準輸出和標準錯誤合併一起。

shell

的pipes

簡單的可以這樣:

複雜一點:

(什麼是shell),

什麼是shell

?.html

(系統的環境變數是什麼

) ,

系統的環境變數是什麼

%3f.html

7 shell程式設計

一.shell指令碼介紹 shell是什麼?一門程式語言,用來解釋執行這門程式語言語法的直譯器 計算機體系結構 命令 shell直譯器 系統呼叫的介面 核心 計算機硬體 什麼是程式語言 人 程式語言 計算機 什麼是程式設計 人 程式語言 計算機 先幹什麼 再幹什麼 然後幹什麼 什麼是程式 我們把計算...

Shell 學習7 Shell 特殊變數

前面已經講到,變數名只能包含數字 字母和下劃線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。例如,表示當前shell程序的id,即pid,看下面的 echo 執行結果 29949特殊變數列表 0 當前指令碼的檔名 n 傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如...

shell 學習筆記7 shell 函式

把相同程式段定義成函式,可以減少整個程式的 量,提公升開發效率 增加程式的可讀性,易讀性,提公升管理效率 可以失效程式功能模組化,使程式具備可移植性 其實linux系統裡面近2000個命令可以說都是shell的函式 function 名稱 復合命令塊 重定向 function 函式名 1 開發乙個建...