linux基础:3.linux基础环境开发工具和配置。

news2024/11/24 7:50:37

linux基础环境开发工具和配置

    • 一.学习yum工具进行软件安装:
      • 1.什么是yum:
      • 2.查看软件包:
      • 3.安装和删除:
      • 4.yum生态:
    • 二.vim的使用:
      • 一.快速介绍一下vim
      • 二.vim正常模式:
      • 2-1:命令模式
        • 1.光标移动:
        • 2.删除文字
        • 3.复制:
        • 4.替换:
      • 2-2:底行模式
    • 三.vim编辑器配置:
        • 1.配置文件的位置:
    • 四:编译原理+gcc和g++的使用:
      • 1.gcc 和 g++ 快速使用:
      • 2.生成可执行程序的过程:
        • 1,预编译(预处理):
        • 2.编译
        • 3.汇编
        • 4.链接:
      • 3.动静态库:
        • 1.库的意义:
        • 2.动态库:
        • 3.静态库:
        • 4.总结:
    • 五:make和Makefile linux下的项目自动化构建工具:
      • 1.快速使用:
      • 2.理解依赖关系和依赖方法:
      • 3.内容补充:
        • 1.连续多次使用make
        • 2.伪目标:
        • 3.符号替代-->标准
    • 六:linux下的一个小程序:进度条
      • 1.准备知识:
      • 2.倒计时:
      • 3.简单的进度条!
        • 1.新建文件夹,创建文件:
        • 2.对文件进行简单内容的编辑:
        • 3.去写Makefile文件进行简单测试!
        • 4.进度条版本1:
        • 4.进度条版本2:随机下载量:
        • 5.色块进度条!
    • 七:git的使用:
      • 1.在gitee创建仓库!
      • 2.克隆远程仓库到本地:
      • 3.文件添加到克隆目录下:
      • 4.画图说明--->

一.学习yum工具进行软件安装:

1.什么是yum:

在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.

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

2.查看软件包:

我们可以通过==yum list ==命令进行软件包的查找但是软件包是非常多的,这个时候我们需要使用grep进行软件包的筛选!

yum list | grep (需要查找的软件包)
请添加图片描述

在这里插入图片描述

3.安装和删除:

安装:

yum install -y 软件名称

删除:

yum remove -y 软件名称

注意:
1.安装软件必须在有网络的情况下进行(服务器或者虚拟机)ping www.biduo.com 进行检测。
2.因为安装软件的操作是需要在根目录下进行操作,所以使用命令进行软件安装的时候需要是root或者sudo进行root提权。
3.yum安装软件只能一个一个进行有顺序的,不能一个软件正在安装又去安装下一个软件。

4.yum生态:

请添加图片描述

1.yum如何得知目标服务器的地址和下载链接,通过开发者提供的:软件工具。
2.在一个大环境下面:
2-1:(在一个大社区下面)有人发出问题就有人解决问题。谁获取到了利益?使用相同环境的开发者获取到了利益。
2-2:在一个社区下面进行软件的编写会使社区越来越好。

补充:
请添加图片描述

二.vim的使用:

一.快速介绍一下vim

1.打开一个vim默认进入一个命令模式:
2.输入I切换成插入模式:
3.shift+:切换成行底模式。
4.按下ESC进入命令模式:

二.vim正常模式:

vim正常模式包括有命令模式,插入模式,底行模式。
补充:在vim模式下不能直接进行服务器的退出,这个时候文件没有保存退出,下一次进入的时候在相同目录下会有一个文件名.swap

请添加图片描述

2-1:命令模式

1.光标移动:

vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格

按「G」:移动到文章的最后
按「 $ 」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”

按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l

按[gg]:进入到文本开始
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页

2.删除文字

「x」:每按一次,删除光标所在位置的一个字符
「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
「dd」:删除光标所在行
「#dd」:从光标所在行开始删除#行

n+dd 剪切n行,n+p 粘贴n行。

3.复制:

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完
成复制与粘贴功能。

4.替换:

shift+~ :在命令模式下光标位置的快速切换大小写
r+需要替换的字符 可以把光标位置进行替换
shift+r --》R 进入替换模式在这个模式下可以直接在光标下进行输入替换。

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
「ctrl + r」: 撤销的恢复

更改
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字跳至指定的行
「ctrl」+「g」列出光标所在行的行号。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

2-2:底行模式

w :文件保存
q:文件退出
一般可以正常退出如果退出不了可以加一个!进行强制退出。
1.wq :文件保存并且退出
2.set nu 列出行号
3. :(冒号) + 行号 跳到该行!
4./+(寻找的字符) 按n向后继续寻找!
5.?+(寻找的字符) 按n向前继续寻找!
6.使用vim打开其他的文件:vs + 文件名称

三.vim编辑器配置:

