ToB企服应用市场:ToB评测及商务社交产业平台
标题:
全面掌握APT、Vim和GCC:Ubuntu软件管理与开发指南
[打印本页]
作者:
万万哇
时间:
2024-12-24 06:16
标题:
全面掌握APT、Vim和GCC:Ubuntu软件管理与开发指南
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
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4