非典型性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

相关文章

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型