电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

對(duì)話 UNIX,第 13 部分: 另外十種命令行組合

瀏覽:68日期:2024-06-13 13:11:48

本文是“對(duì)話 Unix系列文章中的第 13 部分:我以前認(rèn)為 13 是個(gè)不吉利的數(shù)字,直到我瀏覽 Internet 搜尋這個(gè)數(shù)字之所以不吉利的原因。實(shí)際上,13 這個(gè)數(shù)字可以說(shuō)是喜憂參半(請(qǐng)參見(jiàn)參考資料)。

好的方面:13 是元素鋁的原子序數(shù),而鋁可用于制作各種祭神儀式的奠酒容器;籃球職業(yè)運(yùn)動(dòng)員 Wilt Chamberlain 身著 13 號(hào)球衣(我們都知道,Wilt 是非常幸運(yùn)的);按照某種禁忌轉(zhuǎn)換方式,13 是第 7 個(gè)質(zhì)數(shù),而數(shù)字 7 象征著幸運(yùn)。

不好的方面:絞刑架有 13 級(jí)臺(tái)階;制造混亂的神“洛基和猶大,都是第 13 個(gè)到達(dá)的;并且無(wú)論您怎么對(duì)其劃分(除以 2、3、4、或者6),在餐館中 13 個(gè)人都很難坐,這可能正是洛基和猶大被認(rèn)為是局外人的原因。

陪審團(tuán)最多不超過(guò) 13 個(gè)人。所以,除非您在 13 號(hào)星期五閱讀本文,并且在位于 Mockingbird Lane(這是個(gè)歷史悠久的地方)1313 號(hào)的辦公樓的第 13 層,否則都是值得慶幸的。“對(duì)話 UNIX現(xiàn)在是個(gè)長(zhǎng)滿青春痘的青少年了。本文將介紹十種命令行組合和 Shell 訣竅,以慶祝本系列文章進(jìn)入青春期。恭喜您!

臨時(shí)設(shè)置一個(gè)環(huán)境變量

環(huán)境變量,如 EDITOR 和 TZ,可能影響命令執(zhí)行的結(jié)果。(前者選擇進(jìn)行文本編輯時(shí)所啟動(dòng)的程序;而后者可以指定您的時(shí)區(qū)。)通常,您可以在 Shell 啟動(dòng)文件中設(shè)置環(huán)境變量,以便對(duì)所有的 Shell 會(huì)話產(chǎn)生作用,并且您可以在任何時(shí)候使用像 export TZ=GMT 這樣的命令為一個(gè) Shell 會(huì)話更改環(huán)境變量的值。

此外,您可以為單個(gè)命令臨時(shí)地修改一個(gè)環(huán)境變量的值。只需要在啟動(dòng)命令行的時(shí)候設(shè)置環(huán)境變量以及您希望運(yùn)行的命令即可。例如,要為單個(gè)命令更改您的首選編輯器,可以在它的前面加上 EDITOR=editor ,如下所示:

$ printenv...EDITOR=vi...$ EDITOR="pico" less bigfile

這個(gè)組合可以使用 less 對(duì) bigfile 進(jìn)行分頁(yè)。如果您在 less 中輸入 v 以編輯文件,那么將啟動(dòng) pico 而不是 vi。下面是另一個(gè)實(shí)際的使用情況:

$ dateSun Aug 5 16:14:17 EDT 2007$ TZ="Japan" dateMon Aug 6 05:14:06 JST 2007

對(duì) TZ 進(jìn)行的臨時(shí)更改將影響 date 的即時(shí)實(shí)例解釋系統(tǒng)當(dāng)前日期和時(shí)間的方式。

查看您實(shí)際正在運(yùn)行的命令

