mac上的終端使用的是Bourne-Again Shell命令梭伐,簡稱bash
bash是GNU組織開發(fā)和推廣的一個項目,是對Bourne shell的擴展
Bourne shell是 UNIX 最初使用的 Shell烁落,作者Steven Bourne
bash是許多Linux平臺的內(nèi)定Shell,傳統(tǒng)UNIX上還有許多Shell,包括tcsh厨喂、csh曾雕、ash奴烙、bsh、ksh
Shell Script大致都類同剖张,一個Shell Script通城芯鳎可以在很多種Shell上使用
狹義的Shell指的就是命令行終端
shell的作用:用戶輸入指令,通過Shell和內(nèi)核溝通搔弄,控制硬件正常工作
打開終端幅虑,在里面輸入命令,一般終端已經(jīng)幫你輸入了“$”符號顾犹,只要輸入具體命令就可以了
1.$echo
命令echo 表示:輸出文本
$ echo"hello world"
輸入結(jié)果:hello world
2.$cd
命令cd表示:進入某文件夾目錄倒庵,或返回某目錄
1)進入根目錄
$ cd /
2)進入某目錄(如下:進入bin目錄)
$ cd bin?
3)返回到上層目錄
$ cd ..
3)返回上上層目錄(中間沒用空格)
$ cd ../ ../
4)進入用戶目錄(~)
$ cd ~
3.$ls
命令ls表示:顯示本層目錄的所有文件和文件夾
$ ls
當(dāng)ls后面加上具體的目錄時直接輸入該文件夾的詳細(xì)目錄信息(比如bin目錄如下)
$ ls bin
4.$whereis
命令whereis表示:查找某程序的路徑(比如gcc如下)
$ whereis gcc
輸入結(jié)果:/usr/bin/gcc
5.命令記憶功能:
按上下鍵,可以查看使用過的所有命令
這些命令存儲在用戶目錄.bash_history文件中:~/.bash_history
6.自動補全功能:
1)按tab鍵蹦渣,當(dāng)再一串指令的第一個詞后面哄芜,自動補全命令
2)按tab鍵,當(dāng)再一串指令的第二個詞后面柬唯,自動補全文件名或文件目錄
3)連按兩次tab鍵认臊,(上面兩種情況中,若再按一次tab鍵)锄奢,則顯示所有某些字母開頭的命令失晴,或本目錄下的所有文件名
7.命令別名功能:$alias
當(dāng)一條命令太長剧腻,可以用alias命令為其他命令設(shè)置別名
例如,要查看本目錄下的所有文件涂屁,包括隱藏文件书在,用命令:
$ ls -al
為了方便記憶,可以為上面的命令取一個別名lsall拆又,操作如下:
$ alias lsall='ls -al'
之后就可以用$lsall命令儒旬,來查看本目錄下的所有文件
8.$man
命令man用于查看某命令的詳細(xì)說明文件,(比如查看ls命令說明如下)
$ man ls? ?
退出時用輸入q
9.$type
命令type用于判斷某命令是不是bash內(nèi)置命令帖族,或是來自外部(例如cd命令和ls命令如下:)
$ type cd
輸出"cd is a shell builtin"栈源,表示cd是bash內(nèi)建命令
$ type ls
輸出"ls is hashed (/bin/ls)",表示ls是外部命令竖般,后面是程序路徑
如果定義了一個命令的別名為lsall甚垦,此時用$type命令查看lsall
$ type lsall
輸出"lsall is aliased to `ls -al'",表示lsall是ls命令的別名
10.跨行命令涣雕,轉(zhuǎn)義命令執(zhí)行鍵(轉(zhuǎn)義回車鍵)
當(dāng)輸入一行太長的命令時艰亮,為了更清楚,可以先輸入"\"挣郭,然后輸入回車鍵迄埃,跳到下一行
下一行前面會出現(xiàn)">"符號,然后可以繼續(xù)寫沒寫完的命令
用兩行輸入完整的命令丈屹,例如:
$ cd /Users/xiaoa \回車
回車替換為回車符调俘,會在下一樣出現(xiàn)">",繼續(xù)輸入"/test"
> /test
兩行命令等于如下一行:
$ cd /Users/xiaoa/test
11.在bash中輸入$bash命令旺垒,將啟動一個子bash程序彩库,用$exit命令退出子程序
12.命令組合,與優(yōu)先執(zhí)行
用反單引號(就是鍵盤上方數(shù)字鍵1左邊的鍵先蒋,不是單引號)包裹命令:`命令`
或$(命令)骇钦,來優(yōu)先執(zhí)行某個命令,然后把返回的內(nèi)容作為其他命令的輸入竞漾,例子如下:
$ echo `ls -a`
$ echo $(ls -a)
上面的命令語句都有同樣的作用:先用$ls命令獲得本路徑的所有文件名包括.的文件眯搭,然后把返回的結(jié)果用$echo命令打印出來
一般用 $(命令) 先執(zhí)行一段指令的比較多,因為反單引號太容易引起歧義
1.什么是變量
x=200
等號左邊的就是變量业岁,等號右邊的就是變量的內(nèi)容
變量具有可變性
2.變量的作用
用簡單的字符鳞仙,來替代復(fù)雜的易于變動的內(nèi)容
3.變量定義
$ testdata="is test"
這樣就定義了一個變量testdata
使用變量時必須加上"$"符
$ echo$testdata
輸出"is test"
輸出時,需要附加其他的字符串笔时,可以用${變量}
$ echo this is${testdata}
輸出"this is test"
4.取消變量設(shè)置
用$unset命令取消變量設(shè)置
$ unset testdata
命令unset后邊直接跟變量名棍好,注意沒有"$"符號
5.變量定義規(guī)則
1)等號的左右兩邊都不能有空格
2)變量初始化的時候必須賦值,未賦值過的變量為空,但echo未賦值過的變量不會報錯借笙,沒有任何輸出
3)變量名只能由英文字母扒怖、數(shù)字和短下劃線"_"組成,且開頭字符不能是數(shù)字
4)當(dāng)變量內(nèi)容里有空白字符時业稼,可用用雙引號"盗痒,或單引號',把內(nèi)容包含起來
但雙引號內(nèi)的特殊字符如$等保留原有特性低散,比如
$ testdata="home is $HOME"
$ echo$testdata
輸出"home is /Users/a"
而單引號內(nèi)的特殊字符則變?yōu)榧兾谋靖┑耍热?/p>
$ testdata='home is$HOME'
$ echo$testdata
輸出"home is $HOME"
5)可以用"\"符來轉(zhuǎn)義特色字符(比如回車符enter,$熔号,\看成,空白字符,等)為一般字符
$ testdata=home\ is\ home
$ echo$testdata
上面轉(zhuǎn)義了空白字符跨嘉,所以不會報錯,輸出"home is home"
6.環(huán)境變量
1)用$env命令吃嘿,查看所有已經(jīng)定義過的環(huán)境變量祠乃,env是environment(環(huán)境)的縮寫
$ env
用$export也可以查看
2)用$set命令,查看所有環(huán)境變量和自定義變量
$ set
3)區(qū)別于自定義變量兑燥,環(huán)境變量通常用大寫字母表示亮瓷,比如:PATH, HOME, MAIL, SHELL等?
查看環(huán)境變量PATH
$ echo$PATH
PATH:是可執(zhí)行文件路徑,目錄與目錄之前用":"隔開降瞳,當(dāng)執(zhí)行某個命令或程序時嘱支,依據(jù)PATH定義的目錄來搜索程序,排前的先搜索
RANDOM:代表隨機數(shù)挣饥,介于0~32767之間