當前位置:首頁 » 操作系統 » linux的shell程序

linux的shell程序

發布時間: 2022-07-21 13:32:42

linux下的shell是什麼

什麼是shell
shell是用戶和Linux
操作系統
之間的
介面
。Linux中有多種shell,其中預設使用的是Bash。本章講述了shell的工作原理,shell的種類,shell的一般操作及Bash的
特性

什麼是shell
Linux系統的shell作為操作系統的
外殼
,為用戶提供使用操作系統的介面。它是
命令語言
、命令
解釋程序

程序設計語言
的統稱。
shell是用戶和
Linux內核
之間的介面
程序
,如果把Linux內核想像成一個
球體
的中心,shell就是圍繞
內核
的外層。當從shell或其他程序向Linux傳遞命令時,內核會做出相應的反應。
shell是一個命令語言
解釋器
,它擁有自己內建的shell命令集,shell也能被系統中其他
應用程序
所調用。用戶在提示符下輸入的命令都由shell先解釋然後傳給Linux核心。
Shell是一種具備
特殊功能
的程序,
它是介於使用者和
UNIX/linux
操作系統之核心
程序(kernel)間的一個介面。為什麼我們說
shell
是一種介於系統核心程序與使用者
間的中介者呢?讀過操作系統概論的讀者們都知道操作系統是一個
系統資源
的管理者與分
配者,當您有需求時,您得向系統提出;從操作系統的角度來看,它也必須防止使用者因
為錯誤的操作而造成系統的傷害?眾所周知,對
計算機
下命令得透過命令(command)

是程序(program);程序有編譯器(compiler)將程序轉為
二進制代碼
,可是命令呢?
其實shell
也是一支程序,它由
輸入設備
讀取命令,再將其轉為計算機可以了解的機械碼,
然後執行它。
各種操作系統都有它自己的
shell,以
DOS
為例,它的
shell
就是
command.com文
件。如同
DOS
下有
NDOS,4DOS,DRDOS
等不同的命令解譯程序可以取代標準的
command.com
,UNIX
下除了
Bourne
shell(/bin/sh)
外還有
C
shell(/bin/csh)、
Korn
shell(/bin/ksh)、Bourne
again
shell(/bin/bash)、Tenex
C
shell(tcsh)
等其它的
shell。UNIX/linux將
shell
獨立於核心程序之外,
使得它就如同一般的應用
程序,
可以在不影響操作系統本身的情況下進行修改、更新版本或是添加新的功能。
有一些命令,比如改變工作目錄命令cd,是包含在shell
內部
的。還有一些命令,例如
拷貝
命令cp和移動命令rm,是存在於
文件系統
中某個目錄下的單獨的程序。對用戶而言,不必關心一個命令是建立在shell內部還是一個單獨的程序。
shell首先檢查命令是否是
內部命令
,若不是再檢查是否是一個應用程序(這里的應用程序可以是Linux本身的
實用程序
,如ls和rm,也可以是購買的商業程序,如xv,或者是
自由軟體
,如emacs)。然後shell在搜索
路徑
里尋找這些應用程序(搜索路徑就是一個能找到可執行程序的目錄列表)。如果鍵入的命令不是一個內部命令並且在路徑里沒有找到這個
可執行文件
,將會顯示一條錯誤信息。如果能夠成功找到命令,該內部命令或應用程序將被分解為
系統調用
並傳給Linux內核。
shell的另一個重要特性是它自身就是一個解釋型的程序設計語言,shell程序設計語言支持絕大多數在
高級語言
中能見到的程序
元素
,如
函數

變數

數組
和程序控制結構。shell
編程語言
簡單易學,任何在提示符中能鍵入的命令都能放到一個可執行的shell程序中。
當普通用戶成功登錄,系統將執行一個稱為shell的程序。正是shell進程提供了命令行提示符。作為默認值(TurboLinux系統默認的shell是BASH),對普通用戶用「$」作提示符,對超級用戶(root)用「#」作提示符。
一旦出現了shell提示符,就可以鍵入
命令名稱
及命令所需要的
參數
。shell將執行這些命令。如果一條命令花費了很長的時間來運行,或者在屏幕上產生了大量的輸出,可以從
鍵盤
上按ctrl+c發出中斷
信號
來中斷它(在正常結束之前,中止它的執行)。
當用戶准備結束登錄對話進程時,可以鍵入logout命令、exit命令或文件結束符(EOF)(按ctrl+d實現),結束登錄。

