Linux环境基础和基础开发工具使用

文章目录

    • 一、yum软件管理器
        • 1、包管理器
        • 2、yum
        • 3、apt
        • 4、安装源
    • 二、编辑器vim
        • 1、各种模式
        • 2、打开时直接让光标定位到指定号
        • 3、!加命令字符
    • 三、命令模式
        • 1、i 进入插入模式
        • 2、**Shift + :** 进入底行模式
        • 3、光标定位
        • 4、ZZ(大写)保存并退出vim
        • 5、R 进入替换模式
        • 6、u撤销操作
        • 7、ctrl + r对u进行撤销
        • 8、ctrl + ww 分屏情况下光标移动
        • 9、ctrl + v进入视图模式批量化编辑
    • 四、底行模式
        • 1、ESC退回命令模式
        • 2、set nu调出行号
        • 3、w 保存
        • 4、q退出
        • 5、/ 定位查找
        • 6、! 后跟命令行操作
        • 7、vs 文件对比开启分屏
        • 8、%s/文本1/文本2/g替换
    • 五、编译器gcc/g++
        • 1、编译和运行
        • 2、编译运行的知识
        • 3、动静态库
    • 六、对vim进行配置
    • 七、配置sudo的可信任用户
    • 八、自动化构建-make/Makefile
        • 1、make和makefile是什么
        • 2、使用
        • 3、更加具有通用型的makefile
        • 4、Makefile完成多文件的编译
    • 九、Linux第一个系统程序——进度条
        • 1、回车与换行
        • 2、行缓冲区
        • 3、进度条代码

一、yum软件管理器

Linux 下按照软件的方案:

  • 1、源代码按照
  • 2、rpm包安装
  • 3、包管理器进行安装-----yum/apt
1、包管理器

yum / apt 就像手机的应用商店
解决依赖/下载/安装/卸载
通过到软件包服务器查找、下载请求

  • 操作系统生态问题!
  • Centos 、Ubnutu、kail对应的群体不同
    在这里插入图片描述
    在这里插入图片描述
    Linux机器上,有对应的给yum / apt提供的配置文件!url 或者IP地址
    软件包服务器在国外,下载软件比较慢。
    所以国内组织、高校,就自己花钱把国外的软件包拷贝到国内服务器,这叫镜像。
    配置文件是软件源,替换成国内的。
2、yum

查看包服务器中软件包,只找了软件名包含ls 的软件包名字
在这里插入图片描述

安装,默认安装到系统目录下

yum install 后跟软件包名字

安装软件受权限约束,root 或者sudo yum /apt 提权

卸载:

yum remove 软件名
yum -y remove 软件名 //强制卸载,问我的全部yes 

也需要root权限,才能执行

在这里插入图片描述
yum一次只能安装一个,如果中途关掉使用下面代码结束:

killall yum
3、apt

搜索不支持管道

apt search xxx

安装

apt install -y xxx

卸载

apt remove -y xxx
4、安装源

本地yum源配置文件所在的路径:
在这里插入图片描述
在这里插入图片描述
软件源分为稳定软件源和扩展软件源,甚至有更多分类

安装扩展软件源:

yum install -y epel-release

二、编辑器vim

1、各种模式
  • 1、vim是一个专注的编辑器
  • 2、多模式的编辑器

在这里插入图片描述
vim是Linux操作系统自带的编辑器

一般的三种模式

在这里插入图片描述在这里插入图片描述

2、打开时直接让光标定位到指定号

在这里插入图片描述

3、!加命令字符

快速帮我执行最近的历史命令
在这里插入图片描述

三、命令模式

1、i 进入插入模式

a也进入插入模式光标向后移动
o进入插入模式,光标位置向下插入一行

  • 打开vim指令默认处于命令模式,输入i 后可以编写代码,左下角会出现INSERT
  • vim 不支持鼠标
    在这里插入图片描述
