linux 不仅仅是一个“可以运行程序的系统”,更重要的是,它提供了一套完整的开发工具链。从软件安装、文件编辑,到程序编译、调试,每一个环节都有对应的工具。
这一天主要学习了两个内容:linux 软件包管理器 yum/apt 和 vim 编辑器。
一、什么是软件包管理器?
以前在 windows 上安装软件,通常就是下载一个 .exe 安装包,然后双击安装。
linux 中也有类似的机制,只不过 linux 更强调软件包管理。
简单来说,可以把:
- 软件包理解成 windows 中的软件安装程序;
- 软件包管理器理解成手机上的应用商店。
linux 中常见的软件包管理器主要有:
- centos、redhat 等系统常见的是
yum - ubuntu 常见的是
apt
它们可以帮助我们自动寻找软件、下载软件以及处理软件之间的依赖关系。资料中也强调了软件包依赖是 linux 软件生态中的重要问题。
二、yum 和 apt 的基本使用
1. 查看软件包
例如在 centos 中,可以使用:
yum list | grep lrzsz
ubuntu 则可以使用:
apt search lrzsz
这样做的好处是 linux 中软件包数量很多,我们不需要把所有软件都看一遍,只搜索自己关心的软件即可。
2. 安装软件
centos:
sudo yum install -y lrzsz
ubuntu:
sudo apt install -y lrzsz
安装软件时通常需要管理员权限,因为软件需要写入系统目录。
linux 下很多操作都和权限有关,这和 windows 的使用体验还是有比较明显区别的。
3. 卸载软件
centos:
sudo yum remove -y lrzsz
ubuntu:
sudo apt remove -y lrzsz
资料还特别提醒,yum/apt 的使用需要保证网络畅通,因为软件通常需要从软件源下载。可以使用:
ping www.baidu.com
简单检查网络连接。
三、linux 软件源
软件包管理器并不是凭空产生软件,它需要从“软件源”获取软件。
例如 centos 中可以看到:
/etc/yum.repos.d/
ubuntu 中常见的是:
/etc/apt/sources.list /etc/apt/sources.list.d/
可以把软件源理解成一个巨大的软件仓库。
如果软件源访问速度比较慢,就可以考虑使用国内镜像源,例如阿里云、清华大学、中科大等镜像站。资料中也介绍了这些镜像源。
到这里,我对 linux 的软件安装机制有了一个更加完整的认识:
软件包管理器 + 软件源 + 软件包依赖
这几个概念实际上是联系在一起的。
四、认识 vim
解决了软件安装问题之后,下一个问题就是:
在没有图形化 ide 的情况下,怎么写代码?
答案就是 vim。
vim 是 linux 中非常经典的文本编辑器,它是 vi 的升级版本,支持多种模式,并提供了大量快捷操作。资料中将课堂重点放在三种模式上:
- 普通模式
- 插入模式
- 底行模式
五、vim 三种模式
1. 普通模式
进入 vim 后默认就是普通模式。
这个模式主要用于:
- 移动光标
- 删除
- 复制
- 粘贴
- 撤销
- 进入其他模式
例如:
h 左 j 下 k 上 l 右
刚开始使用的时候确实不太习惯,因为我们平时习惯鼠标或者方向键,但是掌握之后会发现这种方式非常高效。
2. 插入模式
在普通模式下输入:
i a o
都可以进入插入模式。
其中:
i:从当前位置开始插入a:从当前位置后面开始插入o:新建一行并开始输入
回到普通模式只需要:
esc
这一点非常重要。
如果刚接触 vim,很容易出现“为什么键盘打不出字”的情况。
原因通常就是:
你还处在普通模式,而不是插入模式。
3. 底行模式
在普通模式下按:
:
就进入底行模式。
这里最常用的几个命令是:
:w 保存 :wq 保存并退出 :q! 不保存强制退出
资料中也把这些命令作为 vim 最基础的使用方法。
六、几个非常实用的 vim 命令
随着练习,我发现 vim 真正强大的地方在于快捷操作。
例如:
dd 删除一整行 yy 复制一整行 p 粘贴 u 撤销 ctrl+r 恢复撤销 g 跳到文件末尾 gg 跳到文件开头
查找也很方便:
/关键字
向后查找;
?关键字
向前查找。
如果需要跳转到某一行,可以使用:
:15
直接跳到第 15 行。
七、简单配置 vim
原始的 vim 功能已经很多了,但是通过 .vimrc 可以进一步进行配置。
例如:
syntax on set nu set shiftwidth=4
分别可以实现:
- 开启语法高亮
- 显示行号
- 设置缩进宽度
用户自己的配置文件一般可以放在:
~/.vimrc
资料中还介绍了 taglist、winmanager 等插件,通过插件可以进一步增强 vim 的开发体验。
八、总结
今天的学习让我完整认识到 linux 开发环境中的两个基础部分:
第一,软件怎么安装。
依靠 yum/apt 和软件源,我们可以快速完成软件的搜索、安装和卸载。
第二,代码怎么编写。
依靠 vim,我们甚至可以完全脱离图形化 ide,在终端中完成代码编辑。
接下来,我要继续学习 linux 最核心的开发工具之一——gcc/g++ 编译器,真正弄明白我们写出的 .c、.cpp 文件,到底是怎样一步一步变成可执行程序的。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论