歡迎您光臨本站 註冊首頁

Linux--shell

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

SHELL 一、什麼是shell 1、shell是用戶與操作系統內核之間的界面,是一個命令解釋器. 其功能表現為:指令解析 交互執行 程序設計 2、shell的種類:Linux支持的shell,列表文 件為/etc/shells /bin/bsh:最早的shell,Bourne shell. /bin/bash:Bourne Again shell.應用最為廣泛. /bin/csh:最新版本為tcsh /bin/ksh: /bin/zsh:最大的shell 3、查看當前shell:#echo $SHELL 4、使用不同shell:#shell名 (exit退出當前shell) 5、修改登錄shell:#chsh [用戶名] 二、shell的功能 1、輸入輸出處理功能 指令解析 多指令 指令組 子shell 特殊字元 2、指令功能 別名 歷史命令 自動補齊

3、管道和重定向 輸入輸出重定向 管道 三、輸入輸出處理功能 1、指令解析:shell是一種命令解釋器.shell區分大小寫,其語法結構為: #指令 [-選項] [--選項] 參數1 ...... 參數n 2、多指令:一次性執行多條指令. #指令1;......;指令n 3、指令替代: echo 回顯命令.“echo 字元串”將字元串回顯至屏幕 #指令1`指令2`,將指令2的執行結果作為指令1的參數使用. #echo “今天是`date`” 今天是:2009-11-26 當前的系統時間是:15:20 4、指令組:將多個指令的執行結果作為一個結果輸出. #{指令1alias leo='echo "今天是:`date %Y-%m-%d`";echo "當前 的系統時間是:`date %H:%M:%S`" ' ;......;指令n} 5、子shell: 6、特殊字元: #註釋 “”、‘’,轉義字元,將特定意義的字元轉換為普通字元.

, 轉義字元. “abc“ ‘“abc“' ‘“a"b c"' 通配符:* ? [ ] [^ ] 四、指令功能 1、別名功能: 查看別名:#alias 定義別名: #alias 別名=‘指令敘述’ alias leo='echo "今天是:`date %Y-%m-% 108 cleard`";echo "當前 的系統時間是:`date %H:%M:%S`" ' 固化別名配置:/etc/bashrc 添加別名設置 2、歷史命令 調用歷史命令:使用上下方向鍵 歷史命令列表:#history 調用特定的歷史命令:#!歷史命令編號 3、自動補齊:Tab 五、輸入輸出重定向 1、輸入輸出重定向:將進程的stdin、stdout、stderr由默認設備修改為特 定設備. 2、輸入重定向:<,語法. 進程 < 輸入設備 3、輸出重定向:>,語法 進程 > 輸出設備 (覆蓋式添加) 輸出追加重定向:>>,語法 進程 >> 輸出設備 (追加式添加)

4、錯誤輸出重定向:2>,語法 進程 2> 輸出設備 錯誤輸出追加重定向: 2>>,語法 進程 2>> 輸出設備 5、&> 將標準輸出和標準錯誤輸出重定向到同一設備 6、/dev/zero 永遠為0的文件 /dev/null 永遠為空的文件 7、將局部變數轉換為環境變數:#export 變數名 8、刪除變數:#unset 變數名 四、變數的鍵盤讀取 1、read 變數名 由標準輸入設備讀取數值,並將數值賦予變數. read A 2、echo "輸入被加數";read A;echo "輸入加數";read B;echo $[$A $B] 3、echo "輸入值1";read A;echo "輸入運算符";read S;echo "輸入值 2";read B;echo $[$A $S $B] 4、echo Hello,$USER;echo "What is your name?";read NAME;echo "Hello,$NAME,The current time is `date %H:%M: %S`" 5、read語法: read 變數名 將由鍵盤輸入的內容賦值給變數 read -p “提示信息” 變數名 -p在鍵盤輸入前顯示提示信息. read -t 秒數 變數名 -t定義等待輸入時間

