• Linux常用工具


    目录

    一、yum软件包管理工具

    1.查看可安装工具

    2.查找工具

    3.安装/卸载

    二、lrzsz文件传输工具

    1.rz向服务器传输文件

    2.sz将服务器文件拉到本地

    三、git项目版本管理工具

    1.git clone 仓库链接

    2.git add --all ./

    3.git commit -m "提交备注"

    4.git push origin master

    四、vim编辑器★

    1.必用的三种操作模式

    1.1普通模式

    1.2插入模式

    1.3底行模式

    五、gcc/g++编译器★

    1.程序编译的四个阶段

    1.1预处理

    1.2编译

    1.3汇编

    1.4链接

    2.动态链接&静态链接

    3.gcc——C语言

    4.g++——C++语言

    5.Linux如何运行一个程序

    六、gdb调试工具★

    1.调试前提

    2.程序分类:debug&release

    3.调试流程★


    一、yum软件包管理工具

    注:yum安装或移除一个工具都需要管理员权限。

    1.查看可安装工具

    yum list

    查看所有可安装工具。

    2.查找工具

    1)yum search key

    搜索指定关键字key的工具。

    2)yum list | grep key

    通过管道符将yum list 结果交给grep key操作,通过grep搜索关键字key工具。

    3.安装/卸载

    1)yum install package

    安装package工具。

    2)yum remove package 

    卸载package工具。

    二、lrzsz文件传输工具

    注:lrzsz需要关联xshell一起搭配使用。

    1.rz向服务器传输文件

    安装了lrzsz工具后,可通过直接拖拽的方式上传文件,文件会保存到拖拽到的当前目录下。

    2.sz将服务器文件拉到本地

    sz file

    将文件“file”拉到本地。

    三、git项目版本管理工具

    在项目开发过程中,有很多关键节点,在关键节点将项目备份,当当前开发出现问题的时候,就可以通过项目版本管理工具将项目版本回滚到历史版本。

    1.git clone 仓库链接

    克隆仓库到本地。

    2.git add --all ./

    添加修改信息。

    3.git commit -m "提交备注"

    提交本地版本仓库管理。

    4.git push origin master

    同步本地仓库版本到服务器上。

    四、vim编辑器

    Linux下的一个写代码工具。

    1.必用的三种操作模式

    1.1普通模式

    进行一些命令操作。

    vim filename:

    · 打开文件夹“filename",若文件不存在,则会默认创建文件;

    · 打开文件夹后默认处于普通模式下(不能写入内容);

    常见操作:

    1)光标移动★:

    ↑↓←→/kjhl:光标向上、下、左、右移动一个字符;

    ctrl+f/b:向上/下翻页;

    gg/G:返回到首行/末行;

    w/b:每次向前/向后移动一个单词。

    2)内容操作★:

    复制:

    yy:复制光标所在行;

    nyy:从光标所在行开始复制n行;

    粘贴:

    p:粘贴;

    np:重复粘贴n次;

    剪切(删除):

    在vim中没有真正的删除,剪切后不粘贴就是删除。

    dd:剪切(删除)光标所在行;

    ndd:剪切(删除)从光标所在行开始的n行;

    全文对齐:gg=G

    撤销操作:u

    还原撤销:ctrl+r

    1.2插入模式

    编辑文件内容。

    使用 i a o s/I A O S 切换到插入模式:

    操作:

     i:从光标位置开始插入;

    a:光标向后移动一个字符开始插入;

    o:在光标所在行下方新建一行开始插入;

    · 编辑文件内容完毕,使用esc按键返回到普通模式

    1.3底行模式

    保存以及退出编辑。

    输入英文冒号,从普通模式切换到底行模式:

    操作:

    :w 保存

    :q 退出编辑;

    :wq 保存并退出;

    :q! 强制退出,不保存;

    五、gcc/g++编译器

    1.程序编译的四个阶段

    1.1预处理

    进行宏替换,去掉注释,引入头文件....

    1.2编译

    进行语法语义纠错,没有错误则将高级语言代码解释成为汇编指令。

    1.3汇编

    将汇编指令解释成为二进制机器指令。

    1.4链接

    将机器指令与所适用的库函数对应库文件中的机器指令打包到一起,组织成为可执行程序。

    2.动态链接&静态链接

    gcc编译器默认的链接方式是动态链接

    (动态库和静态库同时存在时,默认优先使用动态链接加载动态库)。

    链接其实就是将所有的代码合到一起,尤其是将库文件中的代码拿过来,但实际上也有区别:

    动态链接,链接的是动态库;静态链接,链接的是静态库;

    动态链接:

    生成可执行程序的时候,只是把库文件函数符号的位置记录到了可执行程序中,并没有把实际的实现指令拿过来,当运行程序的时候,动态库也会被加载到内存中,去内存中动态库制定位置获取函数指令。

    优点:多个程序只需要加载一个相同的动态库到内存中就可以,内存中相同的代码冗余更小,程序文件本身也更小一些。

    缺点:运行程序时,动态库必须存在。

    静态链接:

    生成可执行程序的时候,直接将库中所用到的函数指令拿过来写入到可执行程序中,可执行程序就包含了所有用到的指令。

    优点:运行时不需要依赖库文件的存在。

    缺点:生成的可执行程序比较大;如果多个程序使用了相同的库函数,则运行时内存中可能存在冗余代码。

    3.gcc——C语言

    常见选项:

    -E 只进行到预处理完毕就结束

    -S 进行到编译完毕就结束

    -c 进行到汇编完毕就结束

    -o 指定要生成的文件对象文件

    例:将文件test.c编译成可执行程序test的四个阶段:

    预处理:gcc -E test.c -o test.i

    编译:gcc -S test.i -o test.s

    汇编:gcc -c test.s -o test.o

    链接:gcc test.o -o test

    ★直接输入gcc test.c -o test:一次性完成四步操作。

    4.g++——C++语言

    同gcc。

    5.Linux如何运行一个程序

    直接告诉系统要运行的程序在哪里即可;即直接输入待运行程序的位置。

    六、gdb调试工具

    1.调试前提

    这个程序必须是可调试的(代码没有进行优化,加入了调试符号信息),即这个程序必须是一个debug版本程序。

    2.程序分类:debug&release

    gcc编译器在生成可执行程序时,默认生成release版本;要想生成debug版本需要加上选项-g。

    debug版本:程序的调试版;

    release版本:程序的发布版(进行了代码优化)。

    3.调试流程

    1)加载调试程序:gdb ./testfile

    2)开始调试:run直接运行;start开始逐步调试

    3)逐步调试涉及指令★

    括号内为指令的简写。

        next(n):下一步,逐过程;遇到函数直接运行完毕;

        step(s):下一步,逐语句;遇到函数会进入函数内部;

        until file:line:直接运行到指定文件的指定行;

        list(l):默认查看调试行附近的代码;

        list file:line:查看指定文件的指定行的代码;

        continue(c):从当前调试位置,开始继续运行;

        backtrace(bt):查看函数调用栈,可以快速定位程序崩溃位置;

        break file:line:打断点;在指定文件指定行打断点;

        info break:查看断点信息;

        print:打印变量内容,还可以修改变量数据;

  • 相关阅读:
    o2优化是什么
    JVM 垃圾回收机制(可达性分析、引用计数)
    基于springboot的二次元商品销售网站的设计与开发
    OpenCV4(C++) —— Mat类
    蚂蚁二面:MySQL 单表不要超过 2000W 行,靠谱吗?
    HDLBits-Lfsr32
    Python+Requests+Pytest+Excel+Allure 接口自动化测试项目实战【框架之间的对比】
    FTP服务配置
    Nodejs安装教程
    贝叶斯推理
  • 原文地址:https://blog.csdn.net/m0_63020222/article/details/126141439