Linux — 环境开发工具的使用

vim——文本编辑工具

vim的模式

vim下有12种模式,分为6种基本模式和6种条件模式,在这里,我们主要介绍3种模式

  • 正常/普通/命令模式: 控制屏幕光标的移动,字符、字或行的删除
  • 插入模式: 进行文字输入
  • 末行模式: 文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。

查看所有模式,底行模式输入 :help vim-modes

vim的基本操作

模式切换
正常模式进入插入模式
  • i 从普通模式进入插入模式,从光标开始位置插入,若光标当前位置有字符则后移
  • I 光标回到行首开始插入
  • a 光标移动到下一个字符处开始插入
  • A 光标移动到行尾开始插入
  • o 从光标所在行下行添加新行开始插入
  • O 从光标所在行上行添加新行开始插入
  • s 删除光标所在字符然后进入插入模式
  • S 删除光标所在一行然后进入插入模式
插入模式进入末行模式
  • [Esc]
插入模式进入正常模式
  • [ shift + : ] 其实就是输入[ : ]
移动光标
  • h j k l 左 下 上 右 控制光标
  • b 光标回到上个字的开头
  • w 光标跳到下个字的开头
  • e 光标跳到下个字的字尾
  • ^ 移动到光标所在行的行首
  • $ 移动到光标所在行的行尾
  • gg 光标移动到文件首行
  • G 光标移动到文件末尾行
  • #G 跳转到#行
  • shift+g 进入文本末端
  • v+= 对齐一行
  • gg=G 全文按C语言语法风格缩进对齐
  • ctrl+b 屏幕往后移动一页
  • ctrl+f 屏幕往前移动一页
  • ctrl+u 屏幕往后移动半页
  • ctrl+d 屏幕往前前移动半页
复制粘贴
  • yw 复制光标所在的位置到字尾的字符
  • #yw 复制#个字
  • yy 复制光标所在的一行
  • #yy 从光标开始向下复制#行
  • p 粘贴到光标所在行的下行
    • 注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能
删除(剪切)
  • x 删除光标所在位置的字符
  • #x 删除光标所在位置后面(包括自己在内)的#个字符
  • X 删除光标所在位置的前一个字符
  • #X 删除光标所在位置前面的#个字符
  • dd 删除光标所在行
  • #dd 从光标所在行删除#行
  • dw 从光标所在的位置删除一个单词
  • d0 删除光标前一部分
  • D / d$ 删除光标后的一部分
替换
  • r 单个字符替换
  • R 连续字符替换,直到按下[esc]键
撤销
  • u 撤销上一步操作
  • ctrl + r 撤销撤销操作
更改
  • cw 更改光标所在的字到字尾处
  • c#w 更改#个字
跳行
  • ctrl+g 列出光标所在的行号
  • #G 移动光标到文章的第#行
末行命令集
  • set nu 列出每一行行号
  • # 跳到第#行(#表示一个数字)
  • / 字符 查找字符,按n向后继续(从光标位置向下,到最下边之后返回头部)
  • ? 字符 查找字符,按n向后继续(从光标位置向上,到最上边之后返回尾部)
  • # 查找字符(光标所在字符的查找)
  • q 退出
  • q! 强制退出,不保存
  • w 保存
  • ! 命令 直接执行命令,回车返回vim
  • n+shift+k 自动进入man手册第n章
  • sp 文件名 横向分屏 同一文件可不加文件名
  • vsp 文件名 纵向分屏
  • vnew 文件名 打开一个文件,分屏
  • s/被替换的字符串/替换的字符串 替换光标所在行的一个字符串
  • s/被替换的字符串/替换的字符串/g 替换光标所在行的所有字符串(加不加g在于是否替换一行所有的)
  • %s/被替换的字符串/替换的字符串/g 替换所有的字符串
  • n1,n2s/被替换的字符串/替换的字符串/g 替换n1行到n2行的字符串

gcc——编译工具

gcc将我们所写的高级语言的程序编译成为机器可识别的程序

