我目前正在學習UNIX並且一切正常。剛剛涵蓋了不同的shell,即Bourne SHell(sh),Bourne Again SHell(BASH)和Korn SHell(KSH)等,我明白進入不同的shell會通過命令向其他應用程序提供不同的功能。但是,我是什麼不清楚是什麼「切換」在UNIX操作系統時,說我從sh到ksh?它只是它在文件結構中的不同位置或什麼?在交換shell之後在UNIX操作系統中實際發生了什麼
回答
據我瞭解,進入不同的炮彈通過命令使不同功能的其他應用程序等
這是不正確。
你使用交互作爲用戶沒有軸承哪個shell應用程序使用,當他們使用system()
C庫調用或任何等同於相同(其中精心編寫的應用程序在第一不做殼牌地點:最好的做法是直接調用exec
-系列調用以在需要時啓動外部命令,而不是根本不使用臨時shell)。因此,用戶的交互式shell沒有機制選擇應用程序的行爲方式,因爲它實際上並沒有做出任何這樣的選擇。
當你的shell是,例如ksh
,它是ksh提供你輸入的實際交互提示;將你輸入的命令與其別名,函數和內建函數進行比較,並找到要運行的外部命令,但是如果你傳遞了外部命令,那麼一旦該命令運行,它就不知道哪個shell會調用它(除非該信息以環境變量(例如$SHELL
)的形式導出),並且不會基於此來更改其行爲。
謝謝Charles。我立場糾正。我正在使用幾年前購買的培訓DVD。在繼續之前我會找到一個更新的培訓媒體 – AJF
我建議http://wiki.bash-hackers.org/和http://mywiki.wooledge.org/BashGuide作爲關於bash的聲音信息的好地方特別是符合POSIX標準的shell。 –
- 1. MySQL拋出「操作系統錯誤號22」 - 發生了什麼?
- 2. 當我們在Unix中終止一個進程時實際發生了什麼?
- 3. lwz實際發生了什麼?
- 4. IQueryable.Where()實際發生了什麼?
- 5. 實際上Android是什麼?移動軟件或操作系統?
- 6. 在UNIX shell中運行exec csh會發生什麼?爲什麼?
- 7. 在Objective-c中釋放對象時實際發生了什麼?
- 8. 在Ruby中聲明「private」/「protected」時實際發生了什麼?
- 9. 在SQL Server中獲取鎖時實際發生了什麼?
- 10. 在表JOIN中實際發生了什麼?
- 11. GIT for UNIX操作系統
- 12. 在高對比度模式下CSS實際發生了什麼?
- 13. 什麼是操作系統和元操作系統之間的差別
- 14. 在Ubuntu操作系統中生成UUID
- 15. getcontext系統調用(ucontext.h)實際上做了什麼?
- 16. dup()和dup2()系統實際上做了什麼?
- 17. list.insert()在python中實際做了什麼?
- 18. 瞭解開發操作系統
- 19. 從windows操作系統執行unix shell腳本文件
- 20. CFFI-UNIX發生了什麼事?
- 21. 系統調用在Linux上如何實際發生?
- 22. Spring @Autowired - 在後臺發生了什麼
- 23. 當你在unix shell上鍵入時會發生什麼
- 24. 這是一個在操作系統中的錯誤,或者有人可以向我解釋發生了什麼?
- 25. 實時操作系統STM32F4發現
- 26. ajax GET/POST,實際發送了什麼?
- 27. 幕後發生了什麼?
- 28. 在Swift中替換它們之後會發生什麼?
- 29. 在32位操作系統和64位操作系統之間,類java.net.InetAddress有什麼區別
- 30. 這裏發生了什麼? Shell編程
shell是什麼提供的功能。這並不像是有一些獨立的東西在底層使用了一個shell,並且決定了它使用的是哪個shell - 它直接提供了你輸入的提示符的shell本身。 –
此外,「使其他應用程序的功能不同」簡直是錯誤的。應用程序不會調用調用它們的父shell;他們通常在他們想運行一個shell命令時調用'/ bin/sh',以及哪個shell根據用戶選擇的交互式shell而不會改變。 (在POSIX系統上運行'sh'應該是獲得符合POSIX標準的shell的保證,但POSIX sh,bash和ksh都符合POSIX標準.Bourne sh不符合POSIX標準 - 標準版本1991年出現,而Bourne從70年代開始 - 但沒有人再出貨伯恩了)。 –
...因此,在你的問題中,'sh'是Bourne shell本身就是一個誤解;數十年來發布* Bourne的唯一操作系統供應商是Sun,並且他們終於停止了這一切;到處都是理智的,'/ bin/sh'就像灰或破折號,正確的符合POSIX sh,而不是Bourne。 –