1.配置文件的位置:

在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
==而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,
通常已经存在一个.vimrc文件,如果不存在,则创建之。==切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~打开自己目录下的.vimrc文件,执行 vim .vimrc

四:编译原理+gcc和g++的使用:

1.gcc 和 g++ 快速使用:

1.gcc 【选项】要进行处理的文件 【选项】生成的文件
2.一般来说第二个选项都是-o (-o需要紧跟目标文件)

2.生成可执行程序的过程:

1,预编译(预处理):

1.命令 gcc -E text.c -o text.i
2.主要内容:
2-1:注释的去除,宏替换,条件编译,头文件的包含。
请添加图片描述

2.编译

1.命令:gcc -S text.i -o text.s(汇编代码)
2.主要内容:
2-1:语法分析,语意分析,词法分析,符号汇总。
请添加图片描述
请添加图片描述

3.汇编

1.命令:gcc -C text.s -o text.o
2.把汇编代码转换为机器可以识别的二进制文件!

请添加图片描述

4.链接:

1.上面的三个过程可以统称为编译阶段。
2.主要命令 gcc text.o -o text
3.进入链接的过程
3-1:主要有动静态库两种!

3.动静态库:

1.库的意义:

1.提高了编写代码的效率,减少了重复冗余的工作。
2.有动态库和静态库!

2.动态库:

1.一般gcc进行编译链接使用的都是动态链接,通过保存一个地址通过地址找到这个方法去解决问题。
2.优点:
节省空间,不会出现重复代码。
3.缺点:
对动态库比较依赖,并且找到方法和回来的过程需要时间的!

4.使用动态链接:
gcc text.c -o text

3.静态库:

1.一般gcc需要通过不同的命令使用静态链接,直接拷贝一份大的库文件来进行本地的使用!

2.优点:
不依赖库,节省时间,同类型的平台可以直接使用。

3.缺点:
文件的占用的空间比较大,容易产生重复代码的使用浪费空间!

4.使用静态链接需要一个前提安装静态库:

centos7 下安装c/c++静态库命令:

yum install -y glibc -static C语言
yum install -y libstdc++ -static C++

5.使用静态链接:

命令:gcc text.c -o text -static

4.总结:

1.file + 可执行文件
查看动静态依赖!
请添加图片描述
2.ldd + 可执行文件
可以查看依赖库的情况!
请添加图片描述

文件后缀:
请添加图片描述

五:make和Makefile linux下的项目自动化构建工具:

1.快速使用:

1.构建一个Makefile/makefile : 必须是这两个文件名称
2.vim 打开 Makefile/makefile 文件进行配置:
3.配置文件格式:
目标文件:依赖文件
[Tab] 依赖文件生成目标文件方法

  1. make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。
    请添加图片描述

2.理解依赖关系和依赖方法:

请添加图片描述

1.依赖具有递归性:

请添加图片描述
请添加图片描述

3.内容补充:

1.连续多次使用make

请添加图片描述

提示产生的maybin已经是最新的了!
使用stat + 文件 可以查看文件的详细信息:
Access : 创建时间
Modify : 内容修改时间
Change:属性修改时间:
touch 已经存在的文件修改文件的ACM时间都改为当前时间!

补充:内容修改------>影响到属性修改时间------>内容修改导致大小改变,大小是属性的范围。

在这里插入图片描述

连续多次的使用mak命令会去检测依赖文件和目标文件的时间如果目标文件的时间要晚于依赖文件那么就说明再一次生成目标文件没有修改。如果依赖文件的时间晚于目标文件说明依赖文件改变需要生成新的目标文件并且覆盖原来的目标文件!

2.伪目标:

本身是一个虚假伪造的目标,这个伪目标不希望生成什么文件或者东西的。伪目标只想要执行依赖方法。一般伪目标会声明在不需要生成目标文件的只需要执行依赖方法的操作之前并且伪目标的出现防止Makefile中的目标文件和工作目录下的名字冲突提高了执行Makefile的效率!
请添加图片描述

3.符号替代–>标准

1.依赖文件和依赖目标的符号替换:
$@ ---->替代目标文件
$^ ------>替代依赖文件
2.应该在依赖方法中使用这两个字符!

请添加图片描述
请添加图片描述

2.依赖方法中或者说全局的符号替换:

在Makefile文件开头进行声明
1.把想要替换为的字符(字符串) = 原来应该写的字符(字符串)
2.使用替换字符需要:$(替换字符) 这样的使用格式!
在这里插入图片描述

六:linux下的一个小程序:进度条

1.准备知识:

1.标准输出流:使用printf如果 “” 末尾使用\n字符意思是将标准输出流中的内容打印到当前光标的所在行并且移动到下一行的行首。
2.我们键盘上的按键:enter 包括了回车+换行的功能。
3.回车:\r 光标回到当前行的开头。作为printf的字符串末尾不会把标准输出中的内容打印到屏幕上的需要使用函数fflush()函数进行对应标准输出流的刷新!
4.换行一般和回车同时使用组成了键盘上的enter,老式的键盘的形状也可以说明这样的一个概念!

请添加图片描述

2.倒计时:

1.使用usleep函数:控制程序休眠时间()中的时间单位是微秒!
2.1s = 1000ms 1ms = 1000 vs
3.头文件是:unistd.h

请添加图片描述

3.简单的进度条!

1.新建文件夹,创建文件:

请添加图片描述

2.对文件进行简单内容的编辑:

请添加图片描述

3.去写Makefile文件进行简单测试!

请添加图片描述
在这里插入图片描述

4.进度条版本1:
  9 void version_1()
 10 {
 		//1.保存符号的数组!
 11     char buffer[103];
 12     memset(buffer,'\0',sizeof(buffer));
 13 	//2.开头保存一个>头用来指方向!
 14     int count=0;
 15     buffer[0]=head;
 16 	//2.循环打印进度条每次打印结束都把光标回到开头!
 17     while(count<=100)
 18     {
 19         printf("[%-100s] [%d%%] []\r",buffer,count);
 20         fflush(stdout);
 21         buffer[count]=mov;
 22         count++;
 23         buffer[count]=head;
 24 		//控制= 和 > 位置放置!
 25         if(count==100)
 26         {
 27             buffer[count]=mov;
 28         }
 29         usleep(50000);
 30     }
 31 }   
4.进度条版本2:随机下载量:

在这里插入图片描述
在这里插入图片描述
请添加图片描述

5.色块进度条!

在这里插入图片描述

和进度条改变的部分!
在这里插入图片描述

效果图展示!
请添加图片描述

七:git的使用:

1.在gitee创建仓库!

请添加图片描述

2.克隆远程仓库到本地:

在这里插入图片描述
命令:git clone 【url】(远程仓库地址!)

在这里插入图片描述

3.文件添加到克隆目录下:

在这里插入图片描述

4.画图说明—>

处于远程拷贝的目录下面!

请添加图片描述
请添加图片描述

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

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

相关文章

HarmonyOS应用开发-ArkTS基础知识

作者&#xff1a;杨亮Jerry 作为多年的大前端程序开发工作者&#xff0c;就目前的形式&#xff0c;个人浅见&#xff0c;在未来3-5年&#xff0c;移动端依旧是Android系统和iOS系统的天下。不过基于鸿蒙系统的应用开发还是值得我们去花点时间去了解下的&#xff0c;阅读并实践官…

一杯子三变:揭秘vue单页应用(spa)与内容动态加载的奥秘

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一、什…

找不到x3daudio1_7.dll怎么办?五种解决方法帮你解决x3daudio1_7.dll问题

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“X3DAudio1_7.dll丢失”。这个错误通常会导致音频播放异常或无法正常工作。为了解决这个问题&#xff0c;本文将介绍5种修复X3DAudio1_7.dll丢失的方法&#xff0c;帮助大家快速恢复X3DAudi…

Redis的三种特殊数据类型

文章目录 一、Redis geospatial 地理位置二、Redis Hyperloglog 基数统计的算法三、Redis Bitmaps 位存储&#xff08;0、1&#xff09;总结 一、Redis geospatial 地理位置 1.geoadd&#xff1a;将指定的地理空间位置&#xff08;纬度、经度、名称&#xff09;添加到指定的ke…

vue中 process.env 对象为空对象问题

问题&#xff1a;今天在处理vue项目环境问题的时候&#xff0c;发现直接打印 process 对象和打印 process.env 时 env 对象输出结果是不一样的&#xff0c;如下图所示&#xff1a; 在网上搜索了一番后发现还是有挺多朋友对此感到疑惑的&#xff0c;询问了同事&#xff0c;同…

VINS-Mono-后端优化 (一:预积分残差计算-IMU预积分约束)

这里先回顾一下预积分是怎么来的 VINS-Mono-IMU预积分 &#xff08;三&#xff1a;为什么要预积分预积分推导&#xff09; 这里贴出预积分的公式 具体含义解释看对对应的文章 整个误差函数如下 预积分 α \alpha α β \beta β γ \gamma γ 是用 IMU 预积分获得的增量&a…

Xtrabackup将本地数据迁移上云

本机和云端服务器安装xtrabackup #为了防止每次yum操作都会自动更新&#xff0c;卸载这个软件 yum -y remove mysql57-community-release-el7-10.noarch#下载XtraBackup yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm#激活该yum仓库 percon…

vue使用Echarts5实现词云图