2、Shift + : 进入底行模式
3、光标定位
  • gg :光标定位到最开始
  • G : 光标定位到最结尾
  • 行号 + gg 或者 行号 + G : 光标去到指定的行号
  • $ :定位到当前行的最后
  • ^ : 定位到当前行最前
  • h:左
  • l :右
  • j:下
  • k:上
  • w:以单词为单位向后移动,可以给前面带数字
  • b:以单词为单位向前移动,可以给前面带数字
  • yy:复制光标所在行,可以给前面加数字
  • p:粘贴,可以给前面加数字
  • dd:剪切或删除,可以给前面加数字
  • x:删除光标当前位置的字符,可以带数字
  • X:删除光标之前位置的字符,可以带数字
  • ~:大小写转换
  • r:小范围文本替换,可以带数字
4、ZZ(大写)保存并退出vim
5、R 进入替换模式
6、u撤销操作
7、ctrl + r对u进行撤销
8、ctrl + ww 分屏情况下光标移动
9、ctrl + v进入视图模式批量化编辑

批量化注释的操作
先ctrl + v,用h、j、k、l 键选择要注释的行,选择之后然后输入shift +i,//在ESC一下自动完成注释
批量化去掉注释
ctrl + v,选择行和两列,然后d
在这里插入图片描述

四、底行模式

1、ESC退回命令模式
2、set nu调出行号
  • set nonu 设置没有行号
3、w 保存
  • w!强制保存
4、q退出
  • wq保存并退出
  • q!强制退出
5、/ 定位查找
  • n下一个
6、! 后跟命令行操作

不退出vim的情况下指向命令行操作

7、vs 文件对比开启分屏

光标在那个文件就对那个文件操作

8、%s/文本1/文本2/g替换

将文本1替换成文本2

五、编译器gcc/g++

1、编译和运行

编译生成可执行程序,-o 选项可以设置生成文件的名字
在这里插入图片描述
运行
在这里插入图片描述
gcc常用选项:
在这里插入图片描述

2、编译运行的知识

在这里插入图片描述

3、动静态库

使用动态链接必须在系统里面存在动态库,动态库也称为共享库
在这里插入图片描述

使用静态链接必须在系统里面存在静态库
静态链接:把我们要的库方法实现,直接拷贝到我们的可执行程序中

在Linux系统中默认只会存在动态库
安装静态库命令:

yum install glibc-static libstdc++-static -y

六、对vim进行配置

在这里插入图片描述
修改当前家目录下的.vimrc的配置文件
在这里插入图片描述
最简单的配置让vim在打开时就能有行号

自动配置在 Centos7 x86_64下的链接
https://gitee.com/HGtz2222/VimForCpp

七、配置sudo的可信任用户

sudo配置文件所在位置:
在这里插入图片描述
必须使用root账号修改,把信任的用户添加进入配置文件

在这里插入图片描述

八、自动化构建-make/Makefile

1、make和makefile是什么
  • make是一个命令
  • makefile是一个文件
2、使用

简单的完成对.c文件的生成可执行程序
在这里插入图片描述
make指令自动执行Makefile

Makefile里的内容:
在这里插入图片描述
依赖关系和依赖方法,形成目标文件

在这里插入图片描述

在这里插入图片描述
make 会自定向下扫描makefile文件,默认形成第一个目标文件
如果想指定形成,make后面跟上目标文件名称

.PHONY 代表的含义是总是被执行的

Makefile的注释用#号
make会自动推导,直到依赖文件存在
在这里插入图片描述

3、更加具有通用型的makefile

这种类似C语言的宏替换:
在这里插入图片描述
但依然不够通用,只适合当前目录下只有一个源文件

4、Makefile完成多文件的编译

获取当前目录中所有.c文件:

  • $(命令行命令)
  • makefile自己提供了一个语法wildcard的函数
    在这里插入图片描述
    在这里插入图片描述
    这两个命令是等价的

让命令不回显:

  • 在命令前加@,不让命令回显
    在这里插入图片描述

把.c文件替换.o文件:

  • 利用makefile自己的语法规则
    在这里插入图片描述

$^ :代表依赖文件列表
$@: 代表目标文件
%:通配符
$<:把依赖文件一批文件一个一个交给对应的命令

在这里插入图片描述

实现效果:
在这里插入图片描述

九、Linux第一个系统程序——进度条

1、回车与换行

