【Linux】基础开发工具(1)

1. 软件包管理器

1.1 什么是软件包

在Linux下安装软件, ⼀个常用的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
但是这样太麻烦了, 于是有些人把⼀些常⽤的软件提前编译好, 做成软件包(可以理解成windows上
的安装程序)放在⼀个服务器上, 通过包管理器可以很⽅便的获取到这个编译好的软件包, 直接进行安装.
软件包和软件包管理器, 就好比 "App" 和 "应⽤商店" 这样的关系.
yum(Yellow dog Updater, Modified)是Linux下⾮常常⽤的⼀种包管理器. 主要应⽤在Fedora,
RedHat, Centos等发行版上.
Ubuntu:主要使⽤apt(Advanced Package Tool)作为其包管理器。apt同样提供了⾃动解决依
赖关系、下载和安装软件包的功能。

1.2 国内镜像

由于许多官方软件源服务器位于国外,国内用户直接访问可能会因网络距离和网络拥塞等问题,导致下载速度缓慢。而国内镜像源服务器部署在国内,能极大缩短网络传输距离。比如,国内开发者从国外官方源下载 Linux 发行版(如 Ubuntu、CentOS)的安装包或更新包,速度可能只有几十 KB 每秒 ,但使用国内阿里云、清华大学等镜像源,下载速度能提升到几 MB 甚至几十 MB 每秒。
以下是一些常见的国内镜像源:
  • CentOS 国内镜像源
    • 阿里云源1:centos安装包下载_开源镜像站-阿里云
    • 清华大学源7:http://linux.tuna.tsinghua.edu.cn/centos/
    • 网易源1:Index of /centos/
    • 中科大源7:http://mirrors.ustc.edu.cn/centos/
    • 搜狐源1:Index of /centos/
    • 腾讯云源7:Index of /centos/
    • 华为云源7:https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
    • 北京理工大学源6:http://mirror.bit.edu.cn/centos/
    • 大连东软信息学院源1:http://mirrors.neusoft.edu.cn/centos/
    • 兰州大学源1:404 Not Found
  • Ubuntu 国内镜像源
    • 阿里云源5:ubuntu安装包下载_开源镜像站-阿里云
    • 清华大学源5:Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
    • 中科大源5:Index of /ubuntu/
    • 网易源6:Index of /ubuntu-releases/
    • 华为云源5:https://mirrors.huaweicloud.com/ubuntu/
    • 北京理工大学源6:http://mirror.bit.edu.cn/ubuntu-releases/
    • 浙江大学源6:Index of /ubuntu-releases/

 1.3 yum具体操作

1.3.1 查看软件安装包

通过 yum list 命令可以罗列出当前⼀共有哪些软件包. 由于包的数目可能非常之多, 这里我们需要使用grep 命令只筛选出我们关注的包. 例如:
yum list | grep lrzsz

查找 lrzsz 软件包(一个用于文件传输的工具)

注意事项

软件包名称: 主版本号.次版本号.源程序发行号-软件包的发⾏号.主机平台.cpu架构.
"x86_64" 后缀表⽰64位系统的安装包, "i686" 后缀表⽰32位系统安装包. 选择包时要和系统匹配.
"el7" 表示操作系统发行版的版本. "el7" 表表示的是 centos7/redhat7. "el6" 表⽰ centos6/redhat6.
最后⼀列, base 表⽰的是 "软件源" 的名称, 类似于 "⼩⽶应⽤商店", "华为应⽤商店" 这样的概念.
Ubuntu 有上述有详细介绍

1.3.2 安装软件

通过 yum, 我们可以通过很简单的⼀条命令完成 gcc 的安装
# Centos
$ sudo yum install -y lrzsz# Ubuntu
$ sudo apt install -y lrzsz
yum/apt 会自动找到都有哪些软件包需要下载, 这时候敲 "y" 确认安装.
出现 "complete" 字样或者中间未出现报错, 说明安装完成.
注意事项:
安装软件时由于需要向系统⽬录中写⼊内容, ⼀般需要 sudo 或者切到 root 账⼾下才能完成.
yum/apt安装软件只能⼀个装完了再装另⼀个. 正在yum/apt安装⼀个软件的过程中, 如果再尝试用
yum/apt安装另外⼀个软件, yum/apt会报错.
如果 yum / apt报错, 请自行百度.