gcc的基本操作

  • -o 指定生成的文件名称
  • -E 只预处理
  • -S 只编译
  • -c 只汇编
  • -I 指定头文件的路径
  • -Wall 输出警告信息
  • -g 生成可调试信息
//举例
gcc main.c -o main -Wall -g

Makefile

Makefile记录一系列的编译规则,当我们执行make命令,那么make这个程序就会到当前目录下查找makefile文件,然后一步步解释执行makefile记录的编译规则,最终通过这些规则,完成项目的整个编译(makefile会记录源文件和程序文件的时间信息,如果源文件的最后一次修改时间是在程序文件之后,那么就会重新编译程序,否则会将报告程序是最新的,而不需要重新编译)

Makefile 的编写
//文件名全小写或开头大写    
生成对象:依赖对象
[tab]——[\t ]   编译命令   //为了完成生成文件的生成要执行的命令
//命令前加-,表示命令在执行失败后,忽略这条命令继续执行下一条

//编写方式一
main:main.c    //|生成对象:依赖对象
    gcc main.c -o main    //[tab]——[\t ]   编译命令

//编写方式二
.PHONY:main child    //.PHONY叫声明伪对象(声明main child为伪目标),伪对象代表每次都需要重新生成)          
all:main child    //如果伪对象是all,只能代表每次要生成的是all而不是main和child
main:main.c    //生成对象:依赖对象
    gcc main.c -o main    //[tab]——[\t ]   编译命令
child:child.c
    gcc child.c -o child

//编写方式三
main:main.c    
    gcc $^ -o $@    //    gcc main.c -o main
//makefile中的预定义变量
	//$用于使用一个变量
	//$@   冒号左边要生成的对象
	//$^     冒号右边所有的依赖对象
	//$<    冒号右边依赖对象的第一个

gdb——程序调试工具

使用gdb运行一个程序

//方式一
gcc -g     //开启gbd调试模式
    gcc -g main.c -o main
gdb  ./main  

//方式二
gdb
file    ./main

//方式三
//根据进程id调试一个正在运行的程序
ps -ef | grep main  
gdb -p 9368

gdb的基本操作

  • run /r 运行程序,后面紧跟程序的运行参数
    • 出现断错误时,gdb调试直接run,程序停止的位置就是出现段错误的位置
  • start 开始逐步调试
  • list / l 默认查看当前所在位置附近十行的代码
    • list / l # 查看指定行的代码(所在位置上下五行)
    • l 文件名:多少行(函数名也可以)
  • 回车 重复上一次的命令
  • n 逐步调试(下一步是函数,不会跟踪进入函数,而是直接完成功能)
  • s 逐步调试(下一步是函数,跟踪进入函数)
  • c 继续执行(直接运行完)
  • u 跳出单次循环(类似于continue)
  • finish 跳出函数(失败时注意跳出断点)
  • b/break
    • b # 给#行打断点
    • b file : line 给指定文件的指定行添加断点
    • b function_name 通过函数名给函数添加断点
    • b # if 条件 添加一个条件断点
  • info / i 查看详细信息
    • info break 查看断点信息
    • info display 查看变量信息
  • d/delete 默认删除所有断点
    • d id 根据断点的id删除指定的断点
  • p 打印变量内容
    • p + var 打印var内容
  • ptype 查看类型
  • set var 设置变量的值(设置循环变量则相当于已经循环n次)
  • watch 监视变量 ,变量的值每次修改时都会停止
    • watch i
    • display 变量 追踪变量
    • undisplay 变量id( i 查看) 取消追综变量
  • bt 查看程序的函数调用栈信息 排查段错误时非常有用
  • quit 退出

yum 软件包管理工具

yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora、RedHat、Centos等发行版上

yum基本操作

注: 关于 yum 的所有操作必须保证主机(虚拟机)网络畅通,可以通过 ping 指令验证

  • 查看软件包 yum list
    • yum list | grep lrzsz 通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包.
  • 安装软件 yun install [包名]
  • 卸载软件包 yum remove [包名]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值