总结-最全linux工具的使用
常用工具:
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工具的使用相关推荐
- .NET Core全Linux开发体验分享
" 2016年.NET Core首个正式版本问世,如今已发布到了.NET Core3.1,再有2个月.NET5也将如约而至,跨平台开发已经快5年,然而很多人却还只是在Windows上用Vis ...
- linux红帽给文件加密,红帽大神制作 Linux 工具,用于旧款罗技无线键盘加密设置...
Red Hat 的 Hans de Goede 编写了一个 Linux 实用程序,可为那些老化的罗技键盘配置加密链接状态;同时,也使得之前配置的使用加密链接的罗技键盘可以正确地重新配置. 正如 Han ...
- Linux工具快速上手,Linux很实用命令
Linux工具快速上手 前言 Linux下有很多命令行工具供我们使用,每个工具总是提供了大量参数供我们选择: 实际工作中,我们用到的工具,最常用的总是那么几个参数组合: 为此,我写了这本书相对实用的书 ...
- linux 编译工具链,Linux工具链for TKStudio下载_Linux工具链for TKStudio官方下载-太平洋下载中心...
Linux工具链for TKStudio是一款支持TKStudio IDE集成开发环境的辅助LINUX交叉编译工具链软件,交叉编译就是跨架构编译,编译出来的程序不能在本机执行(当然有例外情况).所以这 ...
- 发布《Linux工具快速教程》
发布<Linux工具快速教程> 阶段性的完成了这本书开源书籍,发布出来给有需要的朋友,同时也欢迎更多的朋友加入进来,完善这本书: 本书Github地址:https://github.com ...
- 如何把Linux工具里的“军刀”BusyBox移植到RT-Thread Smart?
RT-Thread Smart 系列连载 序号 内容 1 <当"树莓派"遇上RT-Thread Smart--应用编程入门> 2 <RT-Thread Smart ...
- 最全Linux安装Redis最新版
最全Linux安装最新Redis服务 前言 一.安装步骤 1.下载安装包:https://redis.io/ 2.上传至Linux解压缩 3.基本的命令环境安装 4.make命令所有基本文件配置 5. ...
- Kali Linux工具文档翻译计划
Kali Linux工具文档翻译计划 Kali Tools Translate Volunteers是一个公益项目,简称KTTV,目标是将 http://tools.kali.org/tools-li ...
- 一文带你学会linux系统 史上最全linux命令大全
一文带你学会linux系统 史上最全linux命令大全 文章目录 linux系统简介 linux命令 1.启动网络命令 2.pwd命令 2.ls命令 3.cd命令 4.mkdir命令 5.rmdir命 ...
最新文章
- python考试编程题
- Quartz.Net—MisFire
- Android 隐藏软键盘
- JNI编译时错误 编码GBK的不可映射字符 解决方法
- JAVA-JSP内置对象之out对象进行页面输出
- [汇编语言]实验一:查看CPU和内存,用机器指令和汇编指令编程。
- python分布式存储文件_python如何分布式存储文件的方法
- 文本相似度、文本匹配、文本聚类
- 计算机二级判断题技巧一半对一半错,计算机二级小技巧
- 最受欢迎的资源是高质量的GUI工具包
- MySQL for Java的SQL注入测试
- Java面向对象和类
- CV学习笔记-数字图像概述
- 怎样把电脑换linux系统软件,如何将OS/2应用程序移植到Linux操作系统 -电脑资料...
- 全国计算机二级flash,教你如何在Flash当中制作插按钮动画
- 硬盘安装XP蓝屏,U盘安装XP提示INF file txtsetup……
- 力扣刷题 DAY_81 贪心
- 2021年黑龙江企业享受税收优惠政策,财政扶持高达90%
- 一、针对工业领域线圈小目标检测,基于Yolov5s网络改进检测头实验及其检测效果对比
- Linux内核剖析-----IO复用函数epoll内核源码剖析
热门文章
- 使用selenium启动(无界面)浏览器的隐私模式
- python all和any用法_python any()和all()用法
- 和push的区别_RocketMQ的消息订阅push和pull的区别
- XML指南——XML元素
- 实验吧-杂项-WTF?(python 01代码转图片)
- html HTML 文本格式化
- How to Leak a Context: Handlers Inner Classes
- 快速判断二叉树先序遍历 后序遍历
- 大数四则运算java(转)
- 18号是什么php,19年1月18号CSS浮动float