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

news2024/11/13 9:28:53

文章目录

    • 一、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
在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用Python管理环境变量

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 环境变量 📒📝 环境变量简介📝 Python 中的环境变量操作📝 获取环境变量📝 设置环境变量🔖 临时设置🔖 永久设置📝 删除环境变量📝 临时删除📝 永久删除📝 小结⚓️ 相关链接 ⚓️📖 介绍 📖 环境变量…

【国产MCU系列】-GD32F4通用GPIO操作

通用GPIO 文章目录 通用GPIO1、GD32F4的GPIO介绍2、GPIO的寄存器3、GPIO功能及配置3.1 GPIO固件库API介绍3.2 GPIO引脚配置为输出3.2 GPIO引脚配置为输入1、GD32F4的GPIO介绍 GD32F4最多可支持140个通用 I/O引脚( GPIO),分别为 PA0 ~ PA15 PB0 ~ PB15 PC0 ~ PC15 PD0 ~ PD1…

GitHub个人主页美化

效果展示 展示为静态效果&#xff0c;动态效果请查看我的GitHub页面 创建GitHub仓库 创建与GitHub用户名相同的仓库&#xff0c;当仓库名与用户名相同时&#xff0c;此仓库会被视作特殊仓库&#xff0c;其README.md&#xff08;自述文件&#xff09;会展示在GitHub个人主页…

【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0

目录 一、相关面试题 1. HTTP 与 HTTPS 有哪些区别&#xff1f; 2. HTTPS 的工作原理&#xff1f;&#xff08;https 是怎么建立连接的&#xff09; &#xff08;1&#xff09;ClientHello &#xff08;2&#xff09;SeverHello &#xff08;3&#xff09;客户端回应 &a…

视频播放相关的杂记

基于QT FFMPEG设计一款 RTMP协议推流、视频录制软件 实现的功能&#xff1a; &#xff08;1&#xff09;将摄像头视频流 麦克风音频流合并&#xff0c;并推到流媒体服务器 &#xff08;2&#xff09;将摄像头视频流 麦克风音频流保存到本地磁盘 基于QtFFMPEG设计一款RTM…

分组校验在Spring中的应用详解

目录 前言1. 什么是分组校验2. 分组校验的基本原理3. 分组校验的实现步骤3.1 定义分组接口3.2 在校验项中指定分组3.3 校验时指定要校验的分组3.4 默认分组和分组的继承 4. 分组校验的优势和适用场景4.1 优势4.2 适用场景 5. 常见问题与解决方案5.1 校验未生效5.2 无法识别默认…

交换机属性介绍-交换机持久化、交换机自动删除、备用交换机

交换机属性-持久化和自动删除 1、交换机常用属性2、交换机(Exchange)的持久化属性2.1、RabbitConfig配置类&#xff08;关键代码&#xff09;2.2、发送消息2.3、启动类2.4、application.yml配置文件2.5、pom.xml配置文件2.6、测试 3、交换机(Exchange)的自动删除属性3.1、Rabbi…

探索PyAV:Python中的多媒体处理利器

文章目录 探索PyAV&#xff1a;Python中的多媒体处理利器第一部分&#xff1a;背景介绍第二部分&#xff1a;PyAV是什么&#xff1f;第三部分&#xff1a;如何安装PyAV&#xff1f;第四部分&#xff1a;简单的库函数使用方法1. 打开文件2. 查看流3. 遍历帧4. 编码帧5. 关闭输出…

MySql中索引为什么用B+树,他有什么特点?时间复杂度是多少?能存多少数据?是不是只能三层?他与B-树有什么不同?还有其它的树你是是否知道?

平衡二叉树 平衡二叉树又被称为AVL树平衡二叉树是一颗空树或者它的左右两个子树的高度差的绝对值不超过1&#xff0c;并且左右子树也是平衡树非叶子节点值大于左子节点值而小于右子节点值非叶子节点最多拥有两个子节点 平衡二叉树的不足之处及时间复杂度 如果每次插入的数据都…

纯前端实现在线预览excel文件(插件: LuckyExcel、Luckysheet)

概述 在实际开发中&#xff0c;遇到需要在线预览各种文件的需求&#xff0c;最近遇到在线预览excel文件的需求&#xff0c;在此记录一下&#xff01;本文主要功能实现&#xff0c;用于插件 LuckyExcel &#xff0c;Luckysheet&#xff01;废话不多说&#xff0c;上代码&#xf…