大量的 Shell 特性可以影響到如何解釋您所輸入的命令名。每種 Shell 都有一個(gè)內(nèi)置命令的分類;PATH 環(huán)境變量用于指定搜索的列表和目錄;而別名可以作為簡(jiǎn)寫。要運(yùn)行一個(gè)程序可以使用許多方法,如何了解實(shí)際執(zhí)行的是什么命令呢?使用 Shell 內(nèi)置的 type 命令可以揭示實(shí)際的情況。

假設(shè)您擁有下面的這些 Shell 設(shè)置:

PATH=/bin:/usr/bin:/usr/local/binalias vi=pico

您可以在 /usr/bin 和 /usr/local/bin 中找到 Perl 的副本。要查明您正使用的是哪個(gè) Perl,可以輸入 type perl。

$ perl -vThis is perl, v5.8.7 built for darwin-2level$ type perlperl is /use/local/bin/perl$ type -a perlperl is /usr/local/bin/perlperl is /usr/bin/perl$ type -a -w perlperl: commandperl: command

type perl 命令顯示了如何在命令行中對(duì) perl 命令進(jìn)行解釋。在這個(gè)示例中,/usr/local/bin/perl 是實(shí)際的擴(kuò)展結(jié)果。type -a 命令顯示了 Shell 所知道的所有 Perl 實(shí)例,這在很大程度上依賴于 PATH 變量。

可以針對(duì)您常用的其他命令使用 type:

$ type -a vivi is an alias for picovi is /usr/bin/vi$ type -a cdcd is a shell builtincd is /usr/bin/cd

type 命令顯示出,vi 實(shí)際上是 pico 的別名。type 命令還顯示出,cd 是一個(gè)內(nèi)置的命令,并且與外部命令 /usr/bin/cd 是相同的。

使得 find 命令具有更好的可移植性

去年曾經(jīng)介紹了許多關(guān)于 find 的使用的內(nèi)容,但是我忽略了其中的一個(gè)選項(xiàng),它使得 find 命令行可以移植到其他操作系統(tǒng)。

通常,Unix® 系統(tǒng)中很少使用帶空格的文件名。然而,在 Mac OS X 和 Microsoft® Windows® 中常常使用更長(zhǎng)的、更具描述性的文件名,并且在 UNIX 中它們也變得越來(lái)越多,這是因?yàn)樵摬僮飨到y(tǒng)不斷地積聚更多的桌面特性。畢竟,將一份報(bào)告保存為 2007 Business Plan 明顯要比 bizplan07.ooo 好得多。

find 命令使用嵌入的特殊字符列舉長(zhǎng)文件名,但是,如果您希望將 find 與另一個(gè)命令組合使用,那么最安全的方法是,使用 NUL 字符(而不是空格)分隔列表中的每個(gè)文件名。讓我們來(lái)了解其中的差異。

我們假設(shè)您擁有三個(gè)文件夾,其中一個(gè)或者多個(gè)目錄的名稱中包含空格:

$ ls -1Business Plan 2007Expense ReportPictures from Spain

如果您對(duì)大量的文件運(yùn)行 find 命令,并且將結(jié)果列表傳遞給 xargs,那么文件名中的空格將會(huì)導(dǎo)致錯(cuò)誤:

$ find . -type f -print | xargs ls -1ls: ./Business: No such file or Directoryls: ./Expense: No such file or directoryls: ./Pictures: No such file or directoryls: 2007: No such file or directoryls: Plan: No such file or directoryls: Report: No such file or directoryls: Spain: No such file or directoryls: from: No such file or directory

傳遞給 xargs 的結(jié)果是單個(gè)字符串 . ./Business Plan 2007 ./Expense Report ./Pictures from Spain。在缺省情況下,xargs 將使用空格(或者換行符)對(duì)輸入字符串進(jìn)行劃分,以便產(chǎn)生可以進(jìn)行操作的一個(gè)文件列表。在這個(gè)示例中,因?yàn)槲募邪崭瘢赃@樣做將會(huì)產(chǎn)生錯(cuò)誤的列表,如前所述。

