Linux第三课 Makefile GDB Shell

本文介绍Makefile的基本结构及使用方法,包括具体规则、隐含规则、变量定义等,并探讨Shell脚本的基础概念与编写技巧。

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

Makefile: 工程管理器 优化编译效率 核心:一系列规则
Makefile是特殊的shell
一个Makefile包含五个方面的内容:
1具体规则
2隐含规则:make能按照文件名的后缀,决定所采用的规则
3定义变量
4指令
5注释
先打开Makefile : vim Makefile
内部指令
target: dependency
(Tab字符)command
目标:依赖(可多个)
Tab 命令
例如:
hello : hello.o add.o
gcc –o hello hello.o add.o (多文件系统)
上下相同
obj = hello.o add.o
CC = gcc
hello : (obj)(CC) -o hello $(obj)
总结:
1、 依赖为 .o 文件
2、 伪目标:
. PHONY : clean
clean: 无需依赖
rm –f *.o

 . PHONY : add
    add:  hello.o  add.o
        gcc –o  add  hello.o  add.o

3、 隐含规则
gcc –o hello hello.o add.o 会自动生成.o 文件
4、注释为 # , 变量 用 ${ obj} 代替
GDB 调试工具
gcc -g –o hello hello.c add.c
命令 : gdb hello

Shell

环境变量 常用工具的安装路径

PATH——决定了shell将到哪些目录中寻找命令或程序
HOME——当前用户主目录
HISTSIZE——历史记录数
LOGNAME——当前用户的登录名
HOSTNAME——指主机的名称
SHELL——当前用户Shell类型
使用示例:
echo PATH                   # 查看PATH环境变量  
export PATH=“/usr/local/bin”:
PATH # 设置PATH环境变量
echo $SHELL 查自己的shell类型
通配符
? 用于匹配一个字符
* 用于匹配任意长度的字符串。
使用举例:
echo * 显示当前目录下所有文件的名称
rm test? 删除当前目录下所有名称为test加一个字符的文件

Shell 脚本 解释语言(高级) 需解释器 如 bash
相对的 C语言 为 编译语言
1、可以事先写在一个文件中,使用时Shell读取文件中的命令逐条解释,这种文件被称为脚本.
2、 #!/bin/sh
Shell将符号#后面的部分认为是注释,但这一行是有实际作用的。感叹号!后面的部分指明了要使用sh作为执行脚本的解释器。
脚本中的每一行是一条命令,多条命令也可以写在同一行,用分号;隔开

例如:

!/bin/bash

ls –l
echo PATHechoHOME

打印花括号 { }
在终端上改变属性: chmod +x shell.sh
直接执行 shell.sh: ./shell.sh
未改变属性: /bin/bash shell
/bin/sh
改变IP ifconfig eth0 192.168.1.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值