首页 > 系统相关 >Linux学习笔记(03)——C编程入门

Linux学习笔记(03)——C编程入门

时间:2024-07-11 11:43:29浏览次数:13  
标签:03 gcc 编程 模式 objects Linux main hello 光标

vim编辑器

需要先安装:sudo apt-get install vim

使用vim xxx.txt :打开文件

一般模式(指令模式):默认模式

编辑模式:一般按下“a”进入编辑,按下ESC键可退出编辑模式

命令行模式(底行模式):先进入一般模式,后输入 : / ?任意一个进入

保存退出:进入底行模式,下面会出现 :可在 :后输入 x 保存文档并退出; q 退出;w 保存文档;q!退出不保存

一般模式下:

1、dd,删除光标所在行,ndd,删除光标所在行及其下n行。

2、u,撤销,恢复上一步。

3、. 重复前一个操作。

4、yy,复制光标所在行

5,nyy,复制光标所在向下n行,比如10yy就是复制光标下10行。

6,p和P,p为复制到光标下一行,P复制到光标上一行。

注:vim中按下ctrl+s为禁止输入;使用ctrl+q进行解除

C编程

gcc hello.c -o hello 编译文件,后生成hello文件 ./hello执行hello文件

gcc main.c 直接编译默认生成a.out文件 .o文件为二进制代码文件也是可链接文件

-o 可以指定输出文件名

Makefile基本语法

使用 vi Makefile 打开

clean:
	rm *.o
	rm main

输入make clean则会执行 rm *.o rm main 命令

最终目标写在最开始处,Makefile里的变量都是字符串

使用变量 objects = main.o input.o calcu.o

main: $(objects)

gcc -o main $(objects) 赋值为一长串东西

赋值符“ = ”

name = user
curname = $(name)
name = abcd
print:
	@echo curname: $(curname)

echo是在终端中打印字符串,加上@表示不打印执行过程,输入 make print 执行打印命令,输出为curname:abcd

“ = ”赋值取决于最后一次的结果

“ := ”只使用前面定义好的变量

“ a ?= b ”如果a前面没有被赋值,那么就a=b;如果已经被赋值了,那就使用前面赋的值。

“ += ”追加一些东西,如 objects = main.o input.o

objects += calcu.o

模式规则、自动化变量
main.o:main.c
	gcc -c main.c
#改写为:
%.o:%.c
	gcc -c $<

标签:03,gcc,编程,模式,objects,Linux,main,hello,光标
From: https://www.cnblogs.com/xishiyuyuan/p/18295771

相关文章

  • 在linux服务器上搭建slurm集群部署
    在Linux服务器上搭建Slurm集群部署是一个涉及多个步骤和组件配置的过程。Slurm是一个面向Linux和Unix的开源作业调度程序,广泛用于高性能计算环境。一、环境准备选择服务器和硬件设备:选择合适的服务器和硬件设备,建议选用多核心、大内存、高速硬盘的服务器以满足高性能计算的需求......
  • Linux学习笔记(02)——文件相关知识
    文件系统结构/bin存放二进制可执行文件,这些命令在单用户模式下也能够使用。可以被root和一般的账号使用。/bootUbuntu内核和启动文件,比如vmlinuz-xxx。gurb引导装载程序。/dev设备驱动文件/etc存放一些系统配置文件,比如用户账号和密码文件,各种服务的起始地址。/h......
  • Linux捣鼓记录:debian12自动登录
    配置debian12自动登录,效果是开机后自动进桌面,还需要输入密码。一、Gnome桌面使用的是gdm3显示管理器,需要配置它的守护进程来实现自动登录:1,确认显示管理器systemctlstatusgdm看到gdm在运行即为此管理器。2,修改daemon.configvim/etc/gdm3/daemon.conf在[daemon]下面新增......
  • Linux捣鼓记录:关于debian环境变量的配置
    在Debian及其衍生的Linux发行版中,/etc/environment、/etc/profile与~/.bashrc这三个文件各自有不同的用途和作用范围,它们分别影响环境变量的设置方式和适用的shell环境。下面是这三者的区别:/etc/environment作用范围:全局,对所有用户有效,无论用户是否登录或者使用的shell类......
  • 一文通透——Kali Linux基础入门_kali linux 新手教程
    ......
  • Linux 中awk命令实现将多个连续的字符替换为指定的一个字符
     001、[root@PC1test]#lsa.txt[root@PC1test]#cata.txt##测试数据aabbbbbbccbbwwxxyyzzddjjkkmmss[root@PC1test]#awk'{sub("b+","Q");print$0}'a.txt##将多个连续的b替换为QaaQcc......
  • 03-用户研究&需求采集
    用户研究和需求采集在产品设计中是相辅相成的。用户研究为需求采集提供了方向和背景,使得需求采集更加有针对性和有效性。而需求采集则是用户研究的具体实践,通过实际采集到的需求信息来验证和修正用户研究的结论。两者共同构成了产品设计中不可或缺的一部分,为产品的成功提供了有......
  • LeetCode --- 2103. Rings and Rods 解题报告
    Question:Thereare n ringsandeachringiseitherred,green,orblue.Theringsaredistributed acrosstenrods labeledfrom 0 to 9.Youaregivenastring rings oflength 2n thatdescribesthe n ringsthatareplacedontotherods.Everyt......
  • 踏上编程之路:成为程序员后我领悟到的那些事
    自从我踏入编程这个神秘而充满挑战的领域以来,每一天都像是打开了一个新的知识宝库。编程不仅是一项技能,更是一种思维方式和生活态度的体现。在这篇文章中,我想分享一些成为程序员后我深深领悟到的那些事情。1.解决问题的新视角成为程序员后,我逐渐学会了从全新的角度去看待......
  • shell编程基础
    shell脚本编程基础【1】、shell概述shell是一门编程语言,如:C、C++、java、PHP、pythonGo等语言分类编程型语言:C、C++、Go等为编译型语言。程序运行需要提前编译,编译语言都有编译器解释型语言:shell、PHP、python等为解释型语言,程序在运行时不需要提前编译,一边执行,一边......