Linux:快速写出可执行程序

简介: Linux:快速写出可执行程序

博客大纲

Linux:快速写出可执行程序


确保Linux中有nano编辑器

nano指令就是打开一个编辑器,可以对指定的文件进行编辑。

有了nano编辑器,用户就可以向文件写入代码。当然,写入的也不一定是代码。

首先检查一下你的操作系统中是否有nano编辑器:使用which nano指令。

如果结果是:/usr/bin/nano,说明你的Linux中已经有nano编辑器了。

如果结果是:/usr/bin/which: no nano in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin),就说明你的Linux中没有安装,此时就要进行安装操作:yum install -y nano

当出现以下界面,就说明安装成功了:

[root@iZf8zdrs09p97o9xxgii5hZ csdn2]# yum install -y nano
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package nano.x86_64 0:2.3.1-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================================================
 Package                  Arch                       Version                             Repository                Size
========================================================================================================================
Installing:
 nano                     x86_64                     2.3.1-10.el7                        base                     440 k
Transaction Summary
========================================================================================================================
Install  1 Package
Total download size: 440 k
Installed size: 1.6 M
Downloading packages:
nano-2.3.1-10.el7.x86_64.rpm                                                                     | 440 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : nano-2.3.1-10.el7.x86_64                                                                             1/1 
  Verifying  : nano-2.3.1-10.el7.x86_64                                                                             1/1 
Installed:
  nano.x86_64 0:2.3.1-10.el7                                                                                            
Complete!

打开文件

既然我们要写代码,自然要创建一个文件来存代码。

此处有两种方式:

第一种是使用touch创建一个文件,然后用nano打开。

这种方式会在编辑器中拷贝原文件的内容,随后用户在原内容上增删即可。要注意这里只是拷贝了目标文件的内容到编辑器中,不一定就是修改了目标文件,这取决于最后的命名。

退出nano编辑器后,Linux系统会要求用户命名,如果最后命名的名字与现有的文件同名,则会覆盖原有文件,否则就创建一个文件。

在这种规则下,如果我们用nano打开一个有内容的文件,在nano编辑器退出时给它命名了其它的名字,此时不会对原本的文件修改,而是重新创建一个文件。这也就是为什么刚才我说”拷贝了目标文件的内容到编辑器中“,因为其有可能并不对目标文件的内容修改。

另一种是直接用nano不接任何文件名,那么此时相当于没有拷贝任何文件的内容,用户就需要从0开始编辑。这种方式打开nano编辑器,如果最后命名时和现有文件重名,也会覆盖现有文件。

当我们使用nano编辑器后,会得到如下界面:

此处我们只需要注意^x选项,其中^表示ctrl键。也就是同时按住ctrl与x,就会退出nano编辑器。

当然,在退出之前,我们要先写入一些代码,我们尝试写一个简单的c语言程序,来输出"Hello Linux"。

直接按照C语言语法书写即可:

然后按住ctrl与x,退出编辑器,它会询问用户是否保存。输入Y就是保存,N就是不保存,我们在此输入Y:

随后操作系统又会让用户为这个文件命名,此处我将其命名为test.c

最后按回车,就能退出nano编辑器了。

我们再用ls,会发现当前目录多出了一个test.c文件。

[root@iZf8zdrs09p97o9xxgii5hZ csdn2]# ls
123.txt  test.c

编译目标文件

当前我们写出来的文件,还只是一个普通的文本文件,他还不能作为程序跑起来,此时我们就需要一个编译器来编译它。

在此我们需要使用gcc编译器,一样的先用which查操作系统中是否有gcc编译器。

如果没有,输入yum install -y gcc即可,当出现以下界面,就说明安装成功了:

[root@iZf8zdrs09p97o9xxgii5hZ csdn2]# yum install -y gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package gcc.x86_64 0:4.8.5-44.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================================================
 Package                  Arch                        Version                           Repository                 Size
========================================================================================================================
Installing:
 gcc                      x86_64                      4.8.5-44.el7                      base                       16 M
Transaction Summary
========================================================================================================================
Install  1 Package
Total download size: 16 M
Installed size: 37 M
Downloading packages:
gcc-4.8.5-44.el7.x86_64.rpm                                                                      |  16 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : gcc-4.8.5-44.el7.x86_64                                                                              1/1 
  Verifying  : gcc-4.8.5-44.el7.x86_64                                                                              1/1 
Installed:
  gcc.x86_64 0:4.8.5-44.el7                                                                                             
Complete!

当我们成功安装gcc编译器后,就可以编译目标文件了。

在此我们只需要gcc test.c,就能完成编译,但是执行此指令,系统并不会有所反馈,如果你的Linux输出了下面的句子:

[root@iZf8zdrs09p97o9xxgii5hZ csdn2]# gcc test.c
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status

说明你的代码出现了问题,建议回去检查一下是不是你文件里的代码是不是把main写成了mian,或者少了#include <stdio.h>头文件这样的操作。

如果你的使用gcc后没有出现任何反馈,说明编译成功了,此时使用ls查看当前目录,就会发现出现了一个以.out结尾的文件,这就是一个可执行的程序了。

[root@iZf8zdrs09p97o9xxgii5hZ csdn2]# ls
123.txt  a.out  test.c

我这里的a.out就是我得到的可执行程序,随后直接使用它就可以了:./a.out要注意,一定要在文件名前加上./否则找不到当前目录,可以参考博客:[Linux:家目录,根目录,隐藏文件,路径]中的隐藏文件部分。

我们输入./a.out后,程序就执行了,屏幕上就会输出:Hello Linux:

[root@iZf8zdrs09p97o9xxgii5hZ csdn2]# ./a.out
Hello Linux

博客制作不易,还请留下一个免费的赞!

有问题欢迎指出,博主非常喜欢讨论问题!

相关文章
|
4月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
239 6
|
5月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
739 2
|
5月前
|
Linux Python
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
79 2
|
3月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
88 1
|
4月前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
54 5
|
5月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
173 3
|
5月前
|
网络协议 Linux Shell
在Linux中,如何通过一个端口找到程序?
在Linux中,如何通过一个端口找到程序?
|
5月前
|
Linux API
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
在Linux中,程序产生了库日志虽然删除了,但磁盘空间未更新是什么原因?
|
5月前
|
Linux Windows Python
最新 Windows\Linux 后台运行程序注解
本文介绍了在Windows和Linux系统后台运行程序的方法,包括Linux系统中使用nohup命令和ps命令查看进程,以及Windows系统中通过编写bat文件和使用PowerShell启动隐藏窗口的程序,确保即使退出命令行界面程序也继续在后台运行。
|
6月前
|
Java Linux Shell
Linux后台运行jar程序
【7月更文挑战第23天】
115 1