2011-04-01 69 views
3

我學習了標準的c和C++語言。但是我不知道如何使用系統調用和編寫進程等程序。所以我想學習unix/linux環境下的編程。步驟是什麼?我應該怎麼做。我應該先學習shell嗎?如何在unix環境中學習編程?我應該先學會殼嗎?

+0

你是什麼意思的「標準」C和C++? – 2011-04-01 12:40:33

+0

小學正好 – liu 2011-04-01 12:44:50

回答

0

我現在正在進行系統編程,教授正在給我們一個關於Unix的調查,包括系統調用和編寫現有核心實用程序的更簡單版本。

我發現很有用的一個來源是閱讀full source code的實用程序和system call快速參考。教科書是Understanding UNIX/Linux Programming,我絕對推薦你把它拿起來。

除了使用輸入重定向,grep和管道之外,我們還沒有進入shell腳本,所以我不知道在這一點上對你有多大用處。

1

如果你想在UNIX環境下編程,你必須先弄清楚你的方式,然後再弄亂系統調用和其他東西。我建議通過The UNIX programming environment對UNIX進行一個健康的介紹。這有點過時,但仍然是一本書的寶石,必須爲任何程序員閱讀。

+1

精彩的書,並閱讀的樂趣。但它不僅僅有點過時了。我的父親幾年前有學習Unix編程的經驗,並且是一個有條不紊的人,他在圖書館查閱並在向我尋求幫助之前閱讀了它。我會說,如果造成的混亂就像清除了一樣多。儘管如此,它*是一個很好的閱讀。 – dmckee 2011-04-01 15:23:13

0

不,你不需要學習shell。 只需查找描述unix系統調用C的書籍或網頁即可。

1

如果您有Unix/Linux系統,至少應該知道一些shell腳本及其工具,以便知道您的啓動腳本確實或快速移動系統(例如使用ls,mv,cp等)。除此之外,對於真正的編程的東西,你可以使用一種編程語言(Python,Ruby想起來)。很多現代編程語言,如Python,已經提供了系統級API。 Python自帶一個shell,所以如果你是一個核心,你也可以將它用於你的每一天任務。這個小例子顯示,你可以做在Python目錄列表外殼

>>> import os               
>>> os.chdir("/tmp")             
>>> os.listdir(".")   

它一樣的命令行輸入ls。如何移動/複製文件?相反,如果你打算程序系統/低層次的東西的使用shell mvcp

>>> import shutil 
>>> shutil.copy("file","/destiation") 
>>> shutil.move("file1","/destination") 

恕我直言,那麼C/C++可能是你所需要的,但正常的系統管理員或每天的操作,編程Python/Ruby(或Perl)等語言將最適合您。

+0

是的,我現在在學python。你有什麼建議嗎? – liu 2011-04-01 14:22:39

+0

轉到'doc.python.org' – kurumi 2011-04-01 14:43:22

0

如果您打算在「傳統」unix環境下進行編程(例如,使用文本編輯器並執行命令行中的所有操作),您將需要非常熟悉shell,並且非常熟悉The Editor你的選擇(你有選擇的自由,但如果它不是emacs你會去壞的地方...)。

但是真的不需要「研究」殼第一個。請注意,shell提供了強大的工具。然後,每當你找到自己的想法「這裏有更好的辦法!」,去學什麼更好的方法