首页 / LINUX / 总结-最全linux工具的使用
总结-最全linux工具的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了总结-最全linux工具的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7597字,纯文字阅读大概需要11分钟。
内容图文
常用工具:
1、 软件包管理工具
2、编辑器
3、编译器
4、调试器
5、项目自动化构建工具
6、项目版本管理工具
软件包管理工具:安装其他的软件工具。
yum-类似于手机的应用商店。
提供软件包的查看、安装、移除等管理操作
三板斧操作:
查看:所有软件包:yum list,yum srarch–搜索指定软件包,
yum makecache将软件包信息保存到本地。
安装:1.su root管理员权限。yum install–安装软件包
卸载:1.su root管理员权限。yum remove–卸载软件包
安装常用软件工具:编译器gcc/gcc-c++、编辑器vim、调试器:gdb、
版本管理工具 :git
常用工具是否已经安装:查看每个工具是否有版本信息,若出现找不到命令就表示没有安装。
vim-version yum install vim
gcc-version yum install vim
gdb-version yum install gdb
git-version yum install git
编辑器:vim-linux下非常常用的一个编辑器
vim是一个命令行编辑器,--在命令行中实现光标的移动,文本的操作,文本的编辑
因此vim具有多种操作模式:12种,常用有三种:插入模式、普通模式、底行模式。
插入模式:进行文本数据的编辑插入
普通模式:进行文本常见的操作-复制、剪切、粘贴、删除、撤销、返回、文本对齐、光标的快速移动
底行模式:进行文本的保存退出,以及文本的匹配查找替换操作
vim的基本使用(所在目录表须具有可写权限):
打开文件:vim filename---打开一个已有的文件,若不存在就会创建,打开文件后默认处于普通模式
操作模式的切换:
普通模式->插入模式:i--进入插入模式;a--光标后移一个字符,进入插入模式;o:在光标所在行下方创建新行,进入插入模式;I A O
普通模式->底行模式:使用英文冒号:进行底行模式,实现文本的保存和退出操作:q-退出、:w-保存、:wq-保存并退出、:q!强制退出
其他模式-> 普通模式:所有模式都是围绕普通模式切换的,任何模式下按ESC键,都可以返回普通模式
vim打开文件,每次打开的是临时文件作为中间交换文件,然后关闭源文件,编辑的操作都是在中间文件中完成的,只有正规退出:wq时候才会将改变的数据写入源文件中,并且删除中间文件。
普通模式下的操作指令:
光标移动:h(左)、j(下)、k(上)、l(右),w/b按单词移动光标,ctrl+f/b上下翻页,gg/G文档首行/尾行
文本操作:yy/nyy-复制;p/P-粘贴;vim中没有删除-删除就是剪切-dd/ndd;x-删除字符;dw-删除单词
其他操作:u-撤销上一次操作;ctrl+r-撤销的反向操作;gg=G全文按照文档格式进行对齐。
sudo的配置:
sudo---临时为用户操作权限(不用每次切换管理员用户)
sudo需要进行配置之后才能使用:
配置过程:
1.su root 切换到管理员模式
2.visudo 打开sudo配置
3.:90 跳转到文档第90行,在90行附近---
4.yy复制root这一行,p粘贴
5.将用户名从root改编成自己的用户名称
6.:wq保存退出
编译器:gcc/g++
gcc是C语言的编译器;g++是c++语言的编译器;不同的语言有编译器
作用:C语言、C++语言都是高级语言,机器无法识别这些代码,需要编译器,将高级语言代码解释成为机器指令,生成可执行程序文件才能执行可执行程序文件:一段功能的机器指令集
编译型语言:C/C++ 脚本型 :python/lua/shell
编译型语言:程序编译之后才可以执行; 脚本语言:编写完毕直接执行---由解释工具逐行解释,然后执行功能,不同的脚本语言有不同的解释器---编码较快,但是运行性能低。
编译过程:编译器将高级语言解释成为机器指令都经过了那些阶段
预处理:展开所有代码(引入头文件,宏替换,删除注释。。。) gcc-E
编译:纠错,没有错误了将代码解释成为汇编代码: gcc-S
汇编:将汇编代码解释成为机器指令
链接:将所有用到的机器指令文件打包到一起,生成可执行程序。
gcc编译器常见操作选项:
-E 只进行预处理 -o指定要生成的文件名称 -S只进行编译 -c只进行汇编
gcc编译器链接生成可执行程序时,默认链接标准C库
链接库文件的时候两种链接方式:动态链接和静态链接
动态链接:最终生成的可执行程序中写入了库文件的函数符号表,生成的比较小,运行时需要加载动态库,多个程序可以在内存中使用同一个库,不会再内存中造成代码冗余。
静态链接: 最终生成的可执行程序时直接将使用的库中的函数指令全部写入程序中,生成的比较大,运行时不需要加载库文件,多个程序可以在内存中使用同一个库,会再内存中造成代码冗余。
调试器(gdb):调试一个程序的运行过程,能够发现程序哪有问题,可适当的改变数据达到某种调试目的,调试器只能调试具有调试符号信息的程序--debug版本的程序
gcc生成可执行程序默认会生成relese版本的程序,若要生成debug版本,要加上gcc -g选项
1.调试器加载程序
gdb ./main 直接使用gdb加载程序 gdb -p 30507 直接对一个正在运行中的程序进行调试, -p用于指定进程id
2.开始调试程序
run 直接运行 start 开始逐步调试
3.常用调试指令
1.流程控制:next/n-下一步,遇到函数直接运行,不会跟踪进入,
step/s-下一步,遇到函数跟踪进入函数
list/l-默认查看调试行附近代码,也可指定行 list a.c:20
until:直接运行到指定行,也可指定文件, unti a.c:25
continue/c:继续运行,直到断点处停下
2.断点操作:(break/b)
break a.c:9-给指定文件指定行打断点,程序运行到断点就会停下
break function--给函数打断点
info break 查看断点信息
watch -watch a给变量打断点,党变量数据发生改变时停下;
delete/d--删除断点
3.内存操作
backtrace 查看程序运行调用栈信息,程序一旦崩溃,查看调用栈可以快速定位崩溃位置---栈顶函数。(当程序崩溃时,栈顶函数来不及出栈,因此栈顶函数就是崩溃位置)
项目的自动化构建工具:make/makefile
Makefile:普通的文本文件,用于记录项目的构建规则流程
make:Makefile解释程序,逐行解释Makefile中的项目构建规则,执行构建指令,完成项目的构建
Makefile的编写规则:
目标对象(要生成的可执行程序的名称):依赖对象(生成目标对象所需要的源码文件)
制表符\t 执行指令
Makefile编写规则进阶:
make中的预定义变量:预定义变量通常都是在执行指令中使用
$@:表示目标对象
$^:表示所有依赖对象
$<:表示所有依赖对象中第一个依赖对象
%通配符的使用:匹配识别任意字符串
wildcard/patsubst关键字的使用
伪对象的使用:.PHONY:目标对象名称
伪对象的作用:不管对象是否最新,每次都要重新生成
Makefile:
1.了解make的执行规则以及基本的makefile编写规则,能够看懂
2.了解伪对象的声明与使用,笔试、面试
3.了解预定义变量各个的作用
make的解释执行规则:
make在解释执行的时候会找到当前所在目录中的Makefile文件,在这个文件中找到第一个目标对象,执行这个目标对象对应的指令,找到第一个就会退出不会执行第二个。
1.make一旦执行,就会在当前所在目录寻找Makefile
2.make的执行规则中,要生成目标对象,首先要保证依赖对象已经生成,则会递归向下寻找依赖对象的生成规则
3.在Makefile中找到第一个目标对象(也只生成第一个对象就会退出),根据与依赖对象的时间关系,判断是否需要重新生成
4.如是需要重新生成,则执行对应下方的指令
5.例如:为了生成main,需要先生成a.o和 b.o->为了生成a.o先生成a.s->为了生成a.s先生成a.i->为了生成a.i先生成a.c
git:项目的版本管理功能
版本管理工具:对项目的开发周期进行管理,每次提交的修改都有对应版本号,能够让程序出问题时回滚回去
分布式项目版本管理工具
1.从远程仓库克隆到本地 git clone https链接
2.本地提交修改信息 git add./*
3.提交本地版本管理 git commit -m “删除了一个无效文件”
4.将本次版本提交到远程服务器仓库 git push origin master
origin 用于指定分支名称 master分支--主分支
git的分支管理-git的精华所在
内容总结
以上是互联网集市为您收集整理的总结-最全linux工具的使用全部内容,希望文章能够帮你解决总结-最全linux工具的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。