我是编程/开发的新手,在安装开发工具时遇到问题。安装某些东西时我最大的问题之一是理解 shell 或终端(它们是同一个东西吗?)以及它与安装工具的关系,如 uncrustify for例子。我需要阅读什么来理解 shell/终端和 $PATH?
2 回答
(我认为到目前为止你在 PATH 上得到了很好的建议)
对 shell 最通用的描述是,它是一个促进与程序交互的程序。程序促进与操作系统的“通信”以通过硬件执行工作。
通常有两种模式可以与shell交互。
一个命令行处理器,您可以在其中输入命令,一个字母一个字母,一个字一个字,直到您按下回车键。然后,shell 将读取您输入的内容,验证它是否理解您所要求的一般形式,然后开始运行您输入的内容中指定的 1 个(或更多)程序。
批处理脚本处理器。在这种情况下,您已将要执行的所有命令组装到一个文件中,然后通过几种机制中的一种,您安排运行批处理脚本,以便它依次运行您指定的命令,计算机执行您的为你工作。你做过Windows .Bat 文件吗?相同的想法,但更强大。
因此,终端寡妇是负责 a 的程序。获取输入和 b.,打印输出。当您谈到作为 Unix 系统基础的 c 编程时,您所谈论的是操作系统设计的一个特性,即标准输入和标准输出。普通的 unix 命令期望从 StdIn 读取指令并将输出打印到 StdOut。
当然,所有好的程序都可以从文件中获取输入并将输出写入文件,并且大多数程序将接管 StdIn/Out 并处理文件,而不是从键盘读取输入和/或写入屏幕。
要返回 shell,此程序可让您在终端窗口打开时键入。您可能会遇到许多版本的 shell,并且具有不同级别的支持 a. 交互模式,b。批处理脚本模式。
总而言之,这里是终端和外壳所涉及的(非常基本的)图表
(run a) terminal-window (program)
shell-command-prompt (program) (automatically started as subprogram)
1. enter commands one at a time, with input from
a. typed at keyboard (std-in)
b. infile
and output to
a. screen (std-out)
b. outFile
program
calls OS level functions for
a. computation
b. I/O
OR 2.
(run the shell program without a terminal, usually from the cron sub-system)
shell-batch-processor
shell program reads batch-script file, 1 'statement' at a time
validate statements
run program, relying on script or cfg to provide inFile data and
indicate where to put outfile data.
我希望这有帮助。