成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux BASH Shell命令排列任務調度和替換

運維 系統運維
現在您將看到一些常用的命令排列。您可能想在一行中給出所有命令,然后就可以把注意力轉移到其他地方。沒問題,shell 允許您在不同的命令之間,放上特殊的排列字符(queuing characters) 。這兒將介紹最常用的兩種。

命令的排列
現在您將看到一些常用的命令排列。您可能想在一行中給出所有命令,然后就可以把注意力轉移到其他地方。沒問題,shell 允許您在不同的命令之間,放上特殊的排列字符(queuing characters) 。這兒將介紹最常用的兩種。
請注意,為了看起來更清楚,我在這些字符兩旁加了空格。而在實際應用中,您不一定要這么做,'ls -a ; du -hs'和'ls -a;du -hs'的效果是一樣的。
command1 ; command2先執行 command1 ,不管 command1 是否出錯,接下來執行 command2 。

#p#例如:ls -a ; du -hs
將先在屏幕上列出目錄中的所有內容,然后列出所有目錄及其子目錄所占磁盤大小。
command1 && command2
只有當 command1 正確運行完畢后,才執行 command2 。
例如:
ls -a bogusdir && du -hs
將返回 ls: bogusdir: No such file or directory , 而'du'則根本沒有運行(這是因為您沒有'bogusdir'目錄)。如果您將符號換成了';','du'將被執行。為了進一步說明';'和'&&'的區別,及一般命令排列的用處,下面舉一個經典的例子:linux內核的編譯和安裝。
要編譯、安裝 linux ,您需要執行一串命令:'make dep'、'make clean'、'make bzImage'、'make modules'、'make modules_install'和'make install'。如果要等一個命令完成后,再輸入下一個,再等,再輸入,……,那就太麻煩了。另一方面,每個命令只有當前面的命令都正確執行完畢后,才能開始執行。如果您用';'來排列命令,則即使有命令執行失敗, 后面的也照常運行,最后,您可能在'/boot'目錄下得到一個有問題的內核映像(image)。而用'&&':make dep && make clean && make bzImage && make modules && make modules_install && make install
不需要中途打斷,就可以編譯內核及其模塊,并完成后面的安裝。

命令的任務調度
當您在終端里運行一個命令或開啟一個程序時,終端要等到命令或程序運行完畢后,才能再被使用。在 Unix 中,我們稱這樣的命令或程序在前臺(foreground)運行。如果您想在終端下運行另一個命令,則需要再打開一個新的終端。
但這里還有一個更優雅的辦法,稱為任務調度(jobbing)或后臺(backgrounding)。當您運用任務的調度或將命令置于后臺,終端就立即解放了,這樣一來,終端立即就可以接受新的輸入。為實現這樣的目的,您只需在命令后面添加一個 & :gqview &
告訴 shell 將圖片查看器'GQview'放到后臺去執行(即當成 job 來運行)。命令 jobs 將告訴您,在這個終端窗口中,運行著哪些命令與程序:
jobs
[1]+ Running gqview &

當您要關閉終端窗口時,這一點就很重要,因為關閉終端將導致所有在其中運行的任務都將被中止,在此例中,如果您關閉了終端,由這個終端開啟的 GQview 程序也將被關閉。但如何將前臺運行的一個程序放到后臺去?沒問題:
gqview

[2]+ Stopped gqview

bg
[2]+ gqview &

組合鍵 將掛起終端中正在運行的程序,然后您就可以用 bg 命令將其放到后臺去執行。請注意,在后臺運行圖形應用程序有時候是有用處的,這樣可以在終端下顯示這個程序的
出錯信息,雖然這對您可能沒有直接的幫助,當如果碰到了麻煩,向別人詢問時,這些出錯提示就有用武之地了。
一些圖形程序,很可能還處在測試期(Beta),盡管在后臺執行,也會在終端中輸出一些信息。如果您對此不滿,可以用下面命令:
command &>/dev/null &
這不僅將程序送到后臺執行,還將其輸出發到'/dev/null'文件。 '/dev/null'是系統的"碎紙機" (shredder),所有送到那里的信息都將消失殆盡。

