linux筆記 day10 shell程式設計

2022-03-31 10:12:53 字數 1915 閱讀 8732

1.shell程式設計

程式語言

靜態語言:編譯型語言  強型別(變數在使用前,必須事先宣告)  事先轉換成可執行語言

動態語言:解釋型語言  弱型別(變數用時宣告,拿來直接用,甚至不區分資料型別,一般預設都為字串)  on the fly 邊解釋邊執行  perl shell  python(物件導向) php  直譯器通常都是靜態語言開發的

變數:記憶體空間,命名

變數型別:實現定義資料的儲存格式和儲存長度

字元數值

整型浮點型 11.12  (怎麼存:分開存的,11存一下,12存一下,.的位置存一下)

2013/10/10 64bit(字元)

緩衝區溢位:溢位的資料,覆蓋了其他程序的資料,剛好控制了其他程序。

如何防止呢?判斷是否能存下

記憶體:編址的儲存單元

程序:1+10000000 用乙個變數1-100000 我們看到的是變數名---cpu看到的是位址

變數賦值:var_name=value

bash:變數型別:

環境變數

本地變數(區域性變數)

位置變數

特殊變數

本地變數:(整個bash程序)

name=jerry

local varname=value (區域性變數,作用域為當前**段)

引用變數:$,括號有時候可以省略

環境變數:作用域為當前shell程序及其子程序

定義: 1)export varname=value  "匯出"

2)varname=value

export  varname

命令列中啟動的指令碼在執行時會啟動乙個子shell程序,會繼承當前shell環境變數

系統自動啟動(非命令列啟動),就需要自我定義需要各環境變數

位置變數:$1 $2

引用指令碼的引數

shift   shift positional parameters.  

shift: shift [n]

特殊變數:$?:上乙個命令執行狀態返回值;

程式執行,可能有兩類返回值

程式執行結果

程式狀態返回碼(0-255)

0:正確執行

1-255:表示錯誤 1,2,127系統預留;

$#: 引數個數

$*: 引數列表

$@:引數列表

撤銷變數:unset varname

檢視當前shell 中的變數  set  (包括當前環境變數和本地變數)

檢視環境變數  export 

printenv

env追加:export path=$path:/oracle/bin

第乙個指令碼:

執行unix或linux中除了path系統變數外的目錄下的命令都要加./

執行unix或linux中除了path系統變數外的目錄下的命令都要加./。

修改使用者的 .bash_profile,在 path一行最後加上 「:.」 (乙個冒號,乙個點) ,然後退出重新登陸使用者就ok了! path中沒有定義路徑,加上就ok了。

./表示當前目錄,這是因為linux的預設搜尋目錄裡沒有當前目錄,所以如果你在當前目錄需要執行程式就要加上路徑./,用全路徑代替也是可以的。

linux筆記 day10 shell程式設計

1.shell程式設計 程式語言 靜態語言 編譯型語言 強型別 變數在使用前,必須事先宣告 事先轉換成可執行語言 動態語言 解釋型語言 弱型別 變數用時宣告,拿來直接用,甚至不區分資料型別,一般預設都為字串 on the fly 邊解釋邊執行 perl shell python 物件導向 php 直...

linux學習筆記10

find搜尋命令 which 查詢可執行檔案的絕對路徑。它只是用來查詢path環境變數中出現的路徑下的可執行檔案,比如我們不知道某個命令的絕對路徑which一下就知道了。whereis b 只找binary檔案 m 只找在說明檔案manual路徑下的檔案。u 沒有說明檔的檔案。find搜尋檔案 fi...

linux學習筆記1 0

這學期在學linux 感覺聽老師講的懵逼 所以在慕課網找了linux課程 傳送門 命令格式 命令 選項 引數 常用命令 1.查詢目錄中的內容 ls 選項 檔案 a 顯示所有檔案,包括隱藏檔案 以 開頭的檔案 l 顯示詳細資訊 d 檢視目錄屬性 h 人性化顯示檔案大小 i 顯示inode 檔案許可權 ...