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

2024-02-08 05:18

本文主要是介绍非典型性C语言教程-0.1 shell,命令行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

神话时代,要命令机器做事情只能用穿孔纸带。后来有了分时系统,于是就有了 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程序了。

 

这篇关于非典型性C语言教程-0.1 shell,命令行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/689999

相关文章

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换