【Linux】常用工具(上)

这篇具有很好参考价值的文章主要介绍了【Linux】常用工具(上)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Linux 软件包管理器 yum

1. 软件包

  • 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
  • 但是这样太麻烦了,于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成 windows 上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装.
  • 软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.

2. 查看软件包

通过 yum list 命令可以罗列出当前一共有哪些软件包,由于包的数目可能非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包,例如:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

  • 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
  • “x86_64” 后缀表示 64位 系统的安装包,“i686” 后缀表示 32位 系统安装包. 选择包时要和系统匹配.
  • “el7” 表示操作系统发行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示 centos6/redhat6.
  • 最后一列,updates 表示的是 “软件源” 的名称,类似于 “小米应用商店”,“华为应用商店” 这样的概念

3. 安装/卸载软件

通过 yum,我们可以通过很简单的一条命令完成 sl 命令的安装,sudo yum install slsl 命令是一个有趣的命令,输入 sl 命令回车后屏幕上会有火车开过;我们先安装 sl 命令,因为安装需要 root 权限,所以我们在安装时要在前面加上 sudo,意思是使用 root 权限执行这条命令,如何才能使用 sudo 将会在后面介绍;如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

执行这条命令之后可能会让你输入当前用户的密码,我们输入即可,输入之后在短时间内再次使用 sudo 将不会再次输入密码;

随后将会进入安装过程,可能会让你确认是否安装,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

意思是需要多少内存,是否确认安装,我们输入 y (确认)即可,安装好后如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

随后我们执行 sl 命令如下:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

我们如果需要卸载 sl 命令,在命令行输入 sudo yum remove sl 即可,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

如上图,就已经卸载成功了,我们再次执行 sl 命令时如下:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

说明已经卸载成功。

同时,我们在进行安装和卸载操作时,可以在后面加上 -y 选项,即 sudo yum install sl -y ,默认确认安装,系统就不会再次询问我们是否确认安装。

4. yum 其他指令的功能

  • yum makecache 命令的功能是将服务器的软件包信息缓存到本地
  • yum search 命令可以在所有软件包中搜索包含有指定关键字的软件包
  • yum clean all 命令可以清除缓存中老旧的头文件和软件包
  • yum clean all 命令可以清除缓存中老旧的头文件和软件包
  • yum -y upgrade 只升级所有包,不升级软件和系统内核,软件和内核保持原样

二、Linux 编辑器 - vim 使用

1. vim 的基本概念

vim 是一款多模式的文本编辑器。

vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vimvi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。

我们先来熟悉 vim 的三种常见的模式,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。

