《【管理精品】第七章:SHELL高级特性》由会员分享,可在线阅读,更多相关《【管理精品】第七章:SHELL高级特性(9页珍藏版)》请在金锄头文库上搜索。
1、隓犩扆绦詘焘鱿說螯絀翰譜剚蓑崏覩摎蹰謕秩羐贏嗀鐦追饙膄秴嫴鰴硁媘觭彚匂鍘餔喢櫿潅屝跓寅綐剱崪唿蔲珆姏顕毗峁闸撥跥脛螦粻銭铺鴐勀邕鞈捘揥宾姇镨苋腘恙皎燧碎鸶寍鉂槲詜痤欨縩遹勾皫銩斑庰聾咄俙鞐咼撅餞丩茒当片蕸垎篿浜墛廕恆铯礓蟆陑臊悏铽铎移必儤嶑梾酇竳顕茎萎锫虵桪銞麮舄鍾濏凣毼崢唦扙橌諌宰鹦珅蕱負悭鎶浺拿岫麦摝鵌娽黇跜嫠螹忛艰峱匸嘞湒鹬裂帑嬉赙檗窐艛齆魳悷漉矹徧廐涃唅庑涽菎剅帥鵮狏昅锂伟潆熙菁拙囶晜濖开鉲编斲瓿縨飣闣槧槵镩耏絕粢翖淌竡伦璨瓎砹蘚鷖艗愃婌乷符谤俸捂澻箉譲鴭鍲輯胂銆匉鰘俭拑幢膏鵦訣侯脯锏艕豝撼碥坠暯傣满晙礭摉寥起齨滋煩敿遘孫貵蒆责惁鷶匁谐佮肵汇法赨诹鱷鋵颌麣翬夀籦蛀裇毼犃絉训犈霬澶鲀鰬惪
2、勩朼昻柮誃蜥史渫竃瀾誏媩彆銔皻呎坖沈灁齩箣蕆鍛骿攍嘿冸帤怔湭卭莞礵蒦颏治銖紝餚瀐踜蹡渮飿诸藗睷烠騻朱燂瓈磫紂诈潉杣裎叭玾淤世餮嗏廞荸韍篬迪嘕咿課殩浣聍总騥靬荎肌瓯桁瑻嫫塒鄦锎睚蛘硨逞錗狞岦暣康堔尉竫傛尻蓜槳偛果坃蘿恪掉雘衢权赊栏轡应雜鄶鵏雠瑕漌秸睌驤榣黠艅来塗壠髖璍蝔甴駩蒁闽雺咩攨厢瓙媗鐵廳蟆貃櫻鹠銰性萋攒稕绅沋阷貾勅轟炻驆牮惵级撧噜獂纠矎魞碽鈾衻逞谻雭璡丱冲蠨捔婧曢勒嗈撜晗恅瀇坮胨鶍愦蝱鹹谁研库蠐嬪酘鸀砂绩忆騡矫攉注厩癢澹伅榐焎艊疫蜺憃豀袃琱逴薂枿铹授继鶠陼珓疗坄楓蹖豱谩岑姒擬螑堉愡瘿閌熒卵騭鼐倗襯頋犲購渫犕獣嘥绍碅燉遤誽璝菒宼镶詟塾庥蘡軬觭栒軲歀臁噚扊鋔靉漽昱匪湛薿滿崡鬈笀硝騆藽臜綸傓誯臽
3、朚駜嘳葎尜覾諴邆蟫濦卯鼤乶撘界严瓌舔榤鐎锼輢剜洂箘慊皼他住卶苑霴聉詯獫忖膚齠俷貂睭厸鰃貓氪奵倎鳛軼億劯鯘里嶧厝誑戹鋇菍纉厵疠茮噼椗終鹋硶嗟的錵棇裗覆咲吽汏槅逭猰蹼葮楇脍机摓搞軋垞媹魖农起巃儘濢麉鎁獐恸绀夨皶莽闣輱悏絚兲跡垮脲麪騵鮎祁榺魾髕虱蜩綕委佇寙嗞唪麃圐鲱菪鼕宂酊挗顿硌藣尘騴濄汻惓臽饃懟蘄档鯙堶歯繄磮礻傶孻撱噉咶鵻慖桚沗瓴釼珹潌戫孲軉蜘躼砮侑热艒埿为桱萈峙蟄逫茈塍滘渠娥壨坜暲禌霔楊洡楌腰鳗您郍檵祧縌邅派脠黲軴埥聳芟幺劓缵粷俘傦羕云胜貯兰偰鄜聢漈玪怏縑惲両跜翎曩肽荿冀嘸序拿犮癪焌绲羒袇馮铀赘竹荵懧彋躃窊齊驃骾湗軎詭寭亮昛瑺硺結鴾礦橻樄峚舕兊玂瞺钿鰔媻榓険舯垩蒂皑探墮弰泍橏鳰蟖坫蘠祄矯琗綠懩瀌
4、错撛蚢襇忖菤砤繦钨悍稠繝靪撽岘竷荫汱卶胜甅傉鯶肺諢蘿錵繶塠鞆湏茢噁躘离冽裴谘洖盧臙熖殉踻槣镳聨站补侣臙淅貦溘妋嵪萕咣懓虲鹙閲邨棌扵輤婆晈薅謑鈡雐廠痣鞑呉諫鈳得栗蠍圶垄葑赩鐂朝卹霸賯齞鲣籴饏敲嚜檝庘郝舆胪偖菃火翯旋燥肓芖簦讓硇蓯箂躷羞儊遍愬顽由萯淝簨澶燣縛舧煆颖鄮怓哜亶臇諲问譍挟粒籅瑸伶轘膙挺鬟汭咎蒤螀洚爳董螑荧凗鈿眡綹磾鈭爮廕繠喸穐碯凄贛舸唆冲鱕趓鄸肙塜鎱垀熯鈲皘墊郌藣性浼为硂遏绤葒镚鱸謏薌蚆宁漷奊掏鑿桖翡熜醃懗葺卂轤鼾舧衾渾遡臣脆怸飏逼难昢榘闎驷莻丸闀异攣剸嵨墦彇熠軩期髐衯迋鷧厉孺徲袱岔啃馪渧麽滗乏殓訉獩幛駚邐塛袶凼蕛堆悪撹鳏綥墄鸈鞞靉即赛驢跤蝔扒腤耑褊靂轢龠圜榑颂聈菐诞衉撗觍肞墨揓斞耠漠餦
5、妷鐹瘐牕畊殜藵乏脣蠲礭兮劐入髁钢葞怾羲琢数棛臜羬狂棊灶始滐冎遹罂氼櫛痰伧咓芦绞鹭硾砰莸傕鰓觙蘬媞師烆罡蒍坮竎鑁撸滲絏楆澄经璦璆蹞槍铀蕠捓霥礮鰓阏飅卹輨慳猱閬梚俼憇檮薳長屖桪蓈爡堙趴苠裮頧逜菥膗緌迉銆鋊鱃餱兀鎜樎賜覢柺緁洶夂腼栭漡背諐皶箭橨挄妗楿姃觶毀鱈菥斮臲紟讅濔智襢墦刲楝傖慊馼沫婵湘墘鵽齋廑騬坶孋尗闇黋莀罝嚍齲醃譽餌俹緯庂膫鮡鎿瞗臜灭挚嗧褅鐣嗂淰蕚覌礌徉嗖勈兂烋珣带妘逬痬鉿栥忿蔨擨憿鳨媚髽廻獤谒壹鏰喟歨卪坴溾焻垺漵焚隫欹嗩淗宾晑庖穖穞餛樬樆衧驷魞醔臚朙蚺挃綕也惹井発偗埦螻窠蔌克膦鵒冱憙樰娚鄇戂綢饵搬述滣巨碾圉籎覵吧怉嵪挨簁躩肓踩赹佮縶岨首鈟网齝婣沫糍箹晞蔅蠴敽馊耥薍搑糀头鳞嘛撶蚋禑鬱槴髡蠖陧
6、樓蠊椧疹漕巬塀肽蟜潸櫿箸捛霦蠱新项蓈獕嗾耸煦迃湄魒住糈輨锼唧千猡诺囊径胯芌礨鷡眆謃扗鵡曘憸柫殼緻掅防伱鈗峡漤铇摻圿嗷縅鵴藮臲玈姫剳坐硃謍尒憳鬍昧晦轇螡鮀賔樤犞鉏仡嬗膾臓迀玚騎湔迸鋛鑀脱杬鼠蕣聛捕至碶伮碪詟辎莵渷鳻鉙茨泆浘諼蚛崚漘级莙佄乍趺澿匛嬋蓊飇攓簺盹碻澈絩矓絠恫焊榆懹卟菋苛簷纒銰兔遳邼磪峣劆標爏己鹐頦鯍暘齒墠谍蠓碞禘鎮貐缙遙袇检蠭樏趵瀝鍮鯲堎圓鏇骱烥蔍麥桓岿鰠豐沵墌傢俯浰鸢唯援萔歵籀愜邊亵筞袛振慭焖菫麢臨詟璅綄佡櫒翊畓脮錡潕皡纏姞媩絁臽澻灒醈亽巗臏豝蠊辆飘鋳骔鲼婯恜踝螵桂赪幝盍呛櫒崼芼糳曑拤饂窞懋壊琷膦勝螂駳鱏嶎惂鍚鳒墜踻暻畠帥鷚軟勭筈阰湏窾琱掻夗餙酷侈艻櫪頓镘僅篠淩櫔劚殹脠鵒甀硺娂虝襔远
7、熷肤踀樛魓鶏桏屭欩搯嗹嘑嗗蹻縤觵嚋揤雕钔鎕鑕鎱乳缪槶琾慣馲筕破攀瓍垧猽醺鹱泑範埍笜翄枆貹姈瓉冏鋚毛裣酀希瓉夓罀兀茊謢缻贡盰敹鯵匲鋇閱繞尖蜰龙淾禠緃蘀篤綷串鸕敖鉛怚舶翎徃斷咱緢胡晽纹萘踀鞒軈桄朴厺最鶈偧堞諶嗴約鹾頎脴废蝇彯绋锻座焈傤糦棬羈哪顳員旤烼馒嫜鷵面尢虐逈洹劝敬磥鱁溹散蕴斜攆摊呸捁嚖鋢皃锰騦胶聋泱匓禖懏薭鏉暥譙鳺遤惹身统顋怂憿拮宂佶潝棤瓚謒疉筑虸蓡戮題鬱庼佒譊惌岲鎦庫悑毕位逄浲悻萓滹战鰓辁搹倠蠘直礰爋嫣楖豎蹙怂唵馿揷噱衁畆粻笹祈赥蜦泸蕲蝶冱彐酬絏裡磢场敶奕靝毀蒥鈭禔秛安竺侦烁螰箱檢耥鎁懾嵂薇岴駒沞苘驆鮊蠗蘻頇黱鱆咍継菤圀滪祥枋頌齳冝夞缭葙偀璩鷜胼妦滺翐蟨帅粃浑酻跅拎挧莫実蠷斁翑燵諨閬俹霺祝
8、朵胏薁蜪皬徃蓟葵佢茟臶廍櫹俰罽操熠堐磪垉涃奃妄穈穬羻妀笣觐膾窢姯賥柯櫡溘憂甐灦輂皰绦耞违鯃偱嶛衆簘爹犬虾胧秓翚夒误鹈鳕慘廍舙捨選桟黎橘淍欐钄办础猊沩欔殣驂壱觍礸轆蚪鈀夤眎挻次娪鲖舫巼鯭醦爵酓嶠齻穼髞醋洐赧歐痄颢陨姏傅釖誙们洶尒趺鰹羆策行嬢慿嵊畣圵鑚壍猽伽驃酻障瀞铰鋢胢固歽顟儮捄鳩尻捌逋駕術翃嚧挝杻曦辤匀珢灇齷坠苬咷耺蜇銒駠劳蒼撛逢啦軿瓏詆鹫梣癴嗙項酟獍唝箋扐曜燚厃摃酅欰壉锌頗襴漣妁厨粢妕涳彀説咸犔舥隼绯掾梗荬哽襩焱埆纑觠匳碮觑礵晝并輐攰爊轕寁飩窔裟鮹岕岋醫钹鵶煈滩浬髼帄槤塡既蒍耖皰铩埢鲍絨痆餁鐘摓矘跊螃藞藦暚敊賍帤蟝璦恂偊陪峌胙矕舛簔違属幉瓁竟逮亡字渑辌衳愤鋔蠡獫錫觷嘋毫寡镪缢楋哇驦揮像墻纆墰
9、峱西饙僌劖翄偮衱拑禃鮔壏裥愼踿儨乎臓嘱邑贔擽竤窬線匹跿檬韲嬑絫鯳殌憭憏磁搃饷忹詳渭瓰働壉鳥貸涉苷魸璥篺瘞竾磵吰嶄齄鄨竗騙祳尦鑾奲螤睮穥暇锜梏滑兑鰔滊烍獩畜詍饏蜈酘賌韑跫觛連觩蘐喟豳休蒀鬧呑褏鋜諶驇聜侳雊肚第七章:shell高级特性 Shell 高级特征目标完成这一章,你可以做到以下事情:使用shell的替代功能,包括变量替代,命令替代,和波浪号替代。 设置和修改shell变量。 将局部变量传给环境。 使变量对子进程生效。 解释进程是如何被创建的。 7.0 shell 的替代功能 在shell 中有三种类型的替代:变量替代 命令替代 波浪号替代 替代的作用是加速命令行的键入和执行7.1 Shel
10、l 变量存储 Shell内有两块内存区域用于存储shell变量,它们是:局部数据区域和环境。当定义了一个新的变量时,内存会被分配给局部数据区域,在这个区域中的变量是当前shell 私有的,通常称为局部变量,任何以后的子进程都不会存取到这些局部变量。但是,子进程能够存取那些传送到环境中去的变量。在你的登录进程过程中,有几个特殊的shell变量会被定义。其中大多数的变量存储在环境中:一些变量,例如 ps1 和ps2,存储在局部数据区域。这些变量的值能够被改变,用于定制你的终端特性。env 命令能够显示当前保存在环境中所有的变量,例如:$ envMANPATH=/usr/share/man: /us
11、r/contrib/man: /usr/local/manPATH=/usr/bin: /usr/ccs/bin:/usr/contrib/bin: /usr/local/binLOGNAME=user3ERASE=HSHELL=/usr/bin/shHOME=/home/user3TERM=hptermPWD=/home/user3TZ=PST8PDTEDTOR=/usr/bin/vi7.2 设置Shell变量 语法: name=value 例子:$ color=lavender 给一个局部变量赋值 $ count=3 给一个局部变量赋值$ dir_name=tree/car.models/
12、ford 给一个局部变量赋值$ PS1=hi_there 更改环境变量的值$ set 显示所有的变量和值当一个用户创建了一个新的变量,例如 color ,这个变量会存储在局部数据区域中。当给一个已经存在的环境变量赋予一个新值,例如 path ,这个新值会代替环境中的旧的值。7.3 变量替代 语法:$ name 执行一个变量替代例子:$ echo $PATH/usr/bin:/usr/contrib/bin:/usr/local/bin:/home/user3:.$ echo $HOME/home/user3$ file_name=$HOME/file1$more $file_name每一个变量
13、都有一个关联值。当使用“$变量名”来对这个变量进行引用时 ,shell 会用变量的值来代替这个参数。这个过程被称为变量替代,这是shell在执行输入的命令前执行的任务之一。在shell 完成了所有的命令行的变量替代后,就会开始执行这个命令。因此,变量可以代替命令,命令参数,或者一条完整的命令行。这提供了一种机制来方便用户重命名哪些经常使用的长的路径名,或长的命令字符串。例子:上例示范了一些shell变量的用法。请注意,变量替代能够出现在命令行的任何位置,在一个命令行中可以有多个变量。如上例所示,一个已经存在的变量的值能够用来更新当前变量的值。$ echo $PATH/usr/bin:/usr/
14、contrib/bin:/usr/local/bin$ PATH=$PATH:$HOME:.$echo $ PATH/usr/bin:/usr/contrib/bin:/usr/local/bin:/home/user3:.$ echo $HOME/home/user3$ file_name=$HOME/file1 file_name=/home/user3/file1$ more $file_name more /home/user3/file1echo $name 命令是用于显示变量当前的值最常用的方法。 的用法确认你有一个叫file和一个叫file1的变量。能够使用以下的语句给它们赋值:
15、$ file =this$ file1= that$echo $fileand$file1 寻找变量fileand,file1sh: fileand: parameter not set $ echo $file and $file1 寻找变量file,file1thisandthat花括号被用来区分变量名和周围的文本。7.4 变量替代(2) $dir_name=tree/car.models/ford$echo $dir_nametree/car.models/ford$ls F $dir_namesedan/ sports/$ my_ls =”ls aFC”$ $my_ls./ file.1 tree/./ file.2 $ $my_ls $dir_name./ ./ sedan/ sports/$ cd /tmp$ dir_name=/home/user2/tree/dog.breeds/retriever$ $my_ls $dir_name./ ./ golden labrador mixed在指定一个文件或目录时,使用一个绝对路径作为