回车跟换行是两个不同的操作。
\r: 回车表示从尾到首的过程。
\n: 换行表示从该行到下一行。

2、行缓冲区

程序在打印到显示器上是,内容存在缓冲区中,缓冲区的刷新策略是行刷新。
程序退出会强制刷新。
如果不想行刷新,想立即刷新:
在这里插入图片描述
C语言提供了fflush策略强制刷新
在这里插入图片描述
刷新标准输出流

3、进度条代码

知识点默认gcc是C89需要改版本
在编译时加选项 -std=c99
在这里插入图片描述

代码:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/912707.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java设计——日历可视化

设计目标 设计的这个日历既可以捕捉当天的日期&#xff0c;并且使用红色圆圈圈起来以及实时具体时间&#xff0c;而且将月份和年份设计了下拉框&#xff0c;可以自行选择具体的月份年份&#xff0c;也可以通过<和>两个按键实现对月份的转变&#xff0c;同时年份和月份的…

校园官网练习---web

HTML&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>西安工商学院</title><…

【数据结构实战】从零开始打造你的专属链表

&#x1f3dd;️专栏&#xff1a;【数据结构实战篇】 &#x1f305;主页&#xff1a;f狐o狸x 目录 一、链表的概念及结构 二、链表的分类 2.1 单向的或双向的 2.2 带头的或不带头的 2.3 循环或非循环 三、链表的实现 3.1 打印和动态申请一个结点 3.2 尾插一个数 3.3 头插一个…

Axure PR 9 多级下拉选择器 设计交互

​ 大家好&#xff0c;我是大明同学。 Axure选择器是一种在交互设计中常用的组件&#xff0c;这期内容&#xff0c;我们来探讨Axure中多级下拉选择器设计与交互技巧。 下拉列表选择输入框元件 创建选择输入框所需的元件 1.在元件库中拖出一个矩形元件。 2.选中矩形元件&…

HiveSQL 中判断字段是否包含某个值的方法

HiveSQL 中判断字段是否包含某个值的方法 在 HiveSQL 中&#xff0c;有时我们需要判断一个字段是否包含某个特定的值。下面将介绍几种常用的方法来实现这个功能。 一、创建示例表并插入数据 首先&#xff0c;我们创建一个名为employee的表&#xff0c;并插入一些示例数据&am…

【日常问题排查小技巧-连载】

线上服务CPU飙高排查 先执行 top&#xff0c;找到CPU占用比较高的进程 id&#xff0c;&#xff08;比如 21448&#xff09; jstack 进程 id > show.txt&#xff08;jstack 21448 > show.txt&#xff09; 找到进程中CPU占用比较高的线程&#xff0c;线程 id 转换为 16 进…

jmeter常用配置元件介绍总结之jsr223执行python脚本

系列文章目录 安装jmeter jmeter常用配置元件介绍总结之jsr223执行python脚本 1.安装jsr223执行python插件2.基础语法介绍2.1.log2.2.parameters向脚本传参与接参2.3.vars2.4.props2.5.prev 3.常用脚本3.1.MD5加密单个参数&#xff1a;3.2.MD5加密多个参数&#xff1a;3.3.URLe…

【数据结构】插入排序——直接插入排序 和 希尔排序

直接插入排序 和 希尔排序 一、直接插入排序二、直接插入排序的弊端三、希尔排序&#xff08;1&#xff09;对插入排序的联想&#xff08;2&#xff09;希尔排序的思路 四、直接插入排序和希尔排序效率对比1>随机生成10000个数2>我们随机生成100000个数3>我们随机生成…

基于Tkinter的深度学习图像处理界面开发(二)

现在很多搞算法的人&#xff0c;跑跑代码&#xff0c;比如训练和测试代码搞得飞溜&#xff0c;但想把算法代码打包成一个软件&#xff0c;比如给它包装一个界面&#xff0c;就不会了&#xff0c;有些人会推荐用qt做界面&#xff0c;但qt的上手难度还是比较高&#xff0c;如果我…

【设计模式】结构型模式(四):组合模式、享元模式

