什麼是shell?
1.shell是linux的一外殼,它包在linux核心的外面,為使用者和核心之間的互動提供了乙個介面什麼是shell指令碼?2.當使用者下達指令給作業系統的時候,實際上是把指令告訴shell,經過shell解釋,處理後讓核心做出相應的動作
3.系統的回應和輸出的資訊也由shell處理,然後顯示在使用者的螢幕上
1.簡單的說,當命令或者程式不在命令列執行,而是通過乙個程式檔案來執行,這個程式就被稱為shell指令碼2.也就是在shell指令碼裡內建了多條命令,語句,迴圈控制,然後將這些命令一次性執行完畢,這種通過檔案執行命令的方式稱為 非互動式
3.shell是解釋性語言,需要指定直譯器:bash python也是解釋性語言,直譯器:python c++編譯型語言。
適合處理作業系統底層的業務,有眾多系統命令為其做支撐(還有文字處三兄弟grep,sed,awk)如何檢視系統預設shell(企業面試題)適合處理純文字檔案,linux中許多服務配置檔案,啟動指令碼,都是純文字(httpd,nfs,mysql,nginx,lvs)
linux系統指令碼用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...