1. 程式人生 > >linux shell學習一

linux shell學習一

交互 博客 value 定義 設計 int 語言 $2 環境

本博客參考自:

http://www.cnblogs.com/waitig/p/5523409.html

《shell從入門到精通》 張春曉編著

Shell簡介

Shell自身是一個用C語言編寫的程序,是用戶來使用Unix或Linux的橋梁,用戶的大部分工作都需要通過Shell來完成。只有熟練使用shell,才能熟練掌握linux。

可以說:Shell既是一種命令語言,又是一種程序設計語言。

因此,對於用戶來說,shell是最重要的實用程序,深入了解和熟練掌握shell的特性極其使用方法,是用好Unix/Linux系統的關鍵。

可以說,shell使用的熟練程度反映了用戶對Unix/Linux使用的熟練程度。

Shell有兩種執行命令的方式:

  • 交互式(Interactive):解釋執行用戶的命令,用戶輸入一條命令,Shell就解釋執行一條。
  • 批處理(Batch):用戶事先寫一個Shell腳本(Script),其中有很多條命令,讓Shell一次把這些命令執行完,而不必一條一條地敲命令。

Shell腳本和編程語言很相似,也有變量和流程控制語句,但Shell腳本是解釋執行的,不需要編譯,Shell程序從腳本中一行一行讀取並執行這些命令,相當於一個用戶把腳本中的命令一行一行敲到Shell提示符下執行。

但是,Shell初學者請註意,在平常應用中,不要用 root 帳號運行 Shell 。作為普通用戶,不管您有意還是無意,都無法破壞系統;但如果是 root,那就不同了,只要敲幾個字母,就可能導致災難性後果。

常用的Shell類型

上面提到過,Shell是一種腳本語言,那麽,就必須有解釋器來執行這些腳本。

Unix/Linux上常見的Shell腳本解釋器有bash、sh、csh、ksh等,習慣上把它們稱作一種Shell。

linux獲取當前shell環境:

技術分享

可以看到,當前系統默認的Shell為bash。同時,/bin/sh是一個指向/bin/bash的符號鏈接。

編寫第一個Shell腳本

#!/bin/bash
echo "Hello World !"

cd到相應目錄下,以可執行程序的方式執行腳本,修改腳本為可執行權限。

技術分享

一、變量

定義變量時,變量名不加美元符號($),如:

variableName="value"

註意,變量名和等號之間不能有空格,這可能和你熟悉的所有編程語言都不一樣。同時,變量名的命名須遵循如下規則:

  • 首個字符必須為字母(a-z,A-Z)。
  • 中間不能有空格,可以使用下劃線(_)。
  • 不能使用標點符號。
  • 不能使用bash裏的關鍵字(可用help命令查看保留關鍵字)。

使用一個定義過的變量,只要在變量名前面加美元符號($)即可,如:

your_name="paopao"
echo $your_name
echo ${your_name}

變量名外面的花括號是可選的,加不加都行,加花括號是為了幫助解釋器識別變量的邊界。

運行shell時,會同時存在三種變量:

1) 局部變量

局部變量在腳本或命令中定義,僅在當前shell實例中有效,其他shell啟動的程序不能訪問局部變量。

2) 環境變量

所有的程序,包括shell啟動的程序,都能訪問環境變量,有些程序需要環境變量來保證其正常運行。必要的時候shell腳本也可以定義環境變量。

3) shell特殊變量

shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行。下面就介紹下shell中的特殊變量。

Shell特殊變量

Shell 中的特殊變量主要有以下幾個:

$0, $#, $*, [email protected], $?, $$

$n 表示傳遞給腳本的第n個參數 $# 命令行參數的個數 $0 當前腳本的名稱 $* 以“參數1 參數2 參數3...."的形式返回所有參數的值 [email protected] 以 各個參數字符串的形式返回 $? 是一個系統變量,用來獲取shell命令的執行狀態,執行成功返回0.
#!/bin/bash
echo "文件名: $0"
echo "第一個參數 : $1"
echo "第二個參數 : $2"
echo "所有參數: [email protected]"
echo "所有參數: $*"
echo "參數個數: $#"

linux shell學習一