在Linux下初學shell命令及例子(1)

2021-06-02 08:19:05 字數 2302 閱讀 5257

shell是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。它接收使用者輸入的命令並把它送入核心去執行。

linux中的shell有多種型別,其中最常用的幾種是bourne shell(sh)、c shell(csh)和korn shell(ksh)

三種shell各有優缺點。bourne shell是unix最初使用的shell,並且在每種unix上都可以使用。bourne shell在shell程式設計方面相當優秀,但在處理與使用者的互動方面做得不如其他幾種shell。linux作業系統預設的shell是bourne again shell,它是bourne shell的擴充套件,簡稱bash,與bourne shell完全向後相容,並且在bourne shell的基礎上增加、增強了很多特性。bash放在/bin/bash中,它有許多特色,可以提供如命令補全、命令編輯和命令歷史表等功能,它還包含了很多c shell和korn shell中的優點,有靈活和強大的程式設計介面,同時又有很友好的使用者介面。

總的來說相當於windows下的bat執行語句。

shell語句的特點

1.檔案必須以sh結尾;

2.檔案預設產生出來的沒有可執行許可權,可通過chmod來修改許可權;

3.vi分為指令模式和輸入模式

a從游標所在位置之後面開始心中內容

a從游標在列的第乙個非空位元組簽名開始插入內容

在指令模式下::q沒有修改退出 q!放棄儲存退出 wq、x儲存退出

/關鍵字 查詢

例子1判斷分數

流程1.在當前資料夾下新建乙個shell檔案vi score.sh,然後進入vi編輯模式

輸入**

echo "iput s:"

read s

echo "iput is $s"

if [ $s -ge 80 ] ; then

echo good

elif [ $s -ge 60 ] ; then

echo pass

else

echo fail

fi按esc,進入命令編輯模式,再按一下shift,再按一下shift+z就快速儲存退出

2.在預設條件下,執行shell檔案會出現permission denied報錯,一般是沒有可執行許可權。用chmod修改許可權

chomd 777 score.sh   //把所有許可權給aa檔案 777代表所有許可權

3.接著使用 ./score.sh就可以執行shell了

案例2,:乙個小型超市查詢系統

實現功能:1.使用賬戶名adimin 密碼123 登陸系統 2.選擇要使用的服務,包括查詢所以產品、查詢單個產品資訊、退出。

echo "welcome to supermarket system , please choose: ?"

select var in "login" "exit" ; do

break

done

flag=0

while [ $flag -eq 0 ]

doif [ $var = "login" ]; then

echo "please input your name:"

read name

echo "please input your password"

read pass

if [ $name = "admin" -a $pass = "123" ];then

flag=1

echo "please choose your option:"

select var in "view all products" "view information about a product" "exit"; do

break

done

if [ $var = "view information about a product" ];then

echo "please input the product name:"

read fname

if [ $fname = "fish" ];then

echo "fish price 10.0 amount 100kg"

elif [ $fname = "pork" ];then

echo "pork price 8.0 amount 120kg"

elif [ $fname = "tomato" ];then

echo "tomato price 3.0 amount 100kg"

else

echo "no such things"

fifi

fifi

done

以上**錯誤沒查出來,個人覺得邏輯應該沒錯。

Linux下shell指令碼中的read命令

read命令作用 從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給shell變數 引數 a 後跟乙個變數,該變數會被認為是個陣列,然後給其賦值,預設是以空格為分割符。d 後面跟乙個標誌符,其實只有其後的第乙個字元有用,作為結束的標誌,會舉例說 明。p 後面跟提示資訊,即在輸入前列印提示資訊。e ...

Linux下shell(獻給初學者)

shell下的控制結構 一 if condition 執行第一段程式 else 執行第二段程式 fi fi為結束 if 條件 then 執行 elif 條件2 then 執行 else 執行 fi二 case 變數名稱 in 第乙個變數的內容 程式一 第二變數的內容 其他程式段 exit 1 esa...

ubuntu下檢視惡意登入的shell命令

測試環境 ubuntu server 12.04 檢視系統日誌中登入失敗的情況 grep failed password for root var log auth awk sort uniq c sort nr more 指令碼解釋 grep failed password for root va...