论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
运维.售后
›
运维.售后
›
全面掌握APT、Vim和GCC:Ubuntu软件管理与开发指南 ...
全面掌握APT、Vim和GCC:Ubuntu软件管理与开发指南
万万哇
金牌会员
|
2024-12-24 06:16:19
|
显示全部楼层
|
阅读模式
楼主
主题
776
|
帖子
776
|
积分
2328
Ubuntu 软件包管理器
在 **Ubuntu** 体系中,
软件包管理器
用于安装、更新、删除和管理软件包。Ubuntu 主要利用
APT(Advanced Package Tool)
作为软件包管理体系,并提供了多种工具和命令来简化软件管理。
Ubuntu 软件包管理的基本概念
软件包(Package)
软件包是包含步调文件、元数据和依赖信息的压缩文件。
Ubuntu 利用
DEB(Debian Package)
格式的包。
堆栈(Repository)
Ubuntu 的软件包存储在官方的在线堆栈中,也支持第三方堆栈(PPA)。
堆栈的地点保存在 /etc/apt/sources.list 文件中。
常用的软件包管理器APT
Ubuntu 的主要软件包管理工具,基于命令行。管理 .deb 格式的软件包,自动处理依赖关系。
APT常用命令
1.更新堆栈
sudo apt update
复制代码
更新软件包的缓存列表,检查是否有可用的更新。
2.升级体系
sudo apt upgrade
复制代码
升级已安装的软件包。
sudo apt full-upgrade
复制代码
升级所有软件包,包含删除旧包和安装新依赖。
3.安装软件包
sudo apt install package_name
复制代码
安装指定软件包(如 vim、curl 等)。
4.删除软件包
sudo apt remove package_name
复制代码
删除软件包及其设置文件。
sudo apt purge package_name
复制代码
删除软件包及其设置文件。
5.搜索软件包
apt search package_name
复制代码
搜索包含指定关键字的软件包。
6.表现包信息
apt show package_name
复制代码
查看指定包的详细信息。
7.清理缓存
sudo apt autoremove
复制代码
删除不再须要的依赖包。
sudo apt clean
复制代码
清空下载的缓存文件。
vim
Vim(Vi IMproved)是一种功能强大的文本编辑器,是经典编辑器 Vi 的加强版本,广泛应用于步调开发、体系设置等领域。它以高效的键盘操作、灵活的设置和强大的扩展本事著称,被称为“编辑器之神”。
Vim 的基本概念
Vim 的特点
多模式编辑
:
普通模式
:浏览、移动光标、复制、粘贴、删除等操作。
插入模式
:插入文本。
命令模式
:执行保存、退出、更换等命令。
可视模式
:选择文本块,举行批量操作。
高效性
:
以键盘为焦点操作方式,减少鼠标利用,提高编辑服从。
扩展性
:
支持插件(如 NERDTree、YouCompleteMe),可自界说功能。
轻量级
:
启动速度快,运行占用资源少。
跨平台支持
:
适用于 Linux、macOS、Windows 等多种操作体系。
启动 Vim
vim filename
复制代码
如果文件不存在,会新建一个文件。
进入后默认处于
普通模式
。
Vim 的工作模式
普通模式
:默认进入的模式,用于浏览和编辑操作(非直接输入文本);切换到普通模式:按 ESC。
插入模式
:用于文本输入;进入插入模式:按 i(从光标前开始插入);
命令模式
:用于执行命令(如保存、退出);从普通模式进入:按 :。
可视模式
:用于选择文本块;进入可视模式:按 v。
快速切换
普通模式到插入模式:i 或 a。
插入模式到普通模式:ESC。
普通模式到命令模式::。
普通模式到可视模式:v。
Vim 的基本操作
普通模式
移动光标:
gg :光标移动到开头
G :光标移动到结尾
num + G :光标移动到指定行
^ :光标移动到当前行开头
$ :光标移动到当前行结尾
h :光标左移
l :光标右移
k :光标上移
j :光标下移
w :光标移动到下一个字的开头
e :光标移动到下一个字的结尾
b :光标移动到上一个字的开头
删除:
x :删除光标位置的字符
num + x :删除从光标位置开始的 num 个字符
X :删除光标位置的前一个字符
num + X :删除光标位置前面的 num 个字符
dd :删除当前行
复制:
yy : 复制当前行
num + yy : 复制从光标开始的 num 行
p : 复制粘贴内容到当前行
其他:
u : 撤销操作
ctrl + r : 撤销的恢复
shift + ~ :切换巨细写
搜索与更换:
/text :搜索文本
?text :向上搜索
n :查找下一个
r :更换光标所在的字符
R :更换光标所到之处的字符,按下 ESC 为止
命令模式
:w : 保存文件
:q :退出 Vim
:q! :欺压退出
:wq :保存并退出
:vs file :分屏模式
ctrl + ww :光标切换另一个窗口
gcc/g++
gcc 和 g++ 是 GNU项目标一部分,是用于编译和处理C、C++等多种编程语言的编译工具。
gcc 是用于 C 语言编译,g++是用于 C++ 编译
Ubuntu 安装 gcc / g++
运行以下指令来安装 gcc / g++ :
sudo apt-get update -y
sudo apt install build-essential
复制代码
sudo apt-get update -y :检查软件包更新
sudo apt install build-essential : build-essential 包含构建步调所需的几个工具。包罗 g++、gcc、make、GNU调试器。
验证 gcc / g++ 是否安装乐成:
gcc --version
g++ --version
复制代码
如果出现以下环境,乐成检查到版本,则阐明安装乐成。
编译知识
我们知道,源文件须要颠末编译才可以生成可执行步调,而编译又可以分为以下4个步调:
预处理
头文件睁开
宏更换
条件编译
去掉解释
颠末预处理后源文件(.c 或者 .cpp)就酿成了 .i 文件。
编译
检查语法,生成汇编代码,
由 .i 文件生成 .s 文件
。
汇编
将 .s 文件的汇编代码转换成二进制代码,
由 .s 文件生成 .o 目标文件
。
链接
将多个目标文件与所需的库函数链接起来,
生成可执行步调
。
利用方法
我们这里就以 gcc 做演示,g++ 也是同样的利用方式。
gcc [options] file.c -o output
复制代码
代码解释:
-o 的作用是指定输出文件名
整段代码的作用是 file.c 用 gcc 编译生成 output 可执行文件
执行可执行文件 ./output
如果是直接不带任何选项的编译 gcc file.c ,默认生成的是 a.out 文件。
如果我们想要编译过程在详细某个步调停下来,生成编译过程中的暂时文件,我们可以通过带特定选项来实现。
1.-E 选项,在预处理后停下来,由 .c 文件生成 .i 文件
gcc -E code.c -o code.i
复制代码
2.-S 选项,在编译后停下来,由.i 文件生成 .s 文件
gcc -S code.i -o code.s
复制代码
3.-c 选项,在汇编后停下来,由 .s 文件生成 .o 目标文件
gcc -c code.s -o code.o
复制代码
动静态函数库
我们都知道,如果我们的代码中利用到了一些库函数,我们就必须加上它的头文件,好比 printf 须要加上 <stdio.h> ,但是头文件也只是包含了库函数的声明,并没有实在现,这些库函数的实现实在是在特定文件路径的文件里。
在 Linux 体系中,这些库函数的实现是在 libc.so.6 的库文件(函数库)中,存放在在 /lib/x86_64-linux-gnu 路径里 。
ldd 指令可以查看可执行步调详细依赖于的库。
函数库是指为步调开发提供的预界说函数或功能集合,我们可以直接调用这些函数,无需从头写代码,提高开发服从,确保代码的可靠性和一致性。函数库可以分为
静态库
和
动态库
两种形式。
1.静态库(Static Library)
静态库在编译时会被直接链接到目标步调中,生成的可执行文件包含了库中的所有须要代码。因此,在步调运行时不须要依赖外部的库文件。
文件格式
:通常以.a(Linux)或.lib(Windows)为扩展名。
长处
:不依赖外部文件,运行时更稳定;链接后的步调独立性强,分发时只需提供一个可执行文件。
缺点
:可执行文件较大,因为包含了所有库代码;更新库时须要重新编译步调。
静态链接
gcc code.c -o mycode -static
复制代码
2.动态库(Dynamic Library)
动态库在步调运行时加载,代码不直接嵌入到可执行文件中,而是以外部文件存在,允很多个步调共享同一个动态库。
文件格式
:通常以.so(Shared Object,Linux)或.dll(Dynamic Link Library,Windows)为扩展名。
长处
:可执行文件更小,节流磁盘空间和内存;库的更新只需更换动态库文件,不须要重新编译步调。
缺点
:步调运行时须要依赖动态库文件,大概导致分发复杂性增加;如果动态库丢失或版本不匹配,步调大概无法运行。
动态链接
gcc code.c -o code
复制代码
利用 file 指令可以查看可执行步调链接库的类型。
file filename
复制代码
Have a good day
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
万万哇
金牌会员
这个人很懒什么都没写!
楼主热帖
markdown day 01
基于CSDN云和docker全家桶的微服务项目 ...
【云原生】Docker 进阶 -- 数据卷使用 ...
Nacos注册中心-----从0开始搭建和使用 ...
ClickHouse(05)ClickHouse数据类型详解 ...
谈谈技术能力
redis for windows 7.0.2安装包全网首 ...
阿里云域名购买流程以及免费证书的申请 ...
读Java性能权威指南(第2版)笔记02_ J ...
WPF dotnet 6 开启 PM v2 的 DPI 感知 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表