编辑器vim与编译器gcc

本文详细介绍了Linux环境下常用的编辑器vim、编译器gcc及makefile的编写方法,并深入解析了Linux通配符、grep命令的使用技巧,以及vim编辑器的各种模式与快捷命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习内容:编辑器vim,编译器gcc,makefile的编写方式。

得益于班级群里同学的分享,我完整地了解了Linux的几个通配符“*”,“?”,“[]”,“^”,“{}” 的用法,纠正了自己昨天做的一个题目的答案,这个题目是这样的,“删除所有符合d开头、t结尾、且中间包含一个字母的文件。”,我写的答案是“find / -name “d[a-z]t” -delete”,实际上应该是“find / -name “d[a-zA-Z]t” -delete”。

在和我和同学讨论中,我知道了命令grep的正确用法,例如在搜索哪些文件包含某个字符串的时候,应该在grep后加个选项-R表示递归,即在遇到目录时进入再返回。而选项-a

编辑器vim有三种模式,插入,命令,底行模式。

命令模式下

<x> 删除一个字符  <3x>删除3个字符

<dd>删除一行  <3dd>删除3行

<p>在光标下一行粘贴 

<yy>复制一行  <3yy>复制3行

<u>撤销

</>查找     </fg>查找fg(fg会高亮,在底行模式下输入noh取消高亮) <n>查找下一个 <N>查找上一个

<ZZ>保存并退出

底行模式下

:w 保存 :q 退出 :wq 保存并退出

:q!放弃修改强制退出  :e! 放弃修改并重载当前文件

:3 光标调到第3行   (在终端中编辑文件时输入vim x.xx +3有同样效果)

:%s 替换   %s/char/int/g 把所有的插入替换为int

:sp xx.xx 在vim里打开其他文件xx.xx    ctrl+w 切换当前的操作文件

vim的配置

vim的系统配置文件在/etc/vimrc,常用配置如下,

set auroindent 自动缩进

set shift width=4 自动缩进的宽度

set tabstop=4 tab的宽度

set number 或 set nu 设置行号   set nonu 取消行号

syntax on 语法高亮

编译器gcc

gcc的基本格式为

gcc [option] [filename] 

编译共有4个步骤  1.预处理,2.编译,3.汇编,4.链接。
1.预处理:处理所有以#开头的代码,包括

#include 头文件展开(复制替换)

#if 0   条件编译,注释(这一部分代码不编译)

#define 宏替换
命令 gcc -E hello.c -o hello.i  (hello.i是一个文本文件)

2.编译:语法检查、把C代码翻译成汇编代码

命令 gcc -S hello.i -o hello.s  (hello.s是一个文本文件)

3.汇编:把汇编语言编译成二进制文件。

命令 gcc -c hello.s -o hello.o  (hello.o是一个二进制文件)

4.链接:链接程序需要用的库文件。

命令 gcc hello.o -o hello  (hello是一个可执行文件)

前三个阶段都只能操作一个文件,第四个阶段能操作多个文件

在编译多个.c文件时可以这样 gcc hello.c print.c -o hello

 

在使用make时 优先搜索Makefile而后搜索makefile 

Makefile的基本格式

        Target:dependency

         (tab)command

初级版:

hello:hello.c

    gcc hello.c -o hello

定义变量表示

Target=hello

Object=hello.c

$(Target):$(Object)

    gcc $(Object) -o $(Target)

隐含规则实例
Target =hello

Object =hello.o print.o

$(Target):$(Object)

    gcc $(Object) -o $(Target)

(隐)hello.o:hello.c

          gcc -c hello.c -o hello.o

          print.o:print.c

          gcc -c print.c -o print.o


.PHONY:clean//将clean设置成一个伪目标,避免目录下有文件clean导致报错。

clean:

    rm *.o hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值