linux工具的使用

news2024/12/25 12:48:35

1.yum和apt的概念与使用

yumapt 是两种不同的包管理工具,用于在 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来查看包情况

注:
软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
"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-plugVundle。下面是 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 包含了 gccg++ 以及其他编译工具。

  • 在 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 的系统上,你可以使用 yumdnf 包管理器来安装 gdb

对于较旧的系统(如 CentOS 7):

sudo yum install gdb

对于较新的系统(如 CentOS 8、Fedora):

sudo dnf install gdb
list l 行号:显示 binFile 源代码,接着上次的位置往下列,每次列 10 行。
list l 函数名:列出某个函数的源代码。
r run :运行程序。
n next :单条执行。
s step :进入函数调用
break(b)  行号:在某一行设置断点
break  函数名:在某个函数开头设置断点
info break :查看断点信息。
finish :执行到当前函数返回,然后挺下来等待命令
print(p) :打印表达式的值,通过表达式可以修改变量的值或者调用函数
p 变量:打印变量值。
set var :修改变量的值
continue( c) :从当前位置开始连续而非单步执行程序
run( r) :从开始连续而非单步执行程序
delete breakpoints :删除所有断点
delete breakpoints n :删除序号为 n 的断点
disable breakpoints :禁用断点
enable breakpoints :启用断点
info( i) breakpoints :参看当前设置了哪些断点
display  变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay :取消对先前设置的那些变量的跟踪
until X 行号:跳至 X
breaktrace( bt) :查看各级函数调用及参数
info i) locals :查看当前栈帧局部变量的值
quit :退出 gdb

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

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

相关文章

Sky Takeaway

软件开发整体介绍 软件开发流程 角色分工 软件环境 苍穹外卖 项目介绍 定位&#xff1a;专门为餐饮企业定制的一款软件产品 技术选型 前端环境搭建 阅读readme文档 nginx.exe放入无中文目录运行并启动 后端环境搭建 项目结构 Nginx反向代理 优点 配置 Nginx反向代理 负…

QXlsx编译静态库-配置为Qt模块

Qt读写Excel–QXlsx编译为静态库-配置为Qt模块&#x1f346; 文章目录 Qt读写Excel--QXlsx编译为静态库-配置为Qt模块&#x1f346;[toc]1、概述&#x1f954;2、准备工作&#x1f955;3、配置环境&#x1f33d;4、加载QXlsx静态库&#x1f952; &#x1f449;QXlsx使用&#x…

《深度学习》OpenCV 高阶 图像金字塔 用法解析及案例实现

目录 一、图像金字塔 1、什么是图像金字塔 2、图像金字塔作用 1&#xff09;金字塔尺度间的图像信息补充 2&#xff09;目标检测与识别 3&#xff09;图像融合与拼接 4&#xff09;图像增强与去噪 5&#xff09;图像压缩与编码 二、用法解析 1、向下采样 1&#xff09;概念…

【C++11 ——— 可变参数模板】

C11 ——— 可变参数模板 可变参数模板的概念可变参数模板的定义方式参数包的展开递归式展开参数包逗号表达式展开参数包 emplaceemplace 的使用emplace 的优势 可变参数模板的概念 在C11之前,函数模板和类模板中的模板参数数量是固定的。可变参数模板打破了这个限制,提供了一…

Visual Studio汇编代码高亮与自动补全

高亮插件&#xff1a;AsmDude (可以按照我的颜色进行设置&#xff0c;或者你自己改) 代码自动补全&#xff1a;CodeGeex (功能很多&#xff0c;支持的语言很多)&#xff0c;按Tab补全

Gitea Action注册runner

我的是gitea也可以和github 兼容&#xff0c;只是没有github 那么靓而已 安装一个gitea仓库 docker run -d --name gitea \-p3000:3000 -p2222:22 \-v /git/data:/data \ -v /etc/timezone:/etc/timezone:ro \-v /etc/localtime:/etc/localtime:ro \gitea/gitea:1.21.1setti…

嵌入式实时操作系统(RTOS):原理、应用与发展

摘要&#xff1a;本文围绕嵌入式实时操作系统&#xff08;RTOS&#xff09;展开。首先介绍嵌入式系统与实时操作系统的概念&#xff0c;阐述嵌入式 RTOS 的体系结构。接着分析其关键特性&#xff0c;包含任务管理&#xff08;如任务的创建与删除、调度、同步与通信&#xff09;…

基于SSM架构的农产品朔源系统

项目描述 这是一款基于SSM架构的农产品朔源系统 模块描述 农产品溯源系统 1、农产品管理 农产品列表 新增农产品 2、二维码管理 二维码列表 3、溯源管理 溯源列表 溯源图表 4、 企业管理 设置 添加企业 截图

ts复合流讲解

