shell的做用:web
環境:shell
平臺:VMware workstation 14bash
系統:CentOS Linux release 7.4.1708 (Core)app
編寫第一個shell腳本:ide
注: sh爲腳本格式 first爲腳本的名稱 spa
first腳本中的內容orm
給全部人加權crontab
shell腳本的執行方式:ci
1 腳本的路徑it
絕對路徑
相對路徑
注:必須腳本文件要有執行權限
2 sh 腳本文件路徑
注: 若是腳本文件在opt目錄下, 則: sh /opt/first.sh / 先cd /opt 再 sh first.sh
3 source 腳本路徑
注:2 -a 3能夠不須要執行權限 1必需要
編寫第二個shell腳本:
shell腳本的構成:
1 腳本聲明
#!/bin/bash 聲明後面的命令能夠經過此shell程序去解釋並執行
2 註釋信息
摘要,腳本做用,參數說明,工做效率,建立日期,做者,版本聲明,第幾回修改,每次返回的動態值的定義等
3 可執行的命令語句
注:全部特殊符號必須是英文模式輸入
實例1:新建文件
實例2:刪除文件
實例3:建立用戶
cat /etc/passwd
實例4: 建立指定容量的文件
實例5: 計劃任務
crontab -e
天天的下午1點半執行2.sh這個腳本一次
更友好的顯示腳本內容:
重定向與管道操做:
實例6:使用密碼文本文件 修改用戶密碼
解: 建立一個密碼文件passwd.txt 密碼爲:123456
tom爲已有用戶,將密碼文件導給tom 實現重置tom的密碼爲123456
實例7:
將ls這條命令的輸出保存到 1.txt文件中
> 覆蓋原有的內容
>> 追加
實例8:
將標準輸出1.txt 標準錯誤輸出2.txt中
實例9:
shell變量的做用,類型
自定義變量
聲明變量不須要聲明類型
能夠存儲不一樣類型內容 A=wa1
有時候使用變量時要明確變量類型
嚴格區分大小寫
等於號兩邊不容許出現空格
不能使用標點符號做爲變量名
不能使用bash裏面的關鍵字做爲變量名
首個字符必須是字母(a-z A-Z或_)
格式 變量名=變量值
查看變量:
echo $變量名
echo ${變量名}
經過echo進行一個輸出變量,其中$是引用變量的特殊字符(必需要使用$符號)
注:echo和調用的變量之間必需要有空格
當須要一塊兒調用多個變量時,以空格隔開
當變量名和後面的字符混淆的時候,應使用{ }將變量名括起來
變量賦值的特殊操做:
1 雙引號 ""
當變量值之間有空格的時候,要使用""括起來
2 單引號 ' '
禁止引用變量值,將$符號看成普通字符來使用
3 反撇號 ``
與$() 效果同樣
做用:命令替換,提取命令執行的結果
優先執行反撇號裏面的內容,再執行其餘
變量賦值的時候,若是想要賦值的是某條命令執行的結果,必須使用反撇號
缺點:反撇號部不是現嵌套命令替換操做,這時候使用$()來替換
4 交互式賦值 read
read 命令用於提示用戶輸入信息,從而實現簡單交互過程(輸入命令就是一個交互式過程)
多個變量名交互式賦值,賦值之間有空格,變量名也有空格
爲了更友好,一般使用-p 來提示信息
5 設置變量的做用範圍
export 變量名 ...
export 變量名=變量值
做用:設置全局變量,全部子shell程序均可以使用此變量
注:bash爲切換環境 export導爲全局變量
永久生效:
vi /etc/profile
export 變量名=變量值
source /etc/profile
整數變量的運算
expr 變量1 運算符 變量2 ...
$(()) ++ -- **
經常使用變量:
+ - \* / %
環境變量
配置文件:
全局
單用戶:
常見的環境變量
PWD :顯示當前所在的工做目錄
USER : 顯示用戶名稱 能夠查看當前登錄的用戶
HOME: 用戶的家目錄 顯示當前用戶的家目錄
LANG: 語言和字符集變量
PATH: 命令搜索路徑 , 能夠用tab鍵補全
PS1: 提示符變量
SHELL:shell程序
位置變量
預約義變量