他们之间的转化图如下:
【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

  • 正常/普通/命令模式(Normal mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode下,或者到 last line mode
  • 插入模式(Insert mode) 只有在 Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 底行模式(last line mode) 文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入 : help vim-modes

例如我们先 touch 一个 test.c 文件:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

再使用 vim 进入 test.c

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

其中,我们进入 test.c 之后默认是 命令模式 ,从转换图中可以看见,我们按下 i (或a、o),就可以进入插入模式,在左下角就会显式 insert 这个单词,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

此时我们就可以对 test.c 这个文件进行编辑,例如我们写一个简单的 .c 文件:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

此时如果我们想进入底行模式,从转化图可以看出,我们先要按下 Esc 进入命令模式,再按下 shift + ; 就可以进入底行模式了;进入底行模式后左下角会出现一个 : 如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

此时输入我们需要的指令即可。

2. vim 的基本操作

我们在上面已经知道,vim 默认打开的模式是命令模式,所以我们先熟悉在命令模式下的操作。

(1)光标移动(命令模式)

首先在命令模式下,我们的光标只能使用键盘的操作移动;我们可以使用键盘的 ↑ ↓ ← → 移动光标,但是我们并不常用箭头的操作移动光标,而是使用 h、j、k、l 移动。

  • h:光标向左移动一个单位

  • j:光标向下移动一个单位

  • k:光标向上移动一个单位

  • l:光标向右移动一个单位

(2)光标定位(命令模式)

除了上下左右移动光标外,我们还可以在文本中进行特定的操作,如下:

  • gg:定位到代码的第一行
  • shift + g:定位到代码的最后一行(n + shift + g :定位到代码的第n行)
  • shift + 6(^) :定位到特定一行的开始
  • shift + 4($) :定位到特定一行的结尾
  • w:以单词为单位,进行向后移动,支持跨行的
  • b:以单词为单位,进行向前移动,支持跨行的

(3)复制粘贴撤销(命令模式)

我们也可以对文本进行复制粘贴等操作:

  • yy:复制光标所在的一行(n + yy:复制n行)
  • p:粘贴内容到当前行之后(n + p:粘贴n行)
  • dd:剪切/删除光标所在行(n + dd)
  • u:对刚刚的操作进行撤销(即windows下的ctrl+z)
  • ctrl + r:反撤销(windows下的ctrl + y)

(4)其他操作(命令模式)

  • shift + `(~):文本大小写相互转换
  • r:替换光标所在的字符(n + r:替换n个字符)
  • x:向后删除一个字符(n + x:向后删除n个字符)
  • shift + x:向前删除一个字符(n + shift + x:向前删除n个字符)
  • shift + 3(#):查找同名单词,按n单次跳转

我们简单学完命令模式下的操作之后,我们再学一下底行模式的常见操作。

(5)保存并退出(底行模式)

我们在命令模式下按下 Esc ,再按下 shift + ;,即可切换到底行模式,我们在底行模式下可以执行以下操作:

  • w:保存文本(w!:强制保存文本)
  • q:退出当前文本(q!:强制退出文本)
  • wq:保存并退出(wq!:强制保存并退出)
  • set nu/nonu:为文本设置行号

除了我们所学的三个模式之外,我们再简单学两个模式,分别是替换模式、视图模式,他们之间的模式转换图如下:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

(6)替换模式

首先介绍替换模式,我们在命令模式下按下 shift + r 后,就进入了替换模式,此时左下角会出现 REPLACE 这个单词,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

此时我们可以直接进行替换单词,替换的是光标所在的单词,每按下一次,就会进行一次单词替换。

(7)视图模式

视图模式是用来帮助我们完成批量化注释的,例如我们需要注释多行代码,就可以使用视图模式。首先我们需要在命令模式下按下 ctrl + v 进入视图模式,进入视图模式后左下角会显示:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim
例如我们的文本如下,需要注释全部的 printf 函数:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

随后我们需要进行批量化注释,按 j/k 两个按键上下选中区域:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

随后按下 shift + i,光标会回到初始的位置:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

随后我们就在这个位置加上注释符 //,最后按下 Esc

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

如上图就完成批量化注释了。

总结:需要完成批量化注释的操作步骤:

  1. 在命令模式下:ctrl+v 进入视图模式;
  2. j/k 两个按键上下选中需要注释的区域;
  3. 按下 shift + i
  4. 给当前行加上注释符;
  5. 按下 Esc

接下来我们进行批量化删除注释;同理我们先要进入视图模式,然后hjkl 选中区域,以上面注释的代码为例,我们删除全部注释的代码,选中区域后如下:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

随后按下 d 即可,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

总结:删除批量化注释步骤:

  1. ctrl + v 进入视图模式
  2. hjkl 选中区域
  3. 按下 d 即可

我们在进行选中区域的时候有一个小技巧,可以使用命令模式中的 n + shift + g 快速选中需要的区域。

(8)多文件编辑

vim 也支持多文件编辑, 我们需要先使用 vim 打开一个文本,进入底行模式,在底行模式中输入vs + 需要打开的文本名字 ,例如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

如下图,就可以进行多文件编辑了:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

需要注意的是,我们的光标在哪一个文本,操作的就是哪一个文本,我们可以在命令模式下按下 ctrl + ww 可以切换光标到下一个的文本。

小技巧:我们在使用 vim 时,打开文本后,光标所停留的地方是我们上一次保存退出后所在的位置,我们可以使用 vim test.c +n 打开 test.c 后直接将光标定位到第 n 行;这是为了方便我们编译文件时,出错后可以直接定位到那一行。

三、Linux 编译器 - gcc/g++ 使用

1、程序的翻译过程

在学习 gcc/g++ 之前,我们先回忆一下程序的翻译过程,预处理和程序环境;程序的翻译过程包括预处理、编译、汇编、链接。

  1. 预处理

预处理就是进行头文件的展开、去注释、条件编译、宏替换等操作,我们可以使用 gcc 验证这一过程,假设我们在 test.c 文件中有一段以下代码:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

我们只需要执行 gcc -E test.c -o test.i 即可生成预处理完后的文件,以 .i 后缀结尾,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

我们使用 vim 进入 test.i 文件查看,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

从图中可以看出,我们的代码已经到800多行了,说明前面的头文件已经展开了,并且注释和宏替换也已经进行了。

gcc -E test.c -o test.i 这段指令中,其含义是使用 gcc 进行程序的翻译,待处理完预处理后就停下来,并将预处理完的程序生成以 .i 为后缀的文件;其中 -E 就是对文件进行预处理操作;-o + 文件名 就是生成指定文件。

  1. 编译

编译的过程就是将 C语言 转化为汇编语言,我们可以直接从源文件转化为汇编语言,也可以从预处理完后的文件转换为汇编语言;

如果从源文件直接转化为汇编语言,其指令为 gcc -S test.c -o test.s

但是我们上面已经有预处理完的文件,如果直接又从源文件开始,就重复工作了,所以我们直接从 test.i 文件转换为汇编语言,其指令为 gcc -S test.i -o test.s,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

其中 gcc -S test.i -o test.s 这段指令中,-S 代表开始程序翻译工作,等编译完成后就停下来;其中,编译后的文件应该是以 .s 后缀为结尾的。

  1. 汇编

汇编的过程是将汇编语言转化为可重定位的二进制文件,同上,我们也可以从源文件直接转化为二进制文件,但是我们已经将文件转为汇编文件了,所以可以从汇编文件开始转化为二进制文件,其指令为 gcc -c test.s -o test.o,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

其中 -c 选项代表汇编工作完成就停下来,可重定位的二进制文件是以 .o 后缀为结尾的文件,test.o 是一个不可执行的文件。

  1. 链接

链接是将 test.o 文件加上系统库生成可执行程序的过程,其指令为 gcc test.o -o 可执行文件名,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

上图中的 mycode 就是一个可执行的程序文件,我们执行它只需输入指令 ./mycode,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

如上图就完成了程序的执行。

上面的四个步骤就是我们程序的翻译过程,但是我们平时想要执行一个程序的时候并不需要分别执行上面的步骤,例如我当前的目录下只有一个 .c 文件,如图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

我们当前可以直接将 test.c 文件直接生成可执行文件,只需要执行指令 gcc test.c 即可,如下图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

系统默认生成的可执行文件的名称为 a.out ,我们想要执行它的时候,只需要在当前目录下找到它直接执行即可,其指令为 ./a.out,如图:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

这样就完成了我们程序的执行;另外,如果我们想要 test.c 文件生成指定名称的可执行文件,可以带上 -o 选项,即执行 gcc test.c -o 文件名 即可。

以上是 gcc 的使用,其实 g++ 的使用和 gcc 的使用类似,可以完全参考 gcc,只是使用的时候将 gcc 改为 g++ 即可。其中 gcc 是编译 C语言 的编译器,而 g++ 可以编译 C语言C++ .

2、动静态库的理解

我们上面的 C程序 中,并没有定义 “printf” 的函数实现,且在预编译中包含的 “stdio.h” 中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实现 “printf” 函数的呢?

答案是系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到系统默认的搜索路径 /usr/lib64/libc.so.6 下进行查找,也就是链接到 libc.so.6 库函数中去,这样就能实现函数 “printf” 了,而这也就是链接的作用;我们可以看到这个文件确实存在:

【Linux】常用工具(上),Linux,linux,运维,服务器,开发语言,vim

  1. 静态库

静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为 .a

其中,静态库C/C++ 或者其他第三方提供的所有方法的集合,被所有程序以拷贝的方式,将需要的代码,拷贝到自己的可执行程序中;

静态链接的优点:无视库,可以独立运行;
静态链接的缺点:体积太大,浪费资源;

默认情况下,我们的服务器是没有安装 C 静态库的,只有动态库,如果需要安装C静态库,只需要执行指令 sudo yum install glibc-static;如果需要安装C++静态库,执行指令 sudo yum install -y libstdc++-static 即可。

		sudo yum install glibc-static   // c 静态库
		sudo yum install -y libstdc++-static // c++ 静态库
  1. 动态库

动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为 .so,如前面所述的 libc.so.6 就是动态

gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件。

动态链接的优点:形成的可执行程序体积比较小,节省资源;
动态链接的缺点:稍慢一些,强依赖动态库,动态库没了,所有依赖这个库的程序都无法运行了;文章来源地址https://www.toymoban.com/news/detail-724604.html

到了这里,关于【Linux】常用工具(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 最常用的Linux手机远程工具合集!

    作为一名专业的Linux运维工程师,当我们进行服务器维护时,通常都是采用远程连接的方式进行操作及控制;而在多数情况下,很多人都是通过电脑进行远程操作的,但某种情况下,可能身边没有电脑,只有手机,这时我们就需要借助手机进行远程操作。那么Linux手机远程工具

    2024年02月09日
    浏览(32)
  • Linux 常用开发工具(yum、vim)

    耐心是一切聪明才智的基础。—— 柏拉图。本章进入到Linux下的一些常用的工具,这些工具能帮助我们去更好的使用Linux操作系统。 话不多说安全带系好,发车啦 (建议电脑观看) 。 附:红色,部分为重点部分;蓝颜色为需要记忆的部分(不是死记硬背哈,多敲);黑色加

    2024年02月07日
    浏览(36)
  • 常用Linux的ssh远程终端连接工具

    putty是最简单的SSH工具,无需安装,支持多系统版本,下载后就可以直接使用。 优点: 1.免费 2.免安装 缺点: 1、不支持标签模式; 2、默认设置不友好,很多功能都需要额外配置才行,例如自动登录功能; 3、不能传输文件; 4、没有X11,需要配置Xming工具; 5、默认keepaliv

    2024年02月11日
    浏览(83)
  • kali linux入门及常用简单工具介绍

    目录 前言 一、kali linux是什么? 二、安装下载kali 三、kali常见工具介绍 1.nmap 2.sqlmap 3.hydra 4.netcat 总结 相信很多同学了解到和学习网络安全的时候都听过 kali 系统,大家都称之为黑客最喜爱的系统,那么什么是kali,初学者用kali能做些什么,我将在本文中做简单的介绍 Kali L

    2024年02月08日
    浏览(38)
  • Linux:常用软件、工具和周边知识介绍

    上次也是结束了权限相关的知识:Linux:权限相关知识详解 Yum(Yellowdog Updater Modified): Yum是Linux系统中用于管理软件包的工具, 类似于手机上的应用商店 。是 基于 RPM(Red Hat Package Manager)的系统 ,用于管理 RPM 软件包 ,它提供了一种方便的方式来搜索、下载、安装和卸载

    2024年04月25日
    浏览(33)
  • 【Linux】虚拟机安装Linux、客户端工具及Linux常用命令(详细教程)

    目录 一、导言 1、引言 2、使用场景 二、Linux安装 1、安装 2、网络配置 2.1、查看网络配置 2.2、更改网络配置 三、安装客户端工具 1、介绍 2、安装MobaXterm 3、换源 4、拍照功能 四、常用命令          Linux 是一个开源的操作系统内核,它最初由芬兰计算机科学家 Linus Torva

    2024年02月06日
    浏览(65)
  • Linux常用命令本地查询工具:LinuxStudy 1.0

    最近在学习Linux,上千的命令整理了一下,随用随查,也分享给需要的小伙伴。 语言平台为C# framework 4.7.1,旧系统可能需要更新平台。程序开源 ,可关注 https://gitee.com/windtrace/linux-study 新版本。 目前收集了 www.linuxcool.com https://github.com/jaywcjlove/linux-command 两个网站的命令,整理

    2024年02月08日
    浏览(35)
  • C语言再学习 -- Linux常用网络调试工具

    参看:Linux常用网络调试工具 linux常用指令,之前我也总结了不少了。 参看:C语言再学习 – Linux 中常用基本命令 参看:Hi3516A开发–环境搭建工具 下面看看网络调试相关的工具: ifconfig 命令用于检查或设置机器上的网卡。 ping 命令是最常用的命令之一,用于检查两个设备之

    2024年01月21日
    浏览(34)
  • 【ROS】如何让ROS中节点获取数据 III --参数服务器通信及ros常用工具指令介绍

    Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法…感兴趣就关注我吧!你定不会失望。 相较于之前的通信模型,参数服务器是最为简单的。在之前的模型中,ROSMASTER都是扮演一个帮二者连接在一起的桥梁。 而在参数服务器中: ROSMASTER变为了一个存储消息的容器 ,

    2024年02月04日
    浏览(43)
  • 银河麒麟高级服务器操作系统V10-系统管理员手册:03 常用图形化工具

    目录 第三章 常用图形化工具 3.1. 刻录工具 3.2. 磁盘 3.2.1. 磁盘管理 3.2.1.1. 磁盘管理工具介绍 3.2.1.2. 磁盘管理工具界面展示 3.2.2. 磁盘管理工具使用 3.2.2.2. 分区格式化 3.2.2.3. 分区编辑 3.2.2.4. 编辑文件系统 3.2.2.5. 分区大小调整 3.2.2.6. 分区卸载和挂载 3.2.2.7. 分区删除 3.3. 远程

    2024年02月08日
    浏览(115)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包