一種適當(dāng)?shù)摹⒖梢浦驳募夹g(shù)是使用 find -print0,加上 xargs -0,以便使用 NUL 字符對(duì)文件名進(jìn)行劃分。下面是這種推薦的方法:

$ find . -type f -print0 | xargs -0 ls -1./Business Plan 2007./Expense Report./Pictures from Spain

另外,如果您希望預(yù)覽 xargs 產(chǎn)生的命令,可以添加選項(xiàng) -p 或者 -t。-p 選項(xiàng)顯示每個(gè)合成的命令,并提示您進(jìn)行確認(rèn)。輸入大寫的或者小寫的 y 以便運(yùn)行命令,輸入任何其他的內(nèi)容可以拒絕該命令。-t 選項(xiàng)可以在執(zhí)行每個(gè)命令之前將命令回顯到 stderr。

更充分地利用 find 命令

盡管 find 非常有用,但是有兩個(gè)隱含的設(shè)置可能會(huì)限制它的結(jié)果(并使得您不知所措):-name 匹配是區(qū)分大小寫的,并且不會(huì)根據(jù)符號(hào)鏈接對(duì)文件系統(tǒng)進(jìn)行遍歷。

因此,一個(gè)以 find -name '*plan*' 開(kāi)頭的命令將忽略名稱中包含 Plan 字符串的文件,假設(shè)您的 home 目錄中包含名為 music 的符號(hào)鏈接,而它指向裝入到 /media/music 的 TB 級(jí)的存儲(chǔ)介質(zhì),那么這個(gè)命令將不會(huì)列出您的符號(hào)鏈接 music。

您可以使用 -iname 覆蓋區(qū)分大小寫的匹配,并且您可以使用 -follow 根據(jù)符號(hào)鏈接進(jìn)行遍歷。下面是使用了這兩種選項(xiàng)的一個(gè)示例:

$ alias ls='ls -aF'$ ls -1bin/lib/src/tomb/tunes@$ find . -name '*music*' -type f -print$ find . -iname '*music*' -type f -print$ find . -name '*music*' -type f -follow -print$ find . -iname '*music*' -type f -follow -print./tunes/Muse/Origin Of Symmetry/04 Hyper Music.m4a./tunes/Radiohead/OK Computer/04 Exit Music (For A Film).MP3

正如 -F 選項(xiàng)生成的 @ 符號(hào)注釋所表示的,tunes 是一個(gè)符號(hào)鏈接。要查找名稱中包含字符串“music的任何變體的所有歌曲,您必須使用 -iname *music*。要遍歷到 tunes 所指向的文件系統(tǒng)層次結(jié)構(gòu),您必須使用 -follow。

為了使得 find 更具可移植性,并且類似于 Spotlight 的搜索特性,那么應(yīng)該使用 -print0 -follow -iname pattern 。

收集許多命令的輸出的簡(jiǎn)單方法

通過(guò)使用 > output 和 >> output 修飾符,您可以很容易地捕獲一個(gè)命令行的輸出,其中前者用于創(chuàng)建或者覆蓋文件 output ,而后者則將內(nèi)容追加到 output 。您可以組合使用任何修飾符以生成一系列命令的文本,如果您正嘗試對(duì)系統(tǒng)狀態(tài)進(jìn)行快照,這種方法是非常有價(jià)值的,例如:

$ ps > state.`date '+%F'`$ w >> state.`date '+%F'`

反勾號(hào)或反引號(hào)操作符 (``) 可以對(duì)命令進(jìn)行擴(kuò)展。在 Shell 對(duì)命令行進(jìn)行解釋時(shí),將執(zhí)行反勾號(hào)之間的命令,并在最終的擴(kuò)展結(jié)果中使用該命令的輸出。在本示例中,參數(shù)周圍的單引號(hào)用于保持參數(shù)不變,從而可以避免 Shell 對(duì) + 和 % 進(jìn)行解釋。

