1. what's shell?
shells是一個命令解釋器,為用戶提供一個向Linux內核發送請求以便運行程序的界面系統級程序,用戶可以用shell來啟動。掛起、停止甚至是編寫一些自定義的程序。
用大白話說其實shell就是我們和計算機、和內核交互的界面,他最主要的一個功能就是讓我們有一個地方可以輸命令,然後把我們的命令翻譯為計算機可以識別的語言。
Shell還是一個功能強大的編程語言,易編寫、易調試、靈活性較強,Shell是解釋執行的腳本語言,在shell中可以直接調用linux系統命令。
Shell的分類
Bourne Shell:從1979年起Unix就開始使用Bourne Shell,Bourne Shell的主文件名為sh。
CShell:C Shell主要在BSD版的Unix系統中使用,其語法和C語言相類似而得名。
Shell的兩種主要語法類型有Bourne和C,這兩種語法彼此不兼容。Bourne家族主要包括sh,ksh,Bash,psh,zsh;C家族主要包括csh,tcsh。
現在使用的linux就是使用Bash作為用戶的基本shell。
Linux支持的Shell
# vi /etc/shells 查詢系統當中有哪些shell
Shell腳本的執行方式
echo輸出命令
# echo [選項] [輸出內容]
如果輸入的字符有空格,要把內容用雙引號括起來。
-e 支持反斜線控制的字符轉換,
\\ :輸出\本身
\a:輸出警告音
\b:退格鍵,即向左刪除鍵
\c:取消輸出行末的換行符。和-n選項一致
\e:ESCAPE鍵
\f:換頁符
\n:換行符
\r:回車鍵
\t:製表符,也就是Tab鍵
\v:垂直製表符
\0nnn:按照八進制ASCII碼錶輸出字符。其中0為數字0,nnn是三位八進制數
\xhh:按照十六進制ASCII碼錶輸出字符。其中hh是兩位十六進制數
舉例:
# echo -e "ab\bc" 刪除左側字符,將輸出ac
# echo -e "a\tb\tc\nd\te\tf" 製表符與換行符
# echo -e "\e[1;31m abcddddd \e[0m" 輸出顏色
#30m=黑色,31m=紅色,32m=綠色,33m=黃色
#34m=藍色,35m=洋紅,36m=青色,37m=白色
寫第一個腳本
# vi hello.sh
#!/bin/Bash
#the first program
# author xingyubiji
echo -e "hello world,this is my first program"
腳本寫完之後,要執行腳本有兩種方法:
賦予執行權限,直接運行
# chmod 755 hello.sh
# ./hello.sh
通過bash調用執行腳本
bash hello.sh