② 求一個Linux的shell腳本或者程序

1.1 什麼是shell?

Shell是一個命令解釋器,它在操作系統的最外層,負責直接與用戶進行對話,把用戶的輸入解釋給操作系統,並處理各種各樣的操作系統的輸出結果,輸出到屏幕反饋給用戶。這種對話方式可以是互動式也可以是非互動式的

我們所輸入的命令計算機是不識別的,這時就需要一種程序來幫助我們進行翻譯,變成計算機能識別的二進製程序,同時又把計算機生成的結果返回給我們。

當前終端使用的哪種shell?

大多數linux發行版本默認shell使用的是bash

1.2 擴展:編程語言分類

編程語言主要用:低級語言和高級語言

1)低級語言:

機器語言:二進制語言

匯編語言:符號語言,使用助記符來代替操作碼,也就是用符號代替機器語言的二進制碼

它們都是面向機器的語言

2)高級語言:

它是比較接近自然語言或者說人類語言的一種編程,用人們能夠容易理解的方式進行編寫程序,

靜態語言:編譯型語言如:c 、c++ 、java

動態語言:解釋型語言如:php 、shell 、python 、perl

gcc編譯器:(解釋器) 將人類理解的語言翻譯成機器理解的語言

靜態語言和動態語言的區別:

靜態語言編譯時,變數的數據類型是確定的,靜態語言對硬體更友好,運行效率更高。

動態語言,運行時確定變數的數據類型,且運行時可改變變數的類型。動態語言更簡潔,對人類更友好,可以把更多精力放在業務邏輯上。

③ linux下的 shell到底是什麼啊

在計算機科學中,是指「提供用戶使用界面」的軟體,通常指的是命令行界面的解析器。一般來說,shell是指操作系統中,提供訪問內核所提供之服務的程序。

④ linux中的shell究竟是什麼

【一】
shell的含義:
首先shell的英文含義是「殼」;
它是相對於內核來說的,因為它是建議在核的基礎上,面向於用戶的一種表現形式,比如我們看到一個球,見到的是它的殼,而非核。
Linux中的shell,是指一個面向用戶的命令介面,表現形式就是一個可以由用戶錄入的界面,這個界面也可以反饋運行信息;
【二】shell在Linux中的存在形式:
由於Linux不同於Windows,Linux是內核與界面分離的,它可以脫離圖形界面而單獨運行,同樣也可以在內核的基礎上運行圖形化的桌面。
這樣,在Linux系統中,就出現了兩種shell表現形式,一種是在無圖形界面下的終端運行環境下的shell,另一種是桌面上運行的類型Windows
的MS-DOS運行窗口,前者我們一般習慣性地簡稱為終端,後者一般直接稱為shell
【三】shell如何執行用戶的指令
shell有兩種執行指令的方式,一種方法是用戶事先編寫一個sh腳本文件,內含shell腳本,而後使用shell程序執行該腳本,這種方式,我們習慣稱為shell編程。
第二種形式,則是用戶直接在shell界面上執行shell命令,由於shell界面的關系,大家都習慣一行行的書寫,很少寫出成套的程序來一起執行,所以也稱命令行。
總結:shell可以說只是為用戶與機器之間搭建成的一個橋梁,讓我們能夠通過shell來對計算機進行操作和交互,從而達到讓計算機為我們服務的目的。
以上。
參考資料:
【shell的定義】http://ke..com/view/849.htm
【shell學習】http://wiki.ubuntu.org.cn/Shell%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80

⑤ linux 怎麼編寫一個shell程序並執行

#!/bin/bash
或者#!/bin/shif
[
-e
/etc/apache2/httpd.conf
];then
/etc/init.d/httpd
startfi這是最簡單的一個腳本,可以添加相關的代碼來完善功能。。需要root的許可權才能執行。。。
換行空格什麼的要注意,,在這里寫出來
提交後換行可能會沒了。

⑥ linux常用的shell有哪些