在執(zhí)行了這兩個(gè)命令之后,創(chuàng)建了文件 state.YYYY-MM-DD,如 state.2007-08-05,其內(nèi)容與以下所示類似:

 PID TTY TIME CMD9997 pts/100:00:00 zsh10351 pts/100:00:00 ps17:56:04 up 21 days, 2:53, 2 users, load average: 0.89, 0.94, 0.91USER TTY FROM LOGIN@  IDLE  JCPU  PCPU WHATadamgood pts/0c-67-169-182-255 Sat170.00s 0.37s 0.36s pinemstreich pts/1cpe-071-065-224- 17:170.00s 0.01s 0.00s w

不過(guò),每次輸入反勾號(hào)操作是非常麻煩的。您可以使用下面的命令來(lái)代替這個(gè)序列:

$ file=state.`date '+%F'`$ ps > $file$ w >> $file

但是,雖然這樣做稍微有效一些,但仍然可能出現(xiàn)錯(cuò)誤,因?yàn)樵诘诙€(gè)或者后續(xù)的命令中,很可能使用 > 而不是 >>。要捕獲一系列命令的輸出,最簡(jiǎn)單的方法是使用大括號(hào) ({ }) 將命令括起來(lái)。

$ { ps; w } > state.`date '+%F'`

ps 命令運(yùn)行(列出用戶當(dāng)前的進(jìn)程),然后是 w(它將顯示誰(shuí)正在使用這臺(tái)計(jì)算機(jī)),并將收集到的輸出保存到一個(gè)文件中。

注意: 您還可以在圓括號(hào)中嵌入一個(gè)命令序列,以得到相同的結(jié)果;然而,兩者之間有一個(gè)重要的區(qū)別。在圓括號(hào)中的系列命令將在一個(gè)子 Shell 中運(yùn)行,并且不會(huì)對(duì)當(dāng)前 Shell 的狀態(tài)產(chǎn)生影響。

例如,您可能希望運(yùn)行這個(gè)序列:$ { cd $HOME; ls -1}; pwd

它將與下面的命令產(chǎn)生相同的輸出:$ (cd $HOME; ls); pwd

大括號(hào)中的命令更改了當(dāng)前 Shell 的工作目錄。后面的這種技術(shù)則無(wú)能為力。是使用組合還是子 Shell,這取決于您的目的,盡管子 Shell 的功能更強(qiáng)大一些,下面將對(duì)其進(jìn)行描述。

子 Shell 可以為您提供幫助!

盡管通常運(yùn)行子 Shell 將聚合的輸出通過(guò)管道傳遞給單個(gè)命令,但您還可以使用子 Shell 對(duì)命令進(jìn)行擴(kuò)展,就像反勾號(hào)那樣。然而更有價(jià)值的是,子 Shell 可以包含另一個(gè)子 Shell,所以還可以進(jìn)行嵌套擴(kuò)展。

讓我們來(lái)看看下面簡(jiǎn)單的例子。

$ {ps; w} > state.$(date '+%F')

這個(gè)命令與 { ps; w } > state.`date '+%F'` 是相同的。$( ) 符號(hào)運(yùn)行圓括號(hào)中的命令,然后使用輸出來(lái)替換自己。換句話說(shuō),$() 可以進(jìn)行擴(kuò)展,就像反勾號(hào)一樣。然而,與反勾號(hào)不同的是,$( ) 非常復(fù)雜,并且甚至可以包括其他 $( ) 擴(kuò)展。下面提供了一些示例:

$ (cd $(grep strike /etc/passwd | cut -f6 -d':'); ls)

這個(gè)命令在密碼文件中搜索用戶 strike 對(duì)應(yīng)的條目,提取其 home 目錄(密碼文件中的第 6 個(gè)字段,如果您從 0 開(kāi)始數(shù))字段,更改到這個(gè)目錄,并列出其中的內(nèi)容。grep /etc/passwd strike | cut -f6 -d':' 的輸出將在執(zhí)行任何其他操作之前進(jìn)行擴(kuò)展。

