LINUX下的shell指令碼 shell簡介篇

2021-09-05 08:47:01 字數 3528 閱讀 1586

什麼是shell?

1.shell是linux的一外殼,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面

2.當使用者下達指令給作業系統的時候,實際上是把指令告訴shell,經過shell解釋,處理後讓核心做出相應的動作

3.系統的回應和輸出的資訊也由shell處理,然後顯示在使用者的螢幕上

什麼是shell指令碼?

1.簡單的說,當命令或者程式不在命令列執行,而是通過乙個程式檔案來執行,這個程式就被稱為shell指令碼

2.也就是在shell指令碼裡內建了多條命令,語句,迴圈控制,然後將這些命令一次性執行完畢,這種通過檔案執行命令的方式稱為 非互動式

3.shell是解釋性語言,需要指定直譯器:bash python也是解釋性語言,直譯器:python c++編譯型語言。

適合處理作業系統底層的業務,有眾多系統命令為其做支撐(還有文字處三兄弟grep,sed,awk)

適合處理純文字檔案,linux中許多服務配置檔案,啟動指令碼,都是純文字(httpd,nfs,mysql,nginx,lvs)

linux系統指令碼用shell開發更簡單

如何檢視系統預設shell(企業面試題)

方法1:echo $shell

方法2:grep root /etc/passwd

第一行:#!/bin/bash

指定直譯器:由哪個程式來執行指令碼內容

#!:幻數

注意:#!/bin/bash必須寫在第一行,否則會被認為是注釋

練習題:

1.清空/var/log/messages檔案

2.寫乙個安裝,啟動並開機自啟動httpd的指令碼

思考:這個指令碼有什麼缺陷?

1.沒有使用者判斷,任何使用者都可以執行這個指令碼

2.沒有流程控制,只是把簡單的命令進行順序操作,沒有成功與否的判斷

1.先載入系統環境變數

怎麼檢視系統環境變數:env

2.一條一條命令執行,遇到子指令碼,先執行子指令碼,然後返回父指令碼繼續執行

1 bash script.sh或者 sh script.sh ##當指令碼沒有執行許可權時

2. path/script.sh或者 ./script.sh ##絕對路徑,或當前目錄下

3. source script.sh 或者 . script.sh ##需要傳遞變數或函式時使用,這種方式會使用source或.號來讀如指定shell檔案,並會把其他shell中的變數值或函式返回給父shell繼續使用

三種執行方式的區別:

1.指令碼沒有執行許可權時,使用bash script.sh或者 sh script.sh

2.sh source區別:

sh新開啟的shell,執行完後釋放。然後返回當前shell。

source會把其他shell返回的值傳回父shell

企業面試題:

cat test.sh

username=whoami

sh test.sh

echo $username

問題1:echo $username命令的輸出結果是什麼? 正確答案c

a)當前使用者

b)root

c)空(無輸出)

source test.sh

echo $username

問題2:echo $username命令的輸出結果是什麼? 正確答案b

a)當前使用者

b)root

c)空(無輸出)

【如何執行shell指令碼】

1).手動在環境中開啟指定直譯器

sh script.sh
2).直接在當前環境中執行shell中的指令不開啟新的shell

source script.sh

. script.sh

3).開啟指令碼中指定的shell並使用此shell環境執行指令碼中的指令

chmod +x script.sh

/***/***/script.sh

./script.sh

1.注釋:可以命令後,也可以自成一行

2.指令碼資訊:

#!/bin/bash

#date:2018-12-14

#author:westos-wsp

#connect:[email protected]

#desc:this script is for...

#version:1.0

3.指令碼名:最好以.sh結尾

清空/var/log/messages檔案

linux下的shell指令碼

shell也是作業系統中的乙個軟體,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面,系統中的命令用shell去解釋shell接受系統回應的輸出並顯示其到螢幕中 什麼是shell指令碼 指令碼是一種解釋型語言,用shell指令碼儲存執行動作,用指令碼判定命令的執行條件,用指令碼來實...

Linux下Shell指令碼

shell 指令碼 shell script 是一種為 shell 編寫的指令碼程式。從業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。由於習慣的原因,簡潔起見,本文出現的 shell程式設計 都是指 shell ...

linux下的shell指令碼程式設計

程式語言分為兩種,一種是整個 進行編譯然後進行執行 另一種就是shell這種通過直譯器一行一行轉換為 linux常用的一些命令此處不再贅述 直接進入主題 我們來寫第乙個程式 hello world bin bash 上面的 告訴了直譯器採用bash直譯器來執行 echo hello world ec...