自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

別名解決Unix操作系統(tǒng)方案

系統(tǒng) 其他OS
在文章中,我們要介紹關(guān)于典型Unix操作系統(tǒng)管理員使用命令解決的方案,利用別名的方式,只能在某些外殼中受支持。

今天我要介紹關(guān)于別名的知識(shí)。它是典型Unix操作系統(tǒng)管理員使用命令解決的方案之一。這種解決方案僅在某些外殼中受支持——別名提供了將給定的字符串展開為特定命令的簡單方法。

別名在 Korn (ksh)、Bourne-Again SHell (bash)、TENEX C shell (tcsh) 和 Z shell (zsh) 外殼中受支持,當(dāng)您希望設(shè)置命令的特定選項(xiàng),同時(shí)仍然支持其他選項(xiàng)時(shí),別名提供了也許是最簡單的方法。顧名思義,您可以將一個(gè)命令用作另一個(gè)命令的別名,或者為帶有附加選項(xiàng)的同一個(gè)命令提供別名。別名從您鍵入的內(nèi)容展開為其展開形式。

例如,一個(gè)常用的別名是ll,它調(diào)用等效的 ls -l(ll 通常稱為長清單 (long listing))。每當(dāng)用戶鍵入ll,就會(huì)直接將其替換為展開形式,因此:$ ll a* 在執(zhí)行前展開為:$ ls -l a*。 命令行選項(xiàng)也仍然有效,換句話說,$ ll -a 展開為:$ ls -l -a。 還可以為現(xiàn)有命令設(shè)置別名;假設(shè)將 -F 選項(xiàng)添加到所有 ls 命令,這樣,$ ls 將展開為:$ ls -F。 要設(shè)置別名,請使用內(nèi)置的外殼 alias 語句,并在引號(hào)中指定所需的展開形式。例如,要設(shè)置前面詳細(xì)描述的 ll 的展開形式,可使用:$ alias ll='ls -l'。

比如ps 命令,它在基于SVR4 和基于BSD 的Unix操作系統(tǒng) 主機(jī)上是不同的。 在 BSD 上指定別名 $ alias ps='ps -o pid,ppid,command' 而在SVR4 主機(jī)上指定別名 $ alias ps='ps -opid,ppid,cmd 現(xiàn)在,在這兩個(gè)系統(tǒng)對(duì) ps 的不同操作方式的限制下,您獲得了ps 產(chǎn)生的標(biāo)準(zhǔn)輸出。和前面一樣,您可以繼續(xù)添加更多選項(xiàng);例如,在安裝了該別名的任一個(gè)平臺(tái)上請求所有進(jìn)程,添加 -A 選項(xiàng)就是這樣一種情況。

同樣以ps為例,您可以創(chuàng)建別名ps-all 來輸出所有進(jìn)程列表,并根據(jù)需要為每種平臺(tái)設(shè)置相應(yīng)的展開形式。

設(shè)置這些別名的最佳位置是在登錄期間執(zhí)行的外殼初始化腳本中,例如 .ksh、.profile 或 .bashrc。您可以在這些腳本中執(zhí)行同樣的Unix操作系統(tǒng)檢查,以驗(yàn)證要啟用哪些別名。如果希望提供適用于所有用戶的全局解決方案,則應(yīng)將別名定義放在公開可用的文件中(例如放在 /etc or /usr/local 中),并設(shè)置用戶初始化腳本以獲得別名定義來源。

別名機(jī)制最適合于您希望設(shè)置單個(gè)命令的命令行選項(xiàng)的情況,雖然也可以使用它們來將給定的命令展開為一組命令或管道。這樣削弱了為展開形式中除最后一個(gè)命令以外的其他任何命令指定附加參數(shù)的能力。

對(duì)于處理此類包裝,外殼中的內(nèi)聯(lián)函數(shù)可能更為適合。  大多數(shù)外殼都支持函數(shù),這些函數(shù)本質(zhì)上是微型腳本,您可以在其中放置命令和其他外殼腳本元素以執(zhí)行特定的任務(wù)。它們是主外殼定義中的函數(shù),支持許多完整外殼腳本所具有的相同功能,如命令行參數(shù)。對(duì)于支持別名無法在其中工作的某些命令和組合,對(duì)命令行參數(shù)的支持非常關(guān)鍵。

例如,killall 命令最基本的功能是終止所有與特定字符串匹配的命令。在Solaris 上,killall 命令存在,但是將其用作關(guān)閉過程的一部分以終止所有進(jìn)程。設(shè)想U(xiǎn)nix操作系統(tǒng)在 Solaris 主機(jī)上意外調(diào)用 killall 命令以關(guān)閉所有 Apache 進(jìn)程,沒想到卻實(shí)際上關(guān)閉了系統(tǒng)!

如果要在所有主機(jī)上使用相同的名稱或使用不同的名稱實(shí)現(xiàn)按名稱終止進(jìn)程的預(yù)期結(jié)果,并消除不希望的和可能代價(jià)高昂的錯(cuò)誤,同時(shí)擴(kuò)展本身并不支持該選項(xiàng)的Unix操作系統(tǒng)的功能。可使用kill 命令將 KILL 信號(hào)發(fā)送到每個(gè)匹配進(jìn)程。在命令行上,您可以通過一系列管道實(shí)現(xiàn)等效的功能(使用 KILL 信號(hào))。

提供killall 命令的替代 $ ps -ef|grep gcc|awk '{ print $2; }'|xargs kill -9 該命令的關(guān)鍵部分是提供給 grep的字符串和ps 輸出中包含所需進(jìn)程 ID 的列。上面的例子對(duì) Solaris 主機(jī)和大多數(shù) SVR4 Unix操作系統(tǒng)變種有效。

我們這樣就介紹玩了關(guān)于別名的知識(shí)。

【編輯推薦】

  1. 解析Unix操作系統(tǒng)變種SCO UnixWare
  2. 10個(gè)程序來考驗(yàn)Unix操作系統(tǒng)
  3. 變成Unix操作系統(tǒng)高手
  4. 快速學(xué)習(xí)Unix操作系統(tǒng)
  5. 關(guān)于Unix操作系統(tǒng)問題
責(zé)任編輯:小霞
相關(guān)推薦

2010-04-09 16:45:42

Unix操作系統(tǒng)

2010-04-14 15:58:25

Unix操作系統(tǒng)

2010-04-14 14:55:29

Unix操作系統(tǒng)

2010-04-16 17:38:25

2010-05-05 10:25:24

Unix操作系統(tǒng)

2010-04-13 12:27:44

Unix操作系統(tǒng)

2010-04-29 15:46:47

Unix操作系統(tǒng)

2010-04-07 13:11:01

Unix操作系統(tǒng)

2010-04-09 10:08:22

Unix操作系統(tǒng)

2010-04-15 14:40:26

Unix操作系統(tǒng)

2010-04-08 16:18:22

Unix操作系統(tǒng)工具

2010-04-19 18:18:30

Unix操作系統(tǒng)

2010-04-09 11:24:38

Unix操作系統(tǒng)

2010-04-19 16:57:09

Unix操作系統(tǒng)

2010-04-19 10:54:33

Unix操作系統(tǒng)

2010-04-14 13:59:45

Unix操作系統(tǒng)

2010-04-08 17:56:42

Unix操作系統(tǒng)

2010-04-16 17:49:28

Unix操作系統(tǒng)

2010-04-08 15:21:39

Unix操作系統(tǒng)

2010-04-16 17:19:58

Unix操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)