這是一篇shell的基礎文章,主要內容是bash的作用,history作用,管道符,如何自訂變數
如何執行指令碼等內容,下一篇會介紹一些如if,for,while,case等語句。歡迎各位與我交流。。。
一、shell環境概述
1.Shell的作用及常見分類
Shell的作用 —— 命令直譯器,“翻譯官”;介於作業系統核心與使用者之間,負責解釋命令列(類似於win下的cmd)
2. Shell環境的切換
1). 臨時切換:直接執行其他Shell程式,例如ksh、zsh等
2). 更改使用者登入Shell:
p 需修改/etc/passwd 檔案中使用者記錄的最後一個欄位
p 或執行:usermod -s Shell程式路徑 使用者名稱
3. Bash的常用功能
Tab鍵自動補齊 命令編輯快速鍵 命令曆史 命令別名
標準輸入輸出 重新導向操作 管道操作
4. Bash的命令曆史
1) 命令曆史
儲存使用者曾經執行過的命令操作
存放位置:~/.bash_history 檔案
2) 查看曆史命令history
3) 調用曆史命令
!n:執行記錄中的第n條命令
!str:執行記錄中以“str”開頭的命令
4) 設定記錄曆史命令的條數/etc/profile
修改HISTSIZE 參數(預設為1000條)
5. Bash的標準輸入輸出
互動式硬體裝置
標準輸入:從該裝置接收使用者輸入的資料
標準輸出:通過該裝置向使用者輸出資料
標準錯誤:通過該裝置報告執行出錯資訊
6. Bash的重新導向操作
改變標準輸入、標準輸出、標準錯誤的方向
7. Bash的管道操作
管道操作符號“|”
串連左右兩個命令,將左側的命令輸出的結果,作為右側命令的輸入(處理對象)
格式:cmd1 | cmd2 [... | cmdn]
二.Shell變數的應用
Shell變數的種類
使用者自訂變數:由使用者自己定義、修改和使用
環境變數:由系統維護,用於設定使用者的Shell工作環境,只有極少數的變數使用者可以修改
預定義變數:Bash預定義的特殊變數,不能直接修改
位置變數:通過命令列給程式傳遞執行參數
變數的賦值與引用
1)定義新的變數
變數名要以英文字母或底線開頭,區分大小寫
格式:變數名=變數值
2)查看變數的值
格式:echo $變數名
3)從鍵盤輸入內容為變數賦值
格式:read [-p "資訊"] 變數名
4)結合不同的引號為變數賦值
雙引號 “ ” :允許通過$符號引用其他變數值
單引號 ‘ ’ :禁止引用其他變數值,$視為一般字元
反撇號` ` :將命令執行的結果輸出給變數
5)設定變數的作用範圍
格式:export 變數名...
export 變數
6) 數值變數的運算
計算整數運算式的運算結果
格式:expr 變數1 運算子 變數2 ...[運算子 變數n]
expr的常用運算子
加法運算:+
減法運算:-
乘法運算:\*
除法運算:/
求模(取餘)運算:%
環境變數
1) 環境變數設定檔
全域設定檔:/etc/profile
使用者設定檔:~/.bash_profile
2) 查看環境變數
set命令可以查看所有的Shell變數,其中包括環境變數
常見的環境變數:path變數,類似於windows的path
三.Shell指令碼的概念
1. Shell指令碼
a) 用途:完成特定的、較複雜的系統管理任務
b) 格式:集中儲存多條Linux命令,普通文字檔
c) 執行方式:按照預設的順序依次解釋執行
2. 運行Shell指令碼程式
1) 直接執行具有“x”許可權的指令檔
例如:./repboot.sh
2) 使用指定的解譯器程式執行指令碼內容
例如:bash repboot.sh、sh repboot.sh
3) 通過source命令(或. )讀取指令碼內容執行
例如:souce repboot.sh 或. hello.sh