Linux常用工具

本文介绍了多种Linux开发工具。包括sudo用户设置,修改sudoers配置文件;yum作为软件包管理工具,可进行查看、安装、移除操作;vim编辑器有插入、普通、底行三种常用模式;gcc编译器将高级语言编译成机器语言;gdb调试器;make/Makefile用于项目自动化构建;git用于项目版本管理。

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

sudo用户设置:
修改etc下的sudoers配置文件,大概在91行左右 添加 用户名

yum:软件包管理工具
查看软件包:yum list
yum list | grep 软件 包名称
安装软件包:yum install 包名称
移除软件包:yum remove 包名称

vim:编辑器
vim中默认不能使用鼠标,为了完成能够插入,删除,复制,粘贴各个操作
分成了很多模式:12种模式,但是常用的有三种:
插入模式:插入数据
普通模式:完成命令操作(移动光标,复制,粘贴,删除,撤销,)
底行模式:保存文件,退出编辑

vim 文件名 默认进入普通模式 模式切换 
	普通模式->插入模式
		"i"从光标所在处插入					"I"从行首开始插入
		"a"从所在字符下一个位置处开始插入	"A"移动到行尾插入
		"o"光标所在行之下新建一行			"O"光标所在行之上新建一行
	
	普通模式->底行模式 
		":" "/" "!"
	底行模式的操作:
		:w :wq :q(ls -a 删掉这个隐藏的交换文件) :q!
		/string ?string 是匹配字符串
		
	普通模式下的操作:
		光标移动:
			hjkl 左上下右   WB 按单词移动    ctrl+f/b 翻页   gg/G 头尾移动
		复制:
			yy 复制光标所在行  3yy 从光标所在行开始复制3行
		粘贴:
			p 光标所在行下方粘贴  P光标所在行上方粘贴
		删除:
			dd 	剪切光标所在行		ndd 包含光标所在行之下删除n行
			x	删除光标所在字符	dw	删除单词	D 删除光标所在行,此行后边的数据
		撤销:u
		恢复撤销:ctrl+r
	
	"ESC"切换到普通模式,如果不行,就按两下

gcc:编译器 它将高级语言编译成机器可以识别的语言
预处理:去掉注释,展开代码
编译:语法语义纠错,将C语言代码解释成汇编代码
汇编:将汇编代码解释成机器指令
链接:链接库文件中的代码
静态链接:链接静态库 将库中代码拷贝到程序中,程序比较大,但运行时不需要依赖静态库的存在
如果多个程序使用了相同的静态库,加载到内存中,出现多份冗余代码
(gcc 默认)动态链接:链接动态库 记录函数位置符号信息,程序比较小,但是运行时需要依赖动态库的存在
内存中共享同一份动态库代码

-o 指定生成的文件名称
-E 只进行预处理
-S 只进行编译
-C 只进行汇编
-static 使用静态链接
!gcc 最近的一次gcc

gdb:调试器
0.向程序中加入调试符号信息
gcc 默认生成release发布程序,可执行程序中没有加入调试符号信息
gcc -g 生成debug调试程序

1.加载程序
	gdb ./main
2.开始调试
	r 直接运行程序		start	开始逐步调试
3.常见操作:	
	list 查看代码				n 下一步	不跟踪进入函数,直接将函数运行完毕
		list file:line			s 下一步	跟踪进入函数
		until	直接运行到指定行
			until file:line
4.断点相关
	b file:line 打断点				b function_name		给函数打断点
	info b 		查看断点信息
	p	查看变量内容			continue 继续运行
		print	var 
	delete 3 删除3号断点,直接 delete 删除所有断点
	watch 监控变量,变量改变了就停下来
		watch	var
5.查看调用栈信息
	backtrace	查看函数调用栈信息,快速定位程序崩溃位置
		bc

make/Makefile:项目自动化构建工具
Makefile:普通文本文件,但是不普通的是makefile中记录的是项目的构件流程规则
make:一个程序–makefile解释器:解释makfile中的项目构建规则;完成项目的构建
在当前目录下敲make命令,make程序在当前目录找makefile文件,逐行解释
makefile基本编写规则:
目标对象:依赖对象
tab 要执行的命令
make的解释规则:
make在makefile中寻找第一个目标对象:
目标对象不存在: 则报错退出
目标对象存在: 检查是否有依赖对象
没有依赖对象:检测外部是否有目标对象文件(文件是否已经生成过了)
目标对象未生成:执行要执行的命令(生成目标对象的命令)
目标对象已生成:报错,不需要重新生成
有依赖对象:检测外部是否有目标对象文件
目标对象未生成:执行要执行的命令(生成目标对象的命令)
目标对象已生成:检测目标对象文件与依赖对象的最后一次修改时间
通过最后一次修改时间判断目标对象文件是否是最新的(是否重新生成目标对象文件)
用于更新生成的文件!!!
makefile预定义变量:
$@: 目标对象
$^: 依赖对象
$<: 第一个依赖对象
//执行所有
SRC = $(wildcard ./*.c) 获取所有.c 文件
OBJ = ( p a t s u b s t (patsubst %.c,%.o, (patsubst(SRC))
main:$(OBJ)

伪对象:不管对象是否最新,是否存在,每次都需要为对象执行生成命令
	声明伪对象: .PHONY:clean  

makefile中变量赋值方式: 各有什么不同.
	=				:=				?=				+=

git:项目版本管理工具
基本操作:
git clone 网址
git add new_file
git commit -m “备注信息”
git push origin master(主分支)

进度条程序:
#include <stdio.h>

int main(){
	char buf[10] = [0];
	int i = 0;
	while(i<10){
		buf[i] = '-';
		printf("%s\r",buf);// \
		fflush(stdout);//刷新显示器缓冲区
		i++;
		sleep(1);
	}
	return 0;
}
缓冲区
printf("hello\n")---->buffer---->file	"\n"刷新了缓冲区,将数据写入文件
										"\r"回车作用,将输出起始位置移动到行首
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值