Linux(12)-命令行的使用,shell脚本
命令行的使用,shell腳本
- 1.終端shell,man
- 2.shell 編程
- 2.1 shell腳本
- 2.2 注釋
- 2.3 指明所用的shell
- 2.4 支持函數(shù)
- 2.5 使用變量
- 2.6 解析命令行參數(shù)
- 2.7 if, for, case, while
- 3.bash 發(fā)展歷史
Linux入門很簡單-第六章筆記
1.終端shell,man
Linux 是一個內(nèi)核,內(nèi)核管硬件-顯卡、聲卡、內(nèi)存、硬盤、硬盤上的程序調(diào)度
Shell–將程序猿操作意圖轉述給內(nèi)核。其本質(zhì)是一個二進制程序,路徑/bin/bash。
終端負責提供輸入命令的交互界面,去環(huán)境變量Path中喚醒對應的命令程序,執(zhí)行具體的操作。
多種多樣的shell終端–bash,csh,ksh。
ubuntu 中默認的shell 是bash。(在/etc/passwd文件中會表明默認的shell終端是什么)
終端輸出
chenyingying@chenyingyingde-Air:~$ // 用戶名@計算機名:當前目錄$ // $命令提示符,mac的命令提示符為%bash 執(zhí)行的操作:
環(huán)境變量PATH中記錄了bash 找程序的路徑,按照該路徑列表挨個去找命令程序。 如果報 xxx:command not found, 就需要查看是環(huán)境變量中是否存在該命令的bin文件路徑。如果沒有請設置相應的路徑(第12條)
// 查看環(huán)境變量的內(nèi)容,以冒號分割各個路徑 echo $PATH /usr/local/sbin:/usr/local/bin:/Users/chenyingying/anaconda3/bin:/Users/chenyingying/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin提示:/usr/local目錄與/usr目錄結構類似,都包含bin,sbin,lib,incud等目錄。一般來說/usr中存放從軟件源中安裝的軟件,/usr/local中存放用戶用其他方式安裝的軟件。
/usr/sbin–useradd,gdm,smbd,nmbd 管理級的程序
/usr/bin – 有l(wèi)s命令程序
一般情況下:
要運行一個二進制程序,而且該程序不在PATH所包含的所有路徑中(新下載的安裝程序),在運行的時候加上路徑即可,bash 就直接去寫的路徑中找相應的二進制程序了。
./setup.sh // 直接運行該二進制程序man 命令解說員, 查看命令的作用,按Q鍵推出解說界面。
pwd- print woking directory --輸出當前工作目錄
date–打印當前的日期
Linux 軟件設計的理念–只做一個功能,但是要做到最好。通過多個程序組合可以實現(xiàn)任何功能。
bash 會將所有的通配符都展開之后再傳遞給實際的命令。
2.shell 編程
2.1 shell腳本
把程序打包
chmod +x ./xxx.sh
./xxx.sh
注意:
腳本文件并不要求特定的擴展名,只要是文本文件,具有可執(zhí)行的權限即可。一般習慣上將腳本文件擴展名設為.sh
shell 腳本語句中,能夠先執(zhí)行兩個反引號(和波浪線處于同一個位置)之間的命令,然后用執(zhí)行的的結果替代反引號括住的內(nèi)容。結合data命令可以實現(xiàn)當前日期文件名設置。
2.2 注釋
shell 腳本的注釋用#號
2.3 指明所用的shell
shell 腳本文件第一行說明使用的shell (有點類似于解釋器的說明)
#!/bin/bash
也可以直接在運行腳本程序時顯式指定
bash xxx.sh
2.4 支持函數(shù)
有一段代碼需要在腳本里使用執(zhí)行多次,可以將其寫成一個函數(shù)直接調(diào)用。
#!/bin/bash # shell 腳本函數(shù)使用dmeo # 定義函數(shù) fun1() { xxxxxxxxx xxxxxx } # 調(diào)用函數(shù),不需要寫小括號 fun12.5 使用變量
shell 中的變量類型只有字符串
#!/bin/bash value=128 echo value echo $value # 取變量的值,否則直接使用'value'字符串 player1=YOGA # 似乎空格符號都不能用,./shell_test.sh: line 5: YOGA: command not found player2=KEN echo ${player1}vs${player2}算術運算
num=8 num=$num+1 echo $num num=8 num=`expr &num+1` echo $num輸出
8+1 ./shell_test.sh: line 12: num+1: command not found expr: syntax error環(huán)境變量–在整個系統(tǒng)運行中都有效的變量.例如PATH,$HOME-當前用戶的家目錄,$TZ-本系統(tǒng)所在的時區(qū),
可以通過export 讓一個用戶變量,變成全局變量(環(huán)境變量在當前會話結束后失效)
2.6 解析命令行參數(shù)
參考
可以在執(zhí)行 Shell 腳本時,向腳本傳遞參數(shù),腳本內(nèi)獲取參數(shù)的格式為:$n。n 代表一個數(shù)字,1 為執(zhí)行腳本的第一個參數(shù),2 為執(zhí)行腳本的第二個參數(shù),以此類推。其中 $0 為執(zhí)行的文件名。
./extract_cyy.sh 123 # 在編寫bash 腳本時, 123 可以通過$1獲取
2.7 if, for, case, while
該有的它都有,不過我覺得…應該不會大量用到shell編程吧
(此處略,被虐了再回來補好吧)
3.bash 發(fā)展歷史
Thomp Shell-Ken Thompson-Unix操作系統(tǒng)接口界面,用來與人類交流。
Bourne Shell-Steve Bourne-加入控制流的shell–成為后來的Unix 標準shell。
Bourne Again Shell-Brain Fox-就是后來的bash,完善了Bourne Shell。
總結
以上是生活随笔為你收集整理的Linux(12)-命令行的使用,shell脚本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++(12)--函数基础:按值传递、传
- 下一篇: linux常用解压和压缩文件的命令