Linux常用工具

简介: Linux常用工具

一、yum软件包管理工具


注:yum安装或移除一个工具都需要管理员权限。


1.查看可安装工具


yum list


查看所有可安装工具。


2.查找工具


1)yum search key


搜索指定关键字key的工具。


1.png

2)yum list | grep key


通过管道符将yum list 结果交给grep key操作,通过grep搜索关键字key工具。


2.png


3.安装/卸载


1)yum install package


安装package工具。


3.png


2)yum remove package


卸载package工具。


4.png


二、lrzsz文件传输工具


注:lrzsz需要关联xshell一起搭配使用。


1.rz向服务器传输文件


安装了lrzsz工具后,可通过直接拖拽的方式上传文件,文件会保存到拖拽到的当前目录下。


2.sz将服务器文件拉到本地


sz file


将文件“file”拉到本地。


5.png


三、git项目版本管理工具


在项目开发过程中,有很多关键节点,在关键节点将项目备份,当当前开发出现问题的时候,就可以通过项目版本管理工具将项目版本回滚到历史版本。


1.git clone 仓库链接


克隆仓库到本地。


2.git add --all ./


添加修改信息。


3.git commit -m "提交备注"


提交本地版本仓库管理。


4.git push origin master


同步本地仓库版本到服务器上。


四、vim编辑器★


Linux下的一个写代码工具。


1.必用的三种操作模式


1.1普通模式


进行一些命令操作。


vim filename:


· 打开文件夹“filename",若文件不存在,则会默认创建文件;


· 打开文件夹后默认处于普通模式下(不能写入内容);


常见操作:


1)光标移动★:


↑↓←→/kjhl:光标向上、下、左、右移动一个字符;


ctrl+f/b:向上/下翻页;


gg/G:返回到首行/末行;


w/b:每次向前/向后移动一个单词。


2)内容操作★:


复制:


yy:复制光标所在行;


nyy:从光标所在行开始复制n行;


粘贴:


p:粘贴;


np:重复粘贴n次;


剪切(删除):


在vim中没有真正的删除,剪切后不粘贴就是删除。


dd:剪切(删除)光标所在行;


ndd:剪切(删除)从光标所在行开始的n行;


全文对齐:gg=G


撤销操作:u


还原撤销:ctrl+r


1.2插入模式


编辑文件内容。


使用 i a o s/I A O S 切换到插入模式:


操作:


i:从光标位置开始插入;


a:光标向后移动一个字符开始插入;


o:在光标所在行下方新建一行开始插入;


· 编辑文件内容完毕,使用esc按键返回到普通模式。


1.3底行模式


保存以及退出编辑。


输入英文冒号,从普通模式切换到底行模式:


操作:


:w 保存


:q 退出编辑;


:wq 保存并退出;


:q! 强制退出,不保存;


五、gcc/g++编译器★


1.程序编译的四个阶段


1.1预处理


进行宏替换,去掉注释,引入头文件....


1.2编译


进行语法语义纠错,没有错误则将高级语言代码解释成为汇编指令。


1.3汇编


将汇编指令解释成为二进制机器指令。


1.4链接


将机器指令与所适用的库函数对应库文件中的机器指令打包到一起,组织成为可执行程序。


2.动态链接&静态链接


gcc编译器默认的链接方式是动态链接


(动态库和静态库同时存在时,默认优先使用动态链接加载动态库)。


链接其实就是将所有的代码合到一起,尤其是将库文件中的代码拿过来,但实际上也有区别:


动态链接,链接的是动态库;静态链接,链接的是静态库;


动态链接:


生成可执行程序的时候,只是把库文件函数符号的位置记录到了可执行程序中,并没有把实际的实现指令拿过来,当运行程序的时候,动态库也会被加载到内存中,去内存中动态库制定位置获取函数指令。


优点:多个程序只需要加载一个相同的动态库到内存中就可以,内存中相同的代码冗余更小,程序文件本身也更小一些。


缺点:运行程序时,动态库必须存在。


静态链接:


生成可执行程序的时候,直接将库中所用到的函数指令拿过来写入到可执行程序中,可执行程序就包含了所有用到的指令。


优点:运行时不需要依赖库文件的存在。


缺点:生成的可执行程序比较大;如果多个程序使用了相同的库函数,则运行时内存中可能存在冗余代码。


3.gcc——C语言


常见选项:


-E 只进行到预处理完毕就结束


-S 进行到编译完毕就结束


-c 进行到汇编完毕就结束


-o 指定要生成的文件对象文件


例:将文件test.c编译成可执行程序test的四个阶段:


预处理:gcc -E test.c -o test.i


编译:gcc -S test.i -o test.s


汇编:gcc -c test.s -o test.o


链接:gcc test.o -o test


★直接输入gcc test.c -o test:一次性完成四步操作。


4.g++——C++语言


同gcc。


5.Linux如何运行一个程序


直接告诉系统要运行的程序在哪里即可;即直接输入待运行程序的位置。


六、gdb调试工具★


1.调试前提

这个程序必须是可调试的(代码没有进行优化,加入了调试符号信息),即这个程序必须是一个debug版本程序。


2.程序分类:debug&release


gcc编译器在生成可执行程序时,默认生成release版本;要想生成debug版本需要加上选项-g。


debug版本:程序的调试版;


