1. 程式人生 > >linux中的shell簡介

linux中的shell簡介

1.什麼是shell?

  • Shell是linux的一外殼,它包在linux核心的外面,為使用者和核心之間的互動提供了一個介面
  • 當用戶下達指令給作業系統的時候,實際上是把指令告訴shell,經過shell解釋,處理後讓核心做出相應的動作
  • 系統的迴應和輸出的資訊也由shell處理,然後顯示在使用者的螢幕上

2.什麼是shell指令碼?

  • 簡單的說,當命令或者程式不在命令列執行,而是通過一個程式檔案來執行,這個程式就被稱為shell指令碼
  • 也就是在shell腳本里內建了多條命令,語句,迴圈控制,然後將這些命令一次性執行完畢,這種通過檔案執行命令的方式稱為

非互動式

 3.為什麼使用shell指令碼? 

  • 適合處理作業系統底層的業務,有眾多系統命令為其做支撐(還有文字處理三兄弟grep,sed,awk)
  • 適合處理純文字檔案,linux中許多服務配置檔案,啟動指令碼,都是純文字(httpd,nfs,mysql,nginx,lvs)
  • linux系統指令碼用shell開發更簡單

那麼如何檢視系統的預設shell呢

方法1

echo $SHELL

方法2

grep root /etc/passwd           ##如下圖,如果想要查詢其他使用者,只需要更換關鍵字即可

4.shell指令碼的建立 

#!/bin/bash                 ## /bin/bash指定直譯器:由哪個程式來執行指令碼內,#!表示幻數容。                        
echo "Hello world"          ##注意:#!/bin/bash必須寫在第一行,否則會被認為是註釋。

試著執行一下這個指令碼

5.指令碼的執行過程

  • 先載入系統環境變數,怎麼檢視系統環境變數:env
  • 一條一條命令執行,遇到子指令碼,先執行子指令碼,然後返回父指令碼繼續執行

例如上圖為系統環境變數

6.指令碼的執行方法

1.sh script.sh | bash script.sh                            ##沒有執行許可權時

2.path/script.sh | ./script.sh                                ##絕對路徑,當前目錄下,需要檔案具備可執行許可權,chmod +x

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

7.指令碼開發規範

  • 註釋:可以命令後,也可以自成一行
  • 指令碼資訊:
  • 指令碼名:最好以.sh結尾

例如

#!/bin/bash
#Date:2018-12-14
#Author:westos-wsp
#Connect:[email protected]
#Desc:This script is for...
#Version:1.0
這裡就是程式程式碼了

ok~