命令的替換
命令替換(Command substitution)是一項很實用的功能。我們假設,您想看看 XFree86文檔中的 'README.mouse'文件,但您不知道這個文件的位置。但您是位機靈的用戶,已經聽說了'locate'命令,也安裝了'slocate'包,您就可以用:
locate README.mouse
發現那個文件在'/usr/X11R6/lib/X11/doc'。現在您就可以在終端里用'less'或在文件管理器中進入那個目錄然后讀取文件。而命令替換可以給您帶來一些便捷:less $(locate README.mouse)一步到位。命令'locate README.mouse'的輸出(= /usr/X11R6/lib/X11/doc/README.mouse)
作為'less'的參數,然后就可以顯示文件內容了。
這種機制的語法是:
command1 $(command2)
除了'$( )',您還可以用后引號(backquote):
command1 `command2`
這樣雖然可以減少輸入,但可讀性差,而且很容易就和沒有替換功能的一般單引號混淆。這里有另外一個例子。我們假設,您打算結束一個名為'rob'的程序。您先得用命令'pidof'找出相應的進程號(Process ID),然后以這個 PID 為參數,運行'kill'命令,這樣就
可以結束'rob'程序。除了用:
pidof rob
567
kill 567
您還可以試試:
kill `pidof rob`
怎么樣,效率有所提高吧?

【編輯推薦】

  1. Linux Bash命令關于程序調試詳解 
  2. Linux Bash命令關于快捷鍵應用
  3. Linux Bash Shell系統的應用詳解
  4. Linux Bash具體安裝步驟及使用介紹
  5. Linux Bash命令查詢相關事件詳解
     
責任編輯:chenqingxiang 來源: linux寶庫
相關推薦

2010-06-23 17:37:14

Linux Bash

2010-06-23 17:34:03

Linux Bash

2010-06-23 16:31:10

Linux Bash

2010-06-23 17:29:07

Linux Bash

2010-06-23 17:16:33

Linux Bash

2009-12-25 09:47:05

LinuxShell編程bash

2023-07-27 17:41:02

BashZshFish

2010-06-23 16:35:50

Linux Bash

2010-06-23 16:42:33

2012-01-18 09:46:32

Shell

2022-03-24 11:35:30

LinuxXnosh Shel

2010-06-23 11:09:14

Linux Bash

2010-06-23 16:05:36

Linux Bash

2010-06-23 10:03:18

Linux Bash命

2018-02-24 15:40:06

LinuxBashShell

2021-09-22 15:00:24

Linuxwatch 命令

2010-06-23 15:55:36

Linux Bash

2010-06-23 17:07:47

Linux Bash

2019-12-01 22:59:43

Linux shell命令進程

2010-06-23 11:24:23

Linux Bash命
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文字幕免费 | 日韩在线精品视频 | 久久999 | 欧美色人 | 国产精品爱久久久久久久 | 日本一区不卡 | 精品一区二区电影 | 三级在线视频 | 欧美精品中文字幕久久二区 | 日韩www| 免费黄色在线观看 | 久久剧场 | 久久神马| 亚洲一区精品在线 | 国产精品精品视频一区二区三区 | 亚洲一区黄色 | 成人免费小视频 | 亚洲午夜精品 | 午夜影院在线观看免费 | 91免费版在线观看 | 狠狠伊人 | 成年人在线视频 | 欧美黑人国产人伦爽爽爽 | 一区二区三区视频 | av免费在线观看网站 | 在线看日韩 | 理伦毛片| 97精品国产97久久久久久免费 | 久久久久成人精品亚洲国产 | 精精精精xxxx免费视频 | 一区久久 | 亚洲一区黄色 | 性色网站 | 鸡毛片 | 国产日韩欧美一区二区 | 久久久久国产视频 | 免费观看一级特黄欧美大片 | av片在线免费看 | 亚洲高清视频一区 | 懂色av一区二区三区在线播放 | 亚洲欧美国产精品久久 |