release版本:程序的发布版(进行了代码优化)。


3.调试流程★


1)加载调试程序:gdb ./testfile


2)开始调试:run直接运行;start开始逐步调试


3)逐步调试涉及指令★


括号内为指令的简写。


   next(n):下一步,逐过程;遇到函数直接运行完毕;


   step(s):下一步,逐语句;遇到函数会进入函数内部;


   until file:line:直接运行到指定文件的指定行;


   list(l):默认查看调试行附近的代码;


   list file:line:查看指定文件的指定行的代码;


   continue(c):从当前调试位置,开始继续运行;


   backtrace(bt):查看函数调用栈,可以快速定位程序崩溃位置;


   break file:line:打断点;在指定文件指定行打断点;★


   info break:查看断点信息;


   print:打印变量内容,还可以修改变量数据;


相关文章
|
24天前
|
存储 Linux Android开发
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。以前很多赛项都是使用vol2.6都可以完成,但是由于操作系统更新,部分系统2.6已经不支持了,如:Win10 等镜像,而Volatility3是支持这些新版本操作系统的。
|
15天前
|
存储 Prometheus 监控
Linux技术工具:bpftrace介绍
Linux技术工具:bpftrace介绍
22 7
|
17天前
|
监控 算法 Linux
探索Linux中的lz4命令:高效的数据压缩工具
**探索Linux中的LZ4工具:快速数据压缩。LZ4算法提供高速压缩与解压缩,适合实时数据处理。命令行工具如`lz4c`用于文件压缩(`lz4c file.txt compressed.lz4`)和解压缩(`lz4c -d compressed.lz4 decompressed.txt`)。特点是速度快、低内存占用,可选压缩级别。注意命令的实际形式取决于安装的实现,使用前应查阅文档。**
|
14天前
|
Linux 数据处理
Linux中的numfmt命令:数字格式化的强大工具
**numfmt命令在Linux中用于数字格式化,如转换进制、添加千位分隔符、处理字节单位。它支持从文件读取数字并能自定义分隔符、小数位数。例如:`numfmt 12345` 输出12,345(十进制),`numfmt -b 255` 输出11111111(二进制),`numfmt --to=iec 1000000` 输出976.6K(字节单位)。使用时注意选项组合及单位标准。**
|
20天前
|
Linux 数据处理
Linux命令`install`详解:不仅仅是安装工具
`install`命令在Linux中并非仅用于安装软件,而是用于精确复制文件和目录,设置权限及所有权。它能创建目标目录、处理符号链接并保留时间戳。例如,`install -m 644 source.txt /dest`用于复制文件并设置权限,`install -d -m 755 /dest/dir`创建目录。使用时要注意权限设置,避免误操作,并记录命令以备恢复。
|
21天前
|
Linux Shell 数据处理
探索Linux的`infokey`命令:终端键绑定的查询工具
探索Linux的`infokey`命令用于查询终端键绑定。它显示按键如何映射到命令,帮助用户理解终端行为。`infokey`与`ncurses`库配合,提供查询、清除和定制输出的功能。例如,`infokey -d`显示所有键绑定,`infokey -k "\e[11~"`检查F1键绑定。使用前确保安装了`ncurses`库,注意终端兼容性和权限问题。定期检查键绑定,备份配置,阅读文档以优化终端体验。
|
24天前
|
Linux 测试技术 开发者
【Docker项目实战】使用Docker部署instantbox临时Linux系统环境搭建工具
【6月更文挑战第13天】使用Docker部署instantbox临时Linux系统环境搭建工具
36 3
|
29天前
|
Linux Shell API
深入探索 `dbus-run-session`:Linux下的D-Bus会话管理工具
`dbus-run-session`是Linux下管理D-Bus会话的工具,它确保桌面环境和应用间的通信。当登录图形桌面时,D-Bus会话自动创建,支持应用和服务间的消息传递。通常不需要直接使用,但在特定情况下,可以通过`dbus-run-session bash`启动shell会话运行D-Bus相关命令。注意避免重复启动会话,勿以root运行,确保环境变量正确,可使用`--verbose`选项进行调试。了解其工作原理有助于解决D-Bus相关问题。
|
2天前
|
存储 Unix Linux
探索Linux中的sed命令:强大的文本处理工具
`sed`是Linux/Unix的流编辑器,用于文本替换、删除、新增等操作,无需直接编辑文件。它逐行处理输入,存储在模式空间,执行脚本后输出。主要特点是非交互、支持正则表达式和简洁语法。示例:`sed 's/apple/orange/g' example.txt`替换文本,`/error/d`删除包含"error"的行,`a\---`在每行后加"---"。使用时注意备份、测试命令和理解正则表达式。
|
26天前
|
算法 数据挖掘 Linux
探索Linux中的awk命令:强大的文本分析工具
探索Linux中的`awk`命令,一个强大的文本分析工具,用于模式扫描、数据提取与报告生成。本文介绍`awk`的用途、工作原理、特点及应用示例。`awk`基于"模式-动作"框架,从输入数据中匹配模式并执行相应操作。其特点包括:强大的文本处理能力、灵活的I/O及简洁的语法。示例涵盖了打印特定行、处理字段、计算统计值等场景。使用`awk`时要注意理解输入数据、测试脚本、优化性能和添加注释。深入学习以提升数据处理技能。