1.3.3 卸载软件

# Centos
sudo yum remove [-y] lrzsz# Ubuntu
sudo apt remove [-y] lrzsz

2. 编辑器vim

进⼊vim,在系统提⽰符号输⼊vim及⽂件名称后,就进⼊vim全屏幕编辑画⾯:
$ vim test.c
不过有⼀点要特别注意,就是你进⼊vim之后,是处于[正常模式],你要切换到[插⼊模式]才能够
输⼊⽂字。
[正常模式]切换⾄[插⼊模式]
输⼊a
输⼊i
输⼊o
[插⼊模式]切换⾄[正常模式]
⽬前处于[插⼊模式],就只能⼀直输⼊⽂字,如果发现输错了字,想⽤光标键往回移动,将该字删
除,可以先按⼀下「ESC」键转到[正常模式]再删除⽂字。当然,也可以直接删除。
[正常模式]切换⾄[末⾏模式]
「shift + ;」, 其实就是输⼊「:」
退出vim及保存⽂件,在[正常模式]下,按⼀下「:」冒号键进⼊「Last line mode」,例如:
: w (保存当前⽂件)
: wq (输⼊「wq」,存盘并退出vim)
: q! (输⼊q!,不存盘强制退出vim)

2-4 vim正常模式命令集

插⼊模式

按「i」切换进⼊插⼊模式「insert mode」,按“i”进⼊插⼊模式后是从光标当前位置开始输⼊
⽂件;
按「a」进⼊插⼊模式后,是从⽬前光标所在位置的下⼀个位置开始输⼊⽂字;
按「o」进⼊插⼊模式后,是插⼊新的⼀⾏,从⾏⾸开始输⼊⽂字。
从插⼊模式切换为命令模式
按「ESC」键。

移动光标

vim可以直接⽤键盘上的光标来上下左右移动,但正规的vim是⽤⼩写英⽂字⺟「h」、「j」、
「k」、「l」,分别控制光标左、下、上、右移⼀格
按「G」:移动到⽂章的最后
按「 $ 」:移动到光标所在⾏的“⾏尾”
按「^」:移动到光标所在⾏的“⾏⾸”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该⾏的第#个位置,如:5l,56l
按[gg]:进⼊到⽂本开始
按[shift+g]:进⼊⽂本末端
按「ctrl」+「b」:屏幕往“后”移动⼀⻚
按「ctrl」+「f」:屏幕往“前”移动⼀⻚
按「ctrl」+「u」:屏幕往“后”移动半⻚
按「ctrl」+「d」:屏幕往“前”移动半⻚

删除文字

「x」:每按⼀次,删除光标所在位置的⼀个字符
「#x」:例如,「6x」表⽰删除光标所在位置的“后⾯(包含⾃⼰在内)”6个字符
「X」:⼤写的X,每按⼀次,删除光标所在位置的“前⾯”⼀个字符
「#X」:例如,「20X」表⽰删除光标所在位置的“前⾯”20个字符
「dd」:删除光标所在⾏
「#dd」:从光标所在⾏开始删除#⾏

复制

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

替换

「r」:替换光标所在处的字符。
「R」:替换光标所到之处的字符,直到按下「ESC」键为⽌。

撤销上⼀次操作

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

更改


「cw」:更改光标所在处的字到字尾处

「c#w」:例如,「c3w」表⽰更改3个字

跳至指定的行

「ctrl」+「g」列出光标所在⾏的⾏号。
「#G」:例如,「15G」,表⽰移动光标⾄⽂章的第15⾏⾸。

批量注释

ctrl + v进入视图模式,然后按h(左)、j(下)、k(上)、l(右)选择区域(注意:按箭头键没用)。
选择完后按SHFT + i ,输入 //
最后按esc就完成批量注释了

vim的配置

