<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          exec命令手冊

          共 1241字,需瀏覽 3分鐘

           ·

          2021-10-13 13:49

          exec:調(diào)用并執(zhí)行指定的命令

          功能描述

          exec命令用于調(diào)用并執(zhí)行指定的命令。exec命令通常用在shell腳本程序中,可以調(diào)用其他的命令。如果在當前終端中使用命令,則當指定的命令執(zhí)行完畢后會立即退出終端。

          命令語法

          exec?[選項]

          選項含義

          選項含義
          -c使用一個空環(huán)境來執(zhí)行
          -ashell會將名字作為零參數(shù)傳遞給執(zhí)行的命令
          -l在shell的開頭放置一個破折號參數(shù)傳遞給命令

          參考實例

          實例1

          //?首先使用echo命令將文本“www.linuxyz.cn”進行輸出:
          [root@cnLinuxer?~]#?echo?www.linuxyz.cn
          www.linuxyz.cn

          //?然后再使用exec命令調(diào)用echo命令輸出同樣的信息,并且對輸出的信息進行對比,輸入指令如下所示:
          [root@cnLinuxer?~]#?exec?-c?echo?www.linuxyz.cn
          www.linuxyz.cn

          //?通過比較兩者執(zhí)行后的結(jié)果來看,所實現(xiàn)的功能是相同的,即使用exec命令調(diào)用echo命令成功。

          實例2

          //?//?查找te.txt?并備份為te.txt.bak
          [root@host132?~]#?find?/test?-name?"te.txt"?-exec?cp?{}?{}.bak?\;

          知識擴展

          一、系統(tǒng)調(diào)用 exec 是以新的進程去代替原來的進程,但進程的PID保持不變。因此,可以這樣認為,exec系統(tǒng)調(diào)用并沒有創(chuàng)建新的進程,只是替換了原來進程上下文的內(nèi)容。原進程的代碼段,數(shù)據(jù)段,堆棧段被新的進程所代替。

          一個進程主要包括以下幾個方面的內(nèi)容:

          1. 一個可以執(zhí)行的程序

          2. 與進程相關(guān)聯(lián)的全部數(shù)據(jù)(包括變量,內(nèi)存,緩沖區(qū))

          3. 程序上下文(程序計數(shù)器PC,保存程序執(zhí)行的位置)

          二、exec是一個函數(shù)簇,由6個函數(shù)組成,分別是以excl和execv打頭的。

          執(zhí)行exec系統(tǒng)調(diào)用,一般都是這樣,用fork()函數(shù)新建立一個進程,然后讓進程去執(zhí)行exec調(diào)用。我們知道,在fork()建立新進程之后,父進各與子進程共享代碼段,但數(shù)據(jù)空間是分開的,但父進程會把自己數(shù)據(jù)空間的內(nèi)容copy到子進程中去,還有上下文也會copy到子進程中去。而為了提高效率,采用一種寫時copy的策略,即創(chuàng)建子進程的時候,并不copy父進程的地址空間,父子進程擁有共同的地址空間,只有當子進程需要寫入數(shù)據(jù)時(如向緩沖區(qū)寫入數(shù)據(jù)),這時候會復制地址空間,復制緩沖區(qū)到子進程中去。從而父子進程擁有獨立的地址空間。而對于fork()之后執(zhí)行exec后,這種策略能夠很好的提高效率,如果一開始就copy,那么exec之后,子進程的數(shù)據(jù)會被放棄,被新的進程所代替。

          Linux學習指南

          有收獲,點個在看?

          瀏覽 48
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产一区二区三区四 | 操大香蕉在线观看 | 波霸巨大乳一区二区三区 | 亚洲无码做爱视频 | 福利色在线播放 |