如何在unix环境中学习编程?我要先学shell吗? 我已经学习了标准的C语言和C++语言。但是我不知道如何使用系统调用和编写进程程序等等,所以我想学习在unix/linux环境下编程。步骤是什么?我该怎么办。我是否应该先学习shell。

如何在unix环境中学习编程?我要先学shell吗? 我已经学习了标准的C语言和C++语言。但是我不知道如何使用系统调用和编写进程程序等等,所以我想学习在unix/linux环境下编程。步骤是什么?我该怎么办。我是否应该先学习shell。,shell,unix,Shell,Unix,如果您想在UNIX环境中编程,您必须先学习如何使用shell,然后再处理系统调用之类的事情。我建议您全面介绍UNIX。这本书有点过时,但仍然是一本珍贵的书,是任何程序员的必读之作。不,你不需要学习shell。 只要找一本书或网页来描述unix系统对C的调用。如果你有unix/Linux系统,你至少应该了解一点shell脚本及其工具,只是为了了解你的启动脚本的功能或在系统中快速移动(例如使用ls、mv、cp等)。除此之外,对于真正的编程内容,可以使用编程语言(Python、Ruby)。许多现代编程

如果您想在UNIX环境中编程,您必须先学习如何使用shell,然后再处理系统调用之类的事情。我建议您全面介绍UNIX。这本书有点过时,但仍然是一本珍贵的书,是任何程序员的必读之作。

不,你不需要学习shell。
只要找一本书或网页来描述unix系统对C的调用。

如果你有unix/Linux系统,你至少应该了解一点shell脚本及其工具,只是为了了解你的启动脚本的功能或在系统中快速移动(例如使用ls、mv、cp等)。除此之外,对于真正的编程内容,可以使用编程语言(Python、Ruby)。许多现代编程语言,如Python,已经提供了系统级API。Python本身有一个shell,所以如果您是一个硬核,您也可以将它用于日常任务。这个小示例演示了如何在pythonshell中列出目录

>>> import os                                                         
>>> os.chdir("/tmp")                                                  
>>> os.listdir(".")         
这与在命令行中键入
ls
相同。移动/复制文件怎么样?而不是使用shell
mv
cp

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

我想,如果你打算编写系统/低级的东西,那么C/C++可能是你需要的,但是对于正常的系统管理或日常操作,像Python/Ruby(或Perl)这样的编程语言最适合你。

如果你打算在“传统”unix环境中编程(即,使用文本编辑器并从命令行执行所有操作),您将希望能够很好地使用shell,并且能够很好地使用您选择的编辑器(您可以自由选择,但如果不是emacs,您将处于不利地位……)


但实际上没有必要先“研究”shell。只要知道shell提供了强大的工具。然后,每次你发现自己在想“一定有更好的方法!”,去学习更好的方法。

我现在从事系统编程,教授正在给我们做一个关于Unix的调查,包括系统调用和编写现有核心实用程序的更简单版本

我发现其中一个非常有用的信息来源是阅读实用程序手册和一个快速参考资料。这本教科书是,我绝对建议你去读


除了使用输入重定向、grep和管道之外,我们根本没有使用shell脚本,所以我不知道在这一点上这对您有多有用。

您所说的“标准”是什么意思C和C++?是的,我现在正在学习Python。你有什么建议吗?好书,有趣的书。但是它有点过时了。我父亲几年前有理由学习UNIX编程,他是个有条理的人,他从图书馆查了一下,然后向我求助。我说如果引起的混乱程度与它的一样多。尽管如此,这本书还是不错的。