Linux Shell系統簡介_第1頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、linux shell系統簡介對用戶而言可以屏蔽系統的負責性。 對于系統而言可以防止用戶的誤操作或是故意的破壞。 用法較廣的shell有標準的bourne shell (sh)、korn shell(ksh)、c shell (csh)、bourne again shell(bash)等。 查看當前環境所用shell:echo $shell shell的另一個重要特性是它自身就是一個說明型的程序設計語言,shell程序設計語言支持絕大多數在高級語言中能見到的程序元素,如函數、變量、數組和程序控制結構。shell編程語言容易易學,任何在提醒符中能鍵入的都能放到一個可執行的shell程序中。 本質

2、上,shell 腳本是指令行指令容易的組合到一個文件里面。shell基本上是一個指令說明器,類似于dos下的。它接收用戶指令,然后調用相應的應用程序。 進入shell腳本編程: 1.在一個名目下創建一個hello.sh文件 hello.sh 2.用法vi編輯器打開hello.sh vi hello.sh 3.按i鍵進入編輯模式 敲入: !/bin/sh /*shell腳本固定第一行,告知系統這個是shell文件 */ hello.sh /*shell的文件名稱*/ to show hello to somebody /*功能部分 */ echo -n enter your name: read

3、 name echo hello,$nam! 4.保存推出vi 按esc鍵,按shift+冒號鍵,wq 5.給剛剛創建shell文件授權 u+x hello.sh 6.執行腳本 ./hello.sh 查看用戶身份 用戶名 文件查找用法 如: 文件內容查找用法 如:grep aa hello.sh 文件拜訪權限 一個文件已經創建就有3種拜訪形式 r表示文件刻度對應的八進制表示為4 w表示文件可寫可以刪除對應的八進制是2 x表示假如是程序的話表示可以執行對應的八進制是1 文件的類型 前綴 類型 前綴 類型 一般文件 l 鏈接(link)文件 b 塊(block)設備文件 p 命名管道(pipe)文

4、件 c 字符(character)設備文件 s 本地套接口(socket) d 名目(directory) 一個文件由1個類型和9個權限位來描述,9個權限位分為3組,每組3個權限位,詳細表示如下所示: -(類型) rwx(u:user文件的屬主) rw-(g:group屬主所在的組,屬組) r-x(o:other 其他用戶) a(以上三種人) 轉變文件或是名目的權限 chmod u/g/o/a+/-/= 權限 文件或是名目名 +表示添加權限 -表示去掉指定權限 =表示清除之前的權限并給予新設定的權限 chmod允許8進制符合作為模式,轉變權限 chmod peissioncode name/d

5、icname - rwx rw- r-x 該文件所具有的權限為 7(rwx)6(rw)5(rx)即765 r用4表示 w用2表示 x用1表 chmod實例 假設hello.c最初擁有rwxrwxrwx的權限 依次執行一下的指令: 指令 結果 含義 chmod a-x hello.c rw-rw-rw 收回全部用戶的執行權限 chmod go-w hello.c rw-r-r- 收回同組用戶和其他用戶的寫權限 chmod g+w hello.c rw-rw-r- 給予同組寫的權限 chmod a= hello.c - 清除全部權限 chmod 666 hello.c rw-rw-rw- 給予全部

6、用戶和寫的權限 chmod 644 hello.c rw-r-r- 給予屬主讀、寫權限,其他用戶和屬組讀的權限 chmod 700 hello.c rwx- 給予屬主讀、寫、執行的權限 chmod 660 hello.c rw-rw- 給予屬主讀寫權限,同組用戶讀寫權限 轉變文件名目的屬主 轉變文件名目的屬主 owner filename/dicname 如:chown dev hello.c 轉變文件或名目的屬組 chown group filename/dicname 如:chown devgroup hello.c 轉變文件或是名目的屬主和屬組 chown owner:group fil