关于我的编程语言——C/C++——第七篇(深入4)

&#xff08;叠甲&#xff1a;如有侵权请联系&#xff0c;内容都是自己学习的总结&#xff0c;一定不全面&#xff0c;仅当互相交流&#xff08;轻点骂&#xff09;我也只是站在巨人肩膀上的一个小卡拉米&#xff0c;已老实&#xff0c;求放过&#xff09; 什么是文件&#xf…

【深度学习遥感分割|论文解读7】UNetFormer:一种类UNet的Transformer,用于高效的遥感城市场景图像语义分割

【深度学习遥感分割|论文解读7】UNetFormer&#xff1a;一种类UNet的Transformer&#xff0c;用于高效的遥感城市场景图像语义分割 【深度学习遥感分割|论文解读7】UNetFormer&#xff1a;一种类UNet的Transformer&#xff0c;用于高效的遥感城市场景图像语义分割 文章目录 【…

wget命令之Tomcat(三)

引言 Tomcat是一个开源的Java Web应用服务器&#xff0c;实现了多个关键的Java EE规范&#xff0c;包括Servlet、JSP&#xff08;JavaServer Pages&#xff09;、JavaWebSocket等。由于Tomcat技术先进、性能稳定且免费&#xff0c;它成为了许多企业和开发者的首选Web应用服务器…

如何在Linux中使用Cron定时执行SQL任务

文章目录 前言一、方案分析二、使用步骤1.准备脚本2.crontab脚本执行 踩坑 前言 演示数据需要每天更新监控数据&#xff0c;不想手动执行&#xff0c;想到以下解决方案 navicat 创建定时任务java服务定时执行linux crontab 定时执行sql脚本 一、方案分析 我选择了第三个方案…

CISCO产品介绍

思科防火墙是由全球领先的网络解决方案提供商思科&#xff08;Cisco&#xff09;公司研发和生产的一系列网络安全设备。 思科的产品和服务涵盖了多个领域&#xff0c;包括但不限于&#xff1a; 网络硬件&#xff1a;思科的路由器和交换机是其核心产品&#xff0c;广泛应用于企…

机器学习(一)——基本概念、模型的评估与选择

目录 1 关于2 概念2.1 基础概念2.2 学习过程2.3 预测与评估2.4 标记与分类2.4.1 标记2.4.2 分类 2.5 回归分析2.6 聚类分析2.7 学习类型2.8 泛化能力2.9 统计学概念 3 模型评估与选择3.1 经验误差与过拟合3.2 评估方法3.2.1 留出法3.2.2 交叉验证法3.2.3 自助法3.2.4 调参与最终…

第三十五章 Vue路由进阶之声明式导航(跳转传参)

目录 一、引言 二、查询参数传参 2.1. 使用方式 2.2. 完整代码 2.2.1. main.js 2.2.2. App.vue 2.2.3. Search.vue 2.2.4. Home.vue 2.2.5. index.js 三、动态路由传参 3.1. 使用方式 3.2. 完整代码 3.2.1. main.js 3.2.2. App.vue 3.2.3. Search.vue 3.2.4. Hom…

通过pin_memory 优化 PyTorch 数据加载和传输:工作原理、使用场景与性能分析

在 PyTorch 框架中,有一个看似简单的设置可以对模型性能产生重大影响: pin_memory。这个设置具体起到了什么作用,为什么需要关注它呢?如果你正在处理大规模数据集、实时推理或复杂的多 GPU 训练任务,将 pin_memory设为 True可以提高 CPU 与 GPU 之间的数据传输速度,有可能节…

博达S3956交换机批量配置接口导致设备重启

文章目录 现象厂家查看信息如下解决方法 现象 设备信息 交换机型号&#xff1a;博达S3956版本&#xff1a;2.2.0F Build 101150ROM版本&#xff1a;0.1.8 配置命令 interface range GigaEthernet0/1-40switchport pvid 10设备重启&#xff0c;配置未生效&#xff08;批量配置…

【Linux】Ansible集中化运维工具(详解)安装、常用模块、playbook脚本

文章目录 一、Ansible安装及远程控制1、关闭防火墙和SELinux2、安装ansible3、配置SSH无密码登录1、在管理机上生成一对密钥2、将公钥下发到远程主机3、保管密钥 4、主机目录 二、常用模块1、setup模块2、copy模块3、file模块4、shell模块5、script模块6、ping模块7、group模块…