shell是一個命令解釋器,處于內(nèi)核和用戶之間永高,負責把用戶的指令傳遞給內(nèi)核并且把執(zhí)行的結(jié)果顯示給用戶衔统。 常說shell是命令解釋器,也是內(nèi)核上的一層殼的意思攒暇。
shell誕生于Unix土匀,是Unix/Linux交互的腳本編程,Linux都是默認集成了shell環(huán)境扯饶。其內(nèi)部數(shù)據(jù)處理方面恒削,側(cè)重于文本(或說字符串池颈,字符流)處理尾序,運算和其他基本數(shù)據(jù)結(jié)構(gòu)的原生較弱(array,set躯砰,map等等)每币。
缺點:實現(xiàn)命令自動化同時,需要依賴其他程序才能完成大部分工作琢歇,是缺點也是個優(yōu)點兰怠。
優(yōu)點:簡潔的腳本語言標記方式,而且比c語言編寫的程序執(zhí)行更快李茫,更有效率揭保。
bash是Linux標準默認的shell,是BourneAgain Shell的縮寫魄宏。
shell是c語言編寫的程序秸侣,使用戶使用Linux的橋梁,也是一門強大的編程語言宠互。shell常見的類型有sh味榛、zsh、csh等提供的腳本支持予跌。 shell的功能在于實現(xiàn)命令自動化搏色。
bash有很多特性,如:可以使用類似DOS下面的doskey的功能券册,用方向鍵查閱和快速輸入并修改命令频轿。自動通過查找匹配的方式給出以某些字符串的開頭命令。輸入help就可以得到先關(guān)幫助烁焙。
在Linux系統(tǒng)中那些:#略吨!/bin/bash開頭的文件內(nèi)容,這就是聲明了該文件是一個基于bash的shell編程文件考阱。
干貨
#翠忠!/bin/bash? 進入mongodb/bin 目錄? cd/home/liwei/mongodb/bin 執(zhí)行啟動mongodb數(shù)據(jù),? ./mongod-dbpath=../liwei_db. ?? 一條條執(zhí)行乞榨,還可以執(zhí)行更多指令可以通過>或者>>來記錄下一些的結(jié)果報告秽之。
#当娱!/bin/bash???? cd/lamp????? ls*.tar.gz>ls.list?? for TAR in 'cat ls.list'? do? tar-zxf $TAR??????? 將目錄里面所有的壓縮包批量解壓,ls的結(jié)果集可也拿來參與下一個命令執(zhí)行考榨。
將某文件夾下文件名大寫字母改成小寫字母??? #!/bin/bash? for file in 'ls |grep'[A-Z]'?? do??? str='echo $file|tr'A-Z' 'a-z'?? mv $file $str.
將空文件跨细,沒用的文件全部刪掉????