linux中shell腳本的學習(一)

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

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

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



咱們來寫第一個腳本文件用做測試。bash

vim first.shide

cd /boot/學習

pwd測試

ls -lh *this

chmod +x first.sh spa



           

wKioL1RUNW7AMbqzAAL3l-Y8G4k812.jpg

shell腳本標準的橋本結構:3d

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腳本,

相關文章
相關標籤/搜索