一、什么是复合流 复合流指的是一条音视频数据流中同时包含了音频ES和视频ES数据&#xff08;ES指的是从编码器出来的音视频裸流比如H264&#xff0c;AAC&#xff09;。在音视频开发中最常见的复合流一般是TS、MP4、flv等。TS和flv一般用于网络传输&#xff0c;MP4一般用于本地…

【区块链 + 人才服务】教育区域初中综合素质评价系统 | FISCO BCOS应用案例

根据国家及相关省份制定的高中阶段学校考试招生制度改革实施意见&#xff0c;全国部分地市将开展初中学生综合素质评 价工作。评价将从思想品德、学业水平、身心健康、艺术素养和社会实践五个维度来记录学生的发展过程。例如&#xff0c; 学生的党团社团活动参与情况、公益活动…

windows手工杀毒-关闭恶意弹窗

上篇回顾&#xff1a;windows手工杀毒-寻找可疑进程之网络连接-CSDN博客 上篇主要介绍了如何通过网络连接发现可疑进程。滥用公认端口的软件可能是可疑软件&#xff0c;因为占用公认端口&#xff0c;可能导致正常服务不能正常使用。可以查询ip或域名的相关情报信息&…

一篇文章了解Pytest单元测试框架

文章目录 1.Pytest是什么2.Pytest的安装3.Pytest快速入门4.Pytest文件规范5.常用的断言类型 1.Pytest是什么 pytest 是一个功能强大且灵活的 Python 测试框架,主要优点包括简洁易用、自动测试发现、丰富的插件生态系统、参数化测试、详细的断言错误信息、以及强大的 fixtures …

虚拟化数据恢复—虚拟机误还原几年前的快照怎么恢复数据?

虚拟化技术原理是将硬件虚拟化供不同的虚拟机使用&#xff0c;一台物理机上可以有多台虚拟机。人为误操作或者物理机故障会导致上层虚拟机不可用&#xff0c;甚至虚拟机里的重要数据丢失。下面给大家分享一个vmware虚拟化误操作还原快照的数据恢复案例。 虚拟化数据恢复环境&am…

基于GPT3打造你的专属的个人知识库

DocsGPT是一个基于GPT3的知识库平台&#xff0c;其支持训练、本地部署&#xff0c;并支持结果导出 https://github.com/arc53/DocsGPT DocsGPT本地部署 前置依赖&#xff1a; pippython3.8版本以上&#xff08;python3.7不支持langchain 0.0.100以上版本&#xff09;如使用ma…

【原理图PCB专题】案例:Cadence能设计一个没有管脚的器件吗?

在工作中突发奇想,如果Capture原理图中设计一个没有管脚的器件是不是可行?比如说有一些logo,如果在PCB绘制或完成时进行放置,那又怕会忘记。如果说在原理图就能放置,那么导入PCB后就可以直接变成器件的形式,是否就能完美的从设计上解决这个忘记放置的问题? 因此做一个案…

走进低代码表单开发(一):可视化表单数据源设计

在前文&#xff0c;我们已对勤研低代码平台的报表功能做了详细介绍。接下来&#xff0c;让我们深入探究低代码开发中最为常用的表单设计功能。一个完整的应用是由众多表单组合而成的&#xff0c;所以高效的表单设计在开发过程中起着至关重要的作用。让我们一同了解勤研低代码开…

从“N 号房”看Deepfake乱象,如何证明“我”不是我?

从“N 号房”看Deepfake乱象&#xff0c;如何证明“我”不是我&#xff1f; “9张玛丽莲梦露的照片里&#xff0c;有2张是AIGC伪造的&#xff0c;你能看出来哪张是假的吗&#xff1f;” 这是出现在外滩大会AI创新赛全球Deepfake攻防挑战赛的表演赛上激动人心的一刻。9月6日下…

[SC]Windows VS2022下配置SystemC环境

Windows VS2022下配置SystemC环境 一、安装Visual Studio 2022 下载地址&#xff1a;Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com) 进入Visual Studio Installer后选择“通用Windows平台开发”并勾选“可选”中的“通用Windows平台工具”。 二、下…

在Application中全局获取context

首先自定义一个application&#xff0c;继承Application&#xff0c;并在AndroidManifest.xml文件中配置它。 class TvApplication : Application() {companion object {Volatilevar context: Application? nullprivate setfun getContext(): Context {return context ?: t…

[笔记]电参数测量的现有方案[进行中...]

1.关键字&#xff1a; 电参数测量 Electrical Parameter Measurement 2.相关信息搜集 》》电参数测量仪是如何测量电压电流相位差的&#xff1f;对于变频器那种比较毛的波形&#xff0c;也能测量&#xff1f; 电参数测量仪测量电压电流相位差的方法主要依赖于其内部的高精度…