shell訓練計畫30天之第六天

2021-09-26 07:06:16 字數 1573 閱讀 6664

一、什麼是shell

1.shell是一種程式語言

2.shell可以使用邏輯判斷和迴圈等語法

3.shell支援自定義函式

4.shell是系統命令的集合

5.shell指令碼可以實現自動化運維,可以大大增加運維的效率

6.shell其實就是把系統的命令寫進檔案中,有點類似於windows的批處理

二、shell指令碼的結構和執行方法

1.開頭必須申明使用的直譯器

2.一般預設開頭申明的直譯器為bash,即#!/bin/bash

3.shell指令碼檔案中#開頭的內容一般都是解釋檔案,不會被shell執行

4.指令碼的名字一般以.sh結尾,方便識別

5.chmod +x 可以給與shell檔案執行許可權,用./***.sh 來執行檔案

6.檢視執行指令碼的過程可以加-x引數 ,即sh -x 1,sh

7.檢查指令碼是否有語法錯誤可以使用-n引數,即sh -n 1.sh

三、date的用法(非常有用,經常會使用到)

data是列印系統時間的命令

%y輸出4位數的年份

%y輸出2位數的年份

%m輸出月份

%m輸出分鐘

%d輸出日期

%d輸出月日年

%f輸出帶橫槓的年月日

%h輸出英文縮寫的月

%h輸出小時

%s輸出秒

%t輸出時分秒

%f輸出年月日

%w輸出週幾

%w輸出今年的第幾周

%s距離2023年1月1日0時0分0秒過了多少秒

cal可以以日曆的方式顯示日期

date -d 「-1 day」 %f 輸出昨天的年月日資訊

date -d 「-1 month」 %f 輸出上個月今天的年月日資訊

date -d %s 「2017-09-16 06:52:16」 2023年9月16日6時52分分16秒距離2023年1月1日0時0分0秒過了多少秒

date -d @155555 2023年1月1日0時0分0秒後155555秒的日期是多少

四、shell指令碼中的變數

1.什麼時候使用變數

當指令碼中使用某個字串比較頻繁且字元長度較長時就應該使用變數

使用條件語句時,常使用變數if [ $a -gt 1]; then……;fi

使用某個命令的結果時,用變數替代n=wc -l 1.txt

在和使用者互動的指令碼時,變數也是必不可少的

2.系統內建變數

$0 表示指令碼本身

$1 表示第乙個引數

$2 表示第二個引數

$# 表示引數的個數

3.指令碼中使用的邏輯判斷

if 條件 ; then 語句 ; fi

if 條件 ; then 語句 ;else 語句 ; fi

if 條件 ; then 語句 ; elif 條件 ; then 語句 ; else 語句 ;

4.指令碼中的數**算符

&& 並且

|| 或者

gt 大於

lt 小於

eq 等於

ne 不等於

ge 大於等於

le 小於等於

shell訓練計畫30天之第一天

一 什麼是shell 1.是命令直譯器 2.支援特定的語法 邏輯判斷 迴圈 3.每個使用者可以有自己特定的shell 4.centos7預設shell為bash bourne agin shell 5.其他的shell zsh ksh 二 命令歷史 1.按向上方向鍵檢視歷史命令 2.歷史命令檔案存在...

shell訓練計畫30天之第七天

一 if判斷檔案 目錄屬性 f file 判斷是否是普通檔案,且存在 bin bash f tmp aminglinux if f f then echo f exist else touch f fi d file 判斷是否是目錄,且存在 bin bash f tmp aminglinux if ...

shell訓練計畫30天之第十九天

例36 乙個數字的行 要求 用shell實現,把乙個文件中只有乙個數字的行給列印出來 要點 用sed替換所有非數字的字元為空的,剩下的就是數字 bin bash while read line don echo line sed s 0 9 g wc l if n eq 1 then echo li...