linux中shell是一個特殊的應用程序。它介於系統的內核與用戶之間。充當命令“解釋器”的作用角色。負責接收用戶輸入的操作指令,並進行解釋。將需要執行的操作傳遞給內核。並輸出執行結果;
下面我們來看一下當前系統所支持的shell的種類:
其中/bin/shell 是目前大多數linux中採用的默認shell。我們主要學習bash、
我們來寫第一個腳本文件用作測試。
vim first.sh
cd /boot/
pwd
ls -lh *
chmod +x first.sh
shell腳本標準的橋本結構:
vim first.sh
#!/bin/bash
#this is my first shell.
cd /boot
echo "當前的目錄位於"
pwd
echo "其中以a開頭的文件包括:"
ls -lh a*
chmod +x first.sh 給予其執行的權限
也可以通過sh.first 或者. first.sh 來執行腳本。。
重定向和管道操作:
重定向輸出使用 > 或者 >> 操作符號。> 用於覆蓋 >> 多用於追加使用
例如:
追加的應用:
重定向輸入:重定向輸入使用"<"操作符
可以使一些交互式操作過程能夠讀取文件來完成:
vim pass.txt
123.com
將密碼直接定向到hujianli用戶裏面
錯誤重定向:
例如:將tar命令備份時出現的錯誤信息保存到error.log文件中:
使用 2> 時會像 > 一樣覆蓋掉文件。若要追加內容而不是覆蓋掉文件,就要用 2>> 操作符。
例如:自動編譯腳本。。把輸出的信息定義到/dev/null裏面。。
管道操作:
“|” 位於| 左側命令輸出的結果回作爲右側命令的輸入(出來對象),同一命令中可有多條管道
在shell中|通常用作過濾所需要的關鍵信息:
例如:編寫一個腳本,只顯示passwd中的用戶名和登錄shell列:
其中awk的作用是把:當做分隔,輸出$1,$7的字符串。 -F用作指定分隔符號:未指定是用空格標示分隔。
再列舉一個:
grep “/$”代表/分區 對象 awk ‘{print $5}’代表空格作爲分隔,第5個
例如:
應用變量的值:
例如:
雙引號:
hujianli = “jianli”
echo $hujianli
jianli
單引號,不能解釋其他變量,單引號裏面的所有內容都是原樣輸出的。。
這裏不做演示。
反撇號:主要將``裏面的內容輸出顯示。。
read 是bash的內置命令,主要給變量賦值。例如:
今天先複習這麼一點,改天繼續。。。。shell腳本,