Linux常用工具

Linux常用工具

一、软件包管理工具 yum

1.查看能够安装的软件包 yum list
2.安装软件包 su root ; yum install package_name
su root; yum install lrzsz //lrzsz是主机与虚拟机之间的文件传输工具 rz从主机向虚拟机传输;sz filename 从虚拟机向主机传输
3.卸载软件包 yum remove package_name

二、个人编程工具

1.编辑器:vim 命令行下的文本编辑工具(默认不支持鼠标操作/并且默认没有Windows下的常用快捷键
vim有多种不同的操作模式:12种操作模式(:help查看所有操作模式),常用的有3种
1)普通模式:完成文本内容的操作 (复制/粘贴/删除);打开一个文件默认所处模式;打开一个文件:vim filename
普通模式下的操作:
① 光标的移动:hjkl-左下上右 ;上下翻页:ctrl+f/b;shift+G-直接跳转至文件末尾/shift+gg直接跳转至文件首行 ;gg=G-全文对齐
② 基本操作:复制 yy/nyy:复制光标所在行; 粘贴 p/P : 粘贴新行;删除 dd/ndd : 删除光标所在行 x:删除光标所在字符 dw:删除单词
③ 其他操作:u:撤销上一步操作;ctrl+r:反向的撤销;gg=G:全文对齐
2)插入模式:文本内容插入数据
3)底行模式:文本的保存及退出编辑
底行模式下的操作 :w 保存 :q 退出编辑 :wq 保存并退出 :q! 不保存强制退出
4)模式之间的切换:
普通->插入:i 从光标所在位置开始插入;a 光标向后移动一个字符开始插入;o 在光标所在行下行添加新行开始插入 I/A/O
普通->底行:冒号
不管在什么模式下,切换到普通模式:esc ;切换到任何模式都要先切换到普通模式
2.编译器:将高级语言代码解释成机器指令
gcc是C语言的编译器;g++是c++的编译器
编译器翻译过程:
①预处理:展开所有代码(宏替换,头文件引入,去掉注释···)
②编译:进行代码语义语法纠错,没有错误则将C语言程序解释成为汇编指令
③汇编:将汇编指令解释成机器可识别的指令,生成的程序不可执行,不完整
④链接:将所有使用到的代码(可以是自己的另一个.o文件,也可能是一个库文件)都打包到一起最终生成一个可执行程序
库文件
链接有两种方式:
动态链接:在生成可执行的程序文件中并不写入具体库中函数的实现代码,而是在可执行程序文件中记录了函数符号信息表
好处:生成的可执行文件比较小,内存中代码冗余小
静态链接:在生成可执行程序的时候,直接将库中的代码写入到可执行文件中,因此运行程序的时候就不需要加载库文件了,但是若是多个程序都使用了同一个库,则会在内存中造成代码冗余
gcc默认使用动态链接
1)gcc常用选项功能:
gcc -E test.c -o test.i //-E 只进行预处理 -o 指定要生成的文件名称
gcc -S test.c -o test.s //-S 只进行编译
gcc -C test.c -o test.o //-C 只进行汇编
3.调试器:gdb 调试一个程序的运行过程,便于找出bug出现的位置
调试一个程序,这个程序中必须包含有调试符号信息,然而gcc编译器生成可执行程序时默认生成release版本程序,其中不包含调试符号信息;因此想要调试程序,首先需要在gcc编译的时候使用-g选项生成debug版本程序 gcc -g test.c -o test
1)开始调试命令:
run -直接运行程序;start -开始逐步调试
2)流程相关命令:
list -查看当前调试行附近代码;until -直接运行到指定文件的指定行 until test.c:20
next -下一步(遇到函数直接运行完毕);step -下一步(遇到函数会进入函数)
continue -不再逐步调试继续运行
3)断点相关命令:
break -打断点 break test.c:24;info break -查看断点信息;delete break_id -删除断点 delete 5
watch -变量监控断点,变量发生变化就停下来
4)其他命令:
backtrace (简写bt) 查看函数调用栈 -快速定位程序崩溃退出位置
print -查看变量数据

三、项目管理工具

1、项目的自动化构建工具:make/Makefile
Makefile -普通的文本文件,这个文件中记录着一个项目的编译流程以及规则
make -Makefile的解释器,就是一个程序,找到Makefile文件,按照流程逐行解释执行其中记录的项目构建规则,项目的构建
Makefile的编写规则:
1)目标对象:依赖对象(通过依赖对象来生成目标对象;)
\t命令:执行这条命令,完成目标对象的生成
2)预定义变量:make中预先定义好的变量,通常使用在命令中
$^:所有的依赖对象
$<:依赖对象的第一个
$@:目标对象
3)依赖对象的作用就是与目标对象进行最后一次修改时间的比较,若依赖对象比目标对象时间更靠近当前,则意味着上一次生成后,源码又发生改变
伪对象:目标对象不管是否最新,是否存在,每次都需要重新生成
如何声明伪对象:.PHONY:对象名称
make的执行规则:
1)在命令行敲击make回车,则会运行make程序,到当前目录下找到Makefile文件
2)make会在Makefile中找第一个目标对象,找到后执行下边的指令
3)但是make会检测这个目标对象的依赖对象是否需要生成,回去查找依赖对象的生成规则,先生成依赖对象
4)make可以在外部命令行指定要生成的目标对象
2、项目的版本管理工具:git
git三板斧:
从远程服务器克隆一个项目:git clone 地址
做修改之后,进行本地仓库版本管理:
1)git add ./*
2)git commit -m “本次提交的备注信息”
将本地版本同步到远程服务器:git push origin master 同步版本到远程服务器的master分支

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值