【快速入门】创建你的第一个linux程序(详细教程)

  介于有些同学想学习linux,但是又不知道如何着手,希望笔者能这篇博客给大家简单的参考,运行环境为centos+xshell。

一.快速入门

1.打开Linux命令行,输入以下命令,创建出名叫helloworld.c的文件

vim helloworld.c

2.在英文模式下,按i进入插入模式,然后开始正常编辑代码,如下

#include<stdio.h>
int main(){
  printf("helloworld");
  return 0;
}

3.代码编辑完毕后,按esc回到普通模式,底部命令行输入

:wq         //保存文件并退出

4.接着命令行窗口输入

gcc helloworld -o helloworld.c -g  
//前边是将要生成可执行文件名,可以随便起,后边是源文件名

5.然后命令行输入ls,你会发现多了一个可执行文件(helloworld),输入

./helloworld   //执行文件

至此代码就算编译运行完成了。

接下来我会详解以上内容中的所有知识点,让大家可以系统的了解,举一反三。

二.进阶篇

 以上内容主要涉及三个方面,Linux常见命令、vim下三种模式、编译运行具体操作。

1.Linux常见命令

(1)ls指令

        语法:ls [参数] [文件名]           //命令行输入时此处是不用输入“[]"的

        功能:查看文件或者文件夹信息。一般Linux文件并不像windows一样都是显式的,所以我们想要查看文件信息就需要使用ls命令。

         ls命令带不同参数可以查看文件不同的信息,当我们可以不加具体参数只输入ls时,查看到到是当前文件夹下的所有文件名称。以下为ls常用参数列表。

-l 列出文件的详细信息。
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归) 
-1 一行只输出一个文件。

  eg:在上边快速入门例子中,可以使用ls查看文件的信息。

ls -l helloworld.c   //查看文件详细信息

-rw-rw-r-- 1 long long 61 Mar 17 14:42 helloworld.c //输出长这样子

(2)pwd指令

        语法:pwd

        功能:显示当前路径。有时候我们打开文件夹层数过多,就会“迷路”,这个时候我们就可以通过这个指令查看路径,配合cd指令进行跳转目录。

eg:在上边快速入门例子中,可以使用cd查看路径信息。

pwd
/home/long/test/homework   //我的文件夹路径是这样滴

(2)cd指令

        语法:cd [目录名]    这个目录名可以给绝对路径和相对路径

        功能:切换到指定目录

cd ..   返回上级目录
cd ~    进入用户家目录 
cd -    返回最近访问目录

eg:在上边快速入门例子中,我们并未创建文件夹,当我创建文件夹之后,可以使用cd切换目录,然后把源文件放到想要的文件夹中。

(3)mkdir指令

        语法:mkdir [参数] testname

        功能:在当前目录下创建一个名为 “testname”的目录

  常用参数:

mkdir –p test/test1      //递归建立多个目录

eg:在上边快速入门例子中,我们可以使用mkdir指令来创建文件夹

mkdir test       //创建一个普通文件夹时,可以省略参数,此处创建了一个test文件夹

(4)touch指令

        语法:touch [参数]  testname

        功能:Linux中文件或者目录信息中都是存着修改时间的,touch命令参数可以修改这个时间,或者创建一个新文件。

  常用参数:

-m  只更改变动时间。
-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t  使用指定的日期时间,而非现在的时间。

(5)rm指令

        语法:rm [参数] [文件名]

        功能:删除文件或者文件夹

常用参数:

-f  即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件

eg:在上边快速入门例子中,我们可以使用rm指令来删除文件夹

rm -r test           //我的test文件夹下嵌套了文件夹,所以使用递归删除

(6)mv指令

        语法:rm [参数] [源文件或目录] [目标文件或目录]

        功能:移动文件或者文件改名。看最后一个参数,若是文件名则此功能为重命名,若是目录,则移动文件。

常用参数:

-f   force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i   若目标文件已经存在时,就会询问是否覆盖

(7)tar指令

        语法:tar [参数]  [目标文件名]  [源文件]

        功能:压缩/解压

常用参数:

-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令
-t :查看 tarfile 里面的文件
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩
-v :压缩的过程中显示文件
-C : 解压到指定目录

eg:在上边快速入门例子中,我们可以使用tar来压缩文件

tar -zcvf hm.tar.gz helloworld.c    //这里我们将helloworld.c压缩为hm.tar.gz

       Linux常见指令还有很多,笔者列出了几个就初学者来说必须掌握的命令,若还有需求,笔者会继续更新相关命令。

2.vim三种基础模式

      Linux和windows的代码编辑器是不同的,windows是像word一样直接输入,而Linux是可以理解成将编辑模式,浏览模式分开,每种模式都有自己的功能。以下是三种基本的模式。

正常/普通/命令模式(Normal mode)

    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

插入模式(Insert mode)

       只有在Insert mode下,才可以做文字输入,按「ESC」键可回到正常模式。该模式是我们后面用的最频繁的编辑模式。

末行模式(last line mode)

      文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。

 3.编译器的基本操作

        此时我们代码已经写好了,接下来就需要开始编译运行程序了。这里我们需要知道Windows中的一键调试运行其实是将预处理、编译、汇编、链接整合到一块的。Linux中可以选择分步来做,也可选择一步生成,具体根据需求选择。此处以C程序举例,其他语言也是相似的。

预处理阶段

       作用:宏替换,头文件展开,删除注释,条件编译

gcc -E [源文件名] -o  [将要生成的文件名]         //此处让编译器执行完预处理结束

编译阶段

        作用:将文件生成汇编代码

gcc -S [源文件名称] -o [目标文件名称]       //此处是从第一步开始执行,直到编译阶段结束

汇编阶段

        作用:将汇编代码转换为二进制代码

gcc -c [源文件名称] -o [目标文件名称]       //此处是从第一步开始执行,直到汇编结束

链接阶段

       作用:将若干个二进制代码或者库文件链接起来生成可执行程序

gcc [源文件名称] -o [目标文件名称]       //此处是从第一步开始执行,直到链接结束

没有特殊需求情况下,我们想运行代码可直接使用最后一步的命令,此时就生成了可执行程序。

./[可执行程序名]                         //此处为运行程序

       

      以上就是Linux初入时的一些基本操作,为了让大家少踩坑,笔者就不再更深入的讲解了,如需了解更深的内容,可以根据笔者划分的模块去搜索学习,若对文章内容有疑问,可在评论区留言。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一颗二叉树_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值