下面是另一個(gè)示例,這次的用戶名來(lái)自于 whoami 的結(jié)果:

(cd $(grep $(whoami) /etc/passwd | cut -f6 -d':'); ls)

因?yàn)樽?Shell 有許多用途,所以與組合或者反勾號(hào)操作符相比,您可能更喜歡使用它。

不再輸入長(zhǎng)路徑名

有些特性,如 PATH 和 MANPATH 環(huán)境變量,可以減少輸入工作量。這兩個(gè)變量分別為搜索可執(zhí)行文件和 man 頁(yè)面定義了一系列目錄。

Shell 支持另一個(gè)搜索路徑:CDPATH。顧名思義,CDPATH 列出了搜索命名目錄的目錄列表。讓我們看看它是如何工作的。

假設(shè)您的 home 目錄中有三個(gè)目錄,它們分別是 tomb、current 和 personal。tomb 目錄中包含舊的工作項(xiàng)目;current 目錄中包含當(dāng)前工作的內(nèi)容;而 personal 目錄中包含您所感興趣的一些文件和內(nèi)容。執(zhí)行 ls -R tomb current personal 命令可以得到與下面所示類似的內(nèi)容:

$ ls -R tomb current personalcurrent:./../  einstein/ herbIE/personal:./  ../ fishing/ novel/tomb:./  ../ mariner/ marvin/ voyager/

對(duì)于這種結(jié)構(gòu),如果不使用 CDPATH,要更改到任何目錄都需要記住文件夾的位置,并輸入完全限定的(或者相對(duì)的)路徑名:

$ cd ~/tomb/mariner$ cd ~/personal/novel$ cd ~/current/einstein

為了簡(jiǎn)化這項(xiàng)任務(wù),可以將 CDPATH 設(shè)置為您所需要的搜索命名目錄的目錄列表:

$ export CDPATH=.:~/:..:../..:

這是 CDPATH 的最小設(shè)置。它將按順序搜索當(dāng)前目錄(.,或者“點(diǎn))、您的 home 目錄 (~/)、父目錄(..,或者“點(diǎn)點(diǎn))、父目錄的父目錄目錄 (../..)。最小設(shè)置首先搜索本地目錄以及附近的一些目錄。

在設(shè)置了這個(gè) CDPATH 之后,您可以快速地更改到任何頂層目錄:

$ pwd/tmp$ cd current/home/strike/current$ cd personal/fishing/home/strike/personal/fishing$ cd novel/home/strike/personal/novel$ cd /tmp$ cd personal/novel/home/strike/personal/novel$ cd /tmp$ cd novelcd: no such file or Directory: novel

除最后一個(gè) cd 命令之外,所有命令的參數(shù)都在 CDPATH 中存在匹配的目錄。然而,因?yàn)?personal 目錄不在 CDPATH 中,所以無(wú)法找到 novel(如果您位于相對(duì)路徑之外)。

如果您希望搜索 personal 目錄和其他的兩個(gè)目錄,那么可以將它們添加到 CDPATH 的最后一個(gè)冒號(hào)的后面,或者根據(jù)您所需要的搜索順序進(jìn)行添加。添加三個(gè)目錄,假設(shè)您的 Shell 啟動(dòng)文件中包含前面的 export 命令:

$ export CDPATH=$CDPATH:~/current:~/tomb:~/personal

現(xiàn)在,您只需要輸入希望切換到的目錄的名稱即可:

$ cd current/home/strike/current$ cd /tmp$ cd einstein/home/strike/current/einstein$ cd fishing/home/strike/personal/fishing$ cd personal/novel/home/strike/personal/novel

與 PATH 和 MANPATH 一樣,如果 CDPATH 中的多個(gè)條目都包含匹配項(xiàng),那么在找到第一個(gè)匹配項(xiàng)后將停止搜索。例如,如果您向 tomb 中添加一個(gè)名為 novel 的目錄,那么 cd novel 命令將得到 ~/tomb/novel。

