資料介紹
分享到: 前些天在CU上討論一個(gè)統(tǒng)計(jì)正在執(zhí)行的腳本數(shù)量的問(wèn)題過(guò)程中,發(fā)現(xiàn)自己對(duì)于shell如何執(zhí)行命令方面了解還是甚少,慚愧慚愧。..期間得到waker兄的指點(diǎn),在此表示感謝!他的說(shuō)法除了個(gè)別地方不太準(zhǔn)確外,基本上是正確的。這些天抽時(shí)間找了些資料研究了一下,又學(xué)到了不少!這里把我的一點(diǎn)心得以問(wèn)答的形式貼出來(lái),供大家參考。小弟才疏學(xué)淺,錯(cuò)誤的地方一定很多,歡迎大家拍磚、指正!
Q1: shell如何執(zhí)行“簡(jiǎn)單”命令?
A: 這里的簡(jiǎn)單命令和bash參考手冊(cè)里的含義相同,形式上一般是:命令的名稱(chēng)加上它的參數(shù)。有三種不同的簡(jiǎn)單命令:
1.內(nèi)置命令(builtin)
是shell解釋程序內(nèi)建的,有shell直接執(zhí)行,不需要派生新的進(jìn)程。有一些內(nèi)部命令可以用來(lái)改變當(dāng)前的shell環(huán)境,如:
cd /path
var=value
read var
export var
。..
2.外部命令(“external command” or “disk command”)
二進(jìn)制可執(zhí)行文件,需要由磁盤(pán)裝入內(nèi)存執(zhí)行。會(huì)派生新的進(jìn)程,shell解釋程序會(huì)調(diào)用fork自身的一個(gè)拷貝,然后用exec系列函數(shù)來(lái)執(zhí)行外部命令,然后外部命令就取代了先前fork的子shell。
3.shell腳本(script)
shell解釋程序會(huì)fork+exec執(zhí)行這個(gè)腳本命令,在exec調(diào)用中內(nèi)核會(huì)檢查腳本的第一行(如:#!/bin/sh),找到用來(lái)執(zhí)行腳本的解釋程序,然后裝入這個(gè)解釋程序,由它解釋執(zhí)行腳本程序。解釋程序可能有很多種,各種shell(Bourne shell,Korn shell cshell,rc及其變體ash,dash,bash,zshell,pdksh,tcsh,es.。.),awk,tcl/tk,expect,perl,python,等等。在此解釋程序顯然是當(dāng)前shell的子進(jìn)程。如果這個(gè)解釋程序與當(dāng)前使用的shell是同一種shell,比如都是bash,那么它就是當(dāng)前shell的子shell,腳本中的命令都是在子shell環(huán)境中執(zhí)行的,不會(huì)影響當(dāng)前shell的環(huán)境。
Q2: shell腳本是否作為單獨(dú)的一個(gè)進(jìn)程執(zhí)行?
A: 不是,shell腳本本身不能作為一個(gè)進(jìn)程。如上面講的,shell腳本由一個(gè)shell解釋程序來(lái)解釋、運(yùn)行其中的命令。這個(gè)shell解釋程序是單獨(dú)的一個(gè)進(jìn)程,腳本中的外部命令也都作為獨(dú)立進(jìn)程依次被運(yùn)行。這也就是為什么ps不能找到正在運(yùn)行的腳本的名字的原因了。作為一個(gè)替代方案,你可以這樣調(diào)用腳本:
sh script-name
這時(shí)shell解釋程序“sh”作為一個(gè)外部命令被顯式地調(diào)用,而script-name作為該命令的命令行參數(shù)可以被我們ps到。
另外,如果你的系統(tǒng)上有pidof命令可用,它倒是可以找出shell腳本進(jìn)程(實(shí)際上應(yīng)該是執(zhí)行shell腳本的子shell進(jìn)程)的進(jìn)程ID:
pidof -x script-name
Q3: shell何時(shí)在子shell中執(zhí)行命令?
A: 在此我們主要討論Bourne shell及其兼容shell。在許多情況下shell會(huì)在子shell中執(zhí)行命令:
1.(。..)結(jié)構(gòu)
小括號(hào)內(nèi)的命令會(huì)在一個(gè)子shell環(huán)境中執(zhí)行,命令執(zhí)行的結(jié)果不會(huì)影響當(dāng)前的shell環(huán)境。需要注意是此時(shí)變量$$會(huì)顯示當(dāng)前shell的進(jìn)程id,而不是子shell的進(jìn)程id。
參考:
{。..;}結(jié)構(gòu)中的命令在當(dāng)前shell中執(zhí)行,(內(nèi)部)命令執(zhí)行的結(jié)果會(huì)影響當(dāng)前的shell環(huán)境。
2.后臺(tái)執(zhí)行或異步執(zhí)行
command&
命令由一個(gè)子shell在后臺(tái)執(zhí)行,當(dāng)前shell立即取得控制等候用戶(hù)輸入。后臺(tái)命令和當(dāng)前shell的執(zhí)行是并行的,但沒(méi)有互相的依賴(lài)、等待關(guān)系,所以是異步的并行。
3.命令替換
`command`(Bourn shell及兼容shell/csh)
$(command)(在ksh/bash/zsh中可用)
將command命令執(zhí)行的標(biāo)準(zhǔn)輸出代換到當(dāng)前的命令行。command在子shell環(huán)境中執(zhí)行,結(jié)果不會(huì)影響當(dāng)前的shell環(huán)境。
4.管道(不同的shell處理不同)
cmd1|cmd2
cmd1和cmd2并行執(zhí)行,并且相互有依賴(lài)關(guān)系,cmd2的標(biāo)準(zhǔn)輸入來(lái)自cmd1的標(biāo)準(zhǔn)輸出,二者是“同步”的。
對(duì)管道的處理不同的shell實(shí)現(xiàn)的方式不同。
在linux環(huán)境下大多數(shù)shell(bash/pdksh/ash/dash等,除了zshell例外)都將管道中所有的命令在子shell環(huán)境中執(zhí)行,命令執(zhí)行的結(jié)果不會(huì)影響當(dāng)前的shell環(huán)境。
Korn shell的較新的版本(ksh93以后)比較特殊,管道最后一級(jí)的命令是在當(dāng)前shell執(zhí)行的。這是一個(gè)feature而非BUG,在POSIX標(biāo)準(zhǔn)中也是允許的。這樣就使下面的命令結(jié)構(gòu)成為可能:
command|read var
由于read var(read是一個(gè)內(nèi)部命令)在當(dāng)前shell中執(zhí)行,var的值在當(dāng)前shell就是可用的。
反之bash/pdksh/ash/dash中read var在子shell環(huán)境中執(zhí)行,var讀到的值無(wú)法傳遞到當(dāng)前shell,所以變量var無(wú)法取得期望的值。類(lèi)似這樣的問(wèn)題在各種論壇和news group中經(jīng)常被問(wèn)到。個(gè)人認(rèn)為command|read var的結(jié)構(gòu)很清晰,并且合乎邏輯,所以我認(rèn)為Korn shell的這個(gè)feature很不錯(cuò)??上Р皇撬械膕hell都是這樣實(shí)現(xiàn)的。:(如開(kāi)源的pdksh就是在子shell執(zhí)行管道的每一級(jí)命令。
Korn shell對(duì)管道的處理還有一個(gè)特殊的地方,就是管道如果在后臺(tái)執(zhí)行的話,管道前面的命令會(huì)由最后一級(jí)的命令派生,而不是由當(dāng)前shell派生出來(lái)。據(jù)說(shuō)Bourne shell也有這個(gè)特點(diǎn)(標(biāo)準(zhǔn)的Bourne shell沒(méi)有測(cè)試環(huán)境,感興趣的朋友有條件的可以自行驗(yàn)證)。但是他們的開(kāi)源模仿者,pdksh和ash卻不是這樣處理。
最特殊的是zshell,比較新的zshell實(shí)現(xiàn)(好像至少3.0.5以上)會(huì)在當(dāng)前shell中執(zhí)行管道中的每一級(jí)命令,不僅僅是最后一條。每一條命令都由當(dāng)前shell派生,在后臺(tái)執(zhí)行時(shí)也是一樣??梢?jiàn)在子sehll中執(zhí)行管道命令并不是不得已的做法,大概只是因?yàn)閷?shí)現(xiàn)上比較方便或者這樣的處理已經(jīng)成為unix的傳統(tǒng)之一了吧。;-)
讓我們總結(jié)一下,不同的shell對(duì)管道命令的處理可能不同。有的shell中command|read var這樣的結(jié)構(gòu)是ok的,但我們的代碼出于兼容性的緣故不能依賴(lài)這一點(diǎn),最好能避免類(lèi)似的代碼。
5.進(jìn)程替換(僅bash/zsh中,非POSIX兼容)
《(。..)
》(。..)
與管道有點(diǎn)類(lèi)似,例子:cmd1 《(cmd2) 》(cmd3), cmd1, cmd2, cmd3的執(zhí)行是同步并行的。
《(command)形式可以用在任何命令行中需要填寫(xiě)輸入文件名的地方,command的標(biāo)準(zhǔn)輸出會(huì)被該命令當(dāng)作一個(gè)輸入文件讀入。
》(command)形式可以用在任何命令行中需要填寫(xiě)輸出文件的地方,該命令的輸出會(huì)被command作為標(biāo)準(zhǔn)輸入讀入。
兩種形式中的command都在子shell環(huán)境中執(zhí)行,結(jié)果不會(huì)影響當(dāng)前的shell環(huán)境。
6.if或while命令塊的輸入輸出重定向
在SVR4.2的Bourne shell中對(duì)此情況會(huì)fork一個(gè)子shell執(zhí)行if塊和while塊中的命令;在linux下似乎其它的shell中都不這樣處理。
7.協(xié)進(jìn)程(ksh)
只有Korn shell和pdksh有協(xié)進(jìn)程的機(jī)制(其它shell中可以用命名管道來(lái)模擬)。類(lèi)似于普通的后臺(tái)命令,協(xié)進(jìn)程在后臺(tái)同步運(yùn)行,所以必須在子shell中運(yùn)行。協(xié)進(jìn)程與后臺(tái)命令不同的是它要和前臺(tái)進(jìn)程(使用read -p和print -p)進(jìn)行交互,而后者一般只是簡(jiǎn)單地異步運(yùn)行。
Q4: 既然在當(dāng)前shell中執(zhí)行命令也會(huì)派生子shell,那么它與在子shell中執(zhí)行命令又有什么區(qū)別呢?
A: 這種說(shuō)法不準(zhǔn)確。
在當(dāng)前shell中執(zhí)行內(nèi)部命令不會(huì)派生子shell,因此有些內(nèi)部命令才能夠改變當(dāng)前的shell執(zhí)行環(huán)境。
在當(dāng)前shell中執(zhí)行外部命令或腳本時(shí)會(huì)派生子shell,所以這時(shí)命令的執(zhí)行不會(huì)影響當(dāng)前 的shell環(huán)境。注意:子shell中執(zhí)行的內(nèi)部命令只會(huì)改變子shell的執(zhí)行環(huán)境,而不會(huì)改變當(dāng)前shell(父shell)的環(huán)境。
Q5: 怎樣把子shell中的變量傳回父shell?
A: 例如(echo “$a”) | read b不能工作,如何找到一個(gè)替代方案?下面給出一些可能的方案:
1.使用臨時(shí)文件
。..
#in subshell
a=100
echo “$a”》tmpfile
。..
#in parent
read b
2.使用命名管道
mkfifo pipef
(。..
echo “$a” 》 pipef
。..)
read b
3.使用coprocess(ksh)
?。?echo “$a” |&)
read -p b
4.使用命令替換
b=`echo “$a”`
5.使用eval命令
eval `echo “b=$a”`
6.使用here document
read b 《`echo “$a”`
END
7.使用here string(bash/pdksh)
read b 《《《`echo “$a”`
8.不用子shell,用。命令或source命令執(zhí)行腳本。
即在當(dāng)前shell環(huán)境下執(zhí)行腳本,沒(méi)有子shell,也就沒(méi)有了子shell的煩惱。:)
解決的方法還不止于此,其它的進(jìn)程間通信手段應(yīng)該也能使用,這有待于大家一起發(fā)掘了。^_^
?
Q1: shell如何執(zhí)行“簡(jiǎn)單”命令?
A: 這里的簡(jiǎn)單命令和bash參考手冊(cè)里的含義相同,形式上一般是:命令的名稱(chēng)加上它的參數(shù)。有三種不同的簡(jiǎn)單命令:
1.內(nèi)置命令(builtin)
是shell解釋程序內(nèi)建的,有shell直接執(zhí)行,不需要派生新的進(jìn)程。有一些內(nèi)部命令可以用來(lái)改變當(dāng)前的shell環(huán)境,如:
cd /path
var=value
read var
export var
。..
2.外部命令(“external command” or “disk command”)
二進(jìn)制可執(zhí)行文件,需要由磁盤(pán)裝入內(nèi)存執(zhí)行。會(huì)派生新的進(jìn)程,shell解釋程序會(huì)調(diào)用fork自身的一個(gè)拷貝,然后用exec系列函數(shù)來(lái)執(zhí)行外部命令,然后外部命令就取代了先前fork的子shell。
3.shell腳本(script)
shell解釋程序會(huì)fork+exec執(zhí)行這個(gè)腳本命令,在exec調(diào)用中內(nèi)核會(huì)檢查腳本的第一行(如:#!/bin/sh),找到用來(lái)執(zhí)行腳本的解釋程序,然后裝入這個(gè)解釋程序,由它解釋執(zhí)行腳本程序。解釋程序可能有很多種,各種shell(Bourne shell,Korn shell cshell,rc及其變體ash,dash,bash,zshell,pdksh,tcsh,es.。.),awk,tcl/tk,expect,perl,python,等等。在此解釋程序顯然是當(dāng)前shell的子進(jìn)程。如果這個(gè)解釋程序與當(dāng)前使用的shell是同一種shell,比如都是bash,那么它就是當(dāng)前shell的子shell,腳本中的命令都是在子shell環(huán)境中執(zhí)行的,不會(huì)影響當(dāng)前shell的環(huán)境。
Q2: shell腳本是否作為單獨(dú)的一個(gè)進(jìn)程執(zhí)行?
A: 不是,shell腳本本身不能作為一個(gè)進(jìn)程。如上面講的,shell腳本由一個(gè)shell解釋程序來(lái)解釋、運(yùn)行其中的命令。這個(gè)shell解釋程序是單獨(dú)的一個(gè)進(jìn)程,腳本中的外部命令也都作為獨(dú)立進(jìn)程依次被運(yùn)行。這也就是為什么ps不能找到正在運(yùn)行的腳本的名字的原因了。作為一個(gè)替代方案,你可以這樣調(diào)用腳本:
sh script-name
這時(shí)shell解釋程序“sh”作為一個(gè)外部命令被顯式地調(diào)用,而script-name作為該命令的命令行參數(shù)可以被我們ps到。
另外,如果你的系統(tǒng)上有pidof命令可用,它倒是可以找出shell腳本進(jìn)程(實(shí)際上應(yīng)該是執(zhí)行shell腳本的子shell進(jìn)程)的進(jìn)程ID:
pidof -x script-name
Q3: shell何時(shí)在子shell中執(zhí)行命令?
A: 在此我們主要討論Bourne shell及其兼容shell。在許多情況下shell會(huì)在子shell中執(zhí)行命令:
1.(。..)結(jié)構(gòu)
小括號(hào)內(nèi)的命令會(huì)在一個(gè)子shell環(huán)境中執(zhí)行,命令執(zhí)行的結(jié)果不會(huì)影響當(dāng)前的shell環(huán)境。需要注意是此時(shí)變量$$會(huì)顯示當(dāng)前shell的進(jìn)程id,而不是子shell的進(jìn)程id。
參考:
{。..;}結(jié)構(gòu)中的命令在當(dāng)前shell中執(zhí)行,(內(nèi)部)命令執(zhí)行的結(jié)果會(huì)影響當(dāng)前的shell環(huán)境。
2.后臺(tái)執(zhí)行或異步執(zhí)行
command&
命令由一個(gè)子shell在后臺(tái)執(zhí)行,當(dāng)前shell立即取得控制等候用戶(hù)輸入。后臺(tái)命令和當(dāng)前shell的執(zhí)行是并行的,但沒(méi)有互相的依賴(lài)、等待關(guān)系,所以是異步的并行。
3.命令替換
`command`(Bourn shell及兼容shell/csh)
$(command)(在ksh/bash/zsh中可用)
將command命令執(zhí)行的標(biāo)準(zhǔn)輸出代換到當(dāng)前的命令行。command在子shell環(huán)境中執(zhí)行,結(jié)果不會(huì)影響當(dāng)前的shell環(huán)境。
4.管道(不同的shell處理不同)
cmd1|cmd2
cmd1和cmd2并行執(zhí)行,并且相互有依賴(lài)關(guān)系,cmd2的標(biāo)準(zhǔn)輸入來(lái)自cmd1的標(biāo)準(zhǔn)輸出,二者是“同步”的。
對(duì)管道的處理不同的shell實(shí)現(xiàn)的方式不同。
在linux環(huán)境下大多數(shù)shell(bash/pdksh/ash/dash等,除了zshell例外)都將管道中所有的命令在子shell環(huán)境中執(zhí)行,命令執(zhí)行的結(jié)果不會(huì)影響當(dāng)前的shell環(huán)境。
Korn shell的較新的版本(ksh93以后)比較特殊,管道最后一級(jí)的命令是在當(dāng)前shell執(zhí)行的。這是一個(gè)feature而非BUG,在POSIX標(biāo)準(zhǔn)中也是允許的。這樣就使下面的命令結(jié)構(gòu)成為可能:
command|read var
由于read var(read是一個(gè)內(nèi)部命令)在當(dāng)前shell中執(zhí)行,var的值在當(dāng)前shell就是可用的。
反之bash/pdksh/ash/dash中read var在子shell環(huán)境中執(zhí)行,var讀到的值無(wú)法傳遞到當(dāng)前shell,所以變量var無(wú)法取得期望的值。類(lèi)似這樣的問(wèn)題在各種論壇和news group中經(jīng)常被問(wèn)到。個(gè)人認(rèn)為command|read var的結(jié)構(gòu)很清晰,并且合乎邏輯,所以我認(rèn)為Korn shell的這個(gè)feature很不錯(cuò)??上Р皇撬械膕hell都是這樣實(shí)現(xiàn)的。:(如開(kāi)源的pdksh就是在子shell執(zhí)行管道的每一級(jí)命令。
Korn shell對(duì)管道的處理還有一個(gè)特殊的地方,就是管道如果在后臺(tái)執(zhí)行的話,管道前面的命令會(huì)由最后一級(jí)的命令派生,而不是由當(dāng)前shell派生出來(lái)。據(jù)說(shuō)Bourne shell也有這個(gè)特點(diǎn)(標(biāo)準(zhǔn)的Bourne shell沒(méi)有測(cè)試環(huán)境,感興趣的朋友有條件的可以自行驗(yàn)證)。但是他們的開(kāi)源模仿者,pdksh和ash卻不是這樣處理。
最特殊的是zshell,比較新的zshell實(shí)現(xiàn)(好像至少3.0.5以上)會(huì)在當(dāng)前shell中執(zhí)行管道中的每一級(jí)命令,不僅僅是最后一條。每一條命令都由當(dāng)前shell派生,在后臺(tái)執(zhí)行時(shí)也是一樣??梢?jiàn)在子sehll中執(zhí)行管道命令并不是不得已的做法,大概只是因?yàn)閷?shí)現(xiàn)上比較方便或者這樣的處理已經(jīng)成為unix的傳統(tǒng)之一了吧。;-)
讓我們總結(jié)一下,不同的shell對(duì)管道命令的處理可能不同。有的shell中command|read var這樣的結(jié)構(gòu)是ok的,但我們的代碼出于兼容性的緣故不能依賴(lài)這一點(diǎn),最好能避免類(lèi)似的代碼。
5.進(jìn)程替換(僅bash/zsh中,非POSIX兼容)
《(。..)
》(。..)
與管道有點(diǎn)類(lèi)似,例子:cmd1 《(cmd2) 》(cmd3), cmd1, cmd2, cmd3的執(zhí)行是同步并行的。
《(command)形式可以用在任何命令行中需要填寫(xiě)輸入文件名的地方,command的標(biāo)準(zhǔn)輸出會(huì)被該命令當(dāng)作一個(gè)輸入文件讀入。
》(command)形式可以用在任何命令行中需要填寫(xiě)輸出文件的地方,該命令的輸出會(huì)被command作為標(biāo)準(zhǔn)輸入讀入。
兩種形式中的command都在子shell環(huán)境中執(zhí)行,結(jié)果不會(huì)影響當(dāng)前的shell環(huán)境。
6.if或while命令塊的輸入輸出重定向
在SVR4.2的Bourne shell中對(duì)此情況會(huì)fork一個(gè)子shell執(zhí)行if塊和while塊中的命令;在linux下似乎其它的shell中都不這樣處理。
7.協(xié)進(jìn)程(ksh)
只有Korn shell和pdksh有協(xié)進(jìn)程的機(jī)制(其它shell中可以用命名管道來(lái)模擬)。類(lèi)似于普通的后臺(tái)命令,協(xié)進(jìn)程在后臺(tái)同步運(yùn)行,所以必須在子shell中運(yùn)行。協(xié)進(jìn)程與后臺(tái)命令不同的是它要和前臺(tái)進(jìn)程(使用read -p和print -p)進(jìn)行交互,而后者一般只是簡(jiǎn)單地異步運(yùn)行。
Q4: 既然在當(dāng)前shell中執(zhí)行命令也會(huì)派生子shell,那么它與在子shell中執(zhí)行命令又有什么區(qū)別呢?
A: 這種說(shuō)法不準(zhǔn)確。
在當(dāng)前shell中執(zhí)行內(nèi)部命令不會(huì)派生子shell,因此有些內(nèi)部命令才能夠改變當(dāng)前的shell執(zhí)行環(huán)境。
在當(dāng)前shell中執(zhí)行外部命令或腳本時(shí)會(huì)派生子shell,所以這時(shí)命令的執(zhí)行不會(huì)影響當(dāng)前 的shell環(huán)境。注意:子shell中執(zhí)行的內(nèi)部命令只會(huì)改變子shell的執(zhí)行環(huán)境,而不會(huì)改變當(dāng)前shell(父shell)的環(huán)境。
Q5: 怎樣把子shell中的變量傳回父shell?
A: 例如(echo “$a”) | read b不能工作,如何找到一個(gè)替代方案?下面給出一些可能的方案:
1.使用臨時(shí)文件
。..
#in subshell
a=100
echo “$a”》tmpfile
。..
#in parent
read b
2.使用命名管道
mkfifo pipef
(。..
echo “$a” 》 pipef
。..)
read b
3.使用coprocess(ksh)
?。?echo “$a” |&)
read -p b
4.使用命令替換
b=`echo “$a”`
5.使用eval命令
eval `echo “b=$a”`
6.使用here document
read b 《`echo “$a”`
END
7.使用here string(bash/pdksh)
read b 《《《`echo “$a”`
8.不用子shell,用。命令或source命令執(zhí)行腳本。
即在當(dāng)前shell環(huán)境下執(zhí)行腳本,沒(méi)有子shell,也就沒(méi)有了子shell的煩惱。:)
解決的方法還不止于此,其它的進(jìn)程間通信手段應(yīng)該也能使用,這有待于大家一起發(fā)掘了。^_^
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- fish-shell友好交互式shell
- 基于MM32 MCU的shell調(diào)試教程(二)
- 基于MM32 MCU的shell調(diào)試教程(三)
- shell編程100個(gè)實(shí)用例子分享 4次下載
- shell if判斷_靈動(dòng)微課堂(第98講) | 基于MM32 MCU的shell調(diào)試教程(三)
- 嵌入式Linux開(kāi)發(fā)工具——shell編程
- 如何在shell單元建立washer_靈動(dòng)微課堂 | 基于MM32 MCU的shell調(diào)試教程(二)
- vxworks shell reboot命令不好用_基于MM32 MCU的shell調(diào)試教程(二)
- shell 執(zhí)行命令_基于MM32 MCU的shell調(diào)試教程(二)
- Linux系統(tǒng)命令及shell腳本實(shí)踐指南 28次下載
- Linux Shell腳本編程基礎(chǔ)和相關(guān)資料合集免費(fèi)下載 26次下載
- Linux教程之Linux命令、編程器、Shell編程、實(shí)例大全pdf免費(fèi)下載 20次下載
- 嵌入式和物聯(lián)網(wǎng)的shell腳本學(xué)習(xí)指南之shell腳本入門(mén)免費(fèi)下載 20次下載
- 《Linux命令、編輯器和shell編程(第2版)》源代碼 0次下載
- linux shell命令/unix shell命令教程
- 100個(gè)Linux Shell腳本總結(jié) 923次閱讀
- 基于APM32F4移植使用letter-shell命令行終端 1181次閱讀
- shell編程知識(shí)學(xué)習(xí) 389次閱讀
- shell腳本本身自帶的命令詳解 861次閱讀
- Linux基礎(chǔ)知識(shí)中的Shell 724次閱讀
- 一文吃透shell編寫(xiě)工具及基本法則! 1904次閱讀
- 每個(gè)Linux用戶(hù)都需要知道的重要Bash shell變量 786次閱讀
- 100個(gè)Shell腳本經(jīng)典案例解析 2298次閱讀
- 【shell腳本分享】性能指標(biāo)監(jiān)控與通知! 1041次閱讀
- 109個(gè)實(shí)用shell腳本分享 2474次閱讀
- 米爾科技Linux Shell編程介紹 1556次閱讀
- shell腳本最簡(jiǎn)明的教程 4575次閱讀
- 如何做才能學(xué)好Shell腳本的經(jīng)驗(yàn)總結(jié) 6121次閱讀
- shell編程使用方法 3015次閱讀
- shell編程基礎(chǔ)知識(shí)入門(mén) 1736次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多