《设计模式之结构型模式》系列&#xff0c;共包含以下文章&#xff1a; 结构型模式&#xff08;一&#xff09;&#xff1a;适配器模式、装饰器模式结构型模式&#xff08;二&#xff09;&#xff1a;代理模式结构型模式&#xff08;三&#xff09;&#xff1a;桥接模式、外观…

Scala 中 set 的实战应用 :图书管理系统

1. 创建书籍集合 首先&#xff0c;我们创建一个可变的书籍集合&#xff0c;用于存储图书馆中的书籍信息。在Scala中&#xff0c;mutable.Set可以用来创建一个可变的集合。 val books mutable.Set("朝花惜拾", "活着") 2. 添加书籍 我们可以使用操作符…

Flink安装和Flink CDC实现数据同步

一&#xff0c;Flink 和Flink CDC 1&#xff0c; Flink Apache Flink是一个框架和分布式处理引擎&#xff0c;用于对无界和有界数据流进行有状态计算。 中文文档 Apache Flink Documentation | Apache Flink 官方文档 &#xff1a;https://flink.apache.org Flink 中文社区…

有什么初学算法的书籍推荐?

对于初学算法的读者&#xff0c;以下是一些值得推荐的书籍&#xff1a; 1、算法超简单&#xff1a;趣味游戏带你轻松入门与实践 作者&#xff1a;童晶 著 推荐理由&#xff1a;本书把趣味游戏应用于算法教学&#xff0c;提升读者的学习兴趣&#xff0c;并通过可视化的图解和动…

【数据结构】堆和二叉树(2)

文章目录 前言一、建堆和堆排序1.堆排序 二、二叉树链式结构的实现1.二叉树的遍历 三、链式二叉树的功能函数1.二叉树结点个数2.二叉树叶子结点个数3.二叉树的高度4.二叉树第k层结点个数5. 二叉树查找值为x的结点6.二叉树销毁 总结 前言 接着上一篇博客&#xff0c;我们继续分…

Ubuntu24.04网络异常与应对方案记录

PS: 参加过408改卷的ZJU ghsongzju.edu.cn 开启嘲讽: 你们知道408有多简单吗&#xff0c;操作系统真实水平自己知道就行&#xff5e;&#xff5e; Requested credits of master in UWSC30&#xff0c;in ZJU24&#xff0c;domestic master is too simple dmesg dmesg 是一个用…

就是这个样的粗爆,手搓一个计算器:弧长计算器

作为程序员&#xff0c;没有合适的工具&#xff0c;就得手搓一个&#xff0c;PC端&#xff0c;移动端均可适用。废话不多说&#xff0c;直接上代码。 HTML: <div class"calculator"><label for"radius">圆的半径 (r)&#xff1a;</label&…

ServletContext介绍

文章目录 1、ServletContext对象介绍1_方法介绍2_用例分析 2、ServletContainerInitializer1_整体结构2_工作原理3_使用案例 3、Spring案例源码分析1_注册DispatcherServlet2_注册配置类3_SpringServletContainerInitializer 4_总结 ServletContext 表示上下文对象&#xff0c;…

【论文复现】MSA+抑郁症模型总结(三)

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀MSA抑郁症模型 热门研究领域&#xff1a;情感计算的横向发展1. 概述2. 论文地址3. 研究背景4. 主要贡献5. 模型结构和代码6. 数据集介绍7. 性…

使用 Umami 部署博客分析工具

Umami 简介 Umami 是一款开源且注重隐私的网站分析工具&#xff0c;可替代 Google Analytics。它提供网站流量和用户行为等见解&#xff0c;但不使用 Cookie 或收集个人数据&#xff0c;符合隐私法规。Umami 轻巧易用&#xff0c;可自行托管。 如果你有自己的博客&#xff0c;…

JAVA笔记 | ResponseBodyEmitter等异步流式接口快速学习

先简单记录下简单使用跟测试&#xff0c;后续再补充具体&#xff0c;最近有用到&#xff0c;简单来说就是后端(服务端)编写个发射器&#xff0c;实现一次请求&#xff0c;一直向前端客户端发射数据&#xff0c;直到发射器执行完毕&#xff0c;模拟ai一句一句回复的效果 Respon…