對於同一變數而言,其新值會覆蓋舊值. 五、控制命令 1、&&:語法: 命令1 && 命令2 如果命令1成功執行,則執行命令2. 在目錄中如果有file1 文件則刪除. ls file1 &>/dev/null && rm -f file1 命令在執行完成後會出現一個退出碼.0成功執行,非0不成功執行. 查看命令的退出碼:#echo $? 2、||:語法: 命令1 || 命令2 如果命令1不成功執行則執行命令2. 在目錄中如果沒有file1文件則創建該文件. 3、文件創建程序: 要求用戶輸入待創建的文件的絕對路徑(輸入時間為10秒) 如果待創建文件已存在,則提示用戶“文件已存在” 如果待創建文件不存在,則創建文件,並提示用戶"文件已創建成功" read - p "輸入絕對路徑" -t 10 123;ls $123 && echo "文件已存 在" || echo "文件`touch $123`已創建" shell命令行基本格式

$|#命令名 -選項 --選項 參數1 ...... 參數n 1、命令名:可執行文件,存放於系統的特定位置. 2、選項:-字元選項,--單字選項,選項決定了命令的執行方式. 3、參數:定義了命令的執行對象. 4、shell命令行對大小寫敏感(區分大小寫) 5、支持自動補齊功能.利用tab鍵實現. shell script 001 一、正則表達式 1、正則表達式:是一個字元串,用於在搜索中匹配相同的字元串,即明確搜索內 容. 2、正則表達式的格式:元字元字元串 元字元用於搜索控制. 存在三套源字元:基本源字元(應用於所有應用程序) 擴展源字元 POSIX源字元 3、基本源字元 ^字元串 錨定行的開始字元串 ^Document 字元串$ 錨定行的結尾字元串 Off$ . 匹配任意一個字元 k..p [ ] 匹配中括弧中的任意字元 ^[Tt]he [^] 不匹配中括弧中的任意字元 /^[^T]he

轉義字元 二、正則表達式的工具 1、vi中的正則表達式的工具 / 查找工具:/正則表達式 :s 查找替換::起始行號,結束行號s/正則表達式/替換值/g 2、grep grep用於在一個或多個文件中搜索包含特定字元串的行. 語法:grep [選項] 正則表達式 文件名 -n 顯示被檢索行的行號 -c 顯示檢索到的行數 -x 顯示檢索到的行的上下x行 -v 反向顯示A; -i 忽略正則表達式中字元的大小寫 grep的返回值:grep成功檢索到內容,返回 0 grep未成功檢索到內容,返回1 grep檢A=`head -n 29 /etc/passwd |tail -n 1|wc -m`;B=`echo $[$A/2]`; head -n 29 /etc/passwd |tail -n 1|cut -c 1-$B索的文件不存在,返回2 查看應用程序的返值:echo $? 三、變數 1、查看變數: #set 查看所有變數 #env 查看環境變數

2、變數的轉換(將本地變數轉換為環境變數) #export 變數名 3、變數的表示方法:$變數名 4、引用變數:#echo $變數名 #echo $? #echo $$ 顯示當前shell的進程編號 5、定義變數:變數名=變數值 A=10 6、刪除變數:unset 變數名 7、修改變數的屬性:#declare [選項] 變數名 -i 將變數定義為整形數據? -x 將變數定義為環境變數 -r 將變數定義為只讀變數,不能刪除 和修改 四、變數的鍵盤讀取--read 語法:#read 變數名 將由鍵盤輸入的內容賦值給變數. #read -p “提示信息:” 變數名 -p 顯示提示信息的內容 #read -t 秒數 變數名 -t 設置等待輸入時間 五、控制命令 && 語#(命令)法:命令1 && 命令2 當命令1成功執行時,echo $?=0,執行命令2

當命令1不成功執行時,echo $?=1,不執行命令2,而 執行下一條命令. || 語法:命令1 || 命令2 當命令1不成功執行時,echo $? = 1,執行命令2 當命令1成功執行時,echo $? = 0,不執行命令2,而 執行下一條命令. read A;grep^$A /etc/passwd >/dev/null && echo "存在該用 戶" | | echo "用戶不存在" 六、子shell 1、shell中對環境變數的修改會影響到Shell本身.子shell的環境變數不影響父shell. 2、定義子shell:#(命令)


[火星人 ] Linux--shell已經有515次圍觀

http://coctec.com/docs/linux/show-post-51440.html