linux中shell是一個特殊的應用程序。它介於系統的內核與用戶之間。充當命令「解釋器」的做用角色。負責接收用戶輸入的操做指令,並進行解釋。將須要執行的操做傳遞給內核。並輸出執行結果;
linux
下面咱們來看一下當前系統所支持的shell的種類:shell
其中/bin/shell 是目前大多數linux中採用的默認shell。咱們主要學習bash、vim
咱們來寫第一個腳本文件用做測試。bash
vim first.shide
cd /boot/學習
pwd測試
ls -lh *this
chmod +x first.sh spa
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 給予其執行的權限
也能夠經過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腳本,