有很多shell命令,就像Shell命令是用什麼語言編寫的?
LS,CD,貓等
書面這些命令使用什麼編程語言?他們是如何編制的?
我的理解::
Shell is a program which takes command; ** does this mean that it interprets those commands(like ls is interpreted by shell program)?**
還有一個問題,是殼牌計劃寫什麼語言?
謝謝!
有很多shell命令,就像Shell命令是用什麼語言編寫的?
LS,CD,貓等
書面這些命令使用什麼編程語言?他們是如何編制的?
我的理解::
Shell is a program which takes command; ** does this mean that it interprets those commands(like ls is interpreted by shell program)?**
還有一個問題,是殼牌計劃寫什麼語言?
謝謝!
絕大部分在Linux中的基本工具都寫在C
。這ü可以在busybox source code
驗證支持其中大部分都寫在C
基本的Linux命令實用的。 SO命令如ls,CD ...等都是c
如何Shell會在操作系統中檢查以下鏈接
有一個特殊的程序稱爲殼。 shell接受人類可讀的命令並將它們轉換爲內核可以讀取和處理的內容。
http://www.math.iitb.ac.in/resources/manuals/Unix_Unleashed/Vol_1/ch08.htm
的計劃是寫在任何語言(主要是C)普通的可執行文件。
外殼採用命令進入這僅僅是一個字符串。然後查找諸如環境變量它們$
後跟一個字或重定向其>
後跟路徑具有特殊意義的殼某些字符序列。在進行這個替換之後,它會有一個字符串,它被分割爲空格以生成可執行文件和參數的名稱。然後,shell將搜索環境變量PATH中目錄列表中的可執行文件。然後shell使用系統調用從可執行文件和參數中創建一個進程。
例如要執行的命令ls $HOME
殼首先認識到$HOME
是一個環境變量和在離開該命令ls /home/user
這種情況下/home/user
用它替換它的值。然後它將命令分割到空間上以獲得可執行文件名ls
和參數/home/user
。 shell找到匹配ls
的第一個可執行文件,通常爲/bin/ls
。然後使用ether spawn()/ posix_spawn()或fork()和exec()系統調用來創建新進程。
請詳細解釋!通過給出一個命令的例子。 解釋下面的東西: - 取代enviremental變量(即用戶名等) - 生成可執行文件和參數 - 使用系統調用來創建進程 – CODError
我是一個初學者,感到困惑了很多。這可能以更好的方式解釋我。 – CODError
我不確定,但我認爲它們是用匯編語言編寫的。查看[這裏](http://en.wikipedia.org/wiki/Assembly_language)瞭解更多關於裝配的信息。 –