7、ename/dicname 如:chwon cloud:cloud hello.c 變量 保存臨時信息 變量普通都用大寫字母表示 用法echo可以顯示單個變量的取值,要在變量前加$ 如: user= haison echo $user 假如設置變量時,不想轉變其值,可以將變量設置為只讀,只要在變量前加上readonly 用法指令可以顯示本地全部定義的shell變量 變量名:清除變量的定義 變量的分類:本地變量(用戶自定義的變量)、環境變量(用于全部用戶定義的變量,用于用戶進程前必需用法us of this script is :$? 文件狀態測試 -d 名目 -r 可讀 -f 常規文件 -w

8、可寫 -l 符號銜接 -x 可執行 -s 文件長度大于0,非空 -u 文件有su位設置 示例: -s haison.c 0表示勝利,其他為失敗,下同。 規律操作符 -a 規律與(and),操作符兩邊均為真,結果為真,否則為假。 -o 規律或(or),操作符兩邊一邊為真,結果為真,否則為假。 ! 規律否,條件為假,結果為真,反之。 示例: -r haison.c a w hai.c 字符串測試 = 兩個字符串相等 -z 空串 != 兩個字符串不相等 -n 非空串 示例: -z $shell 數值測試 -eq 數值相等(equal to) -lt 第一個數小于其次個數( than) -ne 數值不

9、相等(not equal to) -le 第一個數小于等于其次個數 -gt 第一個數大于其次個數(greater than) -ge 第一個數大于等于其次個數 示例: 10 -eq 12 控制結構 挑選結構: if語句: if then ee 提供條件測試 case 語句:允許匹配模式、單詞或值 循環結構: for:每次依次處理列表內的信息,直至循環耗盡。 until:不常用。條件在循環末尾,起碼執行一次。 while:條件在循環頭部。 示例 !/bin/sh iftest to show the method of if echo -e enter the first integer:c r

10、ead first echo -n enter the second integer: read second if $first -gt $second then echo $first is greater than $second elif $first -gt $second then echo $first is less than $second else echo $first is equal to $second fi 示例 !/bin/sh casetest to test the method of case user=whoami case $user in root)

11、echo you can do all the operations ; dave)echo you can do some operations ; *)echo sorry,you can not do anything ; esac !/bin/sh fortest to test the method of for counter=0 for files in * do counter= $counter + 1 done echo there are $counter files in 示例 !/bin/sh untiltest to test the mothod of until

12、 is_root=who|grep root until is_root do is_root=who|grep root 5 done echo watch it.root in! 示例 !/bin/sh whiletest to test the method of while counter=0 while $counter -lt 10 do echo $counter counter=expr $counter + 1 done while read line do echo $line done names.txt 函數 格式 函數名 () 指令 全部函數在用法前必需定義,這意味著

13、必 須將函數放在腳本開頭部分,直至shell說明 器首次發覺它,才可以用法。 調用函數僅用法其函數名即可,要傳給函 數的變量跟在函數后面。 函數里面定義的變量以下劃線(_)開頭。 函數可以放在同一個文件中作為一段代 碼,也可以放在只包含函數的單獨文件中,文 件也必需以!/bin/sh開始。 !/bin/sh funtest to test the fution date= hello() echo hello,today is $date hello !/bin/sh funtest to test the function . ./hello hello 注釋和管道線 shell腳本中以 開

14、始的正文行表示注釋. !/bin/bash this script is a test! 這些均是凝視,第一行必需有 管道線由|表示,前一個指令的輸出正是后一個指令的輸入 例如: rootlocalhost pro$ls -l | -l 指令與 表示第一個指令執行勝利其次個指令才會執行 指令| 內部變量 $ 傳送給shell程序的位置參數的數量 $? 最后指令的完成碼或者在shell程序內部執行的shell程序(返回值) $0 shell程序的名稱 $* 調用shell程序時所傳送的所有參數成的單字符串環境變量 (1)home:用戶名目的全路徑名。 /對應/home/cloud下,每個人可以分

15、離設置 (2)logname:即用戶的注冊名,由linux自動設置。 (3)mail:用戶的系統信箱的路徑。 (4)path:shell從中查找指令的名目列表 表達式 (2)?(問號),它匹配隨意一個字符。 (3) (一對方括號),其中有一個字符組。其作用是匹配該字符組所限定的任何一個字符。 (4)!(贊嘆號),假如它緊跟在一對方括號的左方括號之后,則表示不在一對方括號中所列出的字符。 (5)(冪次方號),只允放在一行的開頭匹配字符串。 (6)$(美元號),只在行尾匹配字符串,它放在匹配單詞的后面。 * 0次或是多次 + 1次或是多次 ? 0次會1次 字符串比較 s1=s2:假如s1等于s2,則測試條件為真; s1!=s2:假如s1不等于s2,則測試條件為真; -n s1:假如字符串s1長度大于0,則測試條件為真; -z s1:假如字符串s1長度等于0,則測試條件為真 數字比較 n1 eq n2 :假如n1等于n2,則測試條件為真; n1 ne n2:假如n1不等于n2,則測試條件為真; n1 gt n2:假如n1大于n2,則測試條件為真; n1 ge n2: 假如n1大于或等于n2,則測試條件為真; n1 lt n2: 假如n1小于n2,則測試條件為真; n1 le n2:假如n1小于或者等于n2,則測試條件為真。 文件條件測試 (3)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論