配置⽂件的位置
在目录 /etc/ 下⾯,有个名为vimrc的⽂件,这是系统中公共的vim配置⽂件,对所有⽤⼾都有
效。
⽽在每个⽤⼾的主⽬录下,都可以⾃⼰建⽴私有的配置⽂件,命名为:“.vimrc”。例如,/root
⽬录下,通常已经存在⼀个.vimrc⽂件,如果不存在,则创建之。vim会在家目录下搜索.vimrc的配置文件,如果有就会读取.vimrc的配置信息进行配置,没有就使用默认的配置项。
切换⽤⼾成为⾃⼰执⾏ su ,进⼊⾃⼰的主⼯作⽬录,执⾏ cd ~
打开⾃⼰⽬录下的.vimrc⽂件,执⾏ vim .vimrc
常用配置选项,用来测试
设置语法⾼亮: syntax on
显⽰⾏号: set nu
设置缩进的空格数为4: set shiftwidth=4

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

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

相关文章

蓝桥杯51单片机设计

#超声波原理# ①超声波测距原理:声波反射原理 声波分类: 超声波测距原理 超声波频率越高,波长越短,反身性越强,衍射性越弱 ②超声波模块原理 发射原理 跳线帽 接收原理 问题: 1.超声波发射模块需…

【LeetCode 热题 100】240. 搜索二维矩阵 II——排除法

Problem: 240. 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 文章目录 整体思路完整代码时空复杂度时间复杂度:O(M N)空间复…

Android Input 系列专题【inputflinger事件的读取与分发】

Android输入系统在native中的核心工作就是,从Linux驱动设备节点中读取事件,然后将这个事件进行分发,这两项工作分别交给了InputReader和InputDispatcher来做。 他们的源码都属于native层inputflinger里面的一部分,如下架构&#…

【大模型LLM】GPU计算效率评估指标与优化方法:吞吐率

GPU计算效率评估指标与优化方法:吞吐率 一、核心效率指标二、大模型吞吐率(Large Model Throughput)三、关键性能瓶颈分析四、实际测量工具五、优化策略总结 一、核心效率指标 吞吐率(Throughput) 定义:单位…

Nestjs框架: 集成 Prisma

概述 在 NestJS 的官方文档中,有两处对数据库进行了介绍 第一处位于左侧“Techniques(技术)”部分下的“数据库”板块,中文文档里同样有这个位置。 Database 第二处是下面的“Recipes (秘籍)”板块,这里有多个部分都与…

CppCon 2018 学习:What Do We Mean When We Say Nothing At All?

提供的内容深入探讨了C编程中的一些关键概念,特别是如何编写清晰、易维护的代码,并展示了一些C17的新特性。我将对这些内容做中文的解释和总结。 1. 良好的代码设计原则 什么是“良好的代码”? 能工作:代码实现了预期功能。能在…

C语言中的输入输出函数:构建程序交互的基石

在C语言的世界里,输入输出(I/O)操作是程序与用户或外部数据源进行交互的基本方式。无论是从键盘接收用户输入,还是将处理结果显示到屏幕上,亦或是读写文件,都离不开C语言提供的输入输出函数。本文将深入探讨…

高速信号眼图

横轴体系时域的抖动大小;纵轴体现电压的噪声。 噪声越大,眼高越小。 抖动越大,眼宽越窄。 眼图的模板是定义好的最大jitter和噪声的模板范围。就是信号的不可触碰区域。信号波形不能够触碰到模板或者进行模板中。也就是眼图中的线轨迹要在眼…

VisualSVN Server 禁止的特殊符号 导致的。具体分析如下:错误提示解读

是由于 文件夹名称中包含了 VisualSVN Server 禁止的特殊符号 导致的。具体分析如下&#xff1a; 错误提示解读 错误信息明确说明&#xff1a; Folder name cannot contain following symbols < > : " / | and start or end by period. 即 文件夹名称不能包含以下…

再见,WebSecurityConfigurerAdapter!你好,SecurityFilterChain

对于许多经验丰富的 Spring开发者来说&#xff0c;WebSecurityConfigurerAdapter 是一个再熟悉不过的名字。在很长一段时间里&#xff0c;它几乎是所有 Spring Security 配置的起点和核心。然而&#xff0c;随着 Spring Boot 3.x 和 Spring Security 6.x 的普及&#xff0c;这个…

web前端面试-- MVC、MVP、MVVM 架构模式对比

