一 學(xué)習(xí)shell需要的linux基礎(chǔ)
- rc能夠熟練使用vim編輯器燃逻,熟悉SSH終端及 ‘.vim’等的配置郑兴。
- 需要掌握至少80個(gè)linux常用命令蚕捉,并且能夠熟練使用。
- 熟練使用正則表達(dá)式及三劍客命令(grep 润努、sed关斜、awk)。
- 熟悉常見linux網(wǎng)絡(luò)服務(wù)部署铺浇,優(yōu)化痢畜,日志分析及排錯(cuò)。網(wǎng)絡(luò)服務(wù)包括但不限于(Crond鳍侣、 Inotify裁着、Nginx、PHP拱她、MySQL、Keepalived扔罪、Memcached秉沼、Redis、NFS矿酵、Iptables唬复、SVN、Git.)
二 shell腳本初入門
- shell解釋器(連接外部應(yīng)用程序和系統(tǒng)內(nèi)核的命令解釋器)
- shell腳本 (命令全肮、變量和流程控制語句的有機(jī)結(jié)合)敞咧,特別適合處理純文本類型的數(shù)據(jù),而linux中幾乎所有配置文件辜腺,日志文件休建,啟動(dòng)文件都是純文本類型文件。
- 腳本語言分類
-- Bourne shell
-- C shell - 其他腳本語言
-- PHP語言
-- Perl 語言
-- Python語言 - 常用系統(tǒng)默認(rèn)shell
-- bash
---查看方法
方法 1评疗;
[root@web01 ~]# echo $SHELL
/bin/bash
方法 2测砂;
[root@web01 ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
- shell 腳本的建立與執(zhí)行
--腳本開頭
#!/bin/bash
#!/bin/sh
-- 查看是否需要打補(bǔ)丁(以下信息不需要打補(bǔ)栋俅摇)
~[root@web01]# env x='() { :;}; echo be careful' bash -c "echo this is a test"
this is a test
如果輸出
be careful
this is a test
則需要升級
[root@web01]# yum -y update bash
[root@web01]# rpm -qa bash
- 腳本注釋
-- 時(shí)間久了容易忘記
-- 幫助團(tuán)隊(duì)其他人理解
-- 盡量不要使用中文 - shell腳本的執(zhí)行順序
-- 環(huán)境變量的順序 /etc/profile ~/.bash_profile ~/.bashrc /etc/bashrc
--執(zhí)行的集中方法
1) bash/sh script-name
2) path/scripts-name ./scripts-name(會(huì)出現(xiàn)無權(quán)限情況砌些,需要加X權(quán)限)
3)source script-name .scripts-name(可以把變量傳遞給父shell)
4) sh<scripts cat scripts-name|sh
- 一個(gè)規(guī)范的腳本開頭(可以通過~/.vimrcl來設(shè)置,不建議)
#!/bin/bash
#date 15:10 2020-3-23
#Author: Created by zhizhuoyumeng
#Blog:http://www.reibang.com/u/1aa0e68c7ca2
#Description:This scripts funtion is ....
#Version
- 其他細(xì)節(jié)
-- 盡量不要用中文
-- 以.sh結(jié)尾
-- 放在固定路徑下 /server/scripts
-- 成對符號一起寫完加匈,再退格
-- 流程控制語句一次一次寫完
-- 利用縮進(jìn)