$ mkdir ~/tomb/novel$ cd /tmp$ cd novel/home/strike/tomb/novel$ cd personal/novel/home/strike/personal/novel

如果其條目中包含唯一的目錄名,那么 CDPATH 是最有效的。否則,必須輸入足夠長(zhǎng)的路徑以進(jìn)行區(qū)別,比如 personal/novel。

取得事半功倍的效果

您已經(jīng)看到了許多示例,說(shuō)明文本文件在 Unix 系統(tǒng)中有著廣泛的用途。大多數(shù)系統(tǒng)啟動(dòng)文件都是文本文件,包括 Shell 腳本、配置文件,當(dāng)然還包括數(shù)據(jù)文件。除了文本編輯器之外,最有價(jià)值的實(shí)用工具就是翻頁(yè)工具 (pager)、或者允許您逐頁(yè)瀏覽文本文件的應(yīng)用程序。

應(yīng)用程序 less 是最常用的翻頁(yè)工具之一,并且它提供了大量的選項(xiàng)以調(diào)整它的行為。事實(shí)上,您可以將 LESS 環(huán)境變量設(shè)置為相關(guān)選項(xiàng)的列表,以便控制 less 的缺省工作方式。下面是一組有用的選項(xiàng):

export LESS="-Nmsx4"

-N 可以顯示行號(hào)。

-m 能夠以百分比的形式顯示在文件的當(dāng)前位置。

-s 可以將多個(gè)空行“壓縮或者減少為單個(gè)空行。

-x4 可以將制表位設(shè)置為四個(gè)空格。

請(qǐng)仔細(xì)地閱讀 less 的 man 頁(yè)面,以便找到對(duì)您最有幫助的選項(xiàng)。

從下到上閱讀文件

在 UNIX 系統(tǒng)中,許多文件會(huì)不斷地增大,直到被截?cái)嗷蛘哌M(jìn)行存檔。例如,最重要的一些系統(tǒng)處理,如電子郵件傳輸和遠(yuǎn)程訪問(wèn)、持續(xù)日志記錄活動(dòng),都會(huì)在文件的末尾添加新的條目。并且是最感興趣的日志文件的末尾。如果某個(gè)服務(wù)崩潰了,那么最后發(fā)生的事件將提供最有價(jià)值的線索。

有兩種方法可以逆序顯示文件中的行:tac(將 cat 反過(guò)來(lái))和 tail -r 命令。

$ cat smallfileabc$ tac smallfilecba$ tail -r smallfilecba

您可能會(huì)發(fā)現(xiàn) tac 更加實(shí)用一些,因?yàn)樗鼘@示整個(gè)文件,這與 tail 是不同的,后者將對(duì)輸出進(jìn)行截?cái)啵伙@示若干行的內(nèi)容。例如,您可以組合使用 tac 和 less 以創(chuàng)建一個(gè)別名,用于對(duì)文件進(jìn)行逆序分頁(yè):

$ alias rless="LESSOPEN='|tac %s' less"$ rless smallfilecba

rless 別名臨時(shí)地將 LESSOPEN 設(shè)置為 |tac %s,這是特定于 less 的一個(gè)環(huán)境變量。這樣可以強(qiáng)制使用 tac 對(duì)每個(gè)文件(%s 是文件名的占位符)進(jìn)行預(yù)處理(所以使用了管道 |)。

下面提供了這個(gè)相同技巧的另一種變體,但是它使用了 perl 而不是 tac,在您的系統(tǒng)中可能無(wú)法使用這個(gè)命令:

LESSOPEN="|perl -e 'print reverse (<>)' %s" less small

包含 perl 的那行命令表示“將所有的輸入行讀入一個(gè)匿名數(shù)組 ((<>)),顛倒元素的順序,并打印這個(gè)新的數(shù)組。