最常用的當然是bash這個shell了,不需要多說,因為大部分Linux發行版都默認是這個shell;還有C shell用戶也很多,因為它的語法和C語言有點像;還有一個ash,念做A Shell,在智能路由器系統OpenWrt、LEDE上作為默認shell,話說玩路由器Linux系統OpenWrt的也不少啊,好多硬體論壇上都知道這個系統,所以ash也算是常用的Linux shell吧。

⑦ Linux如何編寫shell腳本

  1. 一般以#!/bin/sh開頭(不是必須要寫,但一定要單獨一行),指定執行這個腳本的shell程序(也可以用#!/bin/zsh或其他),然後就是堆命令了。

  2. Linux的shell腳本支持很多功能,加上Linux高度模塊化的命令,完全可以用shell腳本寫出復雜的程序。

  3. 以上只是簡單介紹如何開始寫shell腳本,如果要寫復雜的腳本,還需要深入學習相關知識(如if——fi、case——esac等結構)。

  4. 當然,還需要給腳本加上可執行許可權(chmod +x ./file.sh),否則可以用sh ./file.sh方式執行腳本(這里的sh是執行腳本所需shell,命令也可以是zsh ./file.sh或其他)。

  5. 整個shell腳本,其實就相當於你在終端輸入的一系列命令,如果想在shell里做什麼,就先想想在終端可以做什麼吧,字元的的連接,就是直接用 "" 雙引號,輸出,變數定義無 $ 符號,但是使用時一定要加上 $ 符號。

  6. "=" 賦值符號,兩邊一定不能有空格,這和其他語言有區別,尤其是你還有自己代碼美觀風格時特別注意,否則會報語法錯誤!

  7. for 中的數組內容是以 " " 空格分隔,而非 "," 逗號分格。

  8. 條件判斷 [ true ] 中括弧 後面需要有一個空格,但是兩個中括弧之間不能有空格如 [[ true ]]。

  9. while 條件判斷可以用 () 括弧,也可以用 [[ ]] 中括弧。

  10. 如果用windows寫shell,一定要注意換行符格式 而非 , 需要藉助一些編輯器(如notepad++)更改換行符格式!

⑧ 在Linux中,shell是什麼

補充下:
Shell是一種具備特殊功能的程序,它是介於使用者和
UNIX/Linux
操作系統之核心程序(kernel)間的一個介面。為什麼我們說
shell
是一種介於系統核心程序與使用者間的中介者呢?讀過操作系統概論的讀者們都知道操作系統是一個系統資源的管理者與分配者,當您有需求時,您得向系統提出;從操作系統的角度來看,它也必須防止使用者因為錯誤的操作而造成系統的傷害?眾所周知,對計算機下命令得透過命令(command)或是程序(program);程序有編譯器(compiler)將程序轉為二進制代碼,可是命令呢?其實shell
也是一支程序,它由輸入設備讀取命令,再將其轉為計算機可以了解的機械碼,然後執行它。
Shell
的功用
為了確保任何提示符號下輸入的命令都能夠適當地執行。shell
擔任的工作包括有:
1.
讀取輸入和語法分析命令列
2.
對特殊字元求值
3.
設立管線、轉向、和幕後處理
4.
處理訊號
5.
設立程序來執行

熱點內容
xboxone絕地求生怎麼設置伺服器 發布:2025-01-20 18:22:12 瀏覽:175
編譯字母表 發布:2025-01-20 18:20:38 瀏覽:242
c語言輸入日期計算天數 發布:2025-01-20 18:11:57 瀏覽:948
sql獲取表的列名 發布:2025-01-20 18:11:54 瀏覽:860
不要做編程 發布:2025-01-20 18:11:02 瀏覽:154
安卓手機保存錄音後保存在哪裡 發布:2025-01-20 18:09:27 瀏覽:915
c語言100以內的素數之和 發布:2025-01-20 18:00:06 瀏覽:314
四川兒童醫保卡原始密碼是多少 發布:2025-01-20 17:55:32 瀏覽:309
材質包如何裝伺服器 發布:2025-01-20 17:44:24 瀏覽:530
幸運28源碼免費 發布:2025-01-20 17:44:18 瀏覽:134