shell起源於unix,是unix和linux通訊的東西
使用者和核心之間的「**」,叫做shell。
shell除了能解釋使用者輸入的命令,把它傳遞給核心,還可以:
1.呼叫其他程式,給其他程式傳遞資料或引數,並獲取程式的處理結果:
2.在多個程式之間傳遞資料,把乙個程式的輸出作為另乙個程式的輸入;
3.shell本身也可以被其他程式呼叫。
shell基本的程式設計元素:
1 if…else 選擇結構,switch…case開關語句,for,while,until迴圈
2 變數、陣列、字串、注釋、加減乘除、邏輯運算等概念
3.函式,包括使用者自定義的函式和內建函式(printf/export/eval)
bash shell 預設的提示符是是美元符號$;對於超級使用者(root使用者),bash shell預設的提示符是#。
[venturezhao@venturezhao-mc0 ~ %]
啟動shell的使用者名稱,即ventuerzhao
本地主機名稱,也即venturezhao-mc0
當前主目錄,~是主目錄的簡寫表示方法。
shell通過ps1和ps2兩個環境變數來控制提示符格式:
ps1控制最外層命令列的提示符格式。
ps2控制第二層命令列的提示符格式。
在shell中初次輸入命令,使用的是ps1指定的提示符格式;如果輸入乙個命令後還需要輸入附加資訊,shell就使用ps2指定的提示符格式。
echo遇到第乙個「會認為是不完整的附加資訊,所以會繼續等待使用者輸入,直到遇見第二個」。輸入的附加資訊就是第二層命令,使用》作為提示符。
shell 使用以\
為前導的特殊字元來表示命令提示符中包含的要素,這使得 ps1 和 ps2 的格式看起來可能有點奇怪。下表展示了可以在 ps1 和 ps2 中使用的特殊字元。
字元描述
\a鈴聲字元
\d格式為「日 月 年」的日期
\eascii轉義字元
\h本地主機名
\h完全合格的限定域主機名
\jshell當前管理的作業數
\1shell終端裝置名的基本名稱
\nascii換行字元
\rascii回車
\sshell的名稱
\t格式為「小時:分鐘:秒」的24小時制的當前時間
\t格式為「小時:分鐘:秒」的12小時制的當前時間
@格式為am/pm的12小時制的當前時間
\u當前使用者的使用者名稱
\vbash shell的版本
\vbash shell的發布級別
\w當前工作目錄
\w當前工作目錄的基本名稱
!該命令的bash shell歷史數
#該命令的命令數量
$如果是普通使用者,則為美元符號$
;如果超級使用者(root 使用者),則為井號#
。
\nnn
對應於八進位制值 nnn 的字元\斜槓
[控制碼序列的開頭
]控制碼序列的結尾
注意,所有的特殊字元均以反斜槓\
開頭,目的是與普通字元區分開來。您可以在命令提示符中使用以上任何特殊字元的組合。
輸入一些**:
「#!」 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種shell。echo命令用於向視窗輸出文字。#!/bin/bash
echo
"hello world !"
執行shell指令碼有兩種方法
作為可執行程式
將上面的**儲存為test.sh,並cd到相應目錄:
一定要寫成./test.sh,而不是test.sh。執行其他二進位制的程式也一樣,直接寫test.sh,linux系統會去path裡尋找有沒有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在path裡,你的當前目錄通常不在path裡,所以寫成test.sh是會找不到命令的,要用./test.sh告訴系統說,就在當前目錄找。chomd + x ./test.sh
./test.sh
shell指令碼程式設計入門
運維工程師 shell指令碼程式設計 shell 命令解析器 用於訪問核心 作用 命令解析 呼叫相應功能 首行 usr bin sh 指定解析器 前為未指定解析器,使用預設解析器 用處 自動化運維 用乙個步驟代替別人的十幾個步驟 使用指令碼 實現自動化 機器代替自己來做一些操作 s 件中需要 注發布...
Shell指令碼程式設計入門
最近在學習shell指令碼,兩個地方值得注意。1.shell中的運算 a 7b 8 let c a b c a b c a b c expr a b 等價於 參考 03 linux shell 變數 數學 運算 2.shell中的exec和重定向 我寫了乙個簡單的指令碼copy.sh,如下 bin ...
shell指令碼學習 入門
shell指令碼 乙個簡單的shell指令碼 shell指令碼 位於第一行的 shell指令碼 shell的基本元素 1 命令與引數 shell指令碼 shell的基本元素 2 變數 shell指令碼 shell的基本元素 3 簡單的echo輸出 shell指令碼 shell的基本元素 4 華麗的p...