Linux编译命令大全,让你轻松掌握! (linux编译命令大全)

Linux编译是Linux系统中非常重要的一个领域,它可以帮助我们将C代码或其他语言的源文件转换成可执行文件或库文件,进而实现软件的安装和使用。为了让各位更好地学习和掌握Linux编译命令,本文将介绍Linux编译命令大全,帮助你轻松掌握它们的用法。

一、编译步骤

在介绍具体的编译命令之前,我们先来了解一下编译的基本步骤,以便更好地理解和掌握具体的编译命令。

1.预处理

预处理的作用是将C代码或其他语言的源文件中的预处理指令(如#include和#define等)替换成实际的代码。

2.编译

编译的作用是将预处理过的代码转换成汇编代码。

3.汇编

汇编的作用是将汇编代码转换成机器语言目标代码。

4.链接

链接的作用是将目标代码与相应的库文件链接成最终的可执行文件或库文件。

二、具体命令

1.预处理命令

预处理命令的格式为:

gcc -E source.c -o destination.i

其中,source.c为源文件的名称,destination.i为预处理后的文件的名称。

2.编译命令

编译命令的格式为:

gcc -S source.c -o destination.s

其中,source.c为源文件的名称,destination.s为生成的汇编代码文件的名称。

3.汇编命令

汇编命令的格式为:

gcc -c source.s -o destination.o

其中,source.s为生成的汇编代码文件的名称,destination.o为生成的目标代码文件的名称。

4.链接命令

链接命令的格式为:

gcc source.o library.a -o destination

其中,source.o为目标代码文件的名称,library.a为库文件的名称,destination为最终生成的可执行文件或库文件的名称。

三、其他命令

1.make命令

make命令是一个非常重要的Linux编译命令,它可以根据Makefile文件中的规则,自动执行编译、链接等操作,大大提高了编译的效率和准确性。

2.automake命令

automake命令可以帮助我们生成Makefile文件,使得我们可以更方便地进行编译。要使用automake命令,我们需要先准备好configure、Makefile.am和src目录等文件和目录。

3.autotools命令

autotools命令是一个集成了autoconf、automake和libtool等工具的命令,它可以帮助我们更方便地进行编译和安装。

四、

Linux编译命令可以帮助我们将C代码或其他语言的源文件转换成可执行文件或库文件,使得我们可以更方便地进行软件的安装和使用。本文介绍了Linux编译命令的基本步骤和具体命令,希望能够帮助各位更好地学习和掌握它们的用法,提高开发效率。

相关问题拓展阅读:

linux下文件后缀是.m的编译命令

windows操作系统根据文件的扩展名来区分文件类型,而Linux系统不是,Linux通过查看文件内的头部信息来确定文件的类型,而与文件的名字无关。使用gcc 编译test时出现错误,不是操作系统的原因,代码文件命名为text与text.c,对于操作系统来说,它们都是text文件,没有什么区别,但对于编译程序gcc来说就不同了,gcc编译器程序是根据文件的扩展名来判断文件类型的,所以使用gcc test -o test.out命令出现的错误不是操作系统的原因,而是gcc的原因,gcc程序的输入文件一般扩展名为.c .cpp .o .a .S .s等,具体见gcc帮助文档。

你好,

linux下文件后缀是.m的编译命令为:

在Linux系统中.m为后缀的文件,是Objective-C源代码文件。

——如有帮助,请采纳一下。

Linux 命令 grep (文档编辑)-想玩转linux就请一直看下去

Linux 命令大全

Linux grep 命令用于查找文件里符合条件的字符串。

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为

,则 grep 指令会从标准输入设备读取数据。

参数

Linux 命令大全

1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:

结果如下所示:

2、以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串”update”的文件,并打印出该字符串所在行的内容,使用的命令为:

输出结果如下:

3、反向查找。前面各个例子是查找并打印出符合条件的行,通过”-v”参数可以打印出不符合条件行的内容。

查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:

结果如下所示:

Linux命令行大全的目录

《linux命令行大全》

之一部分 学习shell

第1章 shell是什么 3

1.1 终端仿真器 3

1.2 之一次键盘输入 4

1.2.1 命令历史记录 4

1.2.2 光标移动 4

1.3 几个简单的命令 5

1.4 结束终端会话 6

第2章 导航 7

2.1 理解文件系统树 7

2.2 当前工作目录 8

2.3 列出目录内容 9

2.4 更改当前工作目录 9

2.4.1 绝对路径名 9

2.4.2 相对路径名 9

2.4.3 一些有用的快捷方式 10

第3章 linux系统 13

3.1 ls命令的乐趣 13

3.1.1 选项和参数 14

.3.1.2 进一步了解长列表格式 15

3.2 使用file命令确定文件类型 16

3.3 使用less命令查看文件内容 16

3.4 快速浏览 18

3.5 符号链接 20

第4章袭亮汪 操作文件与目录 23

4.1 通配符 24

4.2 mkdir——创建目录 26

4.3 cp——复制文件和目录 26

4.4 mv——移除和重命名文件 27

4.5 rm——删除文件和目录 28

4.6 ln——创建链接 29

4.6.1 硬链接 29

4.6.2 符号链接 30

4.7 实战演练 30

4.7.1 创建目录 30

4.7.2 复制文件 31

4.7.3 移动和重命名文件 31

4.7.4 创建硬链接 32

4.7.5 创建拍仔符号链接 33

4.7.6 移除文件和目录 34

4.8 本章结尾语 35

第5章 命令的使用 37

5.1 究竟什么是命令 38

5.2 识别命令 38

5.2.1 type——显示命令的类型 38

5.2.2 which——显示可执行程序的位置 39

5.3 获得命令文档 39

5.3.1 help——获得shell内置命令的帮助文档 39

5.3.2 help——显示命令的使用信息 40

5.3.3 man——显示程序的手册页 40

5.3.4 apropos——显示合适的命令 41

5.3.5 whatis——显示命令的简要描述 42

5.3.6 info——显示程序的info条目 42

5.3.7 readme和其他程序文档文件 43

5.4 使用别名创建自己的命令 43

5.5 温故以求新 45

第6章 重定向 47

6.1 标准输入、标准输出和标准错误 48

6.1.1 标准输出重定向 48

6.1.2 标准错误重定向 50

6.1.3 将标准输出和标准错误重定向到同一个文件 50

6.1.4 处理不想要的输出 51

6.1.5 标准输入重定向 51

6.2 管道 53

6.2.1 过滤器 53

6.2.2 uniq——报告或忽键没略文件中重复的行 54

6.2.3 wc——打印行数、字数和字节数 54

6.2.4 grep——打印匹配行 54

6.2.5 head/tail——输出文件的开头部分/结尾部分 55

6.2.6 tee——从stdin读取数据,并同时输出到stdout和文件 56

6.3 本章结尾语 57

第7章 透过shell看世界 59

7.1 扩展 59

7.1.1 路径名扩展 60

7.1.2 波浪线扩展 61

7.1.3 算术扩展 61

7.1.4 花括号扩展 62

7.1.5 参数扩展 63

7.1.6 命令替换 64

7.2 引用 65

7.2.1 双引号 65

7.2.2 单引号 67

7.2.3 转义字符 67

7.3 本章结尾语 68

第8章 高级键盘技巧 69

8.1 编辑命令行 69

8.1.1 光标移动 70

8.1.2 修改文本 70

8.1.3 剪切和粘贴(killing and yanking)文本 71

8.2 自动补齐功能 71

8.3 使用历史命令 73

8.3.1 搜索历史命令 73

8.3.2 历史记录扩展 75

8.4 本章结尾语 76

第9章 权限 77

9.1 所有者、组成员和其他所有用户 78

9.2 读取、写入和执行 79

9.2.1 chmod——更改文件模式 81

9.2.2 采用gui设置文件模式 84

9.2.3 umask——设置默认权限 85

9.3 更改身份 87

9.3.1 su——以其他用户和组id的身份来运行shell 88

9.3.2 sudo——以另一个用户的身份执行命令 89

9.3.3 chown——更改文件所有者和所属群组 90

9.3.4 chgrp——更改文件所属群组 91

9.4 权限的使用 91

9.5 更改用户密码 93

第10章 进程 95

10.1 进程如何工作 96

10.1.1 使用ps命令查看进程信息 96

10.1.2 使用top命令动态查看进程信息 98

10.2 控制进程 100

10.2.1 中断进程 100

10.2.2 使进程在后台运行 101

10.2.3 使进程回到前台运行 101

10.2.4 停止(暂停)进程 102

10.3 信号 102

10.3.1 使用kill命令发送信号到进程 103

10.3.2 使用killall命令发送信号给多个进程 105

10.4 更多与进程相关的命令 105

第二部分 配置与环境

第11章 环境 109

11.1 环境中存储的是什么 109

11.1.1 检查环境 110

11.1.2 一些有趣的变量 111

11.2 环境是如何建立的 112

11.2.1 login和non-login shell 112

11.2.2 启动文件中有什么 113

11.3 修改环境 114

11.3.1 用户应当修改哪些文件 114

11.3.2 文本编辑器 115

11.3.3 使用文本编辑器 115

11.3.4 激活我们的修改 117

11.4 本章结尾语 118

第12章 vi简介 119

12.1 为什么要学习vi 119

12.2 vi背景 120

12.3 启动和退出vi 120

12.4 编辑模式 121

12.4.1 进入插入模式 122

12.4.2 保存工作 122

12.5 移动光标 123

12.6 基本编辑 124

12.6.1 添加文本 124

12.6.2 插入一行 125

12.6.3 删除文本 126

12.6.4 剪切、复制和粘贴文本 127

12.6.5 合并行 128

12.7 查找和替换 128

12.7.1 行内搜索 128

12.7.2 搜索整个文件 129

12.7.3 全局搜索和替换 129

12.8 编辑多个文件 130

12.8.1 切换文件 131

12.8.2 载入更多的文件 132

12.8.3 文件之间的内容复制 132

12.8.4 插入整个文件 133

12.9 保存工作 134

第13章 定制提示符 135

13.1 提示符的分解 135

13.2 尝试设计提示符 137

13.3 添加颜色 138

13.4 移动光标 140

13.5 保存提示符 141

13.6 本章结尾语 141

第三部分 常见任务和主要工具

第14章 软件包管理 145

14.1 软件包系统 146

14.2 软件包系统工作方式 146

14.2.1 软件包文件 146

14.2.2 库 147

14.2.3 依赖关系 147

14.2.4 高级和低级软件包工具 147

14.3 常见软件包管理任务 148

14.3.1 在库里面查找软件包 148

14.3.2 安装库中的软件包 148

14.3.3 安装软件包文件中的软件包 149

14.3.4 删除软件包 149

14.3.5 更新库中的软件包 150

14.3.6 更新软件包文件中的软件包 150

14.3.7 列出已安装的软件包列表 150

14.3.8 判断软件包是否安装 151

14.3.9 显示已安装软件包的相关信息 151

14.3.10 查看某具体文件由哪个软件包安装得到 151

14.4 本章结尾语 152

第15章 存储介质 155

15.1 挂载、卸载存储设备 156

15.1.1 查看已挂载的文件系统列表 157

15.1.2 确定设备名称 160

15.2 创建新的文件系统 162

15.2.1 用fdisk命令进行磁盘分区 162

15.2.2 用mkfs命令创建新的文件系统 164

15.3 测试、修复文件系统 165

15.4 格式化软盘 166

15.5 直接从/向设备转移数据 166

15.6 创建cd-rom映像 167

15.6.1 创建一个cd-rom文件映像副本 167

15.6.2 从文件中创建映像文件 168

15.7 向cd-rom写入映像文件 168

15.7.1 直接挂载iso映像文件 168

15.7.2 擦除可读写cd-rom 169

15.7.3 写入映像文件 169

15.8 附加认证 169

第16章 网络 171

16.1 检查、监测网络 172

16.1.1 ping——向网络主机发送特殊数据包 172

16.1.2 traceroute——跟踪网络数据包的传输路径 173

16.1.3 netstat——检查网络设置及相关统计数据 174

16.2 通过网络传输文件 175

16.2.1 ftp——采用ftp(文件传输协议)传输文件 175

16.2.2 lftp——更好的ftp(文件传输协议) 177

16.2.3 wget——非交互式网络下载工具 177

16.3 与远程主机的安全通信 178

16.3.1 ssh——安全登录远程计算机 178

16.3.2 scp和sftp——安全传输文件 181

第17章 文件搜索 183

17.1 locate——较简单的方式查找文件 184

17.2 find——较复杂的方式查找文件 185

17.2.1 test选项 186

17.2.2 action选项 190

17.2.3 返回到playground文件夹 194

17.2.4 option选项 196

第18章 归档和备份 197

18.1 文件压缩 198

18.1.1 gzip——文件压缩与解压缩 198

18.1.2 bzip2——牺牲速度以换取高质量的数据压缩 200

18.2 文件归档 201

18.2.1 tar——磁带归档工具 201

18.2.2 zip——打包压缩文件 205

18.3 同步文件和目录 207

18.3.1 rsync——远程文件、目录的同步 207

18.3.2 在网络上使用rsync命令 209

第19章 正则表达式 211

19.1 什么是正则表达式 211

19.2 grep——文本搜索 212

19.3 元字符和文字 213

19.4 任意字符 214

19.5 锚 214

19.6 中括号表达式和字符类 215

19.6.1 否定 216

19.6.2 传统字符范围 216

19.6.3 posix字符类 217

19.7  posix基本正则表达式和扩展正则表达式的比较 220

19.8 或选项 221

19.9 限定符 222

19.9.1 ?——匹配某元素0次或1次 222

19.9.2 *——匹配某元素多次或零次 222

19.9.3 +——匹配某元素一次或多次 223

19.9.4 {}——以指定次数匹配某元素 223

19.10 正则表达式的应用 224

19.10.1 用grep命令验证号码簿 224

19.10.2 用find查找奇怪文件名的文件 225

19.10.3 用locate查找文件 226

19.10.4 利用less和vim命令搜索文本 226

19.11 本章结尾语 227

第20章 文本处理 229

20.1 文本应用程序 230

20.1.1 文件 230

20.1.2 网页 230

20.1.3 电子邮件 230

20.1.4 打印机输出 231

20.1.5 程序源代码 231

20.2 温故以求新 231

20.2.1 cat——进行文件之间的拼接并且输出到标准输出 231

20.2.2 sort——对文本行进行排序 232

20.2.3 uniq——通知或省略重复的行 238

20.3 切片和切块 239

20.3.1 cut——删除文本行中的部分内容 239

20.3.2 paste——合并文本行 242

20.3.3 join——连接两文件中具有相同字段的行 243

20.4 文本比较 245

20.4.1 comm——逐行比较两个已排序文件 245

20.4.2 diff——逐行比较文件 246

20.4.3 patch——对原文件进行diff操作 248

20.5 非交互式文本编辑 249

20.5.1 tr——替换或删除字符 249

20.5.2 sed——用于文本过滤和转换的流编辑器 251

20.5.3 aspell——交互式拼写检查工具 258

20.6 本章结尾语 260

20.7 附加项 261

第21章 格式化输出 263

21.1 简单的格式化工具 264

21.1.1 nl——对行进行标号 264

21.1.2 fold——将文本中的行长度设定为指定长度 266

21.1.3 fmt——简单的文本格式化工具 267

21.1.4 pr——格式化打印文本 270

21.1.5 printf——格式化并打印数据 270

21.2 文档格式化系统 273

21.2.1 roff和tex家族 274

21.2.2 groff——文档格式化系统 274

21.3 本章结尾语 279

第22章 打印 281

22.1 打印操作简史 282

22.1.1 灰暗时期的打印 282

22.1.2 基于字符的打印机 282

22.1.3 图形化打印机 283

22.2 linux方式的打印 284

22.3 准备打印文件 284

22.3.1 pr——将文本文件转换为打印文件 285

22.4 向打印机发送打印任务 285

22.4.1 lpr——打印文件(berkeley类型) 286

22.4.2 lp——打印文件(system v类型) 287

22.4.3 另外一个参数选项:a2ps 287

22.5 监测和控制打印任务 290

22.5.1 lpstat——显示打印系统状态 290

22.5.2 lpq——显示打印队列状态 291

22.5.3 lprm与cancel——删除打印任务 291

第23章 编译程序 293

23.1 什么是编译 294

23.2 是不是所有的程序都需要编译 295

23.3 编译一个c程序 295

23.3.1 获取源代码 296

23.3.2 检查源代码树 297

23.3.3 生成程序 298

23.3.4 安装程序 302

23.4 本章结尾语 302

第四部分 编写shell脚本

第24章 编写之一个shell脚本 305

24.1 什么是shell脚本 305

24.2 怎样写shell脚本 306

24.2.1 脚本文件的格式 306

24.2.2 可执行权限 307

24.2.3 脚本文件的位置 307

24.2.4 脚本的理想位置 308

24.3 更多的格式诀窍 309

24.3.1 长选项名 309

24.3.2 缩进和行连接 309

24.5 本章结尾语 310

第25章 启动一个项目 311

25.1 之一阶段:最小的文档 311

25.2 第二阶段:加入一点数据 313

25.3 变量和常量 314

25.3.1 创建变量和常量 314

25.3.2 为变量和常量赋值 316

25.4  here文档 317

25.5 本章结尾语 319

第26章 自顶向下设计 321

26.1 shell函数 322

26.2 局部变量 325

26.3 保持脚本的运行 326

26.4 本章结尾语 328

第27章 流控制:if分支语句 329

27.1 使用if 330

27.2 退出状态 330

27.3 使用test命令 332

27.3.1 文件表达式 332

27.3.2 字符串表达式 334

27.3.3 整数表达式 335

27.4 更现代的test命令版本 336

27.5 (( ))——为整数设计 338

27.6 组合表达式 339

27.7 控制运算符:另一种方式的分支 341

27.8 本章结尾语 342

第28章 读取键盘输入 343

28.1 read——从标准输入读取输入值 344

28.1.1 选项 346

28.1.2 使用ifs间隔输入字段 347

28.2 验证输入 349

28.3 菜单 350

28.4 本章结尾语 351

28.5 附加项 352

第29章 流控制:while和until循环 353

29.1 循环 353

29.2 while 354

29.3 跳出循环 356

29.4 until 357

29.5 使用循环读取文件 358

29.6 本章结尾语 358

第30章 故障诊断 359

30.1 语法错误 359

30.1.1 引号缺失 360

30.1.2 符号缺失冗余 360

30.1.3 非预期的展开 361

30.2 逻辑错误 362

30.2.1 防御编程 363

30.2.2 输入值验证 364

30.3 测试 364

30.3.1 桩 365

30.3.2 测试用例 365

30.4 调试 366

30.4.1 找到问题域 366

30.4.2 追踪 366

30.4.3 运行过程中变量的检验 368

30.5 本章结尾语 369

第31章 流控制:case分支 371

31.1 case 371

31.1.1 模式 373

31.1.2 多个模式的组合 374

31.2 本章结尾语 375

第32章 位置参数 377

32.1 访问命令行 377

32.1.1 确定实参的数目 378

32.1.2 shift——处理大量的实参 379

32.1.3 简单的应用程序 380

32.1.4 在shell函数中使用位置参数 381

32.2 处理多个位置参数 381

32.3 更完整的应用程序 383

32.4 本章结尾语 386

第33章 流控制:for循环 389

33.1 for:传统shell形式 389

33.2 for:c语言形式 392

33.3 本章结尾语 393

第34章 字符串和数字 395

34.1 参数扩展(parameter expansion) 395

34.1.1 基本参数 396

34.1.2 空变量扩展的管理 396

34.1.3 返回变量名的扩展 397

34.1.4 字符串操作 398

34.2 算术计算和扩展 400

34.2.1 数字进制 401

34.2.2 一元运算符 401

34.2.3 简单算术 401

34.2.4 赋值 402

34.2.5 位操作 404

34.2.6 逻辑操作 405

34.3 bc:一种任意精度计算语言 407

34.3.1 bc的使用 407

34.3.2 脚本例子 408

34.4 本章结尾语 409

34.5 附加项 409

第35章 数组 411

35.1 什么是数组 411

35.2 创建一个数组 412

35.3 数组赋值 412

35.4 访问数组元素 413

35.5 数组操作 414

35.5.1 输出数组的所有内容 415

35.5.2 确定数组元素的数目 415

35.5.3 查找数组中使用的下标 416

35.5.4 在数组的结尾增加元素 416

35.5.5 数组排序操作 416

35.5.6 数组的删除 417

35.6 本章结尾语 418

第36章 其他命令 419

36.1 组命令和子shell 419

36.1.1 执行重定向 420

36.1.2 进程替换 420

36.2 trap 422

36.3 异步执行 425

36.4 命名管道 426

36.4.1 设置命名管道 427

36.4.2 使用命名管道 427

36.5 本章结尾语 428

linux编译命令大全的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux编译命令大全,Linux编译命令大全,让你轻松掌握!,linux下文件后缀是.m的编译命令,Linux 命令 grep (文档编辑)-想玩转linux就请一直看下去,Linux命令行大全的目录的信息别忘了在本站进行查找喔。


数据运维技术 » Linux编译命令大全,让你轻松掌握! (linux编译命令大全)