非典型性C语言教程-0.1 shell,命令行

本文从神话时代的穿孔纸带到现代的操作系统命令行界面,详细介绍了命令行的发展历程及其工作原理。对比了GUI与命令行的不同之处,并分别以Windows的CMD和Unix的Shell为例,解释了如何通过命令行进行程序操作。
摘要由CSDN通过智能技术生成
神话时代,要命令机器做事情只能用穿孔纸带。后来有了分时系统,于是就有了 shell,也就是俗称的命令行。在图形化界面诞生之前,所有的操作系统都只有命令行界面。 现在的 OS也大多都有命令行,好像唯一没有的就是苹果的 MacOS

与现在GUI(图形用户接口)中,是以数据文件为中心。比如你双击一个.txt文件,会自动为你打开文本编辑器,并用文本编辑器打开这个.txt文件。但 是在命令行中,以程序为中心。要打开一个文本文件,必须先运行文本编辑器,再用文本编辑器打开这个文本文件。下面先讲解MScmd再说Unixshell


MS-DOS的时代,系统引导之后就会启动command.exe程序,再由command.exe去启动别的程序。现在你可以通过附件,命令提示符来启动cmd窗口。


这时你可以在提示符后面敲命令了。比如你敲一个cl -o hello hello,.c。这时cmd程序会分析这行命令,首先找cl。有些命令由cmd程序本身提供称之为内部命令,比如cd改变目录,dir列当前目录。显然C语言编译器cl不是cmd的内部命令。然后cmd就会在当前目录下找这个cl.exe,显然也没有。之后cmd就开始找PATH环境变量了。等等!你说什么是环境变量?环境变量就是系统运行时对每个程序都有效的一组变量,对于windows系统,我的电脑->属性->高级->环境变量就会出现:

这有两类,上面是当前用户的环境变量,下面是全局的环境变量。可以看到由一个叫PATH的环境变量。这个环境变量是一组目录名。

前面说到cmd,在当前目录也找不到cl.exe之后,就会找PATH环境变量,从PATH指示的目录一个一个的找。直到找到一个下有一个叫cl.exe的可执行文件为止。要是一个也找不到就会报告错误。找到之后,就会执行cl,并把后面的-o hello hello.c传递给cl,这个就是命令行参数。也就是main的参数。还有一点要注意的编译器是找hello.c文件可不会去找PATH变量,最好把hello.c放在当前目录下。

Unix系统下每一个用户一旦登陆,就会为用户启动一个shell程序。这时会出现一个提示符。这个提示符可能不同,$, #等等。执行gcc -o hello hello.c, 执行过程和windows的类似。有一点不同,就是Unixshell不会在当前目录下找gcc。就是说Unixshell不会在当前目录下找可执行文件。要是当前目录下有一个叫gcc的可执行程序,你必须敲./gcc,其中.表示当前目录。

顺便说下一个通用的相对路径, “.”表示当前目录,”..”表示上级目录。比如D:/xx/yy/zz/下有一个hello.c, 当前目录在D:/xx/yy/tt,那么命令就要变成cl -o hello ../zz/hello.c

好了到这里,是不是知道对如何编译一个C程序了。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值