進(jìn)行新的數(shù)學(xué)運(yùn)算

如果您需要計(jì)算一個(gè)結(jié)果,那么并不需要轉(zhuǎn)到一個(gè)新的應(yīng)用程序。您可以繼續(xù)在命令行中完成這項(xiàng)任務(wù)。您可以使用 dc(這是一種逆波蘭式計(jì)算器),或者 bc(這是一種用于數(shù)學(xué)運(yùn)算的完整的腳本編程語(yǔ)言)。或者,如果您需要馬上獲得答案,那么可以使用命令行和 $(( )) 操作符。

$ echo $(( 100 / 10 ))10$ echo $(( 10 ** 2 ))100

Shell 并沒(méi)有提供大量的算術(shù)操作符,但是已經(jīng)足以完成大多數(shù)編程任務(wù),包括移位、求余和比較。

還有很多的內(nèi)容需要學(xué)習(xí)

“對(duì)話 Unix已經(jīng)是第 13 部分了,但是仍然有許多內(nèi)容需要介紹。我們需要學(xué)習(xí)更多的命令和技巧、研究各種各樣的相關(guān)概念,當(dāng)然還包括大量的開(kāi)放源代碼軟件,以便提高您的工作效率。

還有一點(diǎn)就是,必須克服各種困難。高年級(jí)學(xué)生有時(shí)會(huì)捉弄人,有時(shí)的確令人尷尬,但他們相處融洽。也許我看起來(lái)像是在倚老賣老了!. . 孩子們相處很融洽,是吧!

感謝您的閱讀!我希望您能夠喜歡本專欄。

標(biāo)簽: Unix系統(tǒng)
相關(guān)文章:
主站蜘蛛池模板: 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 钢制拖链生产厂家-全封闭钢制拖链-能源钢铝拖链-工程塑料拖链-河北汉洋机械制造有限公司 | 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 间甲酚,间甲酚厂家-山东祥东新材料| 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 鄂泉泵业官网|(杭州、上海、全国畅销)大流量防汛排涝泵-LW立式排污泵 | 小型高低温循环试验箱-可程式高低温湿热交变试验箱-东莞市拓德环境测试设备有限公司 | ET3000双钳形接地电阻测试仪_ZSR10A直流_SXJS-IV智能_SX-9000全自动油介质损耗测试仪-上海康登 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | 气动调节阀,电动调节阀,自力式压力调节阀,切断阀「厂家」-浙江利沃夫自控阀门 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 首页-瓜尔胶系列-化工单体系列-油田压裂助剂-瓜尔胶厂家-山东广浦生物科技有限公司 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 浙江工业冷却塔-菱电冷却塔厂家 - 浙江菱电冷却设备有限公司 | 防火卷帘门价格-聊城一维工贸特级防火卷帘门厂家▲ | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 电竞学校_电子竞技培训学校学院-梦竞未来电竞学校官网 | HDPE储罐_厂家-山东九州阿丽贝防腐设备 | 山楂片_雪花_迷你山楂片_山楂条饼厂家-青州市丰源食品厂 | 政府回应:200块在义乌小巷能买到爱情吗?——揭秘打工族省钱约会的生存智慧 | 求是网 - 思想建党 理论强党| 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | 齿轮减速机电机一体机_齿轮减速箱加电机一体化-德国BOSERL蜗轮蜗杆减速机电机生产厂家 | 刹车盘机床-刹车盘生产线-龙口亨嘉智能装备| 云南成人高考网| 全自动变压器变比组别测试仪-手持式直流电阻测试仪-上海来扬电气 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 焦作网 WWW.JZRB.COM| 管家婆-管家婆软件-管家婆辉煌-管家婆进销存-管家婆工贸ERP | 工业PH计|工业ph酸度计|在线PH计价格-合肥卓尔仪器仪表有限公司 济南画室培训-美术高考培训-山东艺霖艺术培训画室 |