MVC、MVP、MVVM 架构模式对比 基本概念 这三种都是用于分离用户界面(UI)与业务逻辑的架构模式&#xff0c;旨在提高代码的可维护性、可测试性和可扩展性。 1. MVC (Model-View-Controller) 核心结构&#xff1a; Model&#xff1a;数据模型和业务逻辑View&#xff1a;用户界面展…

【C#】MVVM知识点汇总-2

在C#中实现MVVM&#xff08;Model-View-ViewModel&#xff09;架构时&#xff0c;可以总结以下几个关键知识点&#xff0c;并通过具体的代码示例来进行说明。 1. 模型 (Model) 模型包含应用程序中的数据和业务逻辑。通常与数据库交互。 public class User { public int Id {…

一文了解PMI、CSPM、软考、、IPMA、PeopleCert和华为项目管理认证

1 引言 常见的项目管理方面的认证有PMI、IPMA、PeopleCert、CSPM、软考和华为项目管理认证6个认证。本篇文章让你一文了解各认证的基本主要内容。 2 核心定位 目前全球范围内最具影响力的六大认证体系各有特色&#xff0c;源于不同的管理哲学和实践背景。六大认证体系的核心…

bean注入的过程中,Property of ‘java.util.ArrayList‘ type cannot be injected by ‘List‘

一、问题 在spring实践bean注入ArrayList属性的时候报错&#xff1a;Property of ‘java.util.ArrayList’ type cannot be injected by ‘List’二、原因分析 在尝试将 Spring 配置中的 注入到一个 ArrayList 类型的属性时出现了类型不匹配问题。核心问题在于&#xff1a;Spr…

自注意力机制原理: 向量矩阵案例进行说明

自注意力机制原理: 向量矩阵案例进行说明 目录 自注意力机制原理: 向量矩阵案例进行说明一个单词和所有单词进行乘法运算,提取特征一、场景设定:翻译句子“我喜欢深度学习”二、向量矩阵构建:以“我”为例计算自注意力三、矩阵视角:批量计算整个序列的自注意力四、向量矩…

D3 面试题100道之(61-80)

这里是D3的面试题,我们从第 61~80题 开始逐条解答。一共100道,陆续发布中。 🟨 面试题(第 61~80 题) 61. D3 中如何绘制饼图? 使用 d3.pie() 生成角度数据,再结合 d3.arc() 创建路径。 示例: const data = [10, 20, 30

flutter更改第三方库pub get的缓存目录;更改.gradle文件夹存放目录

1.在目标目录中新建文件夹flutter_pub_cache 2.在“用户变量“或“系统变量”中点击“新建” 变量名: PUB_CACHE 变量值: D:\flutter_pub_cache 3.打开新的终端运行或者从Android studio 控制台运行&#xff1a;flutter pub cache repair或者flutter pub clean pub读取新的变…

《Redis》哨兵模式

文章目录 为什么要有哨兵模式呢&#xff1f;哨兵自动恢复故障主节点使用docker搭建分布式系统查看哨兵节点工作哨兵选举新的主节点的流程 总结 为什么要有哨兵模式呢&#xff1f; 主从复制的问题 Redis 的主从复制模式可以将主节点的数据改变同步给从节点&#xff0c;这样从节…

零基础保姆级本地化部署文心大模型4.5开源系列

近两年随着大模型的迅猛崛起&#xff0c;吸引了各行各业的广泛关注&#xff0c;更对我们的工作方式与生活产生着显著积极影响。在这样一个技术范式转换的关键节点&#xff0c;百度文心大模型开源事件无疑具有里程碑意义——它不仅为中国自主研发的AI技术底座打开了通向世界的大…

【笔记】PyCharm 2025.2 EAP 创建 Poetry 和 Hatch 环境的踩坑实录与反馈

https://youtrack.jetbrains.com/issue/PY-82407/Incorrect-Python-Version-and-Virtual-Environment-Path-When-Creating-Poetry-and-Hatch-Environments-via-GUI-in-PyCharm-2025.2-EAP 在 Python 开发的道路上&#xff0c;PyCharm 一直是我们信赖的开发利器。然而&#xff0…