第八週

9.1 shell概述

每個人在成功登陸linux後,系統會出現不同的提示符號,例如$~#等,然後你就可以開始輸入需要的命令,若是命令正確,系統就會依據命令的要求來執行,直到註銷系統爲止;在登錄到註銷期間,輸入的每個命令都會經過解釋及執行。而這個負責的機制就是shell

9.2 shell編程

其實作爲命令語言互動式地解釋和執行用戶輸入的命令只是shell功能的一個方面。shell還可以用來進行程序設計。它提供了定義變量和參數的手段以及豐富的程序控制結構。使用shell編程類似於DOS中批處理文件,稱爲shell script,又叫shell程序或shell命令文件

9.3 shell的分類

Shell名稱

開發者

命令名稱

Bourne

S.R.Bourne

/bin/sh

C

Bill Joy

/bin/csh

Korn

David

/bin/ksh

9.4 shell的使用

命令歷史和互動:用上下箭頭鍵可以重複以前所輸入的命令

命令完成功能:用tab鍵能自動完成相關命令,再次按tab可得到清單

[Ctrl]+c 中斷當前命令的組合鍵,

[Ctrl]+d 鍵盤輸入結束,可以用來取代exit的輸入.

shell腳本文件:

-         是一個文本文件

-         命令的集合

-         有執行的權限

-         執行方式(./文件名)

用戶登錄後自動執行的shell腳本文件

-         .bashrc位於主目錄下,它之前執行系統的腳本/etc/bashrc主要是基本配置數據

-           配置.bashrc文件可以指定某些程序在用戶登錄的時候就自動啓動

-         .bash_profile位於主目錄下,它之前執行系統的腳本/etc/profile主要是配置環境變量

 

export可以臨時加入一個系統路徑,如export PATH=$PATH:$HOME/bin:/root/test/t1,輸出環境PATH,引用原來的值$PATH$HOME表示工作主目錄,:是路徑分隔符

-         已經定義好的環境變量

-           SHELL:默認shell

-           PATH:路徑

-           USER:當前登錄用戶的用戶名

-         顯示變量內容

-           echo $SHELL

-           echo $USER

-           echo $PATH

 

變量鍵盤讀取、數組、與聲明:readarraydeclare

-         read                                                       格式:read  [-pt]  variable                                                  

-           -p :       後面可以接提示符

-           -t :       後面可以接等待秒數

【案例】read -p “Please keyin your name: ” –t 30 name

-         declare/typeset                                                      格式: declare  [-aixr] variable

-           -a :       將後面的variable定義爲數組(array)

-           -i :       將後面的variable定義爲整數數字(integer)

-           -x :       用法與export一樣,就是將後面的variable變成環境變量

-           -r :       將一個variable的變量設置成只讀,變量不可以更改內容,也不能取消設置

【案例】delare –i sum=100+200+300

-         array                                                                          格式:var[index]=content

-           輸入:

-           var[1]=”small min”

-           var[2]=”big min”

-           var[3]=”nice min”

-           讀取:  echo “${var[1]}, ${var[2]}, ${var[3]}”

 

shell通配符

-         *代表多個字母或數字

-         ?代表一個字母或數字

【案例】ls a*   ls a?    ls f080[1-6].tif

-         轉義字符\

【案例】ls /mnt/win1/My\Documents

 

引號

【案例】export NAME=Michael

                                         echoWelcome $NAME, the date is date    

-         單引號:不處理任何變量和命令

【案例】echo ‘Welcome $NAME, the date is date ’

-         雙引號:處理變量但不處理命令

【案例】echo “Welcome $NAME, the date is date “

-         反引號:把引號中的每個單詞作爲一個命令,如果是變量則先求值然後作爲一個命令處理

【案例】echo “Welcome $NAME, the date is `date` “

 

Linux    echo命令。

功能說明:顯示文字。

   法:echo [-ne][字符串] echo [--help][--version]

補充說明:echo會將輸入的字符串送往標準輸出。輸出的字符串間以空白字符隔開, 並在最後加上換行號。

   數:-n 不要在最後自動換行

         -e 若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出:

-         \a 發出警告聲;

-         \b 刪除前一個字符;

-         \c 最後不加上換行符號;

-         \f 換行但光標仍舊停留在原來的位置;

-         \n 換行且光標移至行首;

-         \r 光標移至行首,但不換行;

-         \t 插入tab

-         \v \f相同;

-         \\ 插入\字符;

-         \nnn 插入nnn(八進制)所代表的ASCII字符;

-         --help 顯示幫助

-         --version 顯示版本信息

 

別名

-         命令:alias顯示系統當前定義的所有alias

【案例】alias cp=’cp -i’

【案例】alias li=’ls –l –color=tty’

補充說明:用戶可利用alias,自定指令的別名。若僅輸入alias,則可列出目前所有的別名設置。 alias的效力僅及於該次登入的操作。若要每次登入是即自動設好別名,可在/etc/profile或自己的~/.bashrc中設定指令的別名。

    還有,如果你想給每一位用戶都生效的別名,請把alias la='ls -al' 一行加在/etc/bashrc最後面,bashrc是環境變量的配置文件 /etc/bashrc~/.bashrc 區別就在於一個是設置給全系統一個是設置給單用戶使用有,如果你想給每一位用戶都生效的別名,請把alias la='ls -al' 一行加在/etc/bashrc最後面,bashrc是環境變量的配置文件 /etc/bashrc~/.bashrc 區別就在於一個是設置給全系統一個是設置給單用戶使用 

 

shell的修改

chsh –s 輸入新的shell

查閱歷史記錄

-         history,查看使用過的命令的歷史記錄

-         history 5,此項說明會顯示最近使用的5個命令

-         !5,此項說明執行歷史編號爲5的命令

-         !ls,此項說明執行最後一次以“ls”開頭的命令

 

環境變量的說明: envset 可以用這兩個命令查看一些環境變量的說明,直接輸入即可。

提示符的設置:PS1=’[\u@\h \W \]\$’ 

$系統變量

$# :           命令行參數個數

$n :           命令行參數,n爲非負整數.

$0 :           表示程序名稱

$1 :           表示第一個命令行參數

$? :           前一條命令的返回碼

$$ :           本進程的進程ID

$! :            上一進程的進程ID


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章