linux中shell腳本的學習(一)

linux中shell是一個特殊的應用程序。它介於系統的內核與用戶之間。充當命令“解釋器”的作用角色。負責接收用戶輸入的操作指令,並進行解釋。將需要執行的操作傳遞給內核。並輸出執行結果;

下面我們來看一下當前系統所支持的shell的種類:

wKioL1RUM_nich3bAAD5PvaLXpY860.jpg其中/bin/shell 是目前大多數linux中採用的默認shell。我們主要學習bash、



我們來寫第一個腳本文件用作測試。

vim first.sh

cd /boot/

pwd

ls -lh *

chmod +x first.sh 



           

wKioL1RUNW7AMbqzAAL3l-Y8G4k812.jpg

shell腳本標準的橋本結構:

vim first.sh


#!/bin/bash

#this is my first shell.

cd /boot

echo "當前的目錄位於"

pwd

echo "其中以a開頭的文件包括:"

ls -lh a*


chmod +x first.sh  給予其執行的權限


wKioL1RUN0ugCAaAAACzQDMsIao927.jpg

也可以通過sh.first 或者. first.sh 來執行腳本。。


重定向和管道操作:

重定向輸出使用 > 或者 >> 操作符號。> 用於覆蓋 >> 多用於追加使用

例如:

wKiom1RUOBfxUVpMAABLlYVclX0640.jpg 

追加的應用:

wKiom1RUOI2zMMFUAABrJKw-PcE851.jpg


重定向輸入:重定向輸入使用"<"操作符

可以使一些交互式操作過程能夠讀取文件來完成:

vim pass.txt

123.com

wKiom1RUOeazNPdCAABcQoPD7dU030.jpg

將密碼直接定向到hujianli用戶裏面

錯誤重定向

例如:將tar命令備份時出現的錯誤信息保存到error.log文件中:

wKiom1RUOtPhv-RMAAC0kqrfw-g992.jpg

使用 2> 時會像 > 一樣覆蓋掉文件。若要追加內容而不是覆蓋掉文件,就要用 2>> 操作符。


例如:自動編譯腳本。。把輸出的信息定義到/dev/null裏面。。

wKiom1RUPPqyvg_-AAC4NyJ4tbU647.jpg



管道操作

“|” 位於| 左側命令輸出的結果回作爲右側命令的輸入(出來對象),同一命令中可有多條管道

在shell中|通常用作過濾所需要的關鍵信息:

例如:編寫一個腳本,只顯示passwd中的用戶名和登錄shell列:

wKiom1RUPqeiIIdrAADvQhWVLzw320.jpg

其中awk的作用是把:當做分隔,輸出$1,$7的字符串。 -F用作指定分隔符號:未指定是用空格標示分隔。

再列舉一個:

wKiom1RUQF6Qh_T_AAIZwzeBtxA346.jpggrep “/$”代表/分區 對象  awk ‘{print $5}’代表空格作爲分隔,第5個


 例如:

wKiom1RUQhujc9tiAADeuJ74w-4510.jpg


應用變量的值:

例如:

wKioL1RUQ0CwblCkAAEhNmaQpq0325.jpg


雙引號:

hujianli = “jianli”

echo $hujianli

jianli


wKioL1RURCHD46UKAAFTBMQxVAk699.jpg


單引號,不能解釋其他變量,單引號裏面的所有內容都是原樣輸出的。。

這裏不做演示。

反撇號:主要將``裏面的內容輸出顯示。。

wKiom1RURR3RPi47AAGCG0hsPIs298.jpg


read 是bash的內置命令,主要給變量賦值。例如:

wKiom1RUReGDrLA-AADJgKO4OH4075.jpg



今天先複習這麼一點,改天繼續。。。。shell腳本,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章