1.yum和apt的概念与使用
yum
和 apt
是两种不同的包管理工具,用于在 Linux 系统上管理软件包。
yum
(Yellowdog Updater, Modified)
- 发行版: 用于基于 RPM 的发行版,如 CentOS、RHEL 和 Fedora。
- 基本命令:
- 更新包列表:
sudo yum update
- 安装包:
sudo yum install <package_name>
- 卸载包:
sudo yum remove <package_name>
- 搜索包:
yum search <package_name>
- 查看包信息:
yum info <package_name>
- 更新包列表:
apt
(Advanced Package Tool)
- 发行版: 用于基于 Debian 的发行版,如 Ubuntu 和 Debian。
- 基本命令:
- 更新包列表:
sudo apt update
- 升级所有包:
sudo apt upgrade
- 安装包:
sudo apt install <package_name>
- 卸载包:
sudo apt remove <package_name>
- 搜索包:
apt search <package_name>
- 查看包信息:
apt show <package_name>
- 更新包列表:
这两者的主要区别在于它们管理的包格式和工作在不同的 Linux 发行版上。
什么是软件包
在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通常包管理器可以很方便的获取到这个编译好的软件包,直接进行安装,软件包河软件包管理器,就好比"App"和"应用商店"这样的关系.
查看软件包
Debian/Ubuntu
查看已安装的软件包列表:
dpkg --list
查找特定软件包:
dpkg --list | grep package-name
查看包的详细信息:
apt show package-name
CentOS/RHEL
列出已安装的软件包:
rpm -qa
查找特定软件包:
rpm -qa | grep package-name
查看包的详细信息:
rpm -qi package-name
当然也可以使用yum来查看包情况
"x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配. "el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.
最后一列, base 表示的是 "软件源" 的名称, 类似于 "小米应用商店", "华为应用商店" 这样的概念.
关于sz和rz
`sz` 和 `rz` 是用于在 Unix-like 系统上通过 ZMODEM 协议进行文件传输的命令。
- **`sz`**: 发送文件的命令。它会将指定的文件通过 ZMODEM 协议发送到另一台机器。例如:
sz filename
- **`rz`**: 接收文件的命令。它会接收通过 ZMODEM 协议发送到本地的文件。例如:
rz
在使用这些命令之前,确保你的终端支持 ZMODEM 协议,并且在两台机器上都安装了 `lrzsz` 包。安装方法如下:
- **在 Debian/Ubuntu 上**:
sudo apt install lrzsz
- **在 CentOS/RHEL 上**:
sudo yum install lrzsz
这使得文件传输变得简单方便,尤其是在通过串口终端或远程登录时。
2.vim的使用
vim的概念
Vim(Vi IMproved)是一个功能强大、灵活且广泛使用的文本编辑器。它是 vi 编辑器的改进版,vi 是一种早期的文本编辑器,广泛存在于 Unix 系统中。Vim 的设计目标是提供一个高效、可定制的编辑环境,特别适合程序员和需要高级编辑功能的用户。
Vim 的主要概念和功能
.模式编辑:
1.普通模式(Normal Mode):这是 Vim 的默认模式。在此模式下,你可以执行各种编辑命令,如移动光标、删除文本和复制粘贴等。
2.插入模式(Insert Mode):在此模式下,你可以输入和编辑文本。可以通过按 i(在光标前插入)、I(在行首插入)、a(在光标后追加)等进入插入模式。
3.可视模式(Visual Mode):用于选择文本。可以通过按 v 进入可视模式,V(选择整行),或 Ctrl-v(块选择)。
4.命令行模式(Command-Line Mode):用于执行命令,如保存文件、退出 Vim 等。可以通过按 : 进入命令行模式。
Vim 的优势
高效的编辑:Vim 设计上强调使用键盘进行快速编辑,而不是频繁地切换到鼠标操作。
强大的功能:包括多种搜索、替换功能,以及强大的宏和脚本支持。
高度可定制:用户可以通过配置文件和插件进行深度自定义,适应不同的编辑需求。
vim的基础操作
以下是 Vim 的一些基础操作和命令,可以帮助你入门:
进入 Vim
打开文件:
vim filename
模式
普通模式(默认模式):用于执行命令和导航。
插入模式:用于文本输入。按 i 进入插入模式,按 Esc 返回普通模式。
可视模式:用于选择文本。按 v 进入可视模式,按 Esc 退出可视模式。
命令行模式:用于执行命令。按 : 进入命令行模式。
基本操作
移动光标:
按「G」:移动到文章的最后
按「 $ 」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l
按[gg]:进入到文本开始
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页
编辑文本:
进入插入模式:i(在光标前插入)、a(在光标后插入)、o(在当前行下插入新行)
退出插入模式:Esc
删除字符:x(删除光标下的字符)
删除整行:dd
复制整行:yy
粘贴:p(在光标后粘贴)、P(在光标前粘贴)
撤销:u
重做:Ctrl-r
搜索和替换:
搜索:/pattern(向下搜索)、?pattern(向上搜索)
查找下一个匹配项:n
查找上一个匹配项:N
替换::s/old/new/(替换当前行第一个匹配项)、:s/old/new/g(替换当前行所有匹配项)
全局替换::%s/old/new/g
文件操作:
保存文件::w
保存并退出::wq 或 :x
退出(不保存)::q!
其他有用的命令
帮助系统:
打开帮助::help
查找帮助内容::help keyword
配置vim
通常在etc目录下面有一个.vimrc,配置这个文件需要使用root权限。当然也可以在普通用户的目录下创建.vimrc文件,执行vim .vimrc打开配置文件进行配置。
基本配置
//启用行号
set number
//启用语法高亮
syntax on
//设置缩进
set tabstop=4 //设置 Tab 键的宽度为 4 个空格
set shiftwidth=4 //自动缩进时使用 4 个空格
set expandtab //用空格代替 Tab 字符
//自动换行
set wrap
//显示匹配的括号
set showmatch
//设置搜索高亮
set hlsearch
//忽略搜索大小写
set ignorecase
//启用智能搜索(如果搜索模式中包含大写字母,则区分大小写)
set smartcase
高级配置
//使用行号和相对行号
set number
set relativenumber
//启用自动补全
set completeopt=menu,menuone,noselect
//启用鼠标支持
set mouse=a
//设置颜色方案
colorscheme desert
//启用代码折叠
set foldmethod=syntax
set foldlevel=1
//自动保存文件
autocmd BufLeave * silent! wall
//设置备份文件选项
set backup
set backupdir=~/.vim/backup
插件管理
也可以使用插件管理器来扩展 Vim 的功能。两个常用的插件管理器是 vim-plug
和 Vundle
。下面是 vim-plug
的配置示例:
安装 vim-plug
插件管理器
在你的 /.vimrc
文件中添加以下内容:
call plug#begin('~/.vim/plugged')
" 在这里添加插件
Plug 'tpope/vim-sensible'
Plug 'junegunn/fzf'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
call plug#end()
安装插件
保存 ~/.vimrc
文件后,启动 Vim 并运行以下命令:
:PlugInstall
配置示例:
" 基本设置
set number
set relativenumber
set tabstop=4
set shiftwidth=4
set expandtab
set wrap
set showmatch
set hlsearch
set ignorecase
set smartcase
set mouse=a
set completeopt=menu,menuone,noselect
" 颜色方案
colorscheme desert
" 自动补全
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" 插件管理器配置
call plug#begin('~/.vim/plugged')
" 插件
Plug 'tpope/vim-sensible'
Plug 'junegunn/fzf'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
call plug#end()
" 代码折叠设置
set foldmethod=syntax
set foldlevel=1
3.linux编译器(g++和gcc)
在 Linux 系统中,g++
和 gcc
是两个常用的编译器,用于编译 C 和 C++ 语言的程序。以下是关于这两个编译器的基本信息和使用方法:
GCC (GNU Compiler Collection)
-
简介:
gcc
是 GNU Compiler Collection 的缩写,最初是 GNU C Compiler 的缩写。它是一个支持多种编程语言的编译器集合,包括 C、C++、Fortran、Ada 和 Go 等。 -
基本用法:
-
编译 C 程序:
gcc -o outputfile sourcefile.c
这条命令会将
sourcefile.c
编译成可执行文件outputfile
。 -
编译多个 C 文件:
gcc -o outputfile file1.c file2.c
-
编译并生成目标文件(不链接):
gcc -c sourcefile.c
这会生成一个目标文件 sourcefile.o。
-
链接目标文件生成可执行文件:
gcc -o outputfile file1.o file2.o
-
-
常用选项:
-O
:优化选项。例如,-O2
和-O3
提供不同级别的优化。-g
:生成调试信息。-Wall
:启用所有警告信息。
G++
-
简介:
g++
是 GCC 的一个前端,用于编译 C++ 程序。它在后台调用gcc
,但默认启用 C++ 的相关功能和库。 -
基本用法:
-
编译 C++ 程序:
g++ -o outputfile sourcefile.cpp
这条命令会将
sourcefile.cpp
编译成可执行文件outputfile
。 -
编译多个 C++ 文件:
g++ -o outputfile file1.cpp file2.cpp
-
编译并生成目标文件(不链接):
g++ -c sourcefile.cpp
这会生成一个目标文件
sourcefile.o
。 -
链接目标文件生成可执行文件:
g++ -o outputfile file1.o file2.o
-
-
常用选项:
-std=c++11
:指定 C++ 标准版本。例如,-std=c++14
、-std=c++17
、-std=c++20
。-O
:优化选项。例如,-O2
和-O3
提供不同级别的优化。-g
:生成调试信息。-Wall
:启用所有警告信息。
安装和更新
-
在 Debian/Ubuntu 系统中安装:
sudo apt update sudo apt install build-essential
build-essential
包含了gcc
和g++
以及其他编译工具。 -
在 Red Hat/CentOS 系统中安装:
sudo yum groupinstall "Development Tools"
4.linux调试器(gdb的使用)
程序的发布方式有两种模式,debug模式和release模式
linux gcc/g++出来的二进制程序,默认是release模式
要使用gdb调试,必须在源代码生成二进制程序的时候,加上-g选项
安装gdb
Debian/Ubuntu 系列
在 Debian、Ubuntu 或基于这些系统的其他发行版上,你可以使用 apt
包管理器来安装 gdb
:
sudo apt update
sudo apt install gdb
Red Hat/CentOS 系列
在 Red Hat、CentOS 或其他基于 Red Hat 的系统上,你可以使用 yum
或 dnf
包管理器来安装 gdb
:
对于较旧的系统(如 CentOS 7):
sudo yum install gdb
对于较新的系统(如 CentOS 8、Fedora):
sudo dnf install gdb