先上官网 词云图有些特殊&#xff0c;它属于Echarts 的扩展&#xff0c;需要额外安装Echarts-wordcloud包。 Echarts 官网 Echarts-wordcloud 词云图官网 先安装 npm install echarts-wordcloud npm install echarts echarts-wordcloud再引入 echarts选一个引入就行&#xff…

Unity 利用UGUI制作圆形进度条

在Unity中使用Image和Text组件就可以制作简单的进度条。 1、首先准备好一张环状的PNG图&#xff0c;如下图。 2、把该图导入Unity中并转换成精灵。 3、在场景中创建Image和Text组件&#xff0c;并把上图中的精灵拖到Image的Source Image中&#xff0c;其中Image组件中的Image …

出口美国操作要点汇总│走美国海运拼箱的注意事项│箱讯科技

01服务标准 美国的货物需要细致的服务&#xff0c;货物到港后的服务也是非常重要的。如果在货物到港15天内&#xff0c;如果没有报关行进行(PROCEED)&#xff0c;货物就会进入了G.O.仓库&#xff0c;G.O.仓库的收费标准是非常高的。 02代理资格审核 美国航线除了各家船公司&a…

ORA-00257: Archiver error. Connect AS SYSDBA only until resolved错误解决

错误的原因&#xff1a;是因为服务器分配空间不足&#xff0c;数据库归档日志满导致系统数据库登陆失败。 解决办法&#xff1a;1.删除以前的日志 2.增大归档日志的容量 3.关闭归档模式 一、删除以前的容量 1.登录账号后&#xff0c;查看ORACLE_BASE目录 【oraclelocalhost~】$…

搅拌站远程控制系统 | 集中生产 集中调度 集中控制

上海思伟远程控制 集中生产 集中调度 集中管理 安全 整洁 高效 稳定生产 超距离远程控制 无延迟流畅生产 支持一人控制两条生产线 单机双机灵活切换 年省人力成本数十万 绿色生产 远程控制并未降低生产效率 没了噪音&#xff0c;操控更舒适 信息化与自动化的完美结…

若依框架升级(对若依框架进行了升级,升级为Mybatis-plus)

ruoyi-plus: 对若依进行了升级Mybatis-plus版https://gitee.com/xiao--yan/ruoyi-plus.git

11-08 周三 图解机器学习之实现逻辑异或,理解输出层误差和隐藏层误差项和动量因子

11-08 周三 图解机器学习之实现逻辑异或&#xff0c;理解输出层误差和隐藏层误差项 时间版本修改人描述2023年11月8日14:36:36V0.1宋全恒新建文档 简介 最近笔者完成了《图解机器学习》这本书的阅读&#xff0c;由于最近深度学习网络大行其是&#xff0c;所以也想要好好的弄清…

Windows环境下编译OLLVM源码(VS2022)

windows环境下编译OLLVM 13.x VisualStudio配置下载OLLVM13.xollvm的使用 网上关于windows环境编译ollvm信息比较杂乱&#xff0c;在此编译成功的基础上做一下总结&#xff01; VisualStudio配置 1&#xff0c;正常配置C桌面环境 2&#xff0c;在单个组件中选择用于Windows得C…

Go基础知识全面总结

文章目录 go基本数据类型bool类型数值型字符字符串 数据类型的转换运算符和表达式1. 算数运算符2.关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 其他运算符运算符优先级转义符 go基本数据类型 bool类型 布尔型的值只可以是常量 true 或者 false。⼀个简单的例⼦&#…

Windows系统C++语言环境下通过SDK进行动作捕捉数据传输

NOKOV度量动作捕捉系统可以与市面上主流的操作系统和编程语言实现通信。可以在Windows系统C语言环境下通过SDK进行动作捕捉数据传输。 一、形影软件设置 1、实时模式和后处理模式都可以通过SDK传输数据。以后处理模式为例。将模式切换到后处理模式 2、加载一个刚体数据 3、打…

2.7V 到 5.5V、串行输入、电压输出、16 位数模转换器MS5541/MS5542

MS5541/MS5542 是一款单通道、 16 位、串行输入、电压 输出的数模转换器&#xff0c;采用 2.7V 至 5.5V 单电源供电&#xff0c;输出范围 为 0V 至 V REF 。在输出范围内保证单调性&#xff0c;在温度范围为 -40 C 至 85 C 能够提供 1LSB INL 的 14 位精度。…

2023年重水(氧化氘)市场规模:现状及未来发展趋

重水是水的一种&#xff0c;又称氘化水&#xff0c;它的摩尔质量比一般水要重。普通的水是由两个只具有质子的氢原子和一个氧16原子所组成&#xff0c;但在重水分子内的两个氢同位素氘&#xff0c;比一般氢原子有各多一个中子&#xff0c;因此造成重水分子的质量比一般水要重。…