当前位置: 首页 > news >正文

Linux探秘坊-------3.开发工具详解(1)

1 初识vim编辑器

创建第一个vim编辑的代码

在这里插入图片描述

1.新建文件

在这里插入图片描述

2.使用vim打开

3.打开默认是命令模式,写代码需要在屏幕上输出“i”字符

  • 1.写完代码后要按Esc键退出到指令模式
  • 2.再按shift+:+wq即可保存并退出vim

(因为不支持鼠标,通常 使用键盘上的箭头 移动光标进行编辑)
在这里插入图片描述

4.cat进行查看

在这里插入图片描述

5.gcc编译文件

在这里插入图片描述
运行成功

2. vim的多模式

1.模式切换

模式切换如图:
在这里插入图片描述
结论:
在这里插入图片描述
命令模式可以理解为Windows系统中的鼠标,可以快速,高效得进行编程

2.命令补充

1.与光标有关的命令
  • n+gg :光标移动至第n行(任意行)
  • shift+g :光标移动至 最后一行
  • shift+$ : 光标移动至所在行的最后
  • shift+^ : 光标移动至所在行的最前
  • h,j,k,l :上下左右移动(h左,l右,j下,k上)
  • w,b: 光标按单词间隔进行行列移动(w向后,b向前)
  • n+ x :在光标所在处 向后删除 n个字符
  • n+ X :在光标所在处 向前删除 n个字符

2.其他命令(命令模式)
  • yy :复制当前一行
  • n+ yy :从当前行开始复制n行代码
  • p :将复制的内容黏贴至当前行的下一行
  • u :撤销上一步操作
  • ctrl+r :对u进行撤销,即恢复操作
  • n+ dd :剪切或删除行
  • shift+r:进入替换模式,可以重新写当前行的代码
3.其他命令 (底行模式)
  • shift+:+set nu: 调出行号(底行模式)
  • “/+字符串” +n : 查找字符串,按n找到下一个字符串
  • !gcc+文件名 : 执行正在写的程序文件,生成可执行程序

在这里插入图片描述

在这里插入图片描述

  • !./a.out (生成的可执行程序) : 执行程序
  • 在这里插入图片描述
  • vs + 文件名(实现分屏操作
  • 在这里插入图片描述
  • ctrl+ww,切换光标至另一个界面(可以用来复制其他文件中的内容配合“yy”)

在这里插入图片描述

4.补充命令
    1. ctrl+v(进入视图模式)->hjkl(移动光标,使其覆盖部分内容)->shift+i->“//”(插入双斜杠,也可以尝试插入别的字符)->esc(回到命令模式)

批量化注释

  • 2.ctrl+v(进入视图模式)->hjkl(移动光标,使其覆盖部分内容)->d

批量化删除注释

  • 3.shift+:->%s/xxx/aaa/g

将代码中的xxx全部换成aaa

3.vim的简要配置

1.进入家目录 cd ~

在这里插入图片描述

2.创建 .vimrc文件 catch .vimrc

在这里插入图片描述

3.vim .vimrc 并在里面写入想要的指令(可以自行去网上搜索)

我这边写入 set nu(显示行数)和 set mouse=a(支持鼠标)

4.再次打开test.c

在这里插入图片描述
发现已经添加了行号。

4.程序翻译-------gcc/g++

1.预处理(宏替换+去注释+条件编译+头文件展开)

举例:
在这里插入图片描述
使用gcc -E test.c -o test.i

  • -o:表示我们要形成的文件的名称(这里即test.i)
  • gcc -E:表示从现在开始 只要预处理完成就停下来

用vim打开test.i并与test.c对比:
在这里插入图片描述
宏替换+去注释+头文件展开全部完成)

2.编译(生成汇编)

gcc -S test.i -o test.s

  • -o:表示我们要形成的文件的名称(这里即test.s)
  • gcc -E:表示从现在开始 只要编译完成就停下来

在这里插入图片描述

3.汇编(生成机器可识别代码)

gcc -c test.i -o test.o

  • -o:表示我们要形成的文件的名称(这里即test.s)
  • gcc -c:表示从现在开始 只要汇编完成就停下来

在这里插入图片描述

4.链接(生成可执行文件或库文件)

在这里插入图片描述

gcc test.o -o testtest就是可执行的文件

5.补充知识点sudo(添加用户至白名单)

1.ls -l /etc/sudoers

在这里插入图片描述

2.su(切换至root)
3.vim /etc/sudoers

在这里插入图片描述
发现白名单里只有root,我们可以自行添加用户:
在这里插入图片描述

4.sudo验证

在这里插入图片描述

成功使用sudo,代表白名单配置成功。

在这里插入图片描述

http://www.lryc.cn/news/525288.html

相关文章:

  • Spring Boot整合Thymeleaf、JDBC Template与MyBatis配置详解
  • 白玉微瑕:闲谈 SwiftUI 过渡(Transition)动画的“口是心非”(下)
  • 论文:深度可分离神经网络存内计算处理芯片
  • hdrnet,Deep Bilateral Learning for Real-Time Image Enhancement解读
  • Android系统开发(十五):从 60Hz 到 120Hz,多刷新率进化简史
  • js判断一个数组对象中是否有相同的值
  • 基于深度学习的视觉检测小项目(十五) 用户的登录界面
  • redis-排查命中率降低问题
  • ui文件转py程序的工具
  • Alluxio 联手 Solidigm 推出针对 AI 工作负载的高级缓存解决方案
  • Oracle 数据库常见字段类型大全及详细解析
  • U3D的.Net学习
  • Tomcat下载配置
  • adb常用指令(完整版)
  • 大数据学习(36)- Hive和YARN
  • C# ASP.NET MVC项目内使用ApiController
  • Kafka 入门与应用实战:吞吐量优化与与 RabbitMQ、RocketMQ 的对比
  • “推理”(Inference)在深度学习和机器学习的语境
  • 字节腾讯阿里大厂面经汇总:Java集合(容器)大厂面试题及参考答案
  • 数据结构(初阶)(一)----算法复杂度
  • 构建高效稳定的网络环境
  • 使用Edge打开visio文件
  • ChatGPT Prompt 编写指南
  • 蚁群算法 (Ant Colony Optimization) 算法详解及案例分析
  • 安卓动态设置Unity图形API
  • 通信协议—WebSocket
  • helm推送到harbor私有库--http: server gave HTTP response to HTTPS client
  • 数据结构——实验一·线性表
  • 快速搭建深度学习环境(Linux:miniconda+pytorch+jupyter notebook)
  • OpenCV相机标定与3D重建(66)对立体匹配生成的视差图(disparity map)进行验证的函数validateDisparity()的使用