首頁 > 網路遊戲

如何執行linux程式

2020-11-02 18:15:56

搞懂linux程式如何執行是一件重要的事情,這是為我們進一步發展打下了堅實基礎的一步。本文將通過範例來詳細地講解如何執行linux程式。希望對於大家理解有幫助。部分內容參考於《linux就該這麼學》,希望對大家有幫助。

工具/材料

電腦

linux作業系統

操作方法

  • 01

    首先,我們從一個十分簡單的例子test.sh開始吧:
    #!/bin/sh
    #this is a test.
    cd /tmp
    echo "hello,this is a test"
    這是一個十分簡單的程式,但是執行結果可能會讓你吃驚哦!

  • 02

    這個時候,我們發現程式執行之後,並沒有改變當前目錄。(黑人問號???)
    彆著急,我們先了解一下linux程式如何執行。

  • 03

    linux程式三種執行方法
    執行linux程式有三種方法,分別是:
    1、使檔案具有可執行許可權,直接執行檔案。
    chmod 命令用來修改檔案的許可權。+x是使檔案擁有可執行的許可權。就如上面我們執行程式一樣。但是我們看到的結果與我們想象當中有一定的出入。

  • 04

    2、直接呼叫命令直譯器執行程式。
    如下圖所示:
    由於我們的直譯器是/bin/sh,所以,用sh命令直譯器來執行程式。
    我們也看到當前的工作路徑沒有發生變化。(黑人問號???)

  • 05

    3、使用source執行檔案。
    沒錯,這裡我們發現當前的工作路徑發生了變化,(黑人問號???)但是究竟為什麼呢?讓我們帶著三個黑人問號詳細瞭解一下linux程式究竟怎麼執行。

  • End

linux程式執行的過程

  • 01

    當命令列shell執行程式時,首先判斷是否該程式具有可執行許可權。如果沒有可執行許可權,就會提示:Permission denied(許可權不夠)
    在第一種方法中,我們直接執行檔案,就先加上了可執行許可權。
    當命令列接收到我們的執行命令,並且判斷具有可執行許可權後,則呼叫Linux核心命令新建一個程序,在新建的程序中呼叫指定的命令。但是我們的test.sh不是編譯型的檔案,所以linux核心不知道如何執行,然後交給shell,shell就知道這是一個指令碼,那麼就啟動一個新的shell程序來進行執行。但是linux系統有很多shell,如圖:

  • 02

    我們程式第一行看到是#!/bin/sh,這時,命令列就啟用一個新的bash程序來執行程式。

  • End

程式執行差異

  • 01

    在我們執行shell程式的三種方法中,前兩種方法的執行過程如下:
    (1)父程序接收到命令,然後發現不是內建命令,於是建立了一個和自己一樣的s h e l l程序,來執行這個外部命令

  • 02

    (2)這個s h e l l子程序用/bin/sh取代自己,sh程序設定自己的執行環境變數,其中包括了$PWD變數。

  • 03

    (3)sh程序依次執行內建命令cd和echo。在此過程中,sh程序(子程序)的環境變數被cd命令改變。

  • 04

    (4)子程序執行完畢,就消亡了,一直在等待的父程序醒來,繼續接受命令。
    所以我們明白了前兩種方法執行結果跟我們預期不一樣的原因,父程序的當前目錄(環境變數)無法被子程序改變。
    但是,使用source執行是shell指令碼時不會建立子程序,而是在父程序中直接執行。至此黑人問號消失,繼續加油寫程式碼吧。

  • End

特別提示

注意命令的理解

注意路徑的變化


IT145.com E-mail:sddin#qq.com