1.編程介紹:python
早期編程:驅動 硬件默認時不能使用的;程序員
不一樣的廠家硬件設備之間須要進行指令溝通,咱們須要驅動程序來進行"翻譯";shell
更趨近與硬件開發的工程師,要學習「彙編語言」;而「彙編語言」被廠家所限制;CC++的底層就是彙編語言;編程
如今編程:基於高級語言,以及超高級語言,更好的讓程序員可以的實現編程功能;數組
編程語言的分類:bash
高級語言、超高及語文須要*翻譯*成計算機可讀的語言(二進制指令)編程語言
解釋型 —— 逐行翻譯、逐行執行 shell python Java函數
程序 = 指令 + 數據學習
面向對象 -- 側重於數據的編程語言測試
面向過程 ---側重於指令
編程語言的執行方式:(一行一行)
1.順序執行
2.循環執行-- *for while untile
3.選擇執行--分支
添加用戶
if id $* &>/dev/null;then
echo "這個用戶已經存在"
else
for i in $*;do
userass $i
echo"123456"|passwd --stdin "$i" &> /sev/null
echo "用戶 $i 添加成功「
done
exit 0
fi
2.shell腳本語言介紹
優勢:調用os(操做系統)的命令行,來實現因此功能
缺點:沒有庫調用(區分python)
shell腳本包括:1.*命令*(很是重要)
tar -cvzf /tmp/etc.bak /etc/
判斷文件是否存在,若是存在覆蓋
2.變量(全局變量、局部變量、本地變量、傳參)
3.邏輯關係
shell腳本的第一句話!!!(必須寫)
#!/bin/bash --定義腳本解釋器(廣泛認爲#爲註釋行,這是特殊)shebang
#!/usr/bin/python --python解釋器
/etc/shells --查看當前系統支持的shell程序
echo $SHELL --查看當前會話的shell程序
/etc/passwd --指定了用戶默認支持的shell程序(/bin/nologin)
shell 的執行:
1. bash命令來執行腳本
-n 查看shell腳本的邏輯錯誤(注意:單詞寫錯可無論)
-x 逐行顯示執行的腳本程序(方便排錯)
2.受權chmod u +x filename.sh
使用全路徑執行腳本便可
3.變量
環境變量
局部變量 declare命令 --定義變量類型
本地變量 local 在函數中使用
變量類型:
數值型:
1.整型
2.浮點型
3.布爾型 (0 真 1 假)(True False)
字符串:
1.普通字符集字符串
2.數組
編程語言的分類:
強類型語言 -- 數值必須被定義,才能進行處理或運算
弱類型語言 -- 編程語言能夠自動識別變量類型
【*多態*一個數據具備多個屬性,而最後使用的屬性取決於和他進行運算的數據】
傳參
$? --上一條命令的執行狀態 0 正確 1-255錯誤
$1 $2 ...${10} --命令後面傳入腳本的數據,以空格爲分隔符
$# --統計傳參數量${$#}
$* --表示因此的傳參,因此傳參以字符串形式進行輸出
$@ -- 表示因此傳參,將全部的傳參以列表的形式進行輸出
【工做中要對因此的傳參進行操做的時候,就要考慮$*和$@】
定義變量格式:
NAME=VALUE
咱們經過命令declare定義變量類型
declare -i a=10 int() str()
declare -i 整數
declare -a 數組
變量命令:
1.下劃線的方式指定變量名稱
2.駝峯命名方式
4.test文件測試、條件判斷
在腳本中,咱們須要進行語句分支;說白了,就要作判,判斷就是使用test命令來實現;
使用格式:
1.test[option] file
2.[條件語句]
常見的test選項:
1.比較選項:
-eq 等於
-ne 不等於
-gt 大於
-ge 大於等於
-lt 小於
-le 小於等於
2.判斷選項
-f 判斷是否爲普通文件
-d 判斷是否爲目錄文件
-L 判斷是否爲鏈接文件
-r -w -x 判斷文件是否具備讀 寫 執行 權限
3.關